将vim/search转换为搜索和替换,无需重新输入正则表达式

Rob*_*cio 23 regex vi vim replace

当我在Vim中执行搜索和替换时,我喜欢首先使用搜索功能(/regex)来直观地测试我的正则表达式.

是否有一种简单的方法来提示我在搜索和替换命令中写的表达式而不再输入它?

例如,如果我想在上面的文本中找到单词perform并将其替换为execute,则执行以下操作:

/performenter

有没有办法轻松插入perform下面的搜索和替换命令?

:%s/perform/execute/g

Pet*_*ter 36

你可以输入

/search_term
Run Code Online (Sandbox Code Playgroud)

然后

:%s/<ctrl-r>// etc
Run Code Online (Sandbox Code Playgroud)

您实际按下ctrl+ r然后/插入搜索词的位置.

  • 完美,正是我想要的.谢谢! (2认同)

Xav*_* T. 19

如果您已完成上一次搜索: /foo

你可以简单地输入: :%s//bar/g

它会取代所有出现foo的bar,因为Vim懂得含蓄地要替换以前的搜索.您根本不需要重新输入foo.

更一般地,为了重用历史记录中的命令,您可以使用该命令调q:出命令历史记录并q/在小缓冲区中显示搜索历史记录.一旦你在那里,你可以使用每个Vim命令粘贴,剪切,调用以前的命令按<Enter>...

可以在那里找到适合您主题的优秀资源,这是关于regexp的网络广播以及如何使用命令行窗口优化它们.
http://vimcasts.org/episodes/refining-search-patterns-with-the-command-line-window/