我很不擅长编写vim正则表达式。每当我写一个用于替换的正则表达式时,它从来都不能一次就成功,因为我不可避免地会写出一些Perl的东西而不是vim的东西。当进行简单搜索时,我有incsearch
打开,并且可以实时看到我的模式是否匹配,这样我就做得更好。
在我尝试编写正确的模式时,有没有办法让s命令像/一样(执行增量搜索)?
我不确定,但我认为没有一种方法可以做到这一点。顺便说一下,我使用了一个小技巧来加快我的替换速度。如果你像下面这样做:
:%s//bar
在命令行中,Vim会使用您最近的搜索结果。因此,这并不完全是您所需要的,但仍然可以提高一些速度来进行替换。您可以试试这个小技巧,使用incsearch组合您的搜索模式,然后将该模式复制到命令行替换中:
使用正常模式下的 /... 组合模式。 您可以看到您的模式是匹配的。 最后一个模式将存储在@/寄存器中。
进入命令行模式,输入以下部分代码::%s/
现在按下这些键:<c-r>=@/
这将把最后一次搜索模式复制到您正在编写的替代命令中。 (<c-r>
是按control-r键,而不是输入字符。)