Лучший способ - использовать (server-running-p)
из server
упаковки. Например
(require 'server) (unless (server-running-p) (server-start))
Я использую Emacs 23 в Debian Squeeze. ~/.emacs
не содержит никаких server
связанных команд.
Я запускаю Emacs и ввожу C-h v server-mode
, что возвращает nil
, так как ни один сервер не работает. Затем я ввожу M-x start-server
, который запускает сервер Emacs в запущенном экземпляре Emacs.
Тем не менее, переменная server-mode
все еще, nil
когда я проверяю это снова. Только после запуска M-x server-mode
переменная server-mode
получает значение t
. Это ошибка или я что-то не так делаю?
Режим сервера работает нормально после входа start-server
; Я могу использовать, emacsclient
чтобы открыть файл на сервере Emacs. Тем не менее, я хотел использовать переменную server-mode
в строке режима, чтобы указать, работает ли сервер, но если запуск сервера с start-server
не изменяет значение server-mode
, это не будет работать, как ожидалось.
Лучший способ - использовать (server-running-p)
из server
упаковки. Например
(require 'server) (unless (server-running-p) (server-start))
Чтобы получить нужную мне функциональность (от недавно запущенного Emacs), я запускаю M-x server-mode
сервер, а не server-start
. Таким образом, запуск сервера изменяет значение переменной server-mode
на t
.
Я не понимаю, почему запуск сервера с документированным server-start
не устанавливает переменную server-mode
в t
.