Buffer File Name
================
The "buffer file name" is the name of the file that is visited in
that buffer. When a buffer is not visiting a file, its buffer file name
is `nil'. Most of the time, the buffer name is the same as the
nondirectory part of the buffer file name, but the buffer file name and
the buffer name are distinct and can be set independently. Note:Visiting Files.
- Function: buffer-file-name &optional buffer
This function returns the absolute file name of the file that
BUFFER is visiting. If BUFFER is not visiting any file,
`buffer-file-name' returns `nil'. If BUFFER is not supplied, it
defaults to the current buffer.
(buffer-file-name (other-buffer))
=> "/usr/user/lewis/manual/files.texi"
- Variable: buffer-file-name
This buffer-local variable contains the name of the file being
visited in the current buffer, or `nil' if it is not visiting a
file. It is a permanent local variable, unaffected by
`kill-all-local-variables'.
buffer-file-name
=> "/usr/user/lewis/manual/buffers.texi"
It is risky to change this variable's value without doing various
other things. Normally it is better to use
`set-visited-file-name' (see below); some of the things done
there, such as changing the buffer name, are not strictly
necessary, but others are essential to avoid confusing Emacs.
- Variable: buffer-file-truename
This buffer-local variable holds the truename of the file visited
in the current buffer, or `nil' if no file is visited. It is a
permanent local, unaffected by `kill-all-local-variables'. Note:Truenames.
- Variable: buffer-file-number
This buffer-local variable holds the file number and directory
device number of the file visited in the current buffer, or `nil'
if no file or a nonexistent file is visited. It is a permanent
local, unaffected by `kill-all-local-variables'.
The value is normally a list of the form `(FILENUM DEVNUM)'. This
pair of numbers uniquely identifies the file among all files
accessible on the system. See the function `file-attributes', in
Note:File Attributes, for more information about them.
- Function: get-file-buffer filename
This function returns the buffer visiting file FILENAME. If there
is no such buffer, it returns `nil'. The argument FILENAME, which
must be a string, is expanded (Note:File Name Expansion), then
compared against the visited file names of all live buffers.
(get-file-buffer "buffers.texi")
=> #<buffer buffers.texi>
In unusual circumstances, there can be more than one buffer
visiting the same file name. In such cases, this function returns
the first such buffer in the buffer list.
- Command: set-visited-file-name filename &optional no-query
along-with-file
If FILENAME is a non-empty string, this function changes the name
of the file visited in the current buffer to FILENAME. (If the
buffer had no visited file, this gives it one.) The _next time_
the buffer is saved it will go in the newly-specified file. This
command marks the buffer as modified, since it does not (as far as
Emacs knows) match the contents of FILENAME, even if it matched the
former visited file.
If FILENAME is `nil' or the empty string, that stands for "no
visited file". In this case, `set-visited-file-name' marks the
buffer as having no visited file.
Normally, this function asks the user for confirmation if the
specified file already exists. If NO-QUERY is non-`nil', that
prevents asking this question.
If ALONG-WITH-FILE is non-`nil', that means to assume that the
former visited file has been renamed to FILENAME.
When the function `set-visited-file-name' is called interactively,
it prompts for FILENAME in the minibuffer.
- Variable: list-buffers-directory
This buffer-local variable specifies a string to display in a
buffer listing where the visited file name would go, for buffers
that don't have a visited file name. Dired buffers use this
variable.