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

时间:2011-01-11 08:12:40

标签: regex vim vi replace

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

是否有一种简单的方法可以显示我在搜索和替换命令中编写的表达式而无需再次输入?

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

/perform 输入

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

:%s/perform/execute/g

3 个答案:

答案 0 :(得分:36)

您可以输入

/search_term

然后

:%s/<ctrl-r>// etc

你实际按 ctrl + r 然后 / 插入搜索词。

答案 1 :(得分: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/

答案 2 :(得分:0)

%s / blah / blahh / cg无济于事?

:%s/perform/execute/cg