次: Subroutines of Visiting, 前: Visiting Files, 上: Visiting Files
本節では、ファイルを訪問するために通常使う関数について述べます。 歴史的な理由で、これらの関数は`visit-'でなく`find-'という 名前で始まります。 バッファで訪問したファイルの名前を参照するための関数や変数、ならびに、 訪問したファイルの名前で既存バッファを探すための関数や変数については、 See Buffer File Name。
Lispプログラムにおいて、ファイルの内容を変更せずにその内容を調べたいときには、
もっとも速い方法は一時的なバッファでinsert-file-contents
を
使うことです。
ファイルを訪問する必要はありませんし、それには余計に時間がかかります。
See Reading from Files。
このコマンドはファイルfilenameを訪問したバッファを選択する。 そのようなバッファが既存ならば当該バッファを使う。 さもなければ、新たなバッファを作成してファイルを読み込む。 当該バッファを返す。
関数
find-file
の本体は非常に簡単で、つぎのとおりである。(switch-to-buffer (find-file-noselect filename))(Displaying Buffersの
switch-to-buffer
を参照。)
find-file
が対話的に呼び出されると、 ミニバッファでfilenameを問い合わせる。
この関数は、ファイルを訪問するすべての関数の基である。 ファイルfilenameを訪問した/するバッファを探し/作成し、 当該バッファを返す。 そのようなバッファが既存ならば当該バッファを使う。 さもなければ、新たなバッファを作成してファイルを読み込む。 必要に応じて、バッファをカレントバッファにしたり ウィンドウに表示できるが、この関数はそこまでは行わない。
find-file-noselect
が既存バッファを使うときには、 ファイルの内容が当該バッファに最後に訪問してから、あるいは、 当該バッファを最後に保存してから変更されたかどうかまず確認する。 ファイルが変更されていれば、この関数は変更されたファイルを 再度読み込むかどうかユーザーに問い合わせる。 ユーザーが`yes'と答えると、バッファ内の変更は破棄される。省略可能な引数nowarnが
nil
であると、 この関数はさまざまな場面で警告/助言メッセージを表示する。 たとえば、バッファを作成する必要があり、かつ、 指定したファイルfilenameがない場合には、 エコー領域にメッセージ`New file'を表示し、バッファは空にしておく。関数
find-file-noselect
は、 ファイルを読み込み終えると通常after-find-file
を呼び出す (see Subroutines of Visiting)。 その関数は、バッファのメジャーモードを設定し、ローカル変数を解析し、 訪問したファイルより新しい自動保存ファイルが存在するとユーザーに警告を発し、find-file-hooks
の関数を実行して処理を終える。省略可能な引数rawfileが
nil
以外であると、after-find-file
を呼び出さず、 失敗してもfind-file-not-found-hooks
を実行しない。 さらに、rawfileの値がnil
以外であると、 コーディングシステムの変換(see Coding Systems)や 書式変換(see Format Conversion)も行わない。関数
find-file-noselect
は、 ファイルfilenameを訪問したバッファを返す。(find-file-noselect "/etc/fstab") => #<buffer fstab>
このコマンドは、選択しているウィンドウ以外のウィンドウにおいて、 ファイルfilenameを訪問したバッファを選択する。 別の既存ウィンドウを使うか、ウィンドウを分割する。 Displaying Buffersを参照。
このコマンドが対話的に呼び出されると、 filenameを問い合わせる。
このコマンドは、
find-file
のようにファイルfilenameを訪問した バッファを選択するが、当該バッファは読み出し専用となる。 See Read Only Buffers。このコマンドが対話的に呼び出されると、 filenameを問い合わせる。
このコマンドは、閲覧(view)モードでfilenameを訪問し、 閲覧(view)モードを抜けるとそれ以前のバッファに戻る。 閲覧(view)モードは、ファイルを素早く眺めるためのコマンドを与えるが テキストの変更は許さないマイナモードである。 閲覧(view)モードに入ると、ノーマルフック
view-mode-hook
を実行する。 see Hooks。
view-file
が対話的に呼び出されると、 filenameを問い合わせる。
この変数の値は、ファイルを訪問後に呼び出される関数のリストである。 ファイルにローカル変数指定(があれば)は、 フックを実行するまえに処理される。 フック関数が実行されときには、 ファイルを訪問したバッファはカレントバッファになっている。
この変数はノーマルフックのように動作するが、 改名すべきではないと考えている。 see Hooks。