在Vim中,是否可以在搜索行中粘贴文本?
时间:2020-03-06 14:25:36 来源:igfitidea点击:
我想搜索$ maximumTotalAllowedAfterFinish
并将其替换为$ minimumTotalAllowedAfterFinish
。而不是输入长文本:
:%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g
有没有办法将这些长变量名复制到搜索行中,因为在命令行上我无法键入"p
"来粘贴?
解决方案
输入q:
进入新缓冲区的历史记录编辑模式。然后编辑缓冲区的最后一行,然后按Enter键执行。
通常,我们可以通过以下方式进行选择:鼠标选择(选择后可能是Ctrl Ins或者Ctrl C),然后在命令/搜索行中单击鼠标中键(或者Shift Ins或者Ctrl V)。
另一种方法是,将命令/搜索行写到文本缓冲区中,并在文本缓冲区中提供所有可用的编辑,从:
开始,然后在行上执行所有操作:
"add@a
它将整个命令行存储在缓冲区" a"中,然后执行它。但是,它不会存储在命令历史记录中。
尝试在文本缓冲区中创建以下行,作为上述按键的示例:
:%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g
最后,我们可以输入" q:"以在文本缓冲区中输入历史记录编辑。
我们可以通过键入CTRL``R``{0-9a-z"%#:-=。}
来插入编号或者命名寄存器的内容。将当前单词粘贴到光标下方。请参阅:
:he cmdline-editing
欲获得更多信息。
照常复制它,然后执行Ctrl + R粘贴。还有很多其他Ctrl + R快捷键(例如,计算器,当前文件名,剪贴板内容)。 CR>`查看完整列表。
或者在vim缓冲区中创建命令,例如在缓冲区中输入:
s/foo/bar/gci
然后将其复制到带有" ayy"的命名寄存器中(如果光标在该行上!)。
现在,我们可以使用以下命令从Vim的Ex命令行执行"`a"寄存器的内容:
:[OPTIONAL_RANGE]@a
我用它所有的时间。