本記事の構成および論理分析にはAI(人工知能)を使用しています。情報の正確性は、システム管理者(UNIXユーザー)による手動検証済みです。
第2回 迷わず目的地へ:vi移動コマンドの基本 (hjkl/wb/0$)|UNIX Cafe

vi 入門 | 第2回
迷わず目的地へ「vi 移動コマンド」の基本
vi は最初こそ少し独特に見えますが、役割をひとつずつ分けて覚えると、意外なくらい筋道のあるエディタです。
今回のゴールは、移動コマンドで迷わず目的地へたどり着くことです。最初から全部を覚える必要はありません。まずは今日の分だけ見えてくれば十分です。
動画で流れを先に見たい方は、UNIX Cafe の YouTube もあわせてどうぞ。記事と同じく、初心者向けのやさしい流れで vi の操作を確認できます。
📝 この記事で学べること
hjklで上下左右に1文字ずつ移動する方法wとbで単語単位にすばやく移動する方法0と$で行の先頭・末尾に一瞬でジャンプする方法- 移動コマンドを実際に試せる練習例
vi の移動はキーボードで行う
vi では、マウスではなくキーボードでカーソルを動かすのが基本です。最初は少し独特に見えますが、慣れてくると手をホームポジションから動かさずに編集を続けられるようになります。
移動ができるようになると、その先の削除・修正・検索もすべてつながってきます。地味に見えますが、移動は vi 編集の土台です。ここをしっかり押さえておくと、後の操作が一気に楽になります。
h j k l で上下左右に動く
コマンドモードで押すだけで、カーソルが1文字ずつ動きます。
h : 左へ1文字
j : 下へ1行
k : 上へ1行
l : 右へ1文字キーボードの並びを見ると、h が左端、l が右端にあります。そのまま「左右」と覚えられます。j と k は上下で少し迷いやすいですが、j の字が下向きに伸びているイメージで覚えると定着しやすくなります。
矢印キーでも動くことはありますが、vi の流儀ではホームポジションから手を離さないこの4キーが基本です。慣れると、矢印キーより速く動けるようになります。
💡 数字を組み合わせると繰り返せます
5j と押すと5行下へ、3l と押すと右へ3文字移動できます。「回数 + 移動キー」の形で使えるので、慣れてきたら試してみましょう。
w と b で単語ごとに動く
1文字ずつの移動では遠い場所に時間がかかります。単語単位で飛びたいときは w と b が便利です。
w : 次の単語の先頭へ進む
b : 前の単語の先頭へ戻るw は「word(単語)」の頭文字です。スペースや記号で区切られた単語をひとつの塊として認識して、その先頭へジャンプします。b は「back(後ろ)」で、ひとつ前の単語の先頭へ戻ります。
たとえば、次のような行でカーソルが「apple」の上にあるとします。
apple orange banana grapew を1回押すと「orange」の先頭へ、もう1回押すと「banana」の先頭へ移動します。b を押すと「orange」の先頭へ戻ります。h l で1文字ずつ動くより、目的の単語にすばやくたどり着けます。
💡 e で単語の末尾へ移動できます
w が次の単語の先頭なら、e(end)は今いる単語の末尾へ移動します。単語の最後の文字を直したいときに e を使うと、余分な移動が省けます。
0 と $ で行の端へ一瞬でジャンプする
行の先頭や末尾へ移動したいとき、h や l を何度も押すのは手間です。そんなときは 0 と $ を使います。
0 : 行の先頭(1文字目)へ移動
$ : 行の末尾(最後の文字)へ移動0(ゼロ)は、どこにカーソルがいても行の先頭へ一瞬でジャンプします。$ は行の最後の文字へ移動します。シェルスクリプトや設定ファイルのように、行が長くなりやすいファイルでは特に効果を感じやすくなります。
たとえば、行末に文字を追加したいときは $ で末尾に移動してから a を押すと、少ない手順で追記できます。行の先頭をコメントアウトしたいときは 0 から始めると迷いません。
💡 ^ で最初の空白でない文字へ移動できます
0 は行の絶対的な先頭(1文字目)へ移動しますが、^(ハット)を使うと行頭のインデントを飛ばした最初の文字へ移動できます。インデントのあるコードを編集するときに便利です。
実際に試してみよう
次の1行を vi で開いて、各移動コマンドを順番に試してみましょう。
apple orange banana grapevi practice.txtでファイルを開き、iで上の1行を入力してEscを押す0で行の先頭へ移動するwを押して、単語ごとに右へ進んでみるbを押して、単語ごとに左へ戻ってみる$で行末へジャンプするhjklでひとつずつ動いてみる:wqで保存して終了する
この順で触ると、各コマンドの「動き方の違い」が体で感じやすくなります。うまくいかなければ :q! で強制終了できるので、気軽に試してみましょう。
移動コマンドをまとめると
今回紹介した移動コマンドを整理すると、次のようになります。
| キー | 移動先 | よく使う場面 |
|---|---|---|
| h / l | 左 / 右へ1文字 | 細かい位置調整 |
| j / k | 下 / 上へ1行 | 行の移動 |
| w | 次の単語の先頭 | 前方への単語ジャンプ |
| b | 前の単語の先頭 | 後方への単語ジャンプ |
| 0 | 行の先頭 | 行頭への一発移動 |
| $ | 行の末尾 | 行末への一発移動 |
まとめ|移動できると編集が自然につながる
✔ この記事のまとめ
h(左)j(下)k(上)l(右)で1文字・1行ずつ移動できるwで次の単語へ、bで前の単語へすばやく移動できる0で行の先頭、$で行の末尾に一瞬でジャンプできる- 「回数 + キー」(例:
5j)で繰り返し移動できる - 移動の土台ができると、削除・修正・検索の操作が自然につながる
移動コマンドは、それだけで完結する操作ではありません。移動してから削除したり、入力したり、検索したりと、すべての編集操作の起点になります。最初から速く動ける必要はありません。必要な場所へ少しずつ迷わず届けられるようになることが、いちばん大事な一歩です。
次回予告
次は、「vi 挿入モード」の基本を見ていきます。i a o の使い分けが分かると、ここまでの移動操作と組み合わせて、編集の流れが一気につかみやすくなります。
復習してみよう
基本をもう一度確認したい方は、こちらの記事もあわせてご覧ください。
あわせて読みたい
もう少し全体像を見ながら復習したい方は、「黒板で整理する vi の全体像」もあわせてどうぞ。












