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

cdmah0mi  于 2023-02-08  发布在  其他
关注(0)|答案(8)|浏览(220)

我想搜索$maximumTotalAllowedAfterFinish并将其替换为$minimumTotalAllowedAfterFinish,而不是键入长文本:

:%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g

有没有办法将这些长变量名复制到搜索行中,因为我无法在命令行中键入“p“进行粘贴?

unftdfkk

unftdfkk1#

通过键入CTRLR{0-9a-z"%#:-=.},可以插入编号或命名寄存器的内容。通过键入CTRL-RCTRL-W,可以将当前单词粘贴到光标下。请参阅:

:he cmdline-editing

以获取更多信息。

ars1skjm

ars1skjm2#

像平常一样复制它,然后按CtrlR”键粘贴。还有很多其他的CtrlR快捷键(例如,计算器,当前文件名,剪贴板内容)。键入:help c_<C-R>查看完整的列表。

vnjpjtjt

vnjpjtjt3#

副本:
1)v(或在可视模式下用鼠标突出显示)
2)y(拉伸)
粘贴:
1)/(搜索模式)
2)Ctrl + R + 0(从被拉拽的寄存器粘贴)

nhjlsmyf

nhjlsmyf4#

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

lokaqttq

lokaqttq5#

或者在vim缓冲区中创建命令,例如在缓冲区中键入命令:

s/foo/bar/gci

并使用"ayy将其复制到指定的寄存器(如果光标在该行上!)。
现在,您可以使用以下命令从Vim的Ex命令行执行"a"寄存器的内容:

:[OPTIONAL_RANGE]@a

我一直都在用。

yqyhoc1h

yqyhoc1h6#

您可以将光标置于要添加到图案中的单词上,然后按/或:进入搜索或命令模式,然后按CtrlRCtrlW复制单词。Source

cfh9epnr

cfh9epnr7#

通常,您可以通过鼠标选择(选择后可能使用CtrlIns或CtrlC),然后在命令/搜索行中单击鼠标中键(或ShiftIns或CtrlV)来完成此操作。
另一种方法是在文本缓冲区中写入命令/搜索行,并使用文本缓冲区中所有可用的编辑,从:和all开始,然后在该行上执行以下操作:

"add@a

它会把整个命令行存储在缓冲区a中,然后执行它。但是它不会存储在命令历史中。
尝试在文本缓冲区中创建以下行,作为上述按键的示例:

:%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g

最后,您可以输入q:以进入文本缓冲区中的历史编辑。

ff29svar

ff29svar8#

在你的vimrc中添加一行:cnoremap <c-v> <c-r>+,然后你可以使用ctrl-v来粘贴。

相关问题