Vim のブログ

テキストエディター Vim の魅力、使い方のコツを初心者にも分かりやすく伝えていきたいと思います。

Vim の移動コマンド

Vim のノーマルモードとビジュアルモードで利用できるカーソル移動コマンドをひととおり紹介します。

1文字(1行)単位の移動

Vim ではカーソルキーの代わりに、右手ホームポジションにある hjkl (←↓↑→に対応)の4つのキーを使います。

このキーバインドの起源を遡ると 1977年のADM-3a という CRT ターミナルにたどり着くのだとか…

コマンド方向内容覚え方
h 左に一文字移動 ローマ字で "h" idari
j 下に一行移動 j というアルファベットは「下」に鍵爪のようなものが伸びている
k 上に一行移動 k というアルファベットは「上」に棒が突き出ている。
l 右に一文字移動 l といっても left じゃなくて right

コマンドの前に数字を入力すると、その回数だけ移動を繰り返します。

単語単位の移動

文字単位だけでなく単語単位の移動にもなれるとより速く移動できるようになります。8種類もコマンドがありますが基本的には、 w, b, e の3種類で十分です。
下の通りSHIFTキーを押すと空白区切りの単語移動が出来るようになります。これは、プログラミング言語で、メソッド呼び出しを一気にスキップしたい時に便利です。

コマンド移動先移動方向移動前後の例覚え方
w 次の単語の先頭 This is an apple.
↓ w
This is an apple.
word
e 単語の末尾 This is an apple.
↓ e
This is an apple.
↓ e
This is an apple.
end
b 前の単語の先頭 This is an apple.
↓ b
This is an apple.
back
ge 前の単語の末尾 This is an apple.
↓ ge
This is an apple.
 
W 次の単語(空白区切)の先頭 This is an up-to-date machine.
↓ W
This is an up-to-date machine.
WORD
E 単語(空白区切)の末尾 This is an up-to-date machine.
↓ E
This is an up-to-date machine.
END
B 前の単語(空白区切)の先頭 This is an up-to-date machine.
↓ B
This is an up-to-date machine.
BACK
gE 前の単語(空白区切)の末尾 This is an up-to-date machine.
↓ gE
This is an up-to-date machine.
 

文字検索

f と t を使って、同じ行の指定文字まで移動することも出来ます。詳しくは別のページで紹介しています

行頭、行末への移動

^ と $ は、それぞれ正規表現でも先頭と末尾を示す記号なので、それを覚える手がかりにすると良いと思います。

コマンド移動先    This is a line.
0 カーソル行の先頭     This is a line.
^ カーソル行の先頭の最初の空白ではない文字     This is a line.
$ カーソル行の末尾     This is a line.

行番号を指定して移動

コマンド移動先
{数字}G 数字で指定された番号の行
gg バッファの先頭の行
G バッファの最後の行(の先頭)

段落移動

Vim は文字を含まない行(空行)で区切られた複数の行の塊を「段落(Paragraph)」とみなします。
もし編集中のテキストに、まめに空行が挿入されて段落分けがされている場合は、下の2つのコマンドで段落の間を移動すると便利です。

コマンド移動先
{ カーソル行より上方向にある最初の空行
} カーソル行より下方向にある最初の空行

文字列検索

/ もしくは ? を使って、指定文字まで移動することも出来ます。詳しくは別のページで紹介しています

画面の上端、中央、下端への移動

スクロールを発生させないように、画面位置を固定したまま、カーソルを移動させるコマンドです。あまり使うことはないかもしれません。

コマンド移動先覚え方
H 画面の上端 High
M 画面の中央 Middle
L 画面の下端 Low