vimオプション
vimを使っていて行番号関係の便利だなと思ったオプション紹介です。
relativenumber
relativenumber
このオプションを有効にすると、現在のカーソル位置からの相対位置が表示されるようになります。
行番号と排他的なようなので、場合によっては使いにくいと感じる人もいるかもしれないですが、縦方向の移動に関して、行を数えなくて済みます。
jkでの移動とかddやyyなど範囲を早くしやすくなります。
こんな感じになります。
カレント行は0が、そしてカレント行からの相対番号が上下に続いていきます。
そのため例えば相対表示で9となっている行は10行目ということですので、ddやyyをする時は10を指定してあげる必要があります。
相対番号+1が到達番号になるということですね。
numberとの併用
vimにはnumber
というオプションがあります。行番号を表示させるオプションです。relativenumber
とnumber
を併用することもできます。
この時はカレント行が絶対行番号になり、その他の行が相対行番号になります。これなら行番号もわかるし、行の距離もわかるので便利っぽい気がします。
補足・ハマりポイント
relativenumber
の挙動はvimバージョンなどによって少し異なるようです。@MINOはこの記事を書いている時点では7.4.567を使っています。
relativenumber
の実装はVim7.3だそうで、7.3未満のバージョンだと効かないとのこと。
またnumber
との併用でカレント行が絶対表示なるのはvim7.4以降のようです。
おまけ
相対表示・絶対表示を切り替える
set number
とset relativenumber
を併用して設定している場合にコマンドモードから
:set relativenumber!
とすることで、絶対表示と相対表示を切り替えることができます。
relativenumber
の後ろのびっくらマークはオンオフ切り替えオプションです。inv
をつかっても同じことができますです。
:set invrelativenumber
インバース!!
相対表示・絶対表示をキーバインド
上記の仕組みをキーバインドしてみました。
vimrcにて
map <F12> :set relativenumber!<CR>
を追加。
書式 | 意味 |
---|---|
map |
ノーマルモード、ビジュアルモード、オペレータ待機モードで有効なマッピングにする |
<F12> |
ファンクションキーの12です。これは任意のキーでOKデス。 |
:set relativenumber! |
トグルさせるコマンド |
<CR> |
キャリッジリターン、いわゆるリターンキーを押したのと同じことです。つまりコマンドを決定したということになります。 |
これでF12を押すごとに行番号が絶対・相対に切り替わります。
後記
行計算すぐにできる人はいいなぁぁぁ。