2016-02-19 130 views
2

用括号中的数字+4替换[]中的数字的命令是什么? 例如[4] => [8]在vim中用[x + 5]替换[x]的命令是什么

:%s/\[\(\d\+\)\]/\=submatch(1)+4/Ic 

我想出直到这一部分,但不能得到[]出现替换之后。

想法?

+3

使该搜索到它的宏,然后做'4 + Ctrl键+了' – aaronman

回答

4

替代的子替换表达式需要一个字符串。

:%s/\[\(\d\+\)\]/\='['.(submatch(1)+4).']'/Ic 

或者使用\zs\ze设置比赛的开始和结束,所以你并不需要添加回方括号。

:%s/\[\zs\(\d\+\)\ze\]/\=submatch(1)+4/Ic 

如需更多帮助,请参见:

:h sub-replace-expression 
:h String 
:h expr-. 
:h /\zs 
相关问题