如何更改Vim中的单词(及其所有其他出现的单词)

如何更改Vim中的单词(及其所有其他出现的单词),vim,Vim,我经常使用c-a-w组合来更改Vim中的一个单词 是否有类似的方法可以快速更改特定文件中出现的所有其他单词?您可以尝试: %s/<CTRL-R><CTRL-W>/NewWord/g 表示按住控制键并按R和W。 这会将光标下的单词复制到命令行 请参阅:帮助c\u CTRL-R\u CTRL-W.您可以尝试: %s/<CTRL-R><CTRL-W>/NewWord/g 表示按住控制键并按R和W。 这会将光标下的单词复制到命令行 请参阅:help c

我经常使用c-a-w组合来更改Vim中的一个单词

是否有类似的方法可以快速更改特定文件中出现的所有其他单词?

您可以尝试:

%s/<CTRL-R><CTRL-W>/NewWord/g
表示按住控制键并按R和W。 这会将光标下的单词复制到命令行

请参阅:帮助c\u CTRL-R\u CTRL-W.

您可以尝试:

%s/<CTRL-R><CTRL-W>/NewWord/g
表示按住控制键并按R和W。 这会将光标下的单词复制到命令行

请参阅:help c_CTRL-R_CTRL-W.

为此使用gn选项,在我的例子中,我有一个稍微不同的版本

" allows me to use a smarter cgn
nnoremap c* *<c-o>cgn
nnoremap c# #<C-o>cgn
现在,当你必须多次更改一个单词时,只要你没有那么多,因为在这种情况下,经典替换会更好,只需按c*然后按点->。来改变它的下一次发生

如果你想看看gn如何给我们带来惊喜,请看一看:

为此使用gn选项,在我的例子中,我有一个稍微不同的版本

" allows me to use a smarter cgn
nnoremap c* *<c-o>cgn
nnoremap c# #<C-o>cgn
现在,当你必须多次更改一个单词时,只要你没有那么多,因为在这种情况下,经典替换会更好,只需按c*然后按点->。来改变它的下一次发生


如果您想了解awesomeness gn如何为我们提供帮助,请查看:

替换所有事件的主命令是:substitute。不幸的是,作为一个Ex命令,它不能很好地与单字替换(例如,在正常模式下的caw)集成:尽管可以将先前替换的字插入到命令行中,但仍必须将其括在\中以强制执行整字匹配,并转义字内的任何特殊字符


也就是说,有一些插件可以在这方面提供帮助。其中之一是my,它提供了一个gc{motion}替代c{motion},然后将更改或删除应用于同一行或整个缓冲区中的其他匹配项。插件页面有指向其他插件的链接。

替换所有出现的插件的主命令是:substitute。不幸的是,作为一个Ex命令,它不能很好地与单字替换(例如,在正常模式下的caw)集成:尽管可以将先前替换的字插入到命令行中,但仍必须将其括在\中以强制执行整字匹配,并转义字内的任何特殊字符

也就是说,有一些插件可以在这方面提供帮助。其中之一是my,它提供了一个gc{motion}替代c{motion},然后将更改或删除应用于同一行或整个缓冲区中的其他匹配项。“插件”页面有指向其他插件的链接。

可能重复的插件的可能重复