在Vim中,有没有办法在搜索行中粘贴文本?
我想搜索$maximumTotalAllowedAfterFinish
并将其替换为$minimumTotalAllowedAfterFinish
。而不是输入长文本:在Vim中,有没有办法在搜索行中粘贴文本?
:%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g
有没有一种方法来复制下来,这些长变量名在搜索行,因为,在命令行中我不能键入“p
”粘贴?
您可以通过键入CTRL[R{0-9a-z"%#:-=.}
插入寄存器里的内容。通过键入CTRL-RCTRL-W您可以将当前单词粘贴到光标下。参见:
:he cmdline-editing
了解更多信息。
感谢您的回答,对我来说最常见的一个是:`CTRL` +`R`` +`(因为它代表剪贴板内容) – 2013-10-09 10:27:49
通常,可以做到这一点与鼠标选择(也许Ctrl键宏或Ctrl键Ç选择之后),然后,当在命令/搜索线,中间键(或移位Ins或CtrlV)。
另一种方式,是写在文本缓冲区的命令/搜索符合在文本缓冲区提供所有的编辑,从:
和所有的话,就行了,这样做:
"[email protected]
这将整个命令行存储在缓冲区a
中,然后执行它。不过,它不会存储在命令历史记录中。
尝试在文本中创建缓冲区以下行如对上述按键的例子:
:%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g
最后,您可以输入q:
在文本缓冲区进入历史编辑。
+1为提及鼠标 – 2008-11-10 12:48:14
复制它作为正常的,然后做按Ctrl[R“贴。还有很多其他按Ctrl的R快捷方式(例如,计算器,当前文件名,剪贴板中的内容)。输入:help c_<C-R>
要查看完整列表
或者在Vim缓冲区创建命令,如在缓冲区键入:
s/foo/bar/gci
然后将其复制到一个已命名的寄存器中,其中"ayy
(如果光标在该行上!)。
:[OPTIONAL_RANGE]@a
我用它所有的时间:现在
您可以执行的“a
”的内容从Vim的Ex命令符合注册。
复制:
1)v
(或高亮与小鼠,在视觉模式)
2)y
(抽出)
粘贴:
1)/
(搜索模式)
2)Ctrl + R + 0
(从抽取的寄存器粘贴)
我想,tou还需要转义第一个`$`,因为这个caracter意味着行结束。 – 2011-09-19 20:28:10
@LucM OP还可以在搜索模式中的任意位置使用'\ V`来禁用“魔术”字符。 – 2012-11-06 01:37:14