Мой ~/.emacs
файл запуска хранится в моем домашнем каталоге AFS. Часто, когда я вхожу в систему с Linux, я забываю обновить свои учетные данные AFS, прежде чем пытаться редактировать локальный (не AFS) файл с помощью Emacs.
Когда это произойдет, Emacs попытается загрузить ~./emacs
но не могу, потому что он находится в пространстве AFS, к которому у меня нет доступа. В конце концов (примерно через минуту) Emacs откажется от попыток загрузить ~./emacs
и продолжаем. Но ожидание истечения времени ожидания Emacs раздражает (нажатие Ctrl-Z не прерывает этот тайм-аут).
Я хочу сократить время ожидания Emacs перед тем, как сдаться. Я попробовал это предложение на этот сайт который говорит, что нужно поместить следующий код в site-start.el
файл:
(with-timeout (4)
(load remote-.emacs))
Однако когда я это сделаю, я получаю сообщение об ошибке Error in init file: Symbol's value as variable is void: remote-\.emacs
при запуске Emacs.
Как я могу сократить время ожидания?
Ваш пример не работает, потому что удаленный .emacs не цитируется. Это будет работать:
(с таймаутом (4)
(загрузить "remote-.emacs"))
Однако из emacs docs:
... таймеры могут работать в программе на Лиспе только тогда, когда программа вызывает примитив, который может ждать, with-timeout не может остановить выполнение тела, пока он находится в процессе вычисления ...
Я предполагаю, что emacs заблокирован вашей ОС, ожидающей тайм-аута для удаленного файла через AFS. Таким образом, я подозреваю, что установка тайм-аута в emacs может не иметь никакого эффекта.