在vim中获取最后一次搜索或搜索&替换字符串?

时间:2010-12-06 01:09:22

标签: search vim replace

如何将我用于搜索或搜索&替换的最后一个字符串带回来?

例如,假设我输入:%s/some_text/some_other_text/gc并且vim返回E486: Patterns not found: some_text错误消息。然后我意识到我实际上打算写some_magic_text而不是some_text。那时,如何在底部命令行(或其他任何调用行)中取回原始字符串,以便我可以更改它并进行第二次搜索?对此有一个漂亮的小命令吗?

在这个简短的例子中,它看起来没必要,但是当你想要替换的文本很长并且你只输入一个字母错误时,必须重新输入所有内容是非常烦人的。

如果有任何不同,我正在使用MacVim。

5 个答案:

答案 0 :(得分:8)

在正常模式下,点击q/浏览搜索记录!

答案 1 :(得分:4)

查看此vimvcast,其中说明了您的需求。

答案 2 :(得分:1)

毕竟,这个答案可能对你所追求的目标有所改善。

使用突出显示搜索,以交互方式检查您正在制作的正则表达式是否正常工作,然后在搜索替换中使用它。

  1. :se isincsearch,最好将se is放入.vimrc)
  2. /<search term>
  3. 如果您对比赛感到满意,请与n / N核实
  4. :s%//<replace term>/g
  5. <search term>中省略搜索替换中的4.时,将使用上次使用的搜索。

    为了获取最后一个(搜索替换)命令列表,请使用q:,或者已经注明q/作为最后搜索字词列表。

    加成:
    使用:se gd时,s/<search>/<replace>的行为将为s/<search>/<replace>/g

    然后,只需添加/g即可完成每行中第一次搜索匹配的访问,因此基本上只会切换这两种行为。

答案 3 :(得分:1)

/ 然后 up 调出最后一个搜索查询。

答案 4 :(得分:0)

更一般地说,您可以通过输入前几个字符来调用先前输入的任何命令,然后多次使用箭头在历史记录中导航。

在您的情况下,您可以输入:
:%s<Up>

请参阅:help history