それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

vimで連番を作る。

Vimで連番を作りたかった。意外といろいろな方法があるんです。今回はViマクロを使って、Vimによる連番を実現しました。

次のような連番ファイルを作りたかった。

debian0
debian2
debian3
debian4
debian5
debian6
debian7
debian8
debian9

負けパターン:先に10行かく(yy10p)

これを書くと詰みます。連番になりません。

debian0
debian0
debian0
debian0
debian0
debian0
debian0
debian0

ここから先、連番にするのが面倒でした。

勝ちパターン:一行ずつ処理する。

連番なので、一つずつ作るのが勝ちパターン。EmEditor秀丸マクロでも、こちらのアプローチで進めるのが確実です。

行コピーして (yy p)
debian0
debian0
末尾に移動、数字をインクリメント。( $ c-a)
debian0
debian1
コマンドをまとめると?
yy p $ Ctrl+a
debian0
debian1

次番が作れました。これを繰り返すと、連番になりそうです。

ココまでをマクロに記録して実行

qa yy p $ Ctrl+a q
マクロを実行
@a
結果
debian0
debian1
debian2
めんどくさいので10回マクロを実行
10@a
debian1
debian2
debian3
debian4
debian5
debian6
debian7
debian8
debian9
debian10
debian11

答えは色々あるけれど。

たとえば、Rubyを使っちゃうとか。Googleで検索すればいっぱいありました。私は手持ちの知識に「数字インクリメント」の知識を追加して、合わせ技で連番を作りました。

人によってやり方がいっぱいあって、それぞれに良いやり方がある。それがVimの素晴らしさだと思う。