Ich kann Emacs nicht dazu bringen, sich an den Verlauf der *ielm*
Puffer zwischen den Sitzungen zu erinnern . Soweit ich das beurteilen kann, wird ein solcher Verlauf in der pufferlokalen Variablen aufgezeichnet comint-input-ring
. Daher habe ich meiner Init-Datei den folgenden Ausdruck hinzugefügt:
(setq desktop-locals-to-save
(append desktop-locals-to-save
'((comint-input-ring . 50))))
Es funktioniert nicht. Ich weiß, dass das desktop
Paket funktioniert, da Emacs sich an die globalen Variablen erinnert, die ich desktop-globals-to-save
in meiner Init-Datei hinzugefügt habe.
- -
EDIT: savehist
funktioniert auch nicht. Ich nehme an, das liegt daran, dass es sich comint-input-ring
um eine pufferlokale Variable handelt.
comint
desktop
history-variables
Elena
quelle
quelle
savehist.el
diese Variable zu verwenden und zur Liste der zu speichernden Variablen hinzuzufügen.savehist
(Entschuldigung , dass ich es nicht erwähnt habe). Soweit ich sehen konnte, war es nur für globale Variablen, währendcomint-input-ring
es pufferlokal ist. Jetzt habe ich es trotzdem versucht, ohne Erfolg.comint.el
den folgenden zwei Codezeilen aus:(put 'comint-input-ring 'permanent-local t)
und(make-local-variable 'comint-input-ring)
. Dann hinzufügencomint-input-ring
zudesktop-locals-to-save
. Zum Schluss kompilieren Sie die entsprechenden Dateien erneut, starten Sie Emacs neu und genießen Sie das Leben in vollen Zügen.Antworten:
Sie können den pufferlokalen Wert von
comint-input-ring
in einer globalen Variablen speichern , wenn ein*ielm*
Puffer beendet wird, und ihn wiederherstellen ininferior-emacs-lisp-mode-hook
:Nun sollten Sie in der Lage sein , zu addieren ,
ielm-comint-input-ring
umsavehist-additional-variables
das gewünschte Verhalten zu erhalten. (Ich habe diesen Ansatz getestet. Sie sollten ihn jedoch auch verwendendesktop-locals-to-save
können.)quelle
LOCAL
Argumentadd-hook
, anstatt manuell Aufrufmake-local-variable
aufkill-buffer-hook
. Letzteres kann zu Problemen führen, wenn anschließend versucht wird, dem Hook global Rückrufe hinzuzufügen.inf-mongo
(oder vermutlich für jeden anderen Modus, der verwendetcomint
) funktioniert. Das ist so hilfreich und hat mir auch ein bisschen mehr Elisp beigebracht ... danke!