VIM:使用递增搜索进行文件替换

6

我知道incsearch设置可以控制在vim中搜索时如何高亮显示。当使用替换命令(:%s/foo/bar/)时,我希望有相同的增量搜索和高亮显示。

2个回答

10

最简单的方法是像平常一样进行搜索,使用'incsearch'来帮助确保匹配您想要的模式。一旦您确定了这一点,您可以选择:

  • :%s//bar/中省略搜索模式。当没有指定搜索模式时,将使用/寄存器的当前值,该值将是您刚刚执行的搜索。
  • 使用Ctrl+r/(参见:help c_ctrl-r)或Ctrl+rCtrl+o/(如果搜索包含控制字符,如^H)将搜索模式插入到:s命令中。这对于对模式进行一些最后的微调或者想要将其保存在命令历史中以便您在执行另一个搜索后仍然可以重用它时非常有用。

很酷,我不知道还有第二种可能性。但我仍然想知道为什么incsearch不可能只适用于:%s... 这是有道理的! - Gijs
2
警告:如果搜索模式中存在控制字符,则更安全地使用 CTRL-R CTRL-O / 而不是 CTRL-R / - Benoit

6
您可以在命令末尾添加c,如下所示:
:%s/foo/bar/c

它将遍历所有foo的实例,并在将其更改为bar之前要求您确认(这就是c的含义)。

但这不完全符合您的需求。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接