在Vim中,有没有办法在search行中粘贴文本?

我想要search$maximumTotalAllowedAfterFinish并用$minimumTotalAllowedAfterFinishreplace它。 而不是input长文本:

 :%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g 

有没有办法将这些长variables名称复制到search行中,因为在命令行我不能input“ p ”来粘贴?

你可以通过inputCTRL R {0-9a-z"%#:-=.}来插入编号或命名寄存器的内容。通过inputCTRL-R CTRL-W,你可以粘贴光标下的当前单词。

 :he cmdline-editing 

了解更多信息。

正常复制,然后按Ctrl R 粘贴,还有很多其他的Ctrl R快捷键(例如计算器,当前文件名,剪贴板内容),请input:help c_<CR>查看完整列表。

键入q:在新的缓冲区中进入历史编辑模式。 然后编辑缓冲区的最后一行,然后按Enter执行它。

或者在vim缓冲区中创build命令,例如在缓冲区中input:

 s/foo/bar/gci 

并将其复制到一个已命名的registry中,用"ayy (如果光标位于该行!)。

现在你可以用Vim的Ex命令行执行“ a ”寄存器的内容:

 :[OPTIONAL_RANGE]@a 

我用它所有的时间。

通常情况下,您可以通过鼠标select(select后可能是Ctrl InsCtrl C ),然后在命令/search行中单击鼠标中键(或Shift +Ctrl + V )。

另一种方法是将文本缓冲区中的命令/search行写入文本缓冲区,所有可用的文本缓冲区都是可用的,从以下行开始: all,然后在行上执行:

 "add@a 

将整个命令行存储在缓冲区a ,然后执行它。 尽pipe如此,它不会被存储在命令历史logging中。

尝试在文本缓冲区中创build以下行作为上述按键的示例:

 :%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g 

最后,您可以inputq:在文本缓冲区中input历史编辑。

复制:
1) v (或用鼠标在可视模式下突出显示)
2) y (yank)

糊:
1) / (search模式)
2) Ctrl + R + 0 (从抽取的寄存器粘贴)