4

У меня есть (server-start) в моем файле .emacs, и я установил переменные HOME, ALTERNATE_EDITOR (= runemacs.exe) и EMACS_SERVER_FILE.

Когда я начну

emacsclientw.exe  test.txt

в первый раз, я ожидаю, что emacs запустит и отобразит буфер test.txt То, что происходит, - это то, что emacs запускается, и отображается царапина буфера, строка сообщения говорит (Новый файл) и буфер test.txt существует, но еще не существует отображается. (Это не совсем то, что беспокоит меня сейчас)

Когда я сейчас выполню

emacsclientw.exe test2.txt

Я ожидаю, что используется тот же emacs и создается новый буфер test2.txt .

Но что происходит, так это то, что новый emacs запускается с открытым буфером предупреждения:

Warning (server): Unable to start the Emacs server.
There is an existing Emacs server, named "server".
To start the server in this Emacs process, stop the existing
server or call `M-x server-force-delete' to forcibly disconnect it.

Для меня это звучит так, как будто первый экземпляр запускает сервер, но второй не подключается к нему, а пытается снова запустить сервер.

В чем может быть проблема?

4 ответа4

1

У меня такая же проблема. В настоящее время я использовал следующее решение.

Добавьте в ваш файл .emacs:

(load "server")
(unless (server-running-p) (server-start))

Решение приходит из Как запустить сервер Emacs, только если он не запущен?

0

Вы должны начать Emacs, используя

runemacs.exe

После этого вы можете использовать

emacsclientw.exe  test.txt
0

Если у вас уже есть (server-start) в вашем файле .emacs, вы можете проверить Emacs Wiki. В нем есть хорошая информация об использовании emacsclient под MS Windows.

0

Судя по всему , ваш сервер emacs создает свой файл сервера в месте, где emacsclientw не может найти. Чтобы продолжить отладку проблемы, вы можете запустить emacs и увидеть, что файл сервера, указанный в EMACS_SERVER_FILE , действительно создан.

В моей настройке единственная переменная окружения, которую я использую, это HOME . Пользовательская переменная server-name остается со значением по умолчанию (т. Е. server). Это вызывает создание файла $HOME/.emacs.d/server/server при запуске emacs. А поскольку это местоположение по умолчанию, emacsclientw.exe может найти этот файл и определить, как общаться с emacs.

Я быстро взглянул на server.el в своей системе и ничего не увидел в нем EMACS_SERVER_FILE . Если вы используете нестандартное местоположение, это может быть причиной ваших проблем.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .