sequential number maker

vim help を読んでて感動したことがあったので書く。具体的には :h CTRL-A もしくは :h CTRL-X の一番下、連番を作る方法が書いてある。

  1. 何か番号を書く
  2. qa
  3. Y
  4. p
  5. <C-a>
  6. q
  7. <count>@a

で、ここらへんもうちょっと調べてみると単純な数値 ( 10 進数 ) 以外にも 8 進数と 16 進数、 alphabet に対して適用できるらしい ( :help 'nrformats' ) 。 alphabet は a, b, c, ..., z みたいな感じで 1 文字限定かつ大文字小文字は区別されるみたい。 z のつぎが aa になったりとかはしない。

でまぁ 8 進数なんか使わないので :set nrformats=hex,alpha して register "s あたりに Yp<C-a> を仕込んでおいてから "a." と書いた行の上で 10@s とかすると "k." までだだっと作ってくれる。他の応用例としては <C-a> の回数を増やして 1 つ飛びの番号を作るとかできるね。

ってもまぁ連番作る機会はそれほどないんだけども。