vi には、「コマンドモード」と「挿入モード」のふたつの モードがあります。Emacsも含め、通常のテキストエディタが、立ち上がるとす ぐに、テキストを入力や変更をできる状態になるのに対し、vi はコマンドモー ドで立ち上がるので、最初のお約束を知らないと、テキストの入力や変更が行な えません。これが、初心者には使いづらいという印象を与えかねないところなの ですが、実は複雑なことは何もなく、ちょっとのお約束さえ覚えてしまえば、と ても使いやすいエディタです。
vi は、コマンドラインで、
% vi filename (例えば、text.txt という名前で立ち上げてみましょう)で起動します94。立ち上がった状態は、「コマンド モード」です。キーを押してもビープ音が鳴ったり、何もおきないかもしれませ ん。編集すべきテキストが何もない状態では、カーソル移動もできないので、 とりあえず、何かを入力しましょう。コマンドモードから、挿入モードに行くに は、i と打ちます。そのあと、何でもいいので適当に入力して、リターンキーを 押し、更に適当に入力して5〜6行のテキストを入力しましょう。入力が終わった ら、ESCキーを押します。ESCキーは、挿入モードからコマンドモードに戻るキー です95。ある程度のテキストができたので、vi の操作 を説明できる状態になりました。コマンドモードで、カーソルの移動は、「hjkl」 の4つのキーを使います96。実際に動かしてみて下さい。それ以上その方向に動かない場 合には、ビープ音が鳴ります。 最初に行なったように、i でカーソルの位置に挿入するモードになります。a だ とカーソルの後ろに挿入するモードになります。挿入モードから抜けるのは、常 に ESC です。コマンドモードで x で、カーソルの位置の文字が削除されます。 編集したファイルを保存するには、コマンドモードで、:w リターンキーです。 保存と同時に vi を終了するには、:wq リターンキーです。変更を保存せず、vi を終 了するには、:q! リターンキーです。 最低限、これだけのお約束を知っていれば、vi で編集ができます。
あとは、次節のキーバインドの表を見ながら、実際に操作を試してみれば良いの ですが、使用頻度の高い操作だけを簡単に紹介します。
文字列の検索は、コマンドモードで、 / のあとに keyword リターンキーです。マッ チした文字列にカーソルが移動します。n で次の文字列、N で前の文字列に移動 します。これらは、less の検索と全く同じです。
行の削除は、dd です。カーソルのある行が削除され、バッファーに保存されま す。そのとき、カーソルは次の行に移動しています。バッファーの内容は、p で カーソル行のあとに、P でカーソル行の前に挿入されます。したがって、行の複 製は ddPP で出来ます。
新しく行を追加する場合は、行末に移動して、aリターンキーでも出来ますが、 カーソルはどこにいても、o で次の行を作り挿入モードになります。