vim在每行前插入行号

今天知乎上收到一个邀请,如何使用Vim为每一行自动编号

把回答总结在这儿:
vim内部有内置命令如 line(), 用法可以查看帮助 :h line()

常用的参数有:

  • 所在行的行号 .
  • 可视模式下首行的编号 '<

因此,可以方便的利用line函数进行一些行号相关的操作

  • 每行前面插入行号如下
    :%s/^/\=line(".")/
    
  • 可视区域插入从1开始的编号
    '<,'>s/^/\=line('.') - line("'<") + 1/
    

当:s 命令的替换字符串以“\="开头时,表示以表达式的计算结果作为替换值。

comments powered by Disqus