ボクは、viコマンドから数えると15年以上使っているのに、なぜかカーソル移動操作のショートカットキーを忘れてしまいます。
ということで、vimエディターのコマンドモードのいろいろなカーソル移動をまとめました。
これだけ使えれば、はたから見るとVimを使いこなしているように見えます。(そんなことないけど)
細かい移動
キー | 移動先 |
---|---|
h | 左 1文字前 |
l | 右 1文字後 |
j | 下 次の行 |
k | 上 前の行 |
おそらく一番使うショートカットです。これだけですべてのカーソル移動ができますが、効率的かといえば疑問です。
これは、キーボードの基本操作の右手のホームポジションが関係しています。右手のホームポジションは、人差し指が『j』キーですよね?
右手がホームポジションにある状態で、人差し指・人差し指・中指・薬指でそれぞれ左(h)・下(j)・上(k)・右(l)へ移動させます。
『カーソルキーまで右手を手首ごと移動させなくてもいいでしょ?』ということらしいです。
行の移動
キー | 移動先 |
---|---|
gg | 先頭行 |
G | 最終行 |
:0(ゼロ) | 先頭行 |
:$ | 最終行 |
コマンドモードを使った指定行のジャンプ
Escキーを押して使うコマンドモードでも行ジャンプできます。
指定行へジャンプ
:(数字)
最終行へジャンプ
:$
gg, Gじゃなくても同じことができます。
最大効率を求めるならgg, Gを覚えたほうがよいですが、最小限の知識で操作したい場合は、:1, :$ を使ってもよいでしょう。
僕はコマンドモードを使うことが多いです。
単語単位の移動
キー | 移動先 |
---|---|
w | 次の単語 |
b | 前の単語 |
^ | 行の先頭テキスト |
英文のときはシンプルです。単語ごとに半角スペースが入るので、その半角スペースの次の文字へジャンプします。
記号は半角スペースで区切られていなくても1単語です。
日本語のときはちょっと違って、単語ごとにスペースで区切ることはありません。漢字、ひらがな、カタカナの種類ごとに単語として認識します。
ですので、日本語でこのショートカットを使うと、助詞(て・に・は・を・や)も一単語になるので、ちょっとイラっとします。
『^』は、ソースコードなどインデントがあるテキストで、インデントを除いた先頭に移動します。