第2回 迷わず目的地へ:vi移動コマンドの基本 (hjkl/wb/0$)|UNIX Cafe

* 当サイトでは、コンテンツの一部に広告を掲載しています。

System Note $ cat /proc/ai-disclosure

本記事の構成および論理分析にはAI(人工知能)を使用しています。情報の正確性は、システム管理者(UNIXユーザー)による手動検証済みです。

迷わず目的地へ:vi移動コマンドの基本 (hjkl/wb/0$)|UNIX Cafe

vi 入門 | 第2回

目次

迷わず目的地へ「vi 移動コマンド」の基本

vi は最初こそ少し独特に見えますが、役割をひとつずつ分けて覚えると、意外なくらい筋道のあるエディタです。

今回のゴールは、移動コマンドで迷わず目的地へたどり着くことです。最初から全部を覚える必要はありません。まずは今日の分だけ見えてくれば十分です。

動画で流れを先に見たい方は、UNIX Cafe の YouTube もあわせてどうぞ。記事と同じく、初心者向けのやさしい流れで vi の操作を確認できます。


📝 この記事で学べること

  • h j k l で上下左右に1文字ずつ移動する方法
  • wb で単語単位にすばやく移動する方法
  • 0$ で行の先頭・末尾に一瞬でジャンプする方法
  • 移動コマンドを実際に試せる練習例

vi の移動はキーボードで行う

vi では、マウスではなくキーボードでカーソルを動かすのが基本です。最初は少し独特に見えますが、慣れてくると手をホームポジションから動かさずに編集を続けられるようになります。

移動ができるようになると、その先の削除・修正・検索もすべてつながってきます。地味に見えますが、移動は vi 編集の土台です。ここをしっかり押さえておくと、後の操作が一気に楽になります。

h j k l で上下左右に動く

コマンドモードで押すだけで、カーソルが1文字ずつ動きます。

h : 左へ1文字
j : 下へ1行
k : 上へ1行
l : 右へ1文字

キーボードの並びを見ると、h が左端、l が右端にあります。そのまま「左右」と覚えられます。jk は上下で少し迷いやすいですが、j の字が下向きに伸びているイメージで覚えると定着しやすくなります。

矢印キーでも動くことはありますが、vi の流儀ではホームポジションから手を離さないこの4キーが基本です。慣れると、矢印キーより速く動けるようになります。


💡 数字を組み合わせると繰り返せます

5j と押すと5行下へ、3l と押すと右へ3文字移動できます。「回数 + 移動キー」の形で使えるので、慣れてきたら試してみましょう。


w と b で単語ごとに動く

1文字ずつの移動では遠い場所に時間がかかります。単語単位で飛びたいときは wb が便利です。

w : 次の単語の先頭へ進む
b : 前の単語の先頭へ戻る

w は「word(単語)」の頭文字です。スペースや記号で区切られた単語をひとつの塊として認識して、その先頭へジャンプします。b は「back(後ろ)」で、ひとつ前の単語の先頭へ戻ります。

たとえば、次のような行でカーソルが「apple」の上にあるとします。

apple orange banana grape

w を1回押すと「orange」の先頭へ、もう1回押すと「banana」の先頭へ移動します。b を押すと「orange」の先頭へ戻ります。h l で1文字ずつ動くより、目的の単語にすばやくたどり着けます。


💡 e で単語の末尾へ移動できます

w が次の単語の先頭なら、e(end)は今いる単語の末尾へ移動します。単語の最後の文字を直したいときに e を使うと、余分な移動が省けます。


0 と $ で行の端へ一瞬でジャンプする

行の先頭や末尾へ移動したいとき、hl を何度も押すのは手間です。そんなときは 0$ を使います。

0 : 行の先頭(1文字目)へ移動
$ : 行の末尾(最後の文字)へ移動

0(ゼロ)は、どこにカーソルがいても行の先頭へ一瞬でジャンプします。$ は行の最後の文字へ移動します。シェルスクリプトや設定ファイルのように、行が長くなりやすいファイルでは特に効果を感じやすくなります。

たとえば、行末に文字を追加したいときは $ で末尾に移動してから a を押すと、少ない手順で追記できます。行の先頭をコメントアウトしたいときは 0 から始めると迷いません。


💡 ^ で最初の空白でない文字へ移動できます

0 は行の絶対的な先頭(1文字目)へ移動しますが、^(ハット)を使うと行頭のインデントを飛ばした最初の文字へ移動できます。インデントのあるコードを編集するときに便利です。


実際に試してみよう

次の1行を vi で開いて、各移動コマンドを順番に試してみましょう。

apple orange banana grape
  1. vi practice.txt でファイルを開き、i で上の1行を入力して Esc を押す
  2. 0 で行の先頭へ移動する
  3. w を押して、単語ごとに右へ進んでみる
  4. b を押して、単語ごとに左へ戻ってみる
  5. $ で行末へジャンプする
  6. h j k l でひとつずつ動いてみる
  7. :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 の全体像」もあわせてどうぞ。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe マスター

Macintosh Color Classicから始まった旅は、長いWindows時代を経て、Windows10のサポート終了をきっかけにUNIXの世界へ戻ってきました。UNIX Cafeでは、UNIX・Linux・そしてMacな世界を、むずかしい言葉を使わず、物語のように書いています。プログラミングは、アイデアをコンピューターに伝えるための言葉です。簡単な単語と文法を覚えれば、誰でもコマンドを使えます。ぜひ一度、やさしいプログラミングの世界をのぞいてみてください。

目次