VIM:如何替换一个单词

时间:2010-11-05 13:51:43

标签: vim replace

我想,问题很常见。比方说,我们有一个源文件,希望用另一个字符串替换一些字符串。

通常,我使用以下命令:

:%s/test/testValue/gc

但是,如果字符串很长并且我们只需要触摸它怎么办?输入类似的东西很无聊:

%s/someLongAndDirtyString/somelongAndDirtystring/gc

是否可以将光标放在someLongAndDirtyString字上,按某个魔术键并在最后一行中获取以下内容?

%s/someLongAndDirtyString/someLongAndDirtyString/gc

然后我们可以稍微改变一下新字符串并继续替换。

当然,这只是一个想法。请告诉我这种更换的最佳方式。

由于

2 个答案:

答案 0 :(得分:23)

您可能对this answer感兴趣我如何使用寄存器,但这里有四种方法:

方法1

编辑命令时,按 CTRL R 然后 CTRL W 在光标下插入单词。< / p>

另见:help c_CTRL-R

方法2

转到你的话,点击 * ,然后点:%s//replacement/g。如果不使用搜索模式,则使用从寄存器@/获取的最后搜索模式。

方法3(你可能会喜欢那个)

执行:nnoremap <f12> :%s/<c-r><c-w>/<c-r><c-w>/gc<c-f>$F/i(ctrl-f由'cedit'选项决定)

您可以将此映射放入.vimrc中 这会将 F12 键映射到您想要的位置,光标将保留在您想要的位置。

方法4

转到你的话,点击 * ,然后执行:%s// CTRL R / /gc
CTRL-R然后/插入搜索寄存器的内容。

答案 1 :(得分:13)

好吧,如果您的光标位于要替换的单词上,您可以点击*将突出显示并搜索该单词,然后您可以输入:

:%s//newstring/gc

,vim将在斜杠之间插入最后搜索到的字符串。