関数find-file-noselect
は、ユーザーのLispコードでも有用な
2つの重要なサブルーティン、create-file-buffer
と
after-find-file
を使います。
本節ではそれらの使い方を説明します。
この関数は、filenameを訪問するのに適するように命名した バッファを作成しそれを返す。 (ディレクトリを除外した)filenameが使用中の名前でなければ、 それを名前とする。 さもなければ、未使用の名前を得るために‘<2>’などの文字列を付加する。 Creating Buffersも参照。
注意:
create-file-buffer
は、 新たなバッファをファイルに対応付けないし、 当該バッファを選択しない。 デフォルトのメジャーモードも使わない。(create-file-buffer "foo") ⇒ #<buffer foo> (create-file-buffer "foo") ⇒ #<buffer foo<2>> (create-file-buffer "foo") ⇒ #<buffer foo<3>>この関数は
find-file-noselect
で使われる。 この関数はgenerate-new-buffer
(see Creating Buffers)を使う。
この関数は、バッファのメジャーモードを設定し、 ローカル変数を解析する(see Auto Major Mode)。
find-file-noselect
や デフォルトの復元処理関数(see Reverting)から呼ばれる。ディレクトリはあるのにファイルが存在しないために ファイルの読み込みがエラーになった場合には、 呼び出し側はerrorの値として
nil
以外を渡すこと。 その場合、after-find-file
は警告‘(New File)’を表示する。 より重大なエラーの場合には、after-find-file
を呼び出すべきでない。warnが
nil
以外であると、 自動保存ファイルが存在しそれが訪問したファイルより新しい場合には、 この関数は警告を発する。
after-find-file
が最後に行うことは、 リストfind-file-hooks
内のすべての関数を呼び出すことである。