是否可以在文件中搜索特定单词的出现,并要求用户输入以替换该单词。重复做同样的事情,无论是输入新的替代品还是使用历史记录中的内容,直到所有单词都被替换或者用户退出。请记住,我希望可以选择跳过我不想替换的单词。
只需使用
:%s/value_one/value_two/gc
意味着我必须为我想到的每个不同的替换执行此命令。这是可能的,还是这个工作流程有问题。在粘贴仅需要更改一个变量的样板代码时,我会使用它。
答案 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
跳过它,然后转到下一次出现。
这似乎很少有手册,但这可以保守地控制我的编辑。