Vim の行番号表示機能について説明します。
目次
1. 前提とする環境
- Vim 7.4
2. 行番号表示に関する設定項目
number
(もしくは nu
)
- 毎行の前に行番号を表示します。
- この表示をしないことを明示的に指定する場合は、
nonumber
もしくはnonu
を使います(デフォルトはこちらの設定になります)。 - 参考: ‘number’ options – Vim日本語ドキュメント
relativenumber
(もしくは rnu
)
- カーソル行からの相対的な行番号を表示します。
- この表示をしないことを明示的に指定する場合は、
norelativenumber
もしnornu
を使います(デフォルトはこちらの設定になります)。 - Vimの中で、
:help relativenumber
を実行してヘルプを見てみると以下のように説明されいます。
カーソル行からの相対的な行番号を表示する。相対行番号を見れば縦移動のコ
マンドでカウント指定 (|count|) を使うとき自分で数える必要がないので便
利である。 - 例えば、現在カーソルがある行の少し上の方にカーソルを移動したい場合、相対的な行番号が表示されていれば、目的の行の行番号をさっと見て 10であれば
10 k
と入力すればよいのです。 - 参考: ‘relativenumber’ options – Vim日本語ドキュメント
3. この設定項目を組み合わせて、4種類の表示形式を指定することができる
‘number’ options – Vim日本語ドキュメントに以下の説明があります。
‘relativenumber’ オプションは表示される番号をカーソルからの相対にす
る。’number’ と共にこれら4つの組み合わせがある。 (カーソルは3行目):'nonu' 'nu' 'nonu' 'nu' 'nornu' 'nornu' 'rnu' 'rnu' |apple | 1 apple | 2 apple | 2 apple |pear | 2 pear | 1 pear | 1 pear |nobody | 3 nobody | 0 nobody | 3 nobody |there | 4 there | 1 there | 1 there
つまりこういうことです。
nonu
+ nornu
- 行番号を表示しません。
nu
+ nornu
- 通常の行番号を表示します。
nonu
+ rnu
- 相対的な行番号を表示します。
nu
+ rnu
- 相対的な行番号を表示しますが、カーソルがある行だけは、通常の行番号を表示します。
4. ~/.vimrc
に記述する
4種類の中のどれかを指定するわけですが、何も指定しなければ、頭に no
がついた方の設定が記述された場合と同じ結果になります。(nonu
+ nornu
が記述された場合と同様に、行番号は表示されません)
また、2つの設定項目を記述する場合、1行で書くことも2行で書くこともできます。
1行で書く場合の例
set number relativenumber
2行で書く場合の例
set number
set relativenumber
5. できあがり
「カレント行は通常の行番号、それ以外は相対行番号」の設定を行った場合(nu
+ rnu
)、以下のようになります。(色の設定も行っています)
※ 画像をクリックすれば何度でも再生します。