Je ne peux pas faire en sorte qu'Emacs se souvienne de l'historique des *ielm*tampons entre les sessions. Pour autant que je sache, cet historique est enregistré dans la variable buffer-local comint-input-ring. J'ai donc ajouté l'expression suivante à mon fichier init:
(setq desktop-locals-to-save
(append desktop-locals-to-save
'((comint-input-ring . 50))))
Ça ne marche pas. Je sais que le desktoppackage fonctionne car Emacs se souvient des variables globales auxquelles j'ai ajouté desktop-globals-to-savedans mon fichier init.
-
EDIT: savehistne fonctionne pas non plus. Je suppose que c'est parce que comint-input-ringc'est une variable tampon locale.
savehist(désolé de ne pas l'avoir mentionné). Pour autant que je sache, c'était uniquement pour les variables globales, tandis que le comint-input-ringtampon est local. Maintenant, je l'ai essayé de toute façon, sans succès.
comint.elles deux lignes de code suivantes: (put 'comint-input-ring 'permanent-local t)et (make-local-variable 'comint-input-ring). Ensuite, ajoutez comint-input-ringà desktop-locals-to-save. Enfin, recompilez les fichiers applicables, redémarrez Emacs et profitez pleinement de la vie.
savehist.elet d'ajouter cette variable à la liste des variables à enregistrer.