今天我遇到了这种情况,我需要将var[name]
更改为var [name]
以及name
可能是描述或其他字符串的许多其他地方。我可以执行以下命令:
%s/var[$variable]/$variable/g
答案 0 :(得分:1)
根据问题的标题,以下表达式应将var[foo]
更改为foo
:
:%s/\vvar\[(.{-})\]/\1/g
但是在您提到的细节中,您需要将var[name]
更改为var [name]
,以下内容应该这样做:
:%s/\v(var)(\[.{-}\])/\1 \2/g
从评论中进行第二次替换的其他方式:
:%s/var\zs\ze\[.*\]/ /g
或
:%s/var\zs\ze\[[^]]*\]/ /g
答案 1 :(得分:0)
要知道的是,如果你已经知道正则表达式和一般的捕获,那么在这种情况下,你显然必须逃避组字符,而不是反过来:
%s/var[\(variable\)]/\1/g
如果没有更多信息,我可以提供更多帮助。