VIM查找所有出现并替换为输入

时间:2016-03-10 11:39:25

标签: vim

是否可以在文件中搜索特定单词的出现,并要求用户输入以替换该单词。重复做同样的事情,无论是输入新的替代品还是使用历史记录中的内容,直到所有单词都被替换或者用户退出。请记住,我希望可以选择跳过我不想替换的单词。

只需使用

:%s/value_one/value_two/gc

意味着我必须为我想到的每个不同的替换执行此命令。这是可能的,还是这个工作流程有问题。在粘贴仅需要更改一个变量的样板代码时,我会使用它。

2 个答案:

答案 0 :(得分:15)

您正在寻找:

%s/value_one/\=input('replace <'.submatch(0).'> with: ')/gc

:h :s\=:h input()。如果您愿意,您应该能够为输入提供默认值。

答案 1 :(得分:3)

这可能不是完美的,只是分享我用过的东西。

这假定已经设置了:set hl。按*将搜索光标下的单词。把光标带到你的单词上。但我通常使用gd代替*

然后,使用ciw将其更改为替换字。然后是Esc。我们现在可以通过n进入下一次出现。

如果需要将其更改为相同的单词,则按.即可。 如果没有,您可以再次使用ciw更改为新值。

如果您不打算更改下一次出现,请按n跳过它,然后转到下一次出现。

这似乎很少有手册,但这可以保守地控制我的编辑。