Chaque jour, je lance emacs et ouvre exactement les mêmes fichiers que ceux ouverts la veille. Est-ce que je peux ajouter quelque chose au fichier init.el pour qu'il rouvre tous les tampons que j'utilisais la dernière fois que j'ai quitté emacs?
Réponses
Trop de publicités?Vous pouvez utiliser Emacs Bureau de la bibliothèque:
Vous pouvez sauvegarder manuellement le bureau avec la commande M-x de bureau-enregistrer. Vous pouvez aussi activer la sauvegarde automatique de l' bureau lorsque vous quitter Emacs, et restauration automatique de la dernière sauvé de bureau lorsqu'Emacs commence: utilisation la Personnalisation de la mémoire tampon (voir Facile Personnalisation) pour définir bureau-save-mode t pour l'avenir les sessions, ou d'ajouter cette ligne dans votre ~/.emacs fichier:
(desktop-save-mode 1)
Bien que je soupçonne que la question cherchait la fonctionnalité "de bureau" d’emacs (voir la réponse ci-dessus), l’approche de Lewap peut être utile si l’ensemble de fichiers que l’on utilise est vraiment exactement le même ensemble de fichiers. En fait, on peut aller plus loin et définir des "profils" si l'on dispose de différents ensembles de fichiers régulièrement utilisés ... Exemple Quickie:
(let ((profile
(read-from-minibuffer "Choose a profile (acad,dist,lisp,comp,rpg,sqlg,ssqlfs,tl,tc,fpu): ")
))
(cond
((string-match "acad" profile)
(dired "/home/thomp/academic")
(dired "/home/thomp/academic/papers")
)
((string-match "lisp" profile)
(setup-slime)
(lisp-miscellany)
(open-lisp-dirs)
)
((string-match "rpg" profile)
(find-file "/home/thomp/computing/lisp/rp-geneval/rp-geneval/rp-geneval.lisp")
(dired "/home/thomp/computing/lisp/rp-geneval/rp-geneval")
(dired "/home/thomp/academic/data")
... etc.
Pour stocker / restaurer les tampons / onglets (en particulier les onglets elscreen): j’utilise elscreen et la façon dont je gère le stockage / la restauration de la session de bureau et de la configuration de l’onglet elscreen est le code suivant dans mon fichier .emacs (les noms utilisés sont explicites) et si les fonctions de stockage / restauration ne doivent pas être exécutées à chaque démarrage d’emacs, mettez en commentaire les lignes avec "(push # 'elscreen-store kill-emacs-hook)" et "(elscreen-restore)"):
(defvar emacs-configuration-directory
"~/.emacs.d/"
"The directory where the emacs configuration files are stored.")
(defvar elscreen-tab-configuration-store-filename
(concat emacs-configuration-directory ".elscreen")
"The file where the elscreen tab configuration is stored.")
(defun elscreen-store ()
"Store the elscreen tab configuration."
(interactive)
(if (desktop-save emacs-configuration-directory)
(with-temp-file elscreen-tab-configuration-store-filename
(insert (prin1-to-string (elscreen-get-screen-to-name-alist))))))
(push #'elscreen-store kill-emacs-hook)
(defun elscreen-restore ()
"Restore the elscreen tab configuration."
(interactive)
(if (desktop-read)
(let ((screens (reverse
(read
(with-temp-buffer
(insert-file-contents elscreen-tab-configuration-store-filename)
(buffer-string))))))
(while screens
(setq screen (car (car screens)))
(setq buffers (split-string (cdr (car screens)) ":"))
(if (eq screen 0)
(switch-to-buffer (car buffers))
(elscreen-find-and-goto-by-buffer (car buffers) t t))
(while (cdr buffers)
(switch-to-buffer-other-window (car (cdr buffers)))
(setq buffers (cdr buffers)))
(setq screens (cdr screens))))))
(elscreen-restore)
Il semble que la gestion des postes de travail soit différente dans Emacs 21 et 22+. Le sujet est décrit sur cette page: http://www.emacswiki.org/emacs/DeskTop .