← Vim研究所

Vimのカーソル移動まとめ 単語・行・画面・ファイル単位

2026-08-20 公開 ・ 更新: 2026-08-20

Vimの移動キーは、覚えたそばから「どれを使えばいいのか」が分からなくなります。jを10回押すのと10jGでは、どれも下に行けるのに手数も戻り方も違います。ここでは移動コマンドを距離の単位ごとに並べ直して、どの場面でどれを選ぶかを整理します。

目次(9項目)
動かしたい距離使うキー
1文字h j k l
単語w b e
行の中0 ^ $ f t
画面Ctrl-f Ctrl-b H M L
ファイル全体gg G {数字}G /

1文字ずつ動かす

h   " 左
j   " 下
k   " 上
l   " 右

ホームポジションから手を離さずに済むのが利点です。矢印キーとの使い分けや、矢印キーを封じる設定をすすめない理由はhjklと矢印キー、結局どっちを使うべきかにまとめています。

数字を前に置くと回数になります。10jで10行下です。何行下かを目で数えるのが面倒なら、行番号を表示する設定で相対表示にしておくと、その数字がそのまま画面に出ます。

単語単位で動かす

w   " 次の単語の先頭へ
b   " 前の単語の先頭へ
e   " 単語の末尾へ

大文字のW B Eは空白でしか区切らないので、user.profile.nameのような記号混じりのかたまりを一気に飛び越えます。小文字と大文字で止まる位置がどう変わるかは単語移動8種類の違いで扱っています。

行の中を動かす

0   " 行の先頭(インデントの空白も含む)
^   " 最初の文字(インデントは飛ばす)
$   " 行の末尾

0^はインデントの扱いが違うので、コードを書いているときは^のほうが無駄がありません。詳しくは行頭・行末へ移動するを参照してください。行の中の特定の1文字を狙うならf と t による1文字検索が最短です。

画面単位で動かす

Ctrl-f   " 1画面ぶん進む
Ctrl-b   " 1画面ぶん戻る
H M L    " 画面の最上行 / 中央 / 最下行へ

Ctrl-fHは見た目が似ていますが、前者は画面のほうを動かし、後者はカーソルを画面内で動かします。この違いとzzのような表示位置の調整は画面スクロールとジャンプ操作にまとめてあります。

ファイル全体を動かす

gg    " 先頭行へ
G     " 最終行へ
42G   " 42行目へ

エラーメッセージが行番号を出してきたときは42Gが最短です。行番号ではなく中身で探すなら文字列検索(/ と ?)のほうが早く、戻る場所に印を付けておきたいならマーク機能が使えます。

戻れる移動と、戻れない移動がある

ここが移動コマンドでいちばん見落とされる点です。Vimは大きく飛んだ移動だけをジャンプリストに記録していて、Ctrl-oで戻れるのは記録された移動だけです。距離が長いかどうかではなく、キーの種類で決まります。

Vim 9.1で、6行目にカーソルを置いてから各キーを押し、:jumpsの中身を見て確かめました。

キージャンプとして記録されるか
G { } H L /される(Ctrl-oで戻れる)
j 3j w 3w 0 Ctrl-fされない

つまり3jで3行下がっても、Ctrl-fで1画面ぶんスクロールしても、記録は残りません。一方でG/で飛んだあとはCtrl-oで元の位置に戻れます。「さっきの場所に戻りたい」が効くかどうかは、移動した距離ではなく押したキーで決まります。

要点:戻る前提で遠くへ飛ぶならG/を使います。Ctrl-fの連打で同じ場所まで行っても、Ctrl-oでは戻れません。
使ってみて

長いファイルの末尾を確認してから元の場所に戻ろうとして、Ctrl-oが効かずに困ったことがあります。原因はCtrl-fを連打して降りていたことでした。Gで飛べば一発で戻れると知ってからは、確認だけしたいときは必ずGを使うようになりました。逆に、読みながら少しずつ降りていく場面ではスクロールのほうが自然なので、そこは戻れないものだと割り切っています。

移動キーは削除やコピーの範囲にもなる

ここまでのキーの多くは、そのままdyの後ろに置けます。dwで単語を削除、d$で行末まで削除、y}で段落をコピーです。移動を覚えると編集コマンドの語彙が同時に増えるので、まず移動から手を付けるのが近道になります。組み合わせの考え方はオペレータ+モーションの練習ドリルで扱っています。

ただしCtrl-fのような画面スクロールはモーションではないため、dの後ろには置けません。上の表で「記録されない」に入っているキーのうち、j w 0はモーションですが、Ctrl-fだけは別物です。

まとめ

移動は距離の単位で選ぶと迷いません。1文字ならhjkl、単語ならw、行の中なら^$、遠くへ飛ぶならG/です。そのうえで、戻ってくる予定があるかどうかでGとスクロールを使い分けると、Ctrl-oが思ったとおりに効くようになります。

関連記事

← Vim研究所 トップへ戻る