我想搜索$maximumTotalAllowedAfterFinish
并替换为$minimumTotalAllowedAfterFinish
。而不是输入长文本:
:%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g
有没有办法将这些长变量名复制到搜索行中,因为在命令行中我无法键入“ p
”来粘贴?
\V
在搜索模式中的任何位置禁用“魔术”字符。
我想搜索$maximumTotalAllowedAfterFinish
并替换为$minimumTotalAllowedAfterFinish
。而不是输入长文本:
:%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g
有没有办法将这些长变量名复制到搜索行中,因为在命令行中我无法键入“ p
”来粘贴?
\V
在搜索模式中的任何位置禁用“魔术”字符。
Answers:
您可以通过键入插入编号或命名寄存器的内容CTRLR {0-9a-z"%#:-=.}
。通过键入,CTRL-R CTRL-W您可以将当前单词粘贴到光标下方。看到:
:he cmdline-editing
想要查询更多的信息。
CTRL
+ R
+
(因为剪贴板内容如此)
0
寄存器包含最后猛拉字符串。
复制:
1)v
(或在可视模式下用鼠标突出显示)
2)y
(拖动)
粘贴:
1)/
(搜索模式)
2)Ctrl + R + 0
(粘贴来自抽头寄存器的粘贴)
或在vim缓冲区中创建命令,例如在缓冲区中键入命令:
s/foo/bar/gci
然后将其复制到一个命名寄存器中"ayy
(如果光标在该行上!)。
现在,您可以a
使用以下命令从Vim的Ex命令行执行“ ”寄存器的内容:
:[OPTIONAL_RANGE]@a
我用它所有的时间。
通常,您可以通过鼠标选择(也许CtrlIns或CtrlC选择之后),然后在命令行/搜索行中单击鼠标中键(ShiftIns或CtrlV)来实现。
另一种方法是,在文本缓冲区中写入命令/搜索行,并在文本缓冲区中进行所有编辑,从:
和开始,然后在该行中执行以下操作:
"add@a
它将整个命令行存储在buffer中a
,然后执行它。但是,它不会存储在命令历史记录中。
尝试在文本缓冲区中创建以下行,作为上述按键的示例:
:%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g
最后,您可以输入q:
以在文本缓冲区中输入历史记录编辑。
$
因为这个角色意味着行尾。