Quel est le meilleur plugin pour les espaces de travail Emacs?

Par espace de travail, je veux dire – je dois enregistrer l’état de mes tampons ouverts (éventuellement dans un fichier d’espace de travail spécifié par l’utilisateur) et basculer rapidement vers un autre ensemble de tampons ouverts, par exemple pour continuer à travailler sur des fichiers associés à un autre projet.

Existe-t-il un plugin Emacs qui le permet? Lequel recommanderiez-vous?

J’utilise une combinaison de fichiers et de groupes de travail sauvegardés . En fait, les groupes de travail feront probablement la plupart de ce que vous voulez par eux-mêmes.

Ma config:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; workgroups for windows (setq wg-prefix-key (kbd "Cc z") wg-no-confirm t wg-file (concat emacs-persistence-directory "workgroups") wg-use-faces nil wg-switch-on-load nil) (defun wg-load-default () "Run `wg-load' on `wg-file'." (interactive) (wg-load wg-file)) (defun wg-save-default () "Run `wg-save' on `wg-file'." (interactive) (when wg-list (with-temp-message "" (wg-save wg-file)))) (with-library 'workgroups (define-key wg-map (kbd "Cl") 'wg-load-default) (define-key wg-map (kbd "Cs") 'wg-save-default) (workgroups-mode 1) (add-hook 'auto-save-hook 'wg-save-default) (add-hook 'kill-emacs-hook 'wg-save-default)) 

Personnellement, j’utilise le mode persp :

Perspectives pour emacs, basées sur la perspective-el de Nathan Weizenbaum. Mais les outlook partagées entre les frameworks + possibilité de sauvegarder / restaurer depuis / vers le fichier.

desktop.el sera utile dans votre situation.

Il peut (copié à partir de sa page d’introduction) à partir du tampon des paquets emacs:

Enregistrez le bureau, c.-à-d. Certaines variables globales, la liste des tampons avec les fichiers associés. Pour chaque tampon également – le mode majeur – le répertoire par défaut – le point – la marque et la marque active – buffer-read-only – certaines variables locales

Si vous utilisez Linux / Gnome3, vous pouvez essayer cette extension: https://extensions.gnome.org/extension/361/emacs-manager/ Cette extension vous permettra de travailler sur différents projets simultanément en gérant plusieurs démons emacs, et enregistrer / restaurer l’état des tampons.

HIROSE Yuuji revive.el fonctionne parfaitement pour moi depuis un certain temps. J’utilise la configuration standard présentée dans les commentaires de revive.el. La documentation est bien écrite et revit est très facile à utiliser et à configurer. En particulier, revive.el offre un meilleur support que certains pour relancer des configurations un peu plus complexes. C’est particulièrement agréable si vous le combinez avec le windows.el de HIROSE Yuuji. Ils sont amenés à travailler ensemble. windows.el permet de rappeler les fractionnements de fenêtres, etc. Revive.el est conçu dans une optique d’extensibilité vers une intégration en mode plus profond pour des configurations particulières. Mais pour mon usage, je l’ai trouvé assez sympa, mais je pense que je vais le modifier pour relancer les fenêtres w3m que je n’ai pas encore configurées (Update: je le fais maintenant: voir en bas).

Voici ma config de relance. J’inclus quelques commentaires utiles, d’abord pour windows.el, puis revive.el inline:

 (provide 'my-revive-config) (require 'windows) ; use this with revive so that window splits are recallable ; too (win:startup-with-window) ; start with window 1 ;;;[Key Bindings] ;;; ;;; The default prefix key stroke for Windows is `Cc C-w'. If it ;;; causes you some troubles, see the section `Customizations'. ;;; Here are the default key bindings. ;;; ;;; Cc Cw 1 Switch to window 1 (Q) ;;; Cc Cw 2 Switch to window 2 (Q) ;;; : ;;; Cc Cw 9 Switch to window 9 (Q) ;;; Cc Cw 0 Swap windows with the buffer 0 (Q) ;;; (Select unallocated frame(Emacs 19)) ;;; Cc Cw SPC Switch to window previously shown (Q) ;;; Cc Cw Cn Switch to next window ;;; Cc Cw Cp Switch to previous window ;;; Cc Cw ! Delete current window (Q) ;;; Cc Cw Cw Window operation menu ;;; Cc Cw Cr Resume menu ;;; Cc Cw Cl Local resume menu ;;; Cc Cw Cs Switch task ;;; Cc Cw = Show window list (Q) ;;; ;;; The key strokes to select windows from 1 to 9 must be ;;; frequently used, so the alternative key strokes `Cc [Num.]' are ;;; available by default (And any function with (Q)mark can be ;;; invoked without Cw). To disable these quick key strokes, set ;;; the variable win:quick-selection to `nil' in your ~/.emacs. (autoload 'save-current-configuration "revive" "Save status" t) (autoload 'resume "revive" "Resume Emacs" t) (autoload 'wipe "revive" "Wipe Emacs" t) (define-key ctl-x-map "S" 'save-current-configuration) (define-key ctl-x-map "F" 'resume) (define-key ctl-x-map "K" 'wipe) ;;; ;;;[How to use] ;;; ;;; Call `save-current-configuration' (`Cx S' if you define key as ;;; above) when you want to save current editing status and call ;;; `resume' to restore it. Numerical prefix arg to them specifies ;;; the buffer number in which the editing status will be saved. ;;; Here the buffer refers to a revive s-exp in ~/.revive.el of ;;; which there can be n ;;; ;;; [Sample Operations] ;;; Cu 2 Cx S ;save status into the buffer #2 ;;; Cu 3 Cx F ;load status from the buffer #3 

Il y a des variantes de cela que d’autres aiment revive-plus.el et un clone légèrement modifié sur github , mais je préfère l’original.

Mise à jour lundi 12 janvier 2015: Maintenant, je peux restaurer w3m dans revive (voir dives revive.el pour plus de détails et en particulier sur les exemples de revive: major-mode-command-alist-default):

 (setq revive:major-mode-command-alist-private '(("*w3m*" . w3m))) 

Notez que vous dites revivre le nom du tampon w3m. Même si vous avez plusieurs tabs, seul le premier doit être énuméré comme ci-dessus.

Voici la variable w3m que j’ai définie pour restaurer tous les tabs de la session précédente:

 (setq w3m-session-load-last-sessions t)