Я не можу змусити Emacs пам’ятати історію *ielm*
буферів між сесіями. Наскільки я можу сказати, така історія записується в буферно-локальну змінну comint-input-ring
. Тому я додав такий вираз у свій файл init:
(setq desktop-locals-to-save
(append desktop-locals-to-save
'((comint-input-ring . 50))))
Це не працює. Я знаю, що desktop
пакет працює, тому що Emacs запам'ятовує глобальні змінні, які я додав desktop-globals-to-save
у свій файл init.
-
EDIT: savehist
також не працює. Я припускаю, що це тому comint-input-ring
, що це локальна буферна змінна.
savehist
(вибачте, що не згадав про це). Наскільки я міг бачити, це було лише для глобальних змінних, в той час comint-input-ring
як локально-буферне. Тепер я спробував це все одно, без успіху.
comint.el
наступних двох рядків коду: (put 'comint-input-ring 'permanent-local t)
і (make-local-variable 'comint-input-ring)
. Потім додайте comint-input-ring
до desktop-locals-to-save
. Нарешті, повторно байт-компілюйте відповідні файли, перезавантажте Emacs та насолоджуйтесь живим життям якнайкраще.
savehist.el
та додати цю змінну до списку vars для збереження.