From: Richard M. Stallman Date: Tue, 30 Sep 2003 20:38:51 +0000 (+0000) Subject: (Saving Emacs Sessions): Shorten the section, collapsing back into one node. X-Git-Tag: ttn-vms-21-2-B4~8669 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=6a51fedc589a4c502aeb8869a224a43ffc3f7560;p=emacs.git (Saving Emacs Sessions): Shorten the section, collapsing back into one node. --- diff --git a/man/misc.texi b/man/misc.texi index 7851510dcb3..78b7f053e6c 100644 --- a/man/misc.texi +++ b/man/misc.texi @@ -1875,38 +1875,18 @@ hexl-@key{RET}} for details. @cindex reload files @cindex desktop - You can use the desktop library to save the state of Emacs from one -session to another. Saving the state means that Emacs starts up with -the same set of buffers, major modes, buffer positions, and so on that -the previous Emacs session had. Such a state is referred to as a ``desktop''. + Use the desktop library to save the state of Emacs from one session +to another. Once you save the Emacs @dfn{desktop}---the buffers, +their file names, major modes, buffer positions, and so on---then +subsequent Emacs sessions reload the saved desktop. - The saveplace library provides a simpler feature that records your -position in each file when you kill its buffer (or kill Emacs), and -jumps to the same position when you visit the file again (even in -another Emacs session). - -@menu -The desktop library -* Desktop Save Mode:: How to enable desktop saving. -* Desktop file and directory:: About desktop files and desktop directory. -* Saving manually:: How to saving the desktop manually and why. -* Information saved:: Controlling which information to save. -* Desktop clear:: Clearing the desktop. -* File name format:: Different formats to save file names in. - -The saveplace library -* Saveplace:: Recording the position in each file. -@end menu - -@node Desktop Save Mode -@subsection Desktop Save Mode -@findex desktop-save-mode +@findex desktop-save @vindex desktop-save-mode - Desktop Save Mode is a global minor mode. @pxref{Minor Modes}. -To enable desktop saving, you should use the Customization buffer -(@pxref{Easy Customization}) to set @code{desktop-save-mode} to a -non-@code{nil} value for future sessions, or add this line somewhere -in your @file{.emacs} file: + You can save the desktop manually with the command @kbd{M-x +desktop-save}. You can also enable automatical desktop saving when +you exit Emacs: use the Customization buffer (@pxref{Easy +Customization}) to set @code{desktop-save-mode} to @code{t} for future +sessions, or add this line in your @file{~/.emacs} file: @example (desktop-save-mode 1) @@ -1914,149 +1894,25 @@ in your @file{.emacs} file: @findex desktop-change-dir @findex desktop-revert -@findex desktop-read -@vindex desktop-after-read-hook - In order for Emacs to recover the desktop from a previous session, you -must start it with the same current directory as you used when you -started the previous session. This is because @code{desktop-read} looks -in the current directory for the desktop file to read. This means that you can -have separate saved desktops in different directories; the directory in -which you start Emacs will control which saved desktop to use. -You can also save the current desktop and recover one saved in another directory -by typing @kbd{M-x desktop-change-dir}. -Typing @kbd{M-x desktop-revert} reverts to the last recovered desktop. - -You may want Emacs to display a buffer list when a desktop is -loaded. This is possible by adding e.g.@: the function @code{buffer-menu} to -@code{desktop-after-read-hook}. @pxref{Buffers}. - -Specify the option @samp{--no-desktop} on the command line when you don't want -any desktop to be loaded (even when desktop saving is enabled). - -@node Desktop file and directory -@subsection Desktop file and desktop directory -@cindex desktop file -@cindex desktop directory -@vindex desktop-dirname -@vindex desktop-base-file-name -@vindex desktop-path - Emacs sessions are stored in desktop files. When Emacs starts, it -looks for a desktop file in the current directory and in your home -directory, in that order. Thus, if you save a desktop file in your -home directory, it will act as a default desktop when you start Emacs -from a directory that doesn't have its own. Once a desktop file is -found, the session described in it will be restored, and the directory -where the desktop file was found will become the desktop directory. -The desktop directory is the directory in which the desktop file is -saved when Emacs is exited; it is saved in the variable -@code{desktop-dirname}. - - You can change the base name of the desktop file and the list of -directories where Emacs should look for a desktop file at startup by -customizing the variables @code{desktop-base-file-name} and -@code{desktop-path}. - -@node Saving manually -@subsection Saving the desktop manually -@vindex desktop-save -@findex desktop-save -@findex desktop-save-in-desktop-dir - If you prefer to save desktops manually rather than having Emacs -save them automatically at exit, set the customizable variable -@code{desktop-save} to the value @code{nil}. Then desktops are never -saved automatically, instead you can save then by typing @kbd{M-x -desktop-save} or @kbd{M-x desktop-save-in-desktop-dir}. The first of -these commands prompts for a directory to save the desktop in, the -second saves it in the desktop directory. Customization of the -variable @code{desktop-save} also lets you control when the desktop -should be saved, based upon whether a desktop file already exists in -the desktop directory -- see the documentation of the variable. - -@node Information saved -@subsection Controlling which information to save -@vindex desktop-files-not-to-save -@vindex desktop-modes-not-to-save -@vindex desktop-buffer-modes-to-save -@vindex desktop-globals-to-save -@vindex desktop-locals-to-save - The customizable variable @code{desktop-files-not-to-save} controls -which files are excluded from state saving. Its value is a regular -expression that matches the files to exclude. By default, remote -(ssh- or ftp-accessed) files are excluded; this is because visiting -them again in a subsequent session would be slow. If you want to -include these files in state saving, set -@code{desktop-files-not-to-save} to @code{"^$"}. @xref{Remote Files}. -You can also exclude buffers from state saving based on their mode by -customizing @code{desktop-modes-not-to-save}. - - It is possible to save the state of buffers not visiting files, -based on their mode. To do that, mention their mode it the -customizable variable @code{desktop-buffer-modes-to-save}. However, -only certain non-visiting modes will have their buffers recreated when -the desktop is loaded. These are @code{dired-mode}, @code{Info-mode}, -@code{rmail-mode} and @code{mh-folder-mode}. - -@vindex desktop-save-hook -@findex desktop-truncate - To control which variables will be saved in the desktop file, -customize the variables @code{desktop-globals-to-save} and -@code{desktop-locals-to-save}. List variables, such as -@code{search-ring} and @code{regexp-search-ring}, may contain -excessive amounts of data. If you want to save only the first -e.g.@: three elements, add to @code{desktop-save-hook} the function + When Emacs starts, it looks for a saved desktop in the current +directory. 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 @kbd{M-x desktop-change-dir}. Typing +@kbd{M-x desktop-revert} reverts to the desktop previously reloaded. -@example -'(lambda () - (desktop-truncate search-ring 3) - (desktop-truncate regexp-search-ring 3)) -@end example + Specify the option @samp{--no-desktop} on the command line when you +don't want it to reload any saved desktop. -@node Desktop clear -@subsection Clearing the desktop @findex desktop-clear -@findex desktop-change-dir -@findex desktop-revert -@findex desktop-read @vindex desktop-globals-to-clear @vindex desktop-clear-preserve-buffers-regexp -@vindex desktop-no-desktop-file-hook - Type @kbd{M-x desktop-clear} to empty the desktop. This will kill -all buffers except for internal ones and it will clear the global -variables listed in @code{desktop-globals-to-clear}. If you want to + Type @kbd{M-x desktop-clear} to empty the Emacs desktop. This kills +all buffers except for internal ones, and clears the global variables +listed in @code{desktop-globals-to-clear}. If you want this to preserve certain buffers, customize the variable -@code{desktop-clear-preserve-buffers-regexp}. Its value is a regular -expression matching the names of buffers not to kill. The commands -@code{desktop-change-dir} and @code{desktop-revert} both calls -@code{desktop-clear} before loading the desktop. Furthermore, -@code{desktop-read} calls @code{desktop-clear} if no desktop file is -found to load. If you want a dired buffer showing the desktop -directory in when no desktop file is found, customize -@code{desktop-no-desktop-file-hook} to have the value -@code{((lambda () (dired desktop-dirname)))}. @pxref{Dired}. - -@node File name format -@subsection File name format -@vindex desktop-file-name-format - The customizable variable @code{desktop-file-name-format} controls -the format in which file names are saved in the desktop buffer. The -default value is @code{absolute}, which means that file names are -absolute. If you change this to @code{tilde}, file names are relative -to your home directory. This means that desktop files might be copied -from one machine to another, altough the absolute name of the home -directories differ. If you change @code{desktop-file-name-format} to -@code{local}, file names are relative to the desktop directory. - -@node Saveplace -@subsection Saveplace -@vindex save-place -@cindex Saveplace -@findex toggle-save-place - The Saveplace library provides a simpler feature that records your -position in each file when you kill its buffer (or kill Emacs), and -jumps to the same position when you visit the file again (even in -another Emacs session). Use @kbd{M-x toggle-save-place} to turn on -place-saving in a given file. Customize the option @code{save-place} -to turn it on for all files in each session. +@code{desktop-clear-preserve-buffers-regexp}, whose value is a regular +expression matching the names of buffers not to kill. @node Recursive Edit, Emulation, Saving Emacs Sessions, Top @section Recursive Editing Levels