Function: recover-session
recover-session is an interactive and byte-compiled function defined
in files.el.gz.
Signature
(recover-session)
Documentation
Recover auto save files from a previous Emacs session.
This command first displays a Dired buffer showing you the previous sessions that you could recover from. To choose one, move point to the proper line and then type C-c C-c. Then you'll be asked about a number of files to recover.
Probably introduced at or before Emacs version 19.29.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/files.el.gz
(defun recover-session ()
"Recover auto save files from a previous Emacs session.
This command first displays a Dired buffer showing you the
previous sessions that you could recover from.
To choose one, move point to the proper line and then type C-c C-c.
Then you'll be asked about a number of files to recover."
(interactive)
(if (null auto-save-list-file-prefix)
(error "You set `auto-save-list-file-prefix' to disable making session files"))
(let ((dir (file-name-directory auto-save-list-file-prefix))
(nd (file-name-nondirectory auto-save-list-file-prefix)))
(unless (file-directory-p dir)
(make-directory dir t))
(unless (directory-files dir nil
(if (string= "" nd)
directory-files-no-dot-files-regexp
(concat "\\`" (regexp-quote nd)))
t)
(error "No previous sessions to recover")))
(let ((ls-lisp-support-shell-wildcards t))
(dired (concat auto-save-list-file-prefix "*")
(concat (connection-local-value dired-listing-switches) " -t"))
;; Toggle omitting, if it is on.
(when (bound-and-true-p dired-omit-mode)
(dired-omit-mode -1)))
(use-local-map (nconc (make-sparse-keymap) (current-local-map)))
(define-key (current-local-map) "\C-c\C-c" 'recover-session-finish)
(save-excursion
(goto-char (point-min))
(or (looking-at " Move to the session you want to recover,")
(let ((inhibit-read-only t))
;; Each line starts with a space
;; so that Font Lock mode won't highlight the first character.
(insert " To recover a session, move to it and type C-c C-c.\n"
(substitute-command-keys
" To delete a session file, type \
\\[dired-flag-file-deletion] on its line to flag
the file for deletion, then \\[dired-do-flagged-delete] to \
delete flagged files.\n\n"))))))