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