数値を増やす・減らす
設定値を1つ増やしたいだけなのに、カーソルを合わせて消して打ち直す。この手間を1打鍵にするのが Ctrl-a です。数値の上にいなくても、その行の右側にある数値を拾ってくれます。
どの数値が対象になるか
カーソルが数値の上にあればその数値、無ければその行でカーソルより右にある最初の数値が対象です。行の左端にいても、行のどこかに数値が1つだけなら狙いは外れません。数値が無い行では何も起きません。
数値の直前に - があれば負の数として扱われるので、-1 に Ctrl-a で 0 になります。007 のように0で桁を揃えた数値は、桁数を保ったまま 008 になります。
本物のVimでできること
本物のVimでは nrformats の設定によって16進数(0x1f)や2進数も増減できます。また、ビジュアルモードで複数行を選んでから g Ctrl-a を押すと、選んだ行の数値が1, 2, 3 と連番になります。番号付きリストを作り直すときに便利です。
日付やバージョン番号にも効く
2026-08-18 のような日付でも、カーソルの右にある最初の数値が対象になります。日の部分にカーソルを置いて Ctrl-a を押せば 2026-08-19 になります。v1.2.3 のようなバージョン番号も同じで、上げたい桁の上で押します。
ただし - は負号として解釈されるので、2026-08-18 の月の部分にカーソルがある状態では -08 がマイナス8として扱われます。日付を扱うときは狙った桁の上にカーソルを置いてから押すのが確実です。
アルファベットも増やせる
set nrformats+=alpha を書くと、a の上で Ctrl-a を押して b にできるようになります。テスト用の変数名を連番で作るときなどに使えますが、意図せず英字が変わって驚くことがあるので、既定では無効になっています。
逆に、007 のような0で始まる数値を8進数として解釈されたくない場合は set nrformats-=octal を書きます。8進数の解釈は既定では無効なので、ほとんどの環境ではそのままで構いません。
連番を作る
同じ行を並べてから通し番号を振りたいときは、ビジュアルモードで範囲を選んで g Ctrl-a を押します。選んだ行の数値が上から順に1ずつ増えていくので、0 を並べた状態から 1 2 3 という連番が一度に作れます。
この機能はVimとNeovimの両方にあり、番号付きリストの振り直しやテストデータの用意でよく使われます。この練習ページのエディタでは扱っていないので、実機で試してみてください。
このレッスンで扱うキー
| キー | 動き |
|---|---|
| Ctrl-a | 数値を1増やす |
| Ctrl-x | 数値を1減らす |