Previous: , Up: ファイルのvisit   [Contents][Index]


26.1.2 visitのためのサブルーチン

find-file-noselect関数は、2つの重要なサブルーチンcreate-file-bufferafter-find-fileを使用します。これらはユーザーのLispコードでも役に立つことがあります。このセクションではそれらの使い方について説明します。

Function: create-file-buffer filename

この関数は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を使用する(バッファーの作成を参照)。

Function: after-find-file &optional error warn noauto after-find-file-from-revert-buffer nomodes

この関数はバッファーのメジャーモードをセットして、ローカル変数をパースする(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内のすべての関数を最後に呼び出す。