我正在使用以下代码(来自网络的某个地方,但我忘记了页面)为文本文件添加行号:
:%s/^/\=printf('%d] ' , line('.'))/g
我试图将其修改为接受范围:
command -range=% Addln <line1>,<line2>s/^/\=printf('%d] ' , line('.'))/g
它适用于整个文件,但是当我尝试将它应用于选择时,它会从文件行号开始添加行号,而不是1.如何更改它以便为选择添加行号从1?谢谢。
答案 0 :(得分:0)
由于<line1>
标识符将由Vim替换为命令范围的实际第一行编号,您可以使用它来对其进行算术运算:只需从当前line('.')
中减去它并添加一个基于1的编号:
command -range=% Addln <line1>,<line2>s/^/\=printf('%d] ' , line('.') - <line1> + 1)/g