Подтвердить что ты не робот

Reset определения и перезагрузить .emacs без закрытия или перезапустить Emacs и повторно открыть буферы

Насколько я понимаю, следующая последовательность команд

M-x load-file ENTER
~/.emacs
ENTER

будет перезагружать мой файл .emacs. Однако из того, что я прочитал на других форумах, они не гарантируют, что я дам полностью переработанную конфигурацию, то есть они заставят Emacs разобрать новый файл конфигурации и перезагрузить измененные определения переменных и функций, но они не будут удалять ранее загруженные определения,

С этим мои вопросы:

  • Можно ли очистить определения Emacs в памяти и перезагрузить .emacs без необходимости полностью перезапускать Emacs?
  • Если это невозможно, существует ли способ перезапустить Emacs (чтобы я разбирал свой .emacs файл с нуля), прося его повторно открыть все буферы, которые у меня были открыты?
4b9b3361

Ответ 1

Отменить все, что могло быть сделано в вашем .emacs, невозможно.

Вы можете сохранить и восстановить сеанс emacs с помощью desktop. Закройте с помощью M-x desktop-save RET C-x C-c, а затем восстановите с помощью emacs -f desktop-read.

См. (info "(emacs) Saving Emacs Sessions") для получения дополнительной информации. (Вы также можете customize desktop-save-mode, чтобы это поведение было по умолчанию.)

Ответ 2

Этот вопрос является дубликатом, но поскольку он имеет принятый ответ, я повторю свои комментарии о библиотеке Desktop, которая заключается в том, что он хранит определенное количество состояний (режимы и локальные переменные) с каждым сохраненным им буфером и он восстанавливает это же состояние при перезагрузке этих файлов.

В вашем случае, конечно, это именно то, чего вы не хотите.

См. Обновить .emacs для всех активных буферов для простого способа вернуть (перезагрузить) все буферы.

Объединение двух подходов позволит вам перезапустить Emacs с восстановлением файлов Desktop, после чего вы сможете вернуть все файлы.