Объект: в терминале, при запуске, в одном кадре, восстановить рабочее пространство emacs. т.е. восстановить все "windows" до состояния, предшествующего C -x C - c.
. Описание: Восстановление окна можно просто выполнить в emacs GUI, добавив (desktop-save-mode 1)
в файл init.el.
Однако, когда emacs запускается как демон, emacsclient не работает так же. При такой же настройке он по-прежнему запоминает основной режим файла, а также другие буферы перед выходом, но макет окна не будет восстановлен. Отображается только 1 главное окно в зависимости от настроек по умолчанию.
Я провел небольшое исследование, изучил некоторые функции / переменные, используя встроенную документацию elisp. Я проверил (desktop-save-buffer 1)
, framset-save
, framset-restore
и, похоже, ни один из них не работает. Также я проверил похожие вопросы, опубликованные ранее, и нашел чей-то ответ, используя следующий скрипт:
(setq desktop-restore-forces-onscreen nil)
(add-hook 'desktop-after-read-hook
(lambda ()
(frameset-restore
desktop-saved-frameset
:reuse-frames (eq desktop-restore-reuses-frames t)
:cleanup-frames (not (eq desktop-restore-reuses-frames 'keep))
:force-display desktop-restore-in-current-display
:force-onscreen desktop-restore-forces-onscreen)))
Однако этот скрипт содержит ошибки, он открывает фрейм "GUI" и не может быть правильно закрыт ( открывать автоматически всякий раз, когда закрывается, и, если возможно, я предпочитаю открывать фрейм в терминале, так что возможна настройка терминала «texteditor», с некоторыми другими незначительными достоинствами). Извините за утомительный вопрос, любая помощь будет оценена.