このページで解説している内容は、以下の 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エディタでの編集作業がより効率的かつ柔軟になります。実際に練習用のテキストファイルを開いて、これらのコマンドを試してみてください。