次: , 前: Buffer Names, 上: Buffers


26.4 バッファファイル名

バッファファイル名(buffer file name)とは、 当該バッファで訪問しているファイルの名前です。 バッファでファイルを訪問していないときには、 バッファファイル名はnilです。 ほとんどの場面で、バッファ名は バッファファイル名の非ディレクトリ部分と同じですが、 バッファファイル名とバッファ名は別のものであり個別に設定できます。 See Visiting Files

— 機能: buffer-file-name &optional buffer

この関数は、bufferで訪問しているファイルの 絶対ファイル名を返す。 bufferがファイルを訪問していなければ、 buffer-file-namenilを返す。 bufferを指定しないと、 デフォルトはカレントバッファである。

          (buffer-file-name (other-buffer))
               => "/usr/user/lewis/manual/files.texi"
     
— 変数: buffer-file-name

このバッファローカルな変数は、 カレントバッファで訪問しているファイルの名前を保持する。 あるいは、ファイルを訪問していなければnilである。 これは恒久的にバッファローカルであり、 kill-local-variablesに影響されない。

          buffer-file-name
               => "/usr/user/lewis/manual/buffers.texi"
     

他のさまざまなことを行わずにこの変数の値だけを変更することは危険である。 通常、set-visited-file-name(下記参照)を使うほうがよい。 バッファ名を変更するなどの重要でないことも行うが、 Emacsを混乱させないように本質的なことも行うからである。

— 変数: buffer-file-truename

このバッファローカルな変数は、 カレントバッファで訪問しているファイルの実名を保持する。 あるいは、ファイルを訪問していなければnilである。 これは恒久的にバッファローカルであり、 kill-local-variablesに影響されない。 see Truenames

— 変数: buffer-file-number

このバッファローカルな変数は、 カレントバッファで訪問しているファイルの ファイル番号とディレクトリ装置番号を保持する。 あるいは、ファイルを訪問していなければnilである。 これは恒久的にバッファローカルであり、 kill-local-variablesに影響されない。

この値は、通常、(filenum devnum)の形のリストである。 この数の対により、システム上のすべての参照可能なファイルを一意に識別できる。 これらについてより詳しくは、 File Attributesの関数file-attributesを参照。

— 機能: get-file-buffer filename

この関数は、ファイルfilenameを訪問しているバッファを返す。 そのようなバッファが存在しなければnilを返す。 引数filenameは文字列であり、 展開(see File Name Expansion)してから すべてのバッファの訪問しているファイル名と比較する。

          (get-file-buffer "buffers.texi")
              => #<buffer buffers.texi>
     

稀れな状況では、複数のバッファが同じ名前のファイルを訪問している場合がある。 そのような場合、この関数はバッファリストで最初にみつかったバッファを返す。

— コマンド: set-visited-file-name filename &optional no-query along-with-file

filenameが空でない文字列であると、 この関数はカレントバッファで訪問しているファイルの名前を filenameに変える。 (ファイルを訪問していないバッファでは、 当該バッファに訪問しているファイル名を指定する。) バッファをつぎに保存すると、指定した新たなファイルに保存される。 このコマンドは、バッファに変更済みと印を付ける。 変更まえの訪問しているファイルの内容とバッファ内容が一致していたとしても (Emacsにとっては) バッファ内容はfilenameの内容と一致しないからである。

filenamenilだったり空文字列であると、 『ファイルを訪問していない』ことにする。 この場合、set-visited-file-nameは、 当該バッファではファイルを訪問していないと印を付ける。

通常、この関数は、指定したファイルが既存の場合には ユーザーに確認をとる。 no-querynil以外であると、確認をとらない。

along-with-filenil以外であると、 それ以前に訪問していたファイルはfilenameと改名してあると仮定する。

関数set-visited-file-nameを対話的に呼び出すと、 ミニバッファでfilenameを問い合わせる。

— 変数: list-buffers-directory

このバッファローカルな変数は、 訪問しているファイル名を持たないバッファに対して、 バッファ一覧において訪問しているファイル名を表示する部分に 表示する文字列を指定する。 diredのバッファはこの変数を使う。