0-2-2-3:viの操作(3)


・ viには文書内の特定の単語(その1部)を検索する機能があります。 "/" および "?" です。
コマンドモードで、"/" または "?" を入力すると、カーソルが最終行に移動します。 その後につづけて検索したい文字列を入力し、Enterキーを押すと、 カーソルは検索された(最初の)文字列の位置にジャンプします。
"/"の場合は文書の下向きに検索、"?"の場合は文書の上向きに検索されます。
文書の中には検索したい単語が複数箇所に存在することが普通です。 同じ文字列を繰り返して検索することも可能です。その命令は "n" および "N" です。 (n は next の nと覚えてください。) 検索を行った後で "n" のキーを押すと、前と同じ文字列を検索し、 その場所までにジャンプします。 上向きか下向きかは、その前の検索の方向に従います。
"N"は前の検索とは逆方向に戻ってジャンプする時に用います。

キーワードの検索に関連するコマンド
キー意味
/ 文字列探したい文字列を下向きに検索
? 文字列探したい文字列を上向きに検索
n直前の検索を繰り返して移動
N直前の検索を反対方向に戻って移動

・ viはテキストの編集を行うソフトウェアですから、 ファイルへの保存や、前に作成したファイルの読み込みなどの処理が重要です。 こうしたファイル操作は、":"で始まる最下行での命令入力で行えます。 (この命令の入力方法を「exモード」とも呼びます。exは vi以前に1行単位で ファイルの処理を行っていたエディタの名前です。)
基本は ":r" が読み込み(read)、":w" が書き込み(write)、":q"は終了(quit)を 意味します。また、"!"は強制的に処理を行う意味で用いられます。 ":w!"のようにすると「強制的に上書き保存」、 ":q!"とすると「内容を保存しないで強制的に終了」という意味になります。 ただし、"r!" は「UNIXのコマンドを呼び出して、その内容を読み込む」という 特別な働きになります。
":w"としてファイル名を省略した場合は、起動時に引数として指定したファイル名 に書き出されます。 また、この命令は exモードに入らず ZZ(シフトキーを押しながらzを2回) 打っても同じ意味になります。

ファイル入出力関連のコマンド
キー意味
:r ファイル名ファイルの内容を読み込む
:r! UNIXコマンドUNIXのコマンドの出力を読み込む
:w ファイル名内容をファイルに書き出す
:w! ファイル名内容をファイルに上書きする
ZZ内容を起動時に指定したファイルに書き出す
:qviを終了する
:wqファイルに書き出して、viを終了する
:q!ファイルに書き出さずに、viを強制終了する