84 votes

Emacs: rouvrir les tampons de la dernière session au démarrage?

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?

112voto

Jared Oberhaus Points 8877

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)

10voto

dat Points 432

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.
 

6voto

S.A.D. Points 61

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)
 

3voto

hji Points 88

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 .

1voto

paweloque Points 4467

Vous pouvez ouvrir des fichiers de votre fichier .emacs en utilisant la fonction suivante:

(find-file "/ home / me / path-to-file")

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X