2016-02-19 57 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 
相關問題