Я не можу змусити 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 для збереження.