このページで解説している内容は、以下の 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 では、カーソルキー(矢印キー)を使用せずに、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 エディタでのテキスト編集がより快適になります。次のステップでは、便利なカーソル移動について学んでいきます。