在Vim中编写替换正则表达式模式时如何调用搜索模式?

时间:2010-05-29 14:47:37

标签: regex vim

这是一个场景:我有一个大文件,里面装满了各种各样的折衷垃圾,我想要正则表达式。我通过使用 / 命令并查看它突出显示的内容来摆弄并提出完美的搜索模式。

现在我想使用该模式替换。所以,我开始输入:%s / ,我不记得模式是什么。是否有一些神奇的键盘命令会在这里引入我的上一个搜索模式?如果我正在编写一个特别复杂的正则表达式,我甚至打开了一个新的MacVim窗口,从第一个窗口输入正则表达式到那里的缓冲区,然后在写入替换模式时将其键入Vim窗口。必须有更好的方法。

3 个答案:

答案 0 :(得分:10)

在写完问题后找到了我自己的答案:Vim提示将其列为substitute last search,可以通过以下两种方式之一完成。

  1. 使用空搜索:

    :%S //替换/克

  2. Ctrl + r 然后 / 从搜索缓冲区中调用材料( / - 您可以使用 / 替换代表该缓冲区的字母来使用任何其他命名缓冲区。

答案 1 :(得分:4)

有一个/寄存器包含当前搜索模式,因此您可以将搜索模式插入到您正在键入的任何内容中(在插入模式下或在命令行上)<CTRL-R>/

答案 2 :(得分:1)

另一个选项:在使用<CTRL-R>/输入模式后,使用<CTRL-F>编辑命令行。

:help cmdwin