将行号添加到vim中的源代码
我怎样才能添加行号在vim的行范围? 不像在“:设置Nu” – 这只是显示数字,但不会将它们添加到文件。
同
:%s/^/\=line('.')/ 编辑:总结评论。
这个命令可以根据需要调整。
 假设您想从视觉select( V +移动)中添加数字,并且您希望编号从42开始。 
 :'<,'>s/^/\=(line('.')-line("'<")+42)/ 
如果你想添加一个string之间的数字和旧的文本,只是连接(与。in VimL)它的数字expression式:
 :'<,'>s/^/\=(line('.')-line("'<")+42).' --> '/ 
 如果你需要这样的文本sorting,你可能需要零填充的结果,这可以使用printf for 0001, 0002 …而不是1, 2 …例如: 
 :%s/^/\=printf('%04d', line('.'))/ 
 无论如何,如果你想了解更多的信息,只需打开vim help:: :h :s并按照链接( |subreplace-special| ,…, |submatch()| ) 
  cat -n将行号添加到其input。 您可以将当前文件传输到cat -n然后用打印到stdout的内容replace当前的缓冲区。 幸运的是,这个复杂的解决scheme在vim中less于10个字符: 
  :%!cat -n 
或者,如果您只需要一个子select,则直观地select该区域,然后键入以下内容:
  :!cat -n 
这会自动将视觉select标记放入,并且在键入后会看起来像这样:
  :'<,'>!cat -n 
 为了擦除行号,我推荐使用control-v ,它可以让你在视觉上select一个矩形,然后用x删除那个矩形。 
 在GNU系统上:使用外部nl二进制: 
 :%!nl 
 在类Unix环境下,可以使用cat或awk轻松生成一个行号,因为vim与shell有一个友好的界面,所以一切工作在vim以及shell中。 
 从Vim Tip28 : 
 :%!cat -n 
要么
 :%!awk '{print NR,$0}' 
但是,如果你在win98x,win2000的MS-DOS中使用vim,那么你会丢失这些工具包。 这里是一个非常简单的方法来存档这个唯一的vim:
 fu! LineIt() exe ":s/^/".line(".")."/" endf 
或者,用字母组成的序列和上面一样简单:
 exe "s/^/".nr2char(line("."))."/" 
你也可以使用subst:
 :g/^/exe ":s/^/".line(".")."^I/" 
您也可以只打印行而不将它们添加到文件中:
“有时候可能是有用的,特别是编辑大的源文件来在纸上打印行号。
要做到这一点,你可以使用下面的选项:set printoptions=number:y来激活和:set printoptions=number:n来取消这个function。
如果要始终打印行号,请将行set printoptions=number:y放入vimrc。
首先,您可以删除现有的行号码,如果您需要:
 :%s/^[0-9]*// 
 然后,你可以添加行号。  NR是指从当前行号开始,所以你可以做一些math来获得你想要的编号。 以下命令给你四位数的行号: 
 :%!awk '{print 1000+NR*10,$0}' 
  “VisIncr”插件适用于一般插入增量数字的列(或字母,date,罗马数字等)。 您可以控制数字格式,填充等等。 因此,在每行前面插入“1”(通过:s或:g或可视块插入),以可视块模式突出显示该列,然后运行插件中的其中一个命令。