このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Linuxコマンドの基本:vi エディタの操作:カーソルの移動と文字の入力と削除

vi エディタの操作:カーソルの移動と文字の入力と削除

 vi エディタを効果的に使用するためには、まず基本的なカーソル移動の操作を習得することが重要です。カーソルの移動はテキスト編集の基礎であり、迅速な操作が求められる場面で大いに役立ちます。ここでは、練習用にシステムの/etc/crontabファイルをコピーして、vi エディタでカーソル移動の練習を行います。

練習用ファイルの準備

まず、カレントディレクトリに/etc/crontabファイルをコピーし、vi で開きます。

user01@ubuntu:~$ cp /etc/crontab  .
user01@ubuntu:~$ ls
crontab  work          テンプレート  ドキュメント  ピクチャ      公開
snap     ダウンロード  デスクトップ  ビデオ        ミュージック
user01@ubuntu:~$ vi crontab

vi でファイルを開くと、初期状態ではファイルの先頭にカーソルが位置しています。

カーソルの基本移動

 vi では、カーソルキー(矢印キー)を使用せずに、hjklキーでカーソルを移動します。これらのキーはホームポジションに近く、手を動かさずに操作できるため、慣れると高速な編集が可能になります。

カーソル移動コマンド一覧

コマンド移動方向
h, ←左へ移動
j, ↓下へ移動
k, ↑上へ移動
l, →右へ移動
カーソル移動コマンド一覧

キー配置のイメージ図

ポイント

 これら4つのキーは、ホームポジションから手を動かさずに押せる位置にあります。そのため、慣れが必要となりますが、慣れると、高速にカーソル移動ができるようになります。

  • ホームポジションから手を離さずに操作可能
  • カーソルキーを使わないことで編集効率が向上

モード切り替えの図解

 以下の図は、モード切り替えの流れを示しています。vi では文字の入力方法が他のエディタと大きく異なっています。テキスト入力ができる状態のことを挿入モードと呼びます。一方、Escキーを押すと、コマンド入力ができる状態に戻ります。この状態のことをコマンドモードと呼びます。

  • コマンドモードから挿入モードへiaoキーを押す
  • 挿入モードからコマンドモードへEscキーを押す

文字の削除

 次に、文字を削除する方法を学びます。vi で文字を削除するには、xキーを使用します。これはカーソル位置の文字を一文字削除するコマンドです。

練習例

crontabファイル内の以下の行を使用します。

# that none of the other crontabs do.
  1. カーソルを削除したい文字(例えば、t)の位置に移動します。
  2. xキーを押します。
  3. カーソル位置の文字が削除されます。
# that none of the other crontabs do.
  ↓
  x を押して文字を削除
  ↓
# hat none of the other crontabs do.

 xを1回押すたびに、1文字ずつ削除することができます。下のように、xを3回押して3文字削除します。

# none of the other crontabs do.

文字の挿入

 vi では文字キーを押してもコマンドと解釈されるため、そのままでは文字を入力することができません。文字を挿入するには、挿入モードに切り替える必要があります。挿入モードに入るには、以下のコマンドを使用します。

  • i:カーソル位置の左側に文字を挿入
  • a:カーソル位置の右側に文字を挿入

練習例

先ほど削除した「that」を再度入力してみましょう。

# none of the other crontabs do.
  1. カーソルを「none」の左側のスペースに移動します。
  2. iキーを押して挿入モードに入ります。
  3. that と入力します。
  4. Escキーを押してコマンドモードに戻ります。
#  none of the other crontabs do.
  ↓
  i を押してから「that」を入力
      ↓
# that none of the other crontabs do.

aコマンドの使用例

 iコマンドの後に入力した文字は、元のカーソル位置の左側に追加されます。これとは逆に、カーソルの右側に文字を入力したい場合は、iの代わりにaを使用します。

iでは行の末尾に文字を入力できませんから、その際はaを使う必要があります。

  1. 行末にカーソルを移動します。
  2. aキーを押して挿入モードに入ります。
  3. ! を入力します。
  4. Escキーを押してコマンドモードに戻ります。
# that none of the other crontabs do.
                                    ↓
                                    a を押してから「!」を入力
                                     ↓
# that none of the other crontabs do.!

ファイルの保存と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     テンプレート  ドキュメント  ピクチャ  公開

viの基本コマンド一覧

以下に、今回学んだviの基本的なコマンドをまとめます。

コマンド内容
:qviを終了する。
:wファイルを上書き保存する。
:q!保存せずにviを終了する。
h, ←カーソルを左に移動する。
j, ↓カーソルを下に移動する。
k, ↑カーソルを上に移動する。
l, →カーソルを右に移動する。
xカーソル位置の文字を削除する。
iカーソル位置の左側に文字を挿入(挿入モード)。
aカーソル位置の右側に文字を挿入(挿入モード)。
viの基本コマンド一覧

まとめ

  • カーソル移動hjklキーを使用して、手をホームポジションから動かさずにカーソルを移動できます。
  • 文字の削除xキーでカーソル位置の文字を削除します。
  • 文字の挿入iaキーで挿入モードに入り、テキストを入力します。挿入後はEscキーでコマンドモードに戻ります。
  • 効率的な編集:カーソルキーを使わずに操作することで、編集効率が大幅に向上します。

 これらの基本操作をマスターすることで、vi エディタでのテキスト編集がより快適になります。次のステップでは、便利なカーソル移動について学んでいきます。