Next: Buffer Modification, Previous: Buffer Names, Up: Buffers [Contents][Index]
バッファーファイル名(buffer file
name)とは、そのバッファーにvisitされているファイルの名前です。バッファーがファイルをvisiblyしていなければ、バッファーファイル名はnil
です。大抵、バッファー名はバッファーファイル名の非ディレクトリーパートと同じですが、バッファーファイル名とバッファー名は別物であり、個別にセットすることができます。Visiting Filesを参照してください。
この関数は、bufferがvisitしているファイルの、絶対ファイル名をリターンする。bufferがファイルをvisitしていない場合、buffer-file-name
はnil
をリターンする。bufferが与えられない場合のデフォルトは、カレントバッファーになる。
(buffer-file-name (other-buffer)) ⇒ "/usr/user/lewis/manual/files.texi"
このバッファーローカル変数は、カレントバッファーにvisitされているファイルの名前、ファイルをvisitしていなければnil
が含まれる。これは永続的なローカル変数であり、kill-all-local-variables
の影響を受けない。
buffer-file-name ⇒ "/usr/user/lewis/manual/buffers.texi"
他のさまざまな事項を変更せずに、この変数を変更するのは危険である。通常は、set-visited-file-name
を使用するほうがよい(以下参照)。バッファー名の変更などのような、そこで行われることのいくつかは、絶対必要という訳ではないが、その他の事項はEmacsが混乱するのを防ぐために必要不可欠である。
このバッファーローカル変数は、カレントバッファーにvisitされているファイルの省略された形式の実名(truename)、ファイルをvisitしていない場合はnil
を保持する。これは永続的にローカルであり、kill-all-local-variables
の影響を受けない。See Truenames、およびabbreviate-file-nameを参照のこと。
このバッファーローカル変数は、カレントバッファーにvisitされているファイルのファイル番号(file number)とデバイス番号(device
number)、ファイルをvisitしていない場合はnil
を保持する。これは永続的にローカルであり、kill-all-local-variables
の影響を受けない。
値は通常、(filenum
devnum)
のような形式のリストである。この番号ペアーは、システム上でアクセス可能なすべてのファイルの中から、ファイルを一意に識別する。より詳細な情報は、File Attributesのfile-attributes
を参照のこと。
buffer-file-name
がシンボリックリンク名の場合は、どちらの番号も再帰的なターゲットを参照する。
この関数は、ファイルfilenameをvisitしているバッファーをリターンする。そのようなバッファーが存在しない場合は、nil
をリターンする。引数filenameは文字列でなければならず、展開(File Name Expansionを参照)された後、killされていないすべてのバッファーがvisitしているファイル名と比較される。バッファーのbuffer-file-name
は、filenameの展開形と正確にマッチしなければならないことに注意。この関数は、同じファイルにたいする他の名前は、認識しないだろう。
(get-file-buffer "buffers.texi") ⇒ #<buffer buffers.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
が報告する時刻(Modification Timeを参照)で変更もしない。along-with-fileがnil
の場合、この関数はvisited-file-modtime
が0をリターンした後に、記録済みの最終ファイル変更時刻をクリアーする。
関数set-visited-file-name
がinteractiveに呼び出されたときは、ミニバッファー内でfilenameの入力を求める。
このバッファーローカル変数は、visitしているファイル名をもたないバッファーにたいして、バッファーリスト中のvisitしているファイル名を表示する場所に表示する文字列を指定する。Diredバッファーは、この変数を使用する。