我可以从0开始有vi编号行吗?

Pau*_*aul 8 vi editor

我经常使用vi命令

:set number
Run Code Online (Sandbox Code Playgroud)

我最近试图将一些基于零的索引的数据与vim中的行号对齐,后者具有基于1的索引.有没有办法让vi从0开始编号,或者更广泛地从任何其他起点编号?

Pau*_*aul 0

@David 的评论让我费了一番功夫最终找到了这个链接:Add line numbers to source code in vim

就我的目的而言,我需要的不一定是持久的编号,而只是临时的编号。快速插入/删除行号,然后采用标准编号。对于这种情况,我没有想到简单地插入然后删除我自己的行编号。下面的效果很好。编号的可能性是无限的(例如参见/sf/answers/17694211/

%!awk '{print NR,$0}'
Run Code Online (Sandbox Code Playgroud)

对于添加数字的本机 vi 解决方案(来自/sf/answers/17712901/),下面将插入行号,然后插入空格字符:

:%s/^/\=line('.').' '/
Run Code Online (Sandbox Code Playgroud)

然后(感谢兰斯)/sf/answers/327220211/完成编号后,执行类似的操作,但您可能需要调整搜索模式,具体取决于是否放置空格、逗号分隔符

:%s/^[0-9]* //
Run Code Online (Sandbox Code Playgroud)

如果我在 vim 中缺少一些可以进行基于 0 的持久编号的东西,请告诉我。