VIM 在你输入时看到正则表达式匹配

如果我输入 /regex ,那么光标会瞬间跳到第一个匹配项,并且所有匹配项都会突出显示。 这会在我键入时更新。 当我准备进行替换时,是否可以执行此操作? 例如,当我为一个具有挑战性的正则表达式 :%s/\<regex\>/ 提供服务时,我想在扣动触发器之前了解匹配的内容以及更改任何内容。 有什么办法吗?

8
2022-06-07 14:41:00
资源 分享
答案: 3

键入您的搜索使用 / (或者 ? ) 开始,这将使您能够微调您的正则表达式(考虑到您正在使用 incsearch)

一旦一切顺利,您就可以使用以前的通过为“搜索”事物使用两个分隔符,在替换命令中搜索模式(您刚刚使用的模式):

/elephant                       " find the next elephant
:%s//rhino/gc                   " make then all rhinos!

当然,您可以像往常一样使用选项和品种。

:1,15s,,cougar,g
:'<,'>s::tiger:
12
2022-06-07 21:27:23
资源

好吧,查看您的正则表达式肯定会匹配的简短方法是使用您想要的正则表达式与 / 进行搜索。 它肯定会跳到第一个匹配项,并在您输入时标记它。 试试看 - vim 不会让你不满意。

0
2022-06-07 15:12:28
资源

一种选择是您可以有一个验证标志 c

:%s;regex;replacement;gc

:h s_flags

[c] Confirm each substitution.  Vim highlights the matching string.  You can type:              
        'y'     to substitute this match
        'l'     to substitute this match and then quit ("last")
        'n'     to skip this match
        <Esc>   to quit substituting
        'a'     to substitute this and all remaining matches
        'q'     to quit substituting

您还可以尝试 grep 命令来查看过滤后的输出和突出显示的初始文件。

:g/re/p:g/re/

2
2022-06-07 15:10:43
资源