Я не могу заставить Emacs запомнить историю *ielm*
буферов между сессиями. Насколько я могу судить, такая история записана в буферной локальной переменной comint-input-ring
. Поэтому я добавил следующее выражение в мой файл инициализации:
(setq desktop-locals-to-save
(append desktop-locals-to-save
'((comint-input-ring . 50))))
Не работает Я знаю, что desktop
пакет работает, потому что Emacs запоминает глобальные переменные, которые я добавил desktop-globals-to-save
в мой файл инициализации.
-
РЕДАКТИРОВАТЬ: 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
и добавить эту переменную в список переменных для сохранения.