Я использую emacs в режиме демона, и у меня также есть набор переменных initial-buffer-choice
. Иногда emacs дает сбой, когда я редактирую файл, который использую для initial-buffer-choice
. В этом случае, когда я запускаю emacs с параметром --daemon, он зависает с сообщением:
"todo.org has auto save data; consider M-x recover-this-file"
Поскольку я в основном запускаю демон из сценария инициализации, я не могу подтвердить или опровергнуть этот диалог, поэтому демон зависает навсегда. Как в этом случае обойти уведомление об автосохранении данных? Я не возражаю против потери данных автоматического сохранения, если это необходимо.
Вот моя попытка сделать это:
(defadvice command-line
(around my-command-line-advice)
"Be non-interactive while starting a daemon."
(if (and (daemonp)
(not server-process))
(let ((noninteractive t))
ad-do-it)
ad-do-it))
(ad-activate 'command-line)
Однако это не работает. Я все еще получаю то же поведение зависания. В самом деле, размещение вызова «сообщение» внутри совета показывает, что совет вообще не вызывается.
Аналогичный вопрос: запуск emacs-daemon зависает, если в файле есть данные автосохранения. Однако это решение не работает для initial-buffer-choice
. Принятый ответ, похоже, был отредактирован из предыдущей версии, которая, возможно, успешно определила совет по command-line
, как я пытался это сделать, но, к сожалению, эта версия больше не существует и заменена версией для desktop.el.
"... has auto save data; consider ..."
— это просто сообщение, а не диалог. Причина, по которой демон зависает, должна быть чем-то другим. - person Rörd   schedule 21.10.2013after-find-file
вfiles.el
, вы сможете понять, как решить проблему с подтверждением. В качестве альтернативы взгляните на функцию, которая вызываетafter-find-file
при загрузке Emacs с помощью--daemon
. - person lawlist   schedule 21.10.2013