假设我在视觉模式中选择了一个单词。我想使用s //在文件中对该单词和该单词的所有其他实例进行替换。有没有办法在s/<here>/stuff/
部分使用突出显示的文本而无需重新输入?
答案 0 :(得分:17)
不确定。如果您选择了单词,只需“y”ank it,然后键入:
:%s/<ctrl-r>"/something else/g
用r键按住ctrl键,“只是”字符。
所有按键:
y:%s/<ctrl-r>"/what to put/g<enter>
答案 1 :(得分:4)
答案 2 :(得分:4)
您不必掏出单词,将光标放在单词上,然后:
:%s/<C-r><C-w>/bar/g
答案 3 :(得分:0)
从命令行访问寄存器内容的另一种方法是通过@
变量。因此,如果您将文本拖入默认寄存器,它将位于名为@"
的变量中。
:exe '%s/' . @" . '/stuff/'
这是一个可以轻松输入的映射:
vmap <Leader>s y:exe '%s/' . @" . '//g'<Left><Left><Left>
现在,您可以在视觉模式中突出显示某些内容,输入\s
,输入替换内容并点击Enter
。 depesz的版本也做了很好的映射(几乎与他输入的一样):
vmap <Leader>s y:%s/<c-r>"//g<Left><Left>