きっとどこかのブログでも紹介されているだろうけど、忘れがちなのでメモ。
aaaaa
bbbbb
ccccc
ddddd
eeeee
のようなファイルがあった場合に、行番号を振りたい場合などがある。行が多くなると手作業はさすがにつらいので、一気にさっと振りたい。 きっと awk
とかを使いこなせればシュッとできるのだろうけど、awk
は正直使い方わかってない。これだけのためにプログラム書くのも面倒くさい。
そんな時の vim
。
:%s/^/\=line(".")
行番号を振りたいバッファを開いて、コマンドモードから上のコマンドを実行するといける。 %s
だとバッファ全体が対象になる。正規表現で行頭を表す ^
を \=line(".")
で置き換えるという意味になっている。\=line(".")
は実行されると現在のカーソルの行数が返される。
一部などに適応したい場合などは、visualモードで範囲を選択してから :'<,'>s/^/\=line(".")' とかで、選択されてる範囲にのみ連番が入る。
%s/^/\=line(".") . " "
とかで番号の後に空白が入るようになる。
メモメモ