我(server-start)
在我的.emacs文件中设置了变量HOME、ALTERNATE_EDITOR(=runemacs.exe)和EMACS_SERVER_FILE。
当我开始
emacsclientw.exe test.txt
第一次,我期望 emacs 启动并显示缓冲区。test.txt
实际情况是 emacs 启动后,缓冲区划痕显示时,消息行显示(新文件)并且缓冲区 test.txt 存在,但尚未显示。(这不是现在真正困扰我的事情)
当我现在执行
emacsclientw.exe 测试2.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.
在我看来,这听起来好像第一个实例启动了一个服务器,但第二个实例没有连接到它,而是尝试再次启动服务器。
可能是什么问题呢?
答案1
我也遇到了同样的问题。目前,我使用了以下解决方案。
添加到您的 .emacs 文件:
(load "server")
(unless (server-running-p) (server-start))
解决方案来自如果emacs服务器还没有启动,如何启动它?
答案2
你应该使用以下方式启动 Emacs
runemacs.exe
之后你可以使用
emacsclientw.exe test.txt
答案3
从表面上看,您的 emacs 服务器正在无法找到的位置创建其服务器文件。要进一步调试该问题,您可以运行 emacs,并查看是否确实创建了emacsclientw
指定的服务器文件。EMACS_SERVER_FILE
在我的设置中,我使用的唯一环境变量是HOME
。自定义变量server-name
保留其默认值(即server
)。这会导致$HOME/.emacs.d/server/server
在运行 emacs 时创建该文件。并且由于此位置是默认位置,因此emacsclientw.exe
能够找到此文件并确定如何与 emacs 通信。
我快速查看了一下server.el
我的系统,没有看到任何相关信息EMACS_SERVER_FILE
。如果您使用非标准位置,则这可能是导致问题的原因。
答案4
如果你已经(server-start)
在 .emacs 文件中了,你可能需要查看 Emacs Wiki。它有一些关于使用MS Windows 下的 emacsclient。