Next: Recursive Edit, Previous: Editing Binary Files, Up: Top [Contents][Index]
Use the desktop library to save the state of Emacs from one session
to another. Once you save the Emacs desktop—the buffers,
their file names, major modes, buffer positions, and so on—then
subsequent Emacs sessions reload the saved desktop. By default,
the desktop also tries to save the frame and window configuration.
To disable this, set desktop-restore-frames
to nil
.
(See that variable’s documentation for some related options
that you can customize to fine-tune this behavior.)
When the desktop restores the frame and window configuration, it
uses the recorded values of frame parameters, disregarding any
settings for those parameters you have in your init file (see Init File). This means that frame parameters such as fonts and faces for
the restored frames will come from the desktop file, where they were
saved when you exited your previous Emacs session; any settings for
those parameters in your init file will be ignored. To disable this,
customize the value of frameset-filter-alist
to filter out the
frame parameters you don’t want to be restored.
You can save the desktop manually with the command M-x
desktop-save. You can also enable automatic saving of the desktop
when you exit Emacs, and automatic restoration of the last saved
desktop when Emacs starts: use the Customization buffer (see Easy Customization) to set desktop-save-mode
to t
for future
sessions, or add this line in your init file (see Init File):
(desktop-save-mode 1)
When desktop-save-mode
is active and the desktop file exists,
Emacs auto-saves it every desktop-auto-save-timeout
seconds, if that is non-nil
and non-zero.
If you turn on desktop-save-mode
in your init file, then when
Emacs starts, it looks for a saved desktop in the current directory.
(More precisely, it looks in the directories specified by
desktop-path, and uses the first desktop it finds.)
Thus, you can have separate saved desktops in different directories,
and the starting directory determines which one Emacs reloads. You
can save the current desktop and reload one saved in another directory
by typing M-x desktop-change-dir. Typing M-x
desktop-revert reverts to the desktop previously reloaded.
Specify the option ‘--no-desktop’ on the command line when you
don’t want it to reload any saved desktop. This turns off
desktop-save-mode
for the current session. Starting Emacs with
the ‘--no-init-file’ option also disables desktop reloading,
since it bypasses the init file, where desktop-save-mode
is
usually turned on.
By default, all the buffers in the desktop are restored at one go.
However, this may be slow if there are a lot of buffers in the
desktop. You can specify the maximum number of buffers to restore
immediately with the variable desktop-restore-eager
; the
remaining buffers are restored lazily, when Emacs is idle.
Type M-x desktop-clear to empty the Emacs desktop. This kills
all buffers except for internal ones, and clears the global variables
listed in desktop-globals-to-clear
. If you want this to
preserve certain buffers, customize the variable
desktop-clear-preserve-buffers-regexp
, whose value is a regular
expression matching the names of buffers not to kill.
If you want to save minibuffer history from one session to
another, use the savehist
library.
Next: Recursive Edit, Previous: Editing Binary Files, Up: Top [Contents][Index]