Vim - 从1开始为选择添加行号

时间:2017-05-30 04:09:49

标签: vim

我正在使用以下代码(来自网络的某个地方,但我忘记了页面)为文本文件添加行号:

:%s/^/\=printf('%d] ' , line('.'))/g 

我试图将其修改为接受范围:

command -range=% Addln <line1>,<line2>s/^/\=printf('%d] ' , line('.'))/g 

它适用于整个文件,但是当我尝试将它应用于选择时,它会从文件行号开始添加行号,而不是1.如何更改它以便为选择添加行号从1?谢谢。

1 个答案:

答案 0 :(得分:0)

由于<line1>标识符将由Vim替换为命令范围的实际第一行编号,您可以使用它来对其进行算术运算:只需从当前line('.')中减去它并添加一个基于1的编号:

command -range=% Addln <line1>,<line2>s/^/\=printf('%d] ' , line('.') - <line1> + 1)/g