是否有incsearch搜索replace命令?


12

我真的很喜欢Vim的incsearch功能。当我进行更换时,是否可以使用它或类似的方法?

例如,如果在普通模式下,我输入:

:%s/potato/

我可以potato在文件上突出显示所有s 吗,就像incsearch我写时突出显示它们一样

/potato

使用正则表达式时,这已经对我有很大帮助。当我写这篇文章时,一个非常非常好的地方是:

:%s/potato/banana/

它将potatobananas 替换s,并突出显示它们-也许替换的颜色应该不同。直到我按Enter键,它才“提交”更改)。

如果有帮助,我目前正在使用neovim。


1
你是说incsearchhlsearch应该可以工作,如果我键入:%s/potato/\0/以替换potato为自己,那么我看到所有匹配项都突出显示。
jjaderberg'2

确实,我的意思是搜索。替换我的问题,谢谢。
kikito

它可能不是犹太洁食,但:/pattern<CR>可以正常工作,然后添加%s和replace字符串。然后,他们再次完善搜索范围,并使用CTR-R /粘贴到:%s/
Steve

附加到@jjaderberg::%s/potato/carrot/c将使您跳过(“确认”)替换项(添加g以替换同一行中的所有实例),并hlsearch可以提前看到它们。
罗尔夫

Answers:


9

经过一番搜索,我发现了这个NeoVim问题,该问题又被该PR关闭,这使我进入了inccommand设置。将其添加到我的配置文件中:

set inccommand=nosplit

使NeoVim的行为几乎完全符合我的要求。我没有找到与常规Vim相当的东西,但是我并没有非常积极地寻找它。


4
在您的情境中,对于替代incsearch(成为懒惰的Vimmer并缓慢地采用新事物),我可能会搜索马铃薯(/potato),享受普通的渐进式搜索,然后替换为空搜索:%s//banana。但是我不知道它与set inccommand=nosplit其他方面的比较。
jjaderberg'2

谢谢!我不知道“空搜索技巧”。当我在服务器上运行vim时,我会尽力记住它
kikito

1
@jjaderberg顺便说一句,我非常喜欢这个inccommand设置,以至于我制作了一个在工作中显示它的场景,以防它激发您尝试Neovim
kikito

2
@jjaderberg我认为这是值得回答的。
Rich

不幸的是,与腹水的联系现在已经消失了。
sjy
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.