vim块全局替换选择

ddrv8njm  于 2023-05-29  发布在  其他
关注(0)|答案(2)|浏览(165)

在我使用v选择某个东西之后(例如。foo),我希望能够替换整个文件中所有出现的foo。有办法做到吗?如果我用

%s/\%V/bar/g

它仅限于单词匹配示例。

68de4m5k

68de4m5k1#

您可以随时拖动文本并在替换命令中使用它,如下所示:

:%s/<C-R>"/new text/g

<C-R>"代表您按Ctrl+r,然后选择"寄存器(默认情况下,被拉拽或删除的文本将在此寄存器中)。这样做的唯一缺点是,如果yanked文本包含regex语法。
这不适用于视觉块选择。

arknldoa

arknldoa2#

如果它只是一个单词(在您的示例中是“foo”),您可以将光标放在它上面,然后使用Ctrl-RCtrl-W在光标下插入单词。完全不需要视觉模式。
或者用Vim说:

:%s/<C-R><C-W>/bar/g

同样,Ctrl-RCtrl-A插入所有内容,直到出现空格字符(对于包含特殊字符的单词很有用)。
参见:help c_<C-R>_<C-W>

相关问题