【问题标题】:Can I have vi number lines starting from 0我可以有从 0 开始的 vi 数行吗
【发布时间】:2014-03-12 17:35:24
【问题描述】:

我经常使用 vi 命令

:set number

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

【问题讨论】:

  • 看起来这不可能。见stackoverflow.com/questions/1176326/…
  • 您发布的问答确实表明这是不可能的。我错过的另一个问答在这里:stackoverflow.com/questions/10213373/… 但是也许(希望)在 4 年多的时间里发生了一些变化。其中一位 cmets 向我介绍了 set relativenumber 命令。具有讽刺意味的是,当我将光标放在文件的第一行时,这部分解决了我的问题!

标签: editor vi


【解决方案1】:

@David 的评论让我有点胡思乱想,最终找到了这个链接:Add line numbers to source code in vim

出于我的目的,我需要的不一定是持久编号,而只是临时编号。快速插入/删除行号,然后使用标准编号。对于这种情况,我没有想过简单地插入然后删除我自己的行号。下面的效果很好。编号的可能性是无限的(例如参见https://stackoverflow.com/a/252774/2816571

%!awk '{print NR,$0}'

对于添加数字的本机 vi 解决方案(来自 https://stackoverflow.com/a/253041/2816571),下面将插入行号,然后是空格字符:

:%s/^/\=line('.').' '/

然后(感谢 Lance)https://stackoverflow.com/a/4674574/2816571 完成编号后,执行类似的操作,但您可能需要调整搜索模式,具体取决于您是否放置了空格、逗号分隔符

:%s/^[0-9]* //

如果我在 vim 中缺少可以执行基于 0 的持久编号的内容,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    • 2015-01-28
    • 2018-12-07
    • 1970-01-01
    • 2010-10-12
    • 2022-01-18
    相关资源
    最近更新 更多