Vimを使用してテキストファイルの各行の先頭に単一の連続した数値を挿入する

Vimを使用してテキストファイルの各行の先頭に単一の連続した数値を挿入する

いくつかの文字列を含むテキストファイルがあるとします。

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開始したい番号に変更してください。

関連情報