Emacs "start-server" не змінює змінну "режим сервера"


2

Я запускаю 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, це не буде працювати, як очікувалося.

Відповіді:


3

Кращим способом є використання (server-running-p)з serverпакету. Наприклад

(require 'server)
(unless (server-running-p)
    (server-start))

1

Щоб отримати функціонал, який мені потрібен / очікую (від щойно запущеного Emacs), я запускаю M-x server-modeзапускати сервер, а не server-start. Запуск сервера таким чином змінює значення змінної server-modeна t.

Я не розумію , чому запуск сервера з документально server-start не встановлює змінну server-modeв t.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.