Я не могу заставить 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и добавить эту переменную в список переменных для сохранения.