如何将我用于搜索或搜索&替换的最后一个字符串带回来?
例如,假设我输入:%s/some_text/some_other_text/gc
并且vim返回E486: Patterns not found: some_text
错误消息。然后我意识到我实际上打算写some_magic_text
而不是some_text
。那时,如何在底部命令行(或其他任何调用行)中取回原始字符串,以便我可以更改它并进行第二次搜索?对此有一个漂亮的小命令吗?
在这个简短的例子中,它看起来没必要,但是当你想要替换的文本很长并且你只输入一个字母错误时,必须重新输入所有内容是非常烦人的。
如果有任何不同,我正在使用MacVim。
答案 0 :(得分:8)
在正常模式下,点击q/
浏览搜索记录!
答案 1 :(得分:4)
查看此vimvcast,其中说明了您的需求。
答案 2 :(得分:1)
毕竟,这个答案可能对你所追求的目标有所改善。
使用突出显示搜索,以交互方式检查您正在制作的正则表达式是否正常工作,然后在搜索替换中使用它。
:se is
(incsearch
,最好将se is
放入.vimrc)/<search term>
n
/ N
核实:s%//<replace term>/g
在<search term>
中省略搜索替换中的4.
时,将使用上次使用的搜索。
为了获取最后一个(搜索替换)命令列表,请使用q:
,或者已经注明q/
作为最后搜索字词列表。
加成:
使用:se gd
时,s/<search>/<replace>
的行为将为s/<search>/<replace>/g
。
然后,只需添加/g
即可完成每行中第一次搜索匹配的访问,因此基本上只会切换这两种行为。
答案 3 :(得分:1)
/ 然后 up 调出最后一个搜索查询。
答案 4 :(得分:0)
更一般地说,您可以通过输入前几个字符来调用先前输入的任何命令,然后多次使用箭头在历史记录中导航。
在您的情况下,您可以输入:
:%s<Up>
请参阅:help history