このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Linuxコマンドの基本:vi エディタの操作:便利なカーソル移動

vi エディタの操作:便利なカーソル移動
vi エディタでは、効率的なテキスト編集を行うために、カーソルの移動コマンドを使いこなすことが重要です。ここでは、基本的なカーソル移動に加えて、より便利な移動方法を学びます。

練習用ファイルの準備
まず、練習用にシステムの/etc/crontab
ファイルをカレントディレクトリにコピーし、vi で開きます。
user01@ubuntu:~$ cp /etc/crontab .
user01@ubuntu:~$ ls
crontab work テンプレート ドキュメント ピクチャ 公開
snap ダウンロード デスクトップ ビデオ ミュージック
user01@ubuntu:~$ vi crontab
単語単位でのカーソル移動
w
と b
コマンド
w
:次の単語の先頭に移動します。b
:前の単語の先頭に移動します。
例:
テキスト行が以下の行に移動して、カーソルを行頭の「#」に置きます。
# that none of the other crontabs do.
w
を押すと、「that」の「t」に移動します。- さらに
w
を押すと、「none」の「n」に移動します。

スペース以外も区切りとして認識
vi では、スペースだけでなく句読点や特殊文字も単語の区切りとして扱われます。例えば、「can't」は「can」「'」「t」の3つの単語として認識されます。
例:
テキスト行が「# that none of the other crontabs do.」の下の行に移動して、i
キーを押して挿入モードにして、次の文字を入力します。
Esc
キーを押してコマンドモードにし、カーソルを行頭の「Y」に置きます。
You can't do it
- 行頭にカーソルを置いて
w
を押すと、「You」の「Y」から「can't」の「c」に移動します。 - さらに
w
を押すと、「'」や「t」に順次移動します。

W
と B
コマンド
細かい移動が煩わしい場合、スペースのみを単語の区切りとする W
と B
コマンドが便利です。
W
:次の単語の先頭に移動(スペース区切り)B
:前の単語の先頭に移動(スペース区切り)
注意:W
とB
は大文字で、Shift + g
とShift + B
です。
例:
カーソルを行頭の「Y」に移動します。
You can't do it
- 行頭にカーソルを置いて
W
を押すと、「You」の「Y」から「can't」の「c」に移動します。 - さらに
W
を押すと、「'」や「t」には移動せず、「d」に移動します。

単語単位のカーソル移動コマンド一覧
コマンド | 内容 |
---|---|
w | 前方に単語1つ分移動(特殊文字も区切りとする) |
b | 後方に単語1つ分移動(特殊文字も区切りとする) |
W | 前方に単語1つ分移動(スペースのみを区切りとする) |
B | 後方に単語1つ分移動(スペースのみを区切りとする) |
行頭・行末への移動
0
(数字のゼロ):行頭に移動します。$
:行末に移動します。
ポイント
- 長い行で画面上で折り返されていても、
$
を押せば物理的な行末まで移動します。
例:
テキスト行が以下の行に移動して、カーソルを「the」の「e」に置きます。
# that none of the other crontabs do.
- カーソルを「the」の「e」に置いて
0
を押すと、行頭に移動します。 - カーソルを再び「the」の「e」に置いて
$
を押すと、行末に移動します。

行頭・行末移動コマンド
コマンド | 内容 |
---|---|
0 | 行頭に移動する |
$ | 行末に移動する |
行番号を指定して移動
大きなファイルを編集する際、特定の行番号に直接移動すると効率的です。
gg
:ファイルの先頭行(1行目)に移動します。G
:ファイルの最終行に移動します。<行番号>G
:指定した行番号に移動します。
例:
3G
と入力すると、3行目に移動します。G
と入力すると、最終行に移動します。gg
と入力すると先頭行(1行目)に移動します。
注意:G
は大文字で、Shift + g
です。

行番号指定のカーソル移動コマンド
コマンド | 内容 |
---|---|
gg | ファイルの先頭行に移動する |
G | ファイルの最終行に移動する |
<数字>G | 指定した行番号に移動する |
ファイルの保存とviの終了、練習ファイルの削除
これまでの練習で、crontab
ファイルを編集しました。ここでは、そのファイルを保存してvi を終了し、練習用に作成したファイルを削除する手順を解説します。
viでファイルを保存して終了する
1.コマンドモードに移行する
まず、Esc
キーを押してコマンドモードに戻ります。挿入モードでテキストを編集していた場合、Esc
キーを押すことでコマンドを入力できる状態になります。
2.ファイルを保存してviを終了する
コマンドモードで以下のコマンドを入力し、Enterキーを押します。
:wq!
:
:コマンドラインモードに入るw
:ファイルを保存する(write)q
:viを終了する(quit)!
:強制的に実行する(上書き保存などの確認を無視)
練習で作成したファイルを削除する
vi を終了してターミナルに戻ったら、練習用にコピーしたcrontab
ファイルを削除します。
user01@ubuntu:~$ rm crontab
削除の確認
ls
コマンドでファイルが削除されたことを確認します。
user01@ubuntu:~$ ls
snap ダウンロード デスクトップ ビデオ ミュージック
work テンプレート ドキュメント ピクチャ 公開
まとめ
- 単語単位での移動
・w
、b
:単語の先頭に前後移動(特殊文字も区切り)
・W
、B
:スペース区切りで単語単位に前後移動 - 行頭・行末への移動
・0
:行頭に移動
・$
:行末に移動 - 行番号を指定して移動
・gg
:ファイルの先頭へ移動
・G
:ファイルの末尾へ移動
・<行番号>G
:指定行へ移動
これらのカーソル移動コマンドを活用することで、vi エディタでのテキスト編集がさらに効率的になります。ぜひ実際の編集作業で試してみてください。