考虑以下Vim ex命令,
:let i=1 | '<,'>g/^/ s/^\ *-/\=i/ | let i+=1
它可以在选定的行中将标题破折号替换为有序编号。
我不理解为什么这个命令会从选定行的第一行循环到最后一行。也就是说,如何让g
一遍又一遍地重复执行let i+=1
。
\=i
中加入其他字符?对我来说似乎不起作用。例如,:let i=1 | '<,'>g/^/ s/^\ *-/[\=i]/ | let i+=1
。 - Jake0x32:help sub-replace-expression
以获取关于\=i
的信息,因为:help :s\=
目前会将您引导到那里。 - tmoore82:let i=1 | '<,'>g/^/ s/^\ *-/\="[" . i . "]"/ | let i+=1
可以实现该功能。 - toolchainX'<,'>
选择(即:let i=10800 | 1,$g/$/ s/$/\=i/ | let i+=10
)。唯一无法实现的是在数字前面添加逗号...s/$/,\=i/
没有起作用... 所以我只能分两步完成。 - Stephen P