このページで解説している内容は、以下の 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 crontabvi でファイルを開くと、初期状態ではファイルの先頭にカーソルが位置しています。
カーソルの基本移動
vi では、カーソルキー(矢印キー)を使用せずに、h、j、k、lキーでカーソルを移動します。これらのキーはホームポジションに近く、手を動かさずに操作できるため、慣れると高速な編集が可能になります。
カーソル移動コマンド一覧
| コマンド | 移動方向 |
|---|---|
h, ← | 左へ移動 |
j, ↓ | 下へ移動 |
k, ↑ | 上へ移動 |
l, → | 右へ移動 |
キー配置のイメージ図

ポイント
これら4つのキーは、ホームポジションから手を動かさずに押せる位置にあります。そのため、慣れが必要となりますが、慣れると、高速にカーソル移動ができるようになります。
- ホームポジションから手を離さずに操作可能
- カーソルキーを使わないことで編集効率が向上
モード切り替えの図解
以下の図は、モード切り替えの流れを示しています。vi では文字の入力方法が他のエディタと大きく異なっています。テキスト入力ができる状態のことを挿入モードと呼びます。一方、Escキーを押すと、コマンド入力ができる状態に戻ります。この状態のことをコマンドモードと呼びます。

- コマンドモードから挿入モードへ:
i、a、oキーを押す - 挿入モードからコマンドモードへ:
Escキーを押す
文字の削除
次に、文字を削除する方法を学びます。vi で文字を削除するには、xキーを使用します。これはカーソル位置の文字を一文字削除するコマンドです。
練習例
crontabファイル内の以下の行を使用します。
# that none of the other crontabs do.- カーソルを削除したい文字(例えば、
t)の位置に移動します。 xキーを押します。- カーソル位置の文字が削除されます。
# 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.- カーソルを「none」の左側のスペースに移動します。
iキーを押して挿入モードに入ります。t、h、a、tと入力します。Escキーを押してコマンドモードに戻ります。
# none of the other crontabs do.
↓
i を押してから「that」を入力
↓
# that none of the other crontabs do.aコマンドの使用例
iコマンドの後に入力した文字は、元のカーソル位置の左側に追加されます。これとは逆に、カーソルの右側に文字を入力したい場合は、iの代わりにaを使用します。
iでは行の末尾に文字を入力できませんから、その際はaを使う必要があります。
- 行末にカーソルを移動します。
aキーを押して挿入モードに入ります。!を入力します。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の基本的なコマンドをまとめます。
| コマンド | 内容 |
|---|---|
:q | viを終了する。 |
:w | ファイルを上書き保存する。 |
:q! | 保存せずにviを終了する。 |
h, ← | カーソルを左に移動する。 |
j, ↓ | カーソルを下に移動する。 |
k, ↑ | カーソルを上に移動する。 |
l, → | カーソルを右に移動する。 |
x | カーソル位置の文字を削除する。 |
i | カーソル位置の左側に文字を挿入(挿入モード)。 |
a | カーソル位置の右側に文字を挿入(挿入モード)。 |
まとめ
- カーソル移動:
h、j、k、lキーを使用して、手をホームポジションから動かさずにカーソルを移動できます。 - 文字の削除:
xキーでカーソル位置の文字を削除します。 - 文字の挿入:
iやaキーで挿入モードに入り、テキストを入力します。挿入後はEscキーでコマンドモードに戻ります。 - 効率的な編集:カーソルキーを使わずに操作することで、編集効率が大幅に向上します。
これらの基本操作をマスターすることで、vi エディタでのテキスト編集がより快適になります。次のステップでは、便利なカーソル移動について学んでいきます。
