find-file-noselect 関数は、User Lisp のコードで時折有用な 2
つの重要なサブルーチン、create-file-buffer と after-find-file を使用しています。本節では、これらの使用方法について解説します。
この関数は、filename を参照するための適切な名前のバッファを作成し、それを返します。filename(ディレクトリなし)という名前が未使用であればそれを使用し、そうでない場合は ‘<2>’ のような文字列を付加して、未使用の名前を生成します。バッファの作成も参照してください。なお、uniquify ライブラリがこの関数の結果に影響を与える点に注意してください。The GNU Emacs Manual の Uniquify を参照してください。
Please note: create-file-buffer does not
associate the new buffer with a file and does not select the buffer. It
also does not use the default major mode.
(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
でない場合、この関数は、自動保存ファイルが存在し、かつ閲覧中のファイルよりも新しいときに警告を出力します。
noauto が nil
以外の場合、自動保存モードを有効または無効にしないことを意味します。以前に有効になっていた場合は、そのまま有効な状態が維持されます。
after-find-file-from-revert-buffer が nil でない場合、この呼び出しは revert-buffer
から行われたことになります。これに直接的な影響はありませんが、一部のモード関数やフック関数はこの変数の値を確認します。
nomodes が nil
でない場合、バッファのメジャーモードを変更せず、ファイル内のローカル変数の指定を処理せず、また find-file-hook を実行しないことを意味します。この機能は、場合によっては revert-buffer で利用されます。
after-find-fileが最後に行うのは、リストfind-file-hook内のすべての関数を呼び出すことです。