假设我有一个包含一些字符串的文本文件:
string_g
string_r
string_qqwer
string_p
string_f
string_3qw
string_e
string_qw
我需要在字符串之前插入递增或递减的数字:
001 string_g
002 string_r
003 string_qqwer
004 string_p
005 string_f
006 string_3qw
007 string_e
008 string_qw
只是为了避免混淆:
我不想显示行号。我知道那是如何运作的。我想要的是文本中每个字符串开头的实际数字。
有没有办法自动执行此操作vim
?
CTRL我可以用-标记每个字符串的开头,V然后键入:进入执行模式,这将允许我通过选择执行命令,:'<,'>
但我被困在那里。
答案1
使用外部unix命令nl
。
:'<,'>!nl -w 3 -n rz -s' '
答案2
仅使用vim
(不使用外部命令):
let i=1 | '<,'>g/^/ s//\=printf("%03d ",i) / | let i+=1
更改let i=1
为您要开始的号码。