find-file-noselect
関数は、2つの重要なサブルーチンcreate-file-buffer
とafter-find-file
を使用します。これらはユーザーのLispコードでも役に立つことがあります。このセクションではそれらの使い方について説明します。
この関数はfilenameのvisitにたいして適切な名前のバッファーを作成してそれをリターンする。これはfilename (ディレクトリーを含まず)の名前がフリーならバッファー名にそれを使用し、フリーでなければ未使用の名前を取得するために‘<2>’のような文字列を付加する。バッファーの作成も参照のこと。uniquifyライブラリーはこの関数の結果に影響を与えることに注意。Uniquify in The GNU Emacs Manualを参照のこと。
注意されたい:
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
を使用する(バッファーの作成を参照)。
この関数はバッファーのメジャーモードをセットして、ローカル変数をパースする(Emacsがメジャーモードを選択する方法を参照)。これはfind-file-noselect
、およびデフォルトのリバート関数(リバートを参照)により呼び出される。
ファイルが存在しないという理由によりファイルの読み込みがエラーを受け取るがディレクトリーは存在するなら、呼び出し側はerrorにたいして非nil
値を渡すこと。この場合、after-find-file
は警告‘(New
file)’を発する。より深刻なエラーにたいしては、呼び出し側は通常はafter-find-file
を呼び出さないこと。
warnが非nil
なら、もしauto-saveファイルが存在して、かつそれがvisitされているファイルより新しければ、この関数は警告を発する。
noautoが非nil
なら、それはAuto-Saveモードを有効や無効にしないことを告げる。以前にAuto-Saveモードが有効なら有効のまま留まる。
after-find-file-from-revert-bufferが非nil
なら、それはこの関数がrevert-buffer
から呼び出されたことを意味する。これに直接的な効果はないが、モード関数とフック関数の中には、この変数の値をチェックするものがいくつかある。
nomodesが非nil
なら、それはバッファーのメジャーモードを変更せず、ファイル内のローカル変数指定を処理せず、find-file-hook
を実行しないことを意味する。この機能はあるケースにおいてrevert-buffer
により使用される。
after-find-file
はリストfind-file-hook
内のすべての関数を最後に呼び出す。