如何使用Vim替换将var [foo]更改为foo?

时间:2014-03-28 01:16:40

标签: vim

今天我遇到了这种情况,我需要将var[name]更改为var [name]以及name可能是描述或其他字符串的许多其他地方。我可以执行以下命令:

%s/var[$variable]/$variable/g

2 个答案:

答案 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)

相关:(g)vim replace regex

要知道的是,如果你已经知道正则表达式和一般的捕获,那么在这种情况下,你显然必须逃避组字符,而不是反过来:

%s/var[\(variable\)]/\1/g

如果没有更多信息,我可以提供更多帮助。