「vi」は、ターミナルで使用する「テキストエディタ」です。ほとんどのLinux環境に備わっており、設定ファイルの編集にviを使うように設定されているコマンドもあるため、最低限の操作は知っておく必要があります。
「vi」は、端末で動作するテキストエディタです。マウスはもちろん、矢印キーやファンクションキーのような特殊キーを使用せずに操作できるので、全ての操作をあらかじめスクリプトとして記述しておき、一気に編集するような操作も可能です。また、「遠隔地にあるサーバにsshでログインして設定ファイルを修正する」場合にも使用できます。
現在広く利用されているのは「vim(Vi IMproved)」コマンドで、多くの場合「vi」でvimが起動するようになっています。vimでは矢印キーが使用できる他、多段アンドゥ(Undo)や構文強調表示にも対応しています。
「vi ファイル名」で、viが起動します。100行目にカーソルを移動して起動したい場合は、「vi +100 ファイル名」、abcと記述されている行に移動しておきたい場合は「vi +/abc」のように、「+行番号」や「+/検索文字列」を指定します。
vi ファイル名
(指定したファイルを開いて起動する)
vi +100 ファイル名
(指定したファイルの100行目にカーソルを移動して起動する)
vi +/abc
(abcと記述されている行にカーソルを移動して起動する)
viには、文字で操作する「ノーマルモード(コマンドモード)」と、文字を入力する「編集モード」の2つのモードがあります。例えば、ノーマルモードでの[h]キーは「1つ左へ移動する」、編集モードの[h]キーは「hという文字を入力する」という意味になります。
[Esc]キーで常にノーマルモードになります。「ファイルを保存したい」「viを終了したい」といった操作を行いたい場合には、まずは[Esc]キーを押すとよいでしょう。
ファイルを上書き保存して終了するには、「ZZ」(大文字の「Z」を2回)を入力します。保存と終了を分けて操作したい場合、[:]キーに続けて「w」で保存(write)、「q」(quit)で終了します。“強制的に”であれば「!」を付けます。
「:」から始まるコマンドの場合は、自分が入力した内容を確認したり、修正したりした上でコマンドを実行できます。
ノーマルモードで[:]キーを押すと画面最下行にコロン(:)が表示されるので、「q!」のようにコマンドを入力し、[Enter]キーを押すことでコマンドが実行されます。
:w | 保存する(編集は続行する) |
---|---|
:wqまたは「ZZ」 | 保存して終了する |
:q! | 変更を破棄して終了する |
なお、上記のコマンドは[Esc]キーでノーマルモードにしてから実行し、最後に「Enter」キーを入力する必要があります。
「-y」オプションを付けてviを起動した場合は、動作が異なります。「-y」オプションは、マウスでクリックしてカーソルを移動して入力できる「easy mode」で起動するオプションで(evimコマンド相当)、基本的にずっと「挿入モード」です。
[Ctrl]+[L]キーで通常の操作に戻り、「ZZ」コマンドで保存終了するか、[Ctrl]+[O]キー(挿入モード時は「1回コマンドを実行して、挿入モードに戻る」という操作になる)に続けて「:q!」を入力して、変更を破棄して終了してください。
以下の画面1の実行例では、「vi /etc/bashrc」で/etc/bashrcファイルを参照しています(Ubuntu環境の/etc/bash.bashrc相当)。
vi /etc/bashrc
(/etc/bashrcを開く(rootユーザーの場合は編集可能))
vi +R /etc/bashrc
(/etc/bashrcを読み込み専用で開く)
/etc/bashrcは一般ユーザーでは変更できないファイルなので、最下行に「[読み込み専用]」と表示されています。なお、通常のファイルを読み込み専用で表示したい場合は、「+R」オプションを使用します。
以下の画面2は、viで[Esc]キーに続いて「:q!」と入力した状態です。この後に[Enter]キーを押すと、ファイルを保存せずに終了します。最低限このキー操作を覚えておけば、いつでも変更を破棄して終了することができます。
viに不慣れなころ、よくやりがちな操作に[Ctrl]+[Z]があります。ファイルを保存して終了するコマンドは「ZZ」([Shift]キーを押しながら[Z]キーを2回)なのですが、キー操作ということで、つい[Ctrl]キーに指が伸びてしまうのかもしれません(画面3)。
しかし、[Ctrl]+[Z]は、シェルの「停止」のキー操作です。viはファイルを開いて表示あるいは編集状態のまま停止してしまうので、「fg」コマンドでフォアグラウンドに戻し、終了操作を行ってください。
Copyright © ITmedia, Inc. All Rights Reserved.