我经常使用 vim /
search 命令来验证我的正则表达式(只是为了看看它匹配什么)。之后,我通常使用:%s
替换命令,其中我使用搜索中的正则表达式作为要替换的字符串,例如我首先查找这样的字符串:
/TP-\(\d\{5\}\)-DD-\d\{3\}
它完全符合我想要的,所以我进行替换:
:%s/TP-\(\d\{5\}\)-DD-\d\{3\}/\1/g
但我必须在这里再次编写整个正则表达式。通常该正则表达式要长得多,这就是我寻找解决方案的原因:
是否有任何现有的快捷方式或 vim 脚本可以将该搜索模式直接粘贴到替换命令中?
我在终端中使用 vim(没有 gvim)。
答案1
一般来说,空的正则表达式意味着使用之前输入的正则表达式,所以:%s//\1/g
应该做你想做的事情。
答案2
查看过去的正则表达式搜索以及 Ex 命令并对其进行更改的另一个好方法是在正常模式下编辑这些命令。在此模式下,您将拥有所有 vim 功能,包括复制和粘贴。
- 搜索:而不是
?
或/
用于搜索,尝试q/
或q?
- 对于 Ex 命令,而不是
:
尝试q:
- 要退出此模式,请使用CtrlC
要阅读更多内容,请参阅:help q:
。