next up previous contents
Next: A.16 UNIXのコマンドを呼ぶ Up: A. vi 入門 Previous: A.14 正規表現

A.15 ファイル操作

検索・置換と並んで重要なのが、編集中のテキストのファイルへの読み書きです。

 :r ファイル名 …… 指定したファイルをカーソルの下に読み込む。
 :w ファイル名 …… テキストの内容を指定したファイル名で保存。

w についてはもう少し説明が必要です。ファイル名を省略し、 単に :wとすると、ファイル名は現在編集中のファイル名(viを呼び出す時に指定したもの)だと解釈されます。事故で編集中のテキストを失わないよう、時々 :wを実行しましょう。また、wの後に指定したファイルが既に存在している時には、警告が出力され、ファイルの保存は行われません。古いファイルを本当に書き直したいときは、次のようにしてください。これでオーバーライトされます。

 :w! ファイル名

1つのファイルを編集し終わって、別のファイルの編集作業に移りたいとします。もちろん、いったんviを抜け、新たにviを起動すればいいのですが、いちいちviの再起動をしなくてすむ方法もあります。

 :e  新しいファイル名

これだけで、新しいファイルの編集に移れます。viは、:e コマンドによって、あなたが編集許可をもつUNIX上の全てのファイルを、編集対象にしているわけです。(ファイル名はディレクトリ名を含むパス名で指定できます。) 1つ前に編集したファイルは、特別な記号#で呼び出せます。従って、別のファイルを編集した後、再び元のファイルの編集を続けたければ、 :e # と打ち込めばいいわけです。 移動前にテキストを保存しておかないと警告が出ます。強制終了してから移動を行いたい時(たとえば、テキストの名前を間違えてviに入ったような時)には、 :e  の代わりに  :e!  としてください。 w! 、 q! 、 e! に共通するのは、テキストを保存する必要がないケースであることを、viに知らせているということです。:rコマンドでは、その種の配慮は無用です。しかし、viには、 :r! という使い方が存在します。 :r! は、上の3つとは全然別の意味を持っているのです……。



Noriyo Kanayama