在Vim中智能搜索/替换

时间:2010-06-17 11:38:40

标签: vim vi replace

我有一个包含以下表达式的文件:

  

东西[0]

而不是0可能有不同的数字。我想用

替换所有这些出现
  

somethingElse0

其中数字应与我更换的表达式中的数字相同。我该怎么做?

2 个答案:

答案 0 :(得分:6)

使用这样的模式分组:

:%s/something\[\(\d\+\)\]/somethingElse\1/g

答案 1 :(得分:1)

您应该使用匹配组和字符类的组合来完成此操作。您的示例,如果您的意思是使用SomethingElse(相同数字)替换Something(数字 - 此处),则使用以下命令解决:

:%s/Something\(\d\+\)/SomethingElse\1/g

这会找到文件中包含Something(一串数字)的所有位置,并替换Something with SomethingElse。 +表示一个或多个数字;如果你想要零或更多的数字,你可以用*替换它。