Quitter d'Emacs est très lent … Comment dépanner?

Je cours Emacs sur Windows 7 et chaque fois que je ferme, il faut généralement au moins 5 secondes pour que la fenêtre se ferme. Il ne semble pas importer de quel type de tampons j'ai ouvert ou de quels modes je suis. En attendant, la barre d'état au bas indique normalement:

(Aucun fichier ne doit être sauvegardé)

Est-ce que je peux avoir une idée de ce que cela prend depuis si longtemps, comme un fichier journal ou un message de débogage?

Voici les variables personnalisées à partir de mon fichier d'initialisation au cas où n'importe qui peut reconnaître quelque chose qui causerait un tel délai.

(custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(TeX-PDF-mode t) '(TeX-engine (quote xetex)) '(ac-ignores (quote ("0" "1" "2" "3" "4" "5" "6" "7" "8" "9"))) '(ac-modes (quote (emacs-lisp-mode lisp-interaction-mode c-mode cc-mode c++-mode java-mode clojure-mode scala-mode scheme-mode ocaml-mode tuareg-mode perl-mode cperl-mode python-mode ruby-mode ecmascript-mode javascript-mode js-mode js2-mode php-mode css-mode makefile-mode sh-mode fortran-mode f90-mode ada-mode xml-mode sgml-mode org-mode))) '(ac-user-dictionary (quote (""))) '(ansi-color-names-vector ["#3f3f3f" "#cc9393" "#7f9f7f" "#f0dfaf" "#8cd0d3" "#dc8cc3" "#93e0e3" "#dcdccc"]) '(custom-enabled-themes (quote (deeper-blue))) '(custom-safe-themes (quote ("bf7ed640479049f1d74319ed004a9821072c1d9331bc1147e01d22748c18ebdf" default))) '(default-major-mode (quote text-mode) t) '(fci-rule-color "#383838") '(fill-column 70) '(global-auto-complete-mode t) '(global-visual-line-mode t) '(inhibit-startup-screen t) '(make-backup-files nil) '(org-agenda-files (quote ("e:/org-mode/diary.org" "e:/org-mode/gtd.org"))) '(org-agenda-show-inherited-tags t) '(org-agenda-sorting-strategy (quote ((agenda habit-down time-up priority-down category-keep) (todo todo-state-up priority-down category-keep) (tags priority-down category-keep) (search category-keep)))) '(org-capture-templates (quote (("d" "Diary" entry (file+datetree "E:\\org-mode\\diary.org") "* %? %i %a %^g %U") ("t" "Task" entry (file+headline "E:\\org-mode\\gtd.org" "Tasks") "* TODO %? %i %a %^g %U") ("r" "Reference to find" entry (file+headline "e:\\org-mode\\ToFind.org" "Incoming") "")))) '(org-mode-hook (quote (#[nil "\300\301\302\303\304$\207" [org-add-hook change-major-mode-hook org-show-block-all append local] 5] #[nil "\300\301\302\303\304$\207" [org-add-hook change-major-mode-hook org-babel-show-result-all append local] 5] org-babel-result-hide-spec org-babel-hide-all-hashes org-mode-reftex-setup)) t) '(org-modules (quote (org-bbdb org-bibtex org-docview org-gnus org-info org-jsinfo org-habit org-mew org-mhe org-rmail org-vm org-wl org-w3m))) '(org-refile-targets (quote ((org-agenda-files :tag . "") (nil :maxlevel . 3)))) '(org-startup-indented t) '(org-support-shift-select t) '(org-todo-keywords (quote ((sequence "NEXT(n)" "TODO(t)" "WAITING(w)" "|" "SOMEDAY(s)" "MAYBE(m)" "CANCELLED(c)" "DONE(d)")))) '(package-archives (quote (("MELPA" . "http://melpa.milkbox.net/packages/") ("gnu" . "http://elpa.gnu.org/packages/")))) '(save-place t nil (saveplace)) '(text-mode-hook (quote (text-mode-hook-identify)))) 

J'ai rencontré ce problème sur Linux avec Emacs 24.3.1

Finalement, j'ai remarqué que j'avais un fichier .emacs-places de 12 Mo. J'ai supprimé le fichier et maintenant Emacs sort immédiatement. Je soupçonne que Emacs essayait de faire une mise à jour du fichier lors de l'arrêt, mais le fichier avait été assez long pour que Emacs fasse l'analyse et mette à jour le fichier.

Il semble que .emacs-places est utilisé par saveplace qui vous stocke dans un fichier afin que lorsque vous rouvrez le fichier, le curseur est positionné au même point où vous étiez lorsque vous avez fermé le fichier. Peut-être qu'après un certain temps ce fichier se remplit et prend du temps à mettre à jour? Je vais le surveiller et désactiver Saveplace si cela semble être le problème.

Malheureusement, il ne semble pas être facile d'obtenir un journal utile de ce qui se passe alors qu'Esacs s'arrête.

À la fin, j'ai résolu ce problème en construisant un nouveau fichier .emacs à partir de zéro. Je re-ajoute des choses dont j'ai besoin, et jusqu'à présent n'ont eu aucun problème.