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 desktoppaquete está funcionando porque Emacs recuerda las variables globales que he agregado desktop-globals-to-saveen mi archivo de inicio.
-
EDITAR: savehisttampoco funciona. Supongo que es porque comint-input-ringes una variable local de búfer.
comint
desktop
history-variables
Elena
fuente
fuente

savehist.ely 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-ringes local de búfer. Ahora, lo he intentado de todos modos, sin éxito.comint.ellas siguientes dos líneas de código:(put 'comint-input-ring 'permanent-local t)y(make-local-variable 'comint-input-ring). Luego, agreguecomint-input-ringadesktop-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-ringen 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-ringasavehist-additional-variablespara obtener el comportamiento que desea. (Probé este enfoque;desktop-locals-to-saveaunque también deberías poder usarlo ).fuente
LOCALargumento de queadd-hook, en lugar de llamar manualmentemake-local-variableenkill-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!