[未完成]VIM 替换中使用函数表达式

要把

<li><a href=”#cimtabs-0″>Tab #1 nice day</a></li>

<li><a href=”#cimtabs-0″>Tab #1 nice day</a></li>

<li><a href=”#cimtabs-0″>Tab #1 nice day</a></li>

<li><a href=”#cimtabs-0″>Tab #1 nice day</a></li>

<li><a href=”#cimtabs-0″>Tab #1 nice day</a></li>

这样的行替换成

<li><a href=”#cimtabs-0″>Tab #1 nice day</a></li>

<li><a href=”#cimtabs-1″>Tab #1 nice day</a></li>

<li><a href=”#cimtabs-2″>Tab #1 nice day</a></li>

<li><a href=”#cimtabs-3″>Tab #1 nice day</a></li>

<li><a href=”#cimtabs-4″>Tab #1 nice day</a></li>

可以执行

:let n = 0 | g/(cimtabs-)@<=d{1,2}/s//=n/ | let n+=1

其中:

let n = 0 初始化变量n为0

g/正则表达式(这里使用了逆序环视,参考①)/命令 表示利用g (全称global)命令,对正则表达式匹配到的内容,使用后面的 命令 来执行, 更多关于g的用法,请在VIM中,键入: :h :g 来获得

s//=n/ 表示使用替换,将g标识符匹配到的内容,替换成n, 其中 =n 是表达式输入替换结果

 let n+=1  使 n 自增1

① http://hi.baidu.com/%CE%C4%B3%AD%B9%AB/blog/item/8fae8efc676f130a09244df8.html