18.6.2 Controlling Auto-Saving
Each time you visit a file, auto-saving is turned on for that file’s
buffer if the variable auto-save-default
is non- nil
(but
not in batch mode; see Initial Options). The default for this
variable is t
, so auto-saving is the usual practice for
file-visiting buffers. To toggle auto-saving in the current buffer,
type M-x auto-save-mode
. Auto Save mode acts as a buffer-local
minor mode (see Minor Modes).
Emacs auto-saves periodically based on how many characters you have
typed since the last auto-save. The variable
auto-save-interval
specifies how many characters there are
between auto-saves. By default, it is 300. Emacs doesn’t accept
values that are too small: if you customize auto-save-interval
to a value less than 20, Emacs will behave as if the value is 20.
Auto-saving also takes place when you stop typing for a while. By
default, it does this after 30 seconds of idleness (at this time,
Emacs may also perform garbage collection; see Garbage
Collection in The Emacs Lisp Reference Manual). To change
this interval, customize the variable auto-save-timeout
. The
actual time period is longer if the current buffer is long; this is a
heuristic which aims to keep out of your way when you are editing long
buffers, in which auto-save takes an appreciable amount of time.
Auto-saving during idle periods accomplishes two things: first, it
makes sure all your work is saved if you go away from the terminal for
a while; second, it may avoid some auto-saving while you are actually
typing.
When auto-save-visited-mode
is enabled, Emacs will auto-save
file-visiting buffers after five seconds of idle time. You can
customize the variable auto-save-visited-interval
to change the
idle time interval.
Emacs also does auto-saving whenever it gets a fatal error. This
includes killing the Emacs job with a shell command such as ‘ kill %emacs
’, or disconnecting a phone line or network connection.
You can perform an auto-save explicitly with the command M-x do-auto-save
.