今天弄了一个文件,需要把行号写入到文件的每一个行中,当然,编辑的文件最快捷的就是vim了,在网上搜了一下,找到了如下的函数:
function AddLineNumbers()
:%s/^/ / "每一行的行首添加一个TAB字符
:$ "到文件的末行
:let end=line(".") "函数line的功能是取得指定行的行号,此处参数'.'表示当前行
:1 "到文件的首行
:let num=1 "计数器
:while num<=end
:let line=getline(".") "取当前行的内容
:let line=substitute(line,$,num,"") "在变量 LINE 的前面置入行号
:call setline(".",line) "将变量 LINE 的内容写回当前行
:+ "下移一行
:let num=num+1 "计数器加一
:endwhile
endfunction
将该函数加入到_vimrc文件中,编辑文件时调用:call AddLineNumbers()即可
本来希望将该功能用宏实现的,只是暂时没法弄懂,只好算了,有兴趣时再研究一下
附:常用的一些功能命令
消除空白的行 :%g/^$/d
删除从某一字符开始如M,直到行尾 :%s/M[^$]*//g