このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Linuxコマンドの基本:vi エディタの操作:その他の操作

vi エディタの操作:その他の操作
vi エディタには、基本的なテキスト編集以外にも、作業効率を高めるさまざまな機能があります。ここでは、その中から特に便利な行の連結とアンドゥ(元に戻す)・リドゥ(やり直し)の操作について解説します。

下の行と連結する
テキスト編集中に、現在の行と次の行を一つにまとめたい場合があります。例えば、段落を整理したり、不要な改行を削除したいときです。しかし、xコマンドでは行末の改行コードを削除できないため、2行を1行にまとめることはできません。
このような場合に使用するのが、Jコマンドです。J(大文字のJ)を押すと、現在の行とその直後の行を連結して、一つの行にまとめます。
注意:j(小文字のj)はカーソルを下に移動するコマンドです。行を連結する際は、必ず大文字のJを使用してください。
練習用ファイルの準備
実際に操作を練習するために、システムの/etc/crontabファイルをカレントディレクトリにコピーし、vi で開きます。
user01@ubuntu:~$ cp /etc/crontab .
user01@ubuntu:~$ ls
crontab work テンプレート ドキュメント ピクチャ 公開
snap ダウンロード デスクトップ ビデオ ミュージック
user01@ubuntu:~$ vi crontab例:行の連結
以下のテキストで、カーソルが「# Example of job definition:」の行にあるとします。
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)この状態でJを押すと、現在の行と次の行が連結され、以下のようになります。
# Example of job definition: # .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)アンドゥ(元に戻す)とリドゥ(やり直し)
編集作業中に、間違ってテキストを削除したり変更した場合、直前の操作を取り消して元の状態に戻すことができます。vi エディタでは、この機能をアンドゥ(undo)と呼び、uキーで実行します。
また、アンドゥを行った後で「やはり元に戻したくない」と思った場合、リドゥ(redo)を使用して、アンドゥを取り消すことができます。viでは、u コマンドをもう一度実行するとアンドゥのアンドゥ(リドゥ)になります。
コマンド一覧
| コマンド | 内容 |
|---|---|
u | アンドゥ(直前の操作を元に戻す) |
u コマンドをもう一度実行する。 | アンドゥのアンドゥ(リドゥ)になる。 |
例:アンドゥとリドゥの操作
1.アンドゥで行の連結を元に戻す
uキーを押すと、直前の行の連結操作が取り消されます。
# Example of job definition: # .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)元のように2行のテキストに復元されます。
# Example of job definition:
# .---------------- minute (0 - 59)2.テキストを削除する
カーソルが以下の行にあるとします。
# Example of job definition:d$と入力して、カーソル位置から行末までを削除します。
3.アンドゥで削除を元に戻す
uキーを押すと、直前の削除操作が取り消され、元のテキストが復元されます。
# Example of job definition:4.リドゥで再度削除する
さらに、uキーを押すと、アンドゥを取り消して、再び削除された状態になります。
ファイルの保存と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 テンプレート ドキュメント ピクチャ 公開まとめ
- 行の連結:
Jコマンドを使用して、現在の行と次の行を連結できます。大文字のJであることに注意してください。 - アンドゥ(元に戻す):
uキーを押すと、直前の編集操作を取り消し、元の状態に戻せます。 - リドゥ(やり直し):
uコマンドをもう一度実行する。アンドゥを取り消して、再度操作を適用できます。
これらの操作を活用することで、viエディタでの編集作業がより効率的かつ柔軟になります。実際に練習用のテキストファイルを開いて、これらのコマンドを試してみてください。
