例如,要使用单个命令转换foo(a,b,c)
为foo(ax,bx,cx)
您需要以下内容:
:s/[abc]/MATCHED_CHARACTERx/g
Run Code Online (Sandbox Code Playgroud)
这种替换的正确语法是什么?
使用\(...\)
搜索模式中的转义括号,您可以标记要在替换模式中使用的部分.括号中的每个部分都可以通过访问\1, \2, \3...
.\0
匹配整个搜索模式.
所以,对于你的例子,你可以使用
:%s/[abc]/\0x/g
Run Code Online (Sandbox Code Playgroud)
或者,更具体地说,
:%s/foo(\(.\),\(.\),\(.\))/foo(\1x,\2x,\3x)/g
Run Code Online (Sandbox Code Playgroud)
第二个模式只匹配foo(<any>,<any>,<any>)
而不是所有出现的匹配a,b,c
.