バッファーファイル名(buffer file
name)とは、そのバッファーにvisitされているファイルの名前です。バッファーがファイルをvisitしていなければ、バッファーファイル名はnil
です。バッファー名は大抵はバッファーファイル名の非ディレクトリーパートと同じですが、バッファーファイル名とバッファー名は別物であり個別にセットすることができます。ファイルのvisitを参照してください。
この関数はbufferがvisitしているファイルの絶対ファイル名をリターンする。bufferがファイルをvisitしていなければ、buffer-file-name
はnil
をリターンする。bufferが与えられない場合のデフォルトはカレントバッファー。
(buffer-file-name (other-buffer)) ⇒ "/usr/user/lewis/manual/files-ja.texi"
このバッファーローカル変数はカレントバッファーにvisitされているファイルの名前、ファイルをvisitしていなければnil
。これは永続的なローカル変数でありkill-all-local-variables
の影響を受けない。
buffer-file-name ⇒ "/usr/user/lewis/manual/buffers-ja.texi"
他のさまざまな事項を変更せずにこの変数を変更するのは危険である。通常はset-visited-file-name
を使用するほうがよい(以下参照)。バッファー名の変更などのような、そこで行われることのいくつかは絶対必要という訳ではないが、その他の事項はEmacsが混乱するのを防ぐために必要不可欠である。
このバッファーローカル変数はカレントバッファーにvisitされているファイルの省略された形式の実名(truename)、ファイルをvisitしていなければnil
を保持する。これは永続的にローカルでありkill-all-local-variables
の影響を受けない。See 本当の名前とabbreviate-file-nameを参照のこと。
このバッファーローカル変数はカレントバッファーにvisitされているファイルのファイル番号とディレクトリーデバイス番号、ファイルをvisitしていなければnil
を保持する。これは永続的にローカルでありkill-all-local-variables
の影響を受けない。
値は通常は(filenum
devnum)
のような形式のリスト。この数字ペアーはシステム上でアクセス可能なすべてのファイルの中からファイルを一意に識別する。より詳細な情報はファイルの属性のfile-attributes
を参照のこと。
buffer-file-name
がシンボリックリンク名なら、両方の数字がターゲットを再帰的に参照する。
この関数はファイルfilenameをvisitしているバッファーをリターンする。そのようなバッファーが存在しなければnil
をリターンする。引数filenameは文字列でなければならず、展開(ファイル名を展開する関数を参照)された後に、killされていないすべてのバッファーがvisitしているファイル名と比較される。バッファーのbuffer-file-name
はfilenameの展開形と正確にマッチしなければならないことに注意。この関数は同じファイルにたいする他の名前は認識しないだろう。
(get-file-buffer "buffers-ja.texi") ⇒ #<buffer buffers-ja.texi>
特殊な状況下では、複数のバッファーが同じファイル名をvisitすることがあり得る。そのような場合には、この関数はバッファーリスト内の最初に該当するバッファーをリターンする。
これはget-file-buffer
と似ているが、そのファイルを違う名前でvisitしているかもしれないすべてのバッファーをリターンする。つまりバッファーのbuffer-file-name
はfilenameの展開形式と正確にマッチする必要はなく、同じファイルを参照することだけが要求される。predicateが非nil
なら、それはfilenameをvisitしているバッファーを1つの引数とする関数であること。そのバッファーにたいしてpredicateが非nil
をリターンした場合のみ適切なリターン値と判断される。リターンすべき適切なバッファーが見つからなければ、find-buffer-visiting
はnil
をリターンする。
filenameが非空文字列なら、この関数はカレントバッファーにvisitされているファイルの名前をfilenameに変更する(バッファーがファイルをvisitしていなければvisitするファイルとしてfilenameを与える)。そのバッファーにたいする次回の保存では、新たに指定されたファイルに保存されるだろう。
このコマンドは、たとえそのバッファーのコンテンツがその前にvisitされていたファイルとマッチしていても、(Emacsが関知するかぎり) filenameのコンテンツとはマッチしないのでバッファーが変更されている(modified)とマークする。これはその名前がすでに使用されていなければ、新たなファイル名に対応してバッファーをリネームする。
filenameがnil
か空文字列なら、それは“visitされているファイルがない”ことを意味する。この場合にはset-visited-file-name
はバッファーの変更フラグを変更することなく、そのバッファーがファイルをvisitしていないとマークする。
この関数はfilenameをvisitしているバッファーがすでに存在する場合は、通常はユーザーに確認を求める。しかしno-queryが非nil
ならこの質問を行わない。filenameをvisitしているバッファーがすでに存在し、かつユーザーが承認するかno-queryが非nil
なら、この関数は中に数字が入った‘<…>’をfilenameに追加して新たなバッファーの名前を一意にする。
along-with-fileが非nil
なら、それは前にvisitされていたファイルがfilenameにリネームされたと想定することを意味する。この場合、コマンドはバッファーの修正フラグを変更せず、そのバッファーの記録されている最終ファイル変更時刻をvisited-file-modtime
が報告する時刻(バッファーの変更時刻を参照)で変更することもしない。along-with-fileがnil
なら、この関数はvisited-file-modtime
が0をリターンした後に、記録済みの最終ファイル変更時刻をクリアーする。
関数set-visited-file-name
がinteractiveに呼び出されたときはミニバッファー内でfilenameの入力を求める。
このバッファーローカル変数はvisitしているファイル名をもたないバッファーにたいして、バッファーリスト中のvisitしているファイル名を表示する場所に表示する文字列を指定する。Diredバッファーはこの変数を使用する。