Vim替换时的增量搜索

10

我很不擅长编写vim正则表达式。每当我写一个用于替换的正则表达式时,它从来都不能一次就成功,因为我不可避免地会写出一些Perl的东西而不是vim的东西。当进行简单搜索时,我有incsearch打开,并且可以实时看到我的模式是否匹配,这样我就做得更好。

在我尝试编写正确的模式时,有没有办法让s命令像/一样(执行增量搜索)?


4
Vim 8.1在补丁8.1.0271的支持下,对于:s、:g和:v命令加入了incsearch功能的支持。 - 1110101001
2个回答

20

我不确定,但我认为没有一种方法可以做到这一点。顺便说一下,我使用了一个小技巧来加快我的替换速度。如果你像下面这样做:

:%s//bar
在命令行中,Vim会使用您最近的搜索结果。因此,这并不完全是您所需要的,但仍然可以提高一些速度来进行替换。

1
这是个很好的技巧。您可以先键入您要搜索的内容,然后运行该快捷方式。 - Matt
1
哇,这个技巧可能会在我的职业生涯中为我节省很多时间。谢谢! - notlesh
我知道我可以用 / 再次搜索,但从未想过它也会在替换中起作用! - djs

3

您可以试试这个小技巧,使用incsearch组合您的搜索模式,然后将该模式复制到命令行替换中:

  1. 使用正常模式下的 /... 组合模式。 您可以看到您的模式是匹配的。 最后一个模式将存储在@/寄存器中。

  2. 进入命令行模式,输入以下部分代码::%s/

  3. 现在按下这些键:<c-r>=@/ 这将把最后一次搜索模式复制到您正在编写的替代命令中。 (<c-r> 是按control-r键,而不是输入字符。)


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