With
:%s/^/=line('.')/
EDIT: to sum up the comments.
This command can be tweaked as much as you want.
Let's say you want to add numbers in front of lines from a visual selection (V
+ move), and you want the numbering to start at 42.
:'<,'>s/^/=(line('.')-line("'<")+42)/
If you want to add a string between the number and the old text from the line, just concatenate (with .
in VimL) it to the number-expression:
:'<,'>s/^/=(line('.')-line("'<")+42).' --> '/
If you need this to sort as text, you may want to zero pad the results, which can be done using printf
for 0001, 0002
... instead of 1, 2
... eg:
:%s/^/=printf('%04d', line('.'))/
Anyway, if you want more information, just open vim help: :h :s
and follow the links (|subreplace-special|
, ..., |submatch()|
)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…