例如,要使用单个命令转换foo(a,b,c)
为foo(ax,bx,cx)
,您需要以下内容:
:s/[abc]/MATCHED_CHARACTERx/g
这种替换的正确语法是什么?
使用搜索模式中的转义括号\(...\)
,您可以标记要在替换模式中使用的部分。括号中的每个部分都可以通过 访问\1, \2, \3...
。\0
匹配整个搜索模式。
因此,对于您的示例,您可以使用
:%s/[abc]/\0x/g
或者,更具体地说,
:%s/foo(\(.\),\(.\),\(.\))/foo(\1x,\2x,\3x)/g
第二个模式将只匹配foo(<any>,<any>,<any>)
而不是所有出现的a,b,c
.
the&
是整个比赛的同义词,\0
代表整个比赛。因此,您也可以&x
在示例替换中使用。这也适用于许多其他工具,例如sed
.