← Vim道場

数値を増やす・減らす

設定値を1つ増やしたいだけなのに、カーソルを合わせて消して打ち直す。この手間を1打鍵にするのが Ctrl-a です。数値の上にいなくても、その行の右側にある数値を拾ってくれます。

第3章 手数を減らすレッスン 17 / 36

どの数値が対象になるか

カーソルが数値の上にあればその数値、無ければその行でカーソルより右にある最初の数値が対象です。行の左端にいても、行のどこかに数値が1つだけなら狙いは外れません。数値が無い行では何も起きません。

数値の直前に - があれば負の数として扱われるので、-1Ctrl-a0 になります。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減らす

関連記事

レッスン一覧へ戻るキーの逆引き一覧検定を受ける