GNU Emacs Lisp Reference Manual
Emacs periodically saves all files that you are visiting; this is called auto-saving. Auto-saving prevents you from losing more than a limited amount of work if the system crashes. By default, auto-saves happen every 300 keystrokes, or after around 30 seconds of idle time. See Auto-Save, for information on auto-save for users. Here we describe the functions used to implement auto-saving and the variables that control them.
nil if the buffer should not be auto-saved. buffer-auto-save-file-name => "/xcssun/users/rms/lewis/#files.texi#"
t, a nonempty list, or a positive integer. Otherwise, it turns auto-saving off.nil value if filename is a string that could be the name of an auto-save file. It works based on knowledge of the naming convention for auto-save files: a name that begins and ends with hash marks (`#') is a possible auto-save file name. The argument filename should not contain a directory part. (make-auto-save-file-name)
=> "/xcssun/users/rms/lewis/#files.texi#"
(auto-save-file-name-p "#files.texi#")
=> 0
(auto-save-file-name-p "files.texi")
=> nil
The standard definition of this function is as follows:
(defun auto-save-file-name-p (filename) "Return non-nil if FILENAME can be yielded by..." (string-match "^#.*#$" filename))
This function exists so that you can customize it if you wish to change the naming convention for auto-save files. If you redefine it, be sure to redefine the function make-auto-save-file-name correspondingly.
#') appended and prepended to it. This function does not look at the variable auto-save-visited-file-name (described below); you should check that before calling this function. (make-auto-save-file-name)
=> "/xcssun/users/rms/lewis/#backup.texi#"
The standard definition of this function is as follows:
(defun make-auto-save-file-name ()
"Return file name to use for auto-saves \
of current buffer.
..."
(if buffer-file-name
(concat
(file-name-directory buffer-file-name)
"#"
(file-name-nondirectory buffer-file-name)
"#")
(expand-file-name
(concat "#%" (buffer-name) "#"))))
This exists as a separate function so that you can redefine it to customize the naming convention for auto-save files. Be sure to change auto-save-file-name-p in a corresponding way.
nil, Emacs auto-saves buffers in the files they are visiting. That is, the auto-save is done in the same file that you are editing. Normally, this variable is nil, so auto-save files have distinct names that are created by make-auto-save-file-name. When you change the value of this variable, the value does not take effect until the next time auto-save mode is reenabled in any given buffer. If auto-save mode is already enabled, auto-saves continue to go in the same file name until auto-save-mode is called again.
t if the current buffer has been auto-saved since the last time it was read in or saved.nil.nil, buffers that are visiting files have auto-saving enabled by default. Otherwise, they do not.Normally, if any buffers are auto-saved, a message that says `Auto-saving...' is displayed in the echo area while auto-saving is going on. However, if no-message is non-nil, the message is inhibited.
If current-only is non-nil, only the current buffer is auto-saved.
delete-auto-save-files is non-nil. It is called every time a buffer is saved.delete-auto-save-file-if-necessary. If it is non-nil, Emacs deletes auto-save files when a true save is done (in the visited file). This saves disk space and unclutters your directory.If it is -1, that means auto-saving is temporarily shut off in this buffer due to a substantial deletion. Explicitly saving the buffer stores a positive value in this variable, thus reenabling auto-saving. Turning auto-save mode off or on also alters this variable.
nil) specifies a file for recording the names of all the auto-save files. Each time Emacs does auto-saving, it writes two lines into this file for each buffer that has auto-saving enabled. The first line gives the name of the visited file (it's empty if the buffer has none), and the second gives the name of the auto-save file. If Emacs exits normally, it deletes this file. If Emacs crashes, you can look in the file to find all the auto-save files that might contain work that was otherwise lost. The recover-session command uses these files.
The default name for this file is in your home directory and starts with `.saves-'. It also contains the Emacs process ID and the host name.