【发布时间】:2025-12-09 12:15:01
【问题描述】:
用string_b 替换所有出现的string_a,同时将已经存在的string_b 更改为string_a 的最简单方法是什么?我目前的方法如下:
:s/string_a/string_c/g
:s/string_b/string_a/g
:s/string_c/string_b/g
虽然这可行,但它需要额外的输入并且似乎效率低下。有人知道更好的方法吗?
【问题讨论】:
-
您可能(也)想在 SuperUser.com 上尝试这个问题。
-
这是一个很好的问题——人们会认为这很容易......我想可以编写一个接受两个参数并为你完成三个步骤的函数,但我也希望找到这样的具有快速网络搜索的功能。
-
如果您的文件已经在任何地方包含“string_c”,则此方法将失败。如果您是人类并且可以选择一个您知道不在文件中的单词,那很好,但是教一个函数来猜测一个好的中间词会更加困难。最好一次性完成。
-
@BrianCarper 我认为即使 string_c 没有出现在文本中,它也会失败,例如如果文本是字母“abcde...”,则 string_a 为“bcd”,string_c 为“aa”。
-
As Peter Rincker answered on another question,Abolish 插件现在也能很好地做到这一点!