如何在 vim ex 模式下复制/粘贴

iak*_*kie 12 vim

输入这个我越来越沮丧

:%s/some_really_long_string/some_other_really_really_long_string_that_may_or_may_not_related_to_the_first_one/gc

有没有办法在 ex 模式下复制/粘贴这些字符串?

小智 13

您可以使用Ctrl-R在 Ex 命令行中插入寄存器的值。例如,如果您已将一些文本拖入默认寄存器,则可以使用Ctrl-R".

对于一些常见情况,也有快捷方式。您可以使用 插入光标下的当前单词Ctrl-RCtrl-W,或使用 插入当前文件名Ctrl-RCtrl-F

有关更多信息,请参阅这些主题,包括更多示例:

:help c_CTRL-R
:help cmdline.txt
Run Code Online (Sandbox Code Playgroud)

寄存器也值得一读:

:help registers
Run Code Online (Sandbox Code Playgroud)


mru*_*cci 10

我几乎总是避免在替换命令中输入搜索字符串,首先执行搜索(使用/)或“光标下的单词搜索”(使用*),然后执行:

:%s//other_string/gc
Run Code Online (Sandbox Code Playgroud)

当搜索模式丢失时,替换命令将使用最后一个搜索模式。

除了让您输入更少的字符之外,第一种情况,使用 搜索/,允许在执行替换之前先测试复杂的搜索模式。第二种情况,使用 搜索*,可以避免插入开始/结束原子,即\<\>

——

顺便说一句,您可以g通过添加行来避免标志

set gdefault
Run Code Online (Sandbox Code Playgroud)

在您的vimrc文件中。