No puedo hacer que Emacs recuerde el historial de *ielm*
buffers entre sesiones. Por lo que puedo decir, dicha historia se registra en la variable local del búfer comint-input-ring
. Por lo tanto, he agregado la siguiente expresión a mi archivo init:
(setq desktop-locals-to-save
(append desktop-locals-to-save
'((comint-input-ring . 50))))
No funciona Sé que el desktop
paquete está funcionando porque Emacs recuerda las variables globales que he agregado desktop-globals-to-save
en mi archivo de inicio.
-
EDITAR: savehist
tampoco funciona. Supongo que es porque comint-input-ring
es una variable local de búfer.
comint
desktop
history-variables
Elena
fuente
fuente
savehist.el
y agregar esta variable a la lista de variables para guardar.savehist
(perdón por no mencionarlo). Por lo que pude ver, fue solo para variables globales, mientras quecomint-input-ring
es local de búfer. Ahora, lo he intentado de todos modos, sin éxito.comint.el
las siguientes dos líneas de código:(put 'comint-input-ring 'permanent-local t)
y(make-local-variable 'comint-input-ring)
. Luego, agreguecomint-input-ring
adesktop-locals-to-save
. Finalmente, vuelva a compilar los archivos correspondientes, reinicie Emacs y disfrute de la vida al máximo.Respuestas:
Puede guardar el valor local del búfer
comint-input-ring
en una variable global cuando se*ielm*
elimina un búfer y restaurarlo eninferior-emacs-lisp-mode-hook
:Ahora debería poder agregar
ielm-comint-input-ring
asavehist-additional-variables
para obtener el comportamiento que desea. (Probé este enfoque;desktop-locals-to-save
aunque también deberías poder usarlo ).fuente
LOCAL
argumento de queadd-hook
, en lugar de llamar manualmentemake-local-variable
enkill-buffer-hook
. Esto último podría causar problemas al intentar agregar devoluciones de llamada al gancho a nivel mundial.inf-mongo
(o, presumiblemente, cualquier otro modo que usecomint
). Eso es muy útil, y también me enseñó un poco más de elisp ... ¡gracias!