Emacs的便携版?(Emacs服务器无法工作)

7

我看到过一些关于如何将Emacs(在Windows上)变成便携式的建议。我在我的site-start.el文件中加入了以下内容:

(defvar program-dir (substring data-directory 0 -4))

(setq inhibit-startup-message t)
(setenv "HOME" program-dir)

我更改了HOME变量,这样不仅可以读取我的.emacs init文件(和其他init文件),而且由Emacs生成的所有内容都会保留在程序目录中,无需逐个指定路径。

嗯,这个方法很有效,但是Emacs服务器不能正常工作;我收到错误信息“无法建立连接,因为目标计算机积极拒绝了它。” 如果我不更改我的HOME变量,则Emacs服务器可以正常工作。有没有办法解决这个问题?

2个回答

6
引用Emacs手册的话:
当您启动Emacs服务器(通过调用server-start)时,Emacs会创建一个文件,其中包含有关与服务器的TCP连接的信息:Emacs正在运行的主机、它正在侦听的端口以及身份验证字符串。如果需要通过TCP连接到服务器,则emacsclient将使用此信息。默认情况下,该文件位于~/.emacs.d/server/目录中。您可以使用“-f file”或“--server-file=file”选项指定要使用的文件名,也可以通过设置EMACS_SERVER_FILE环境变量来指定文件名。
换句话说:无论从哪里调用emacsclient,您都必须告诉使用${program-dir}/.emacs.d/server/中的文件,可以使用-f或设置EMACS_SERVER_FILE环境变量。(在您启动emacsclient的环境中,而不是在Emacs内部。)
[您还可以使用-s选项告诉Emacsclient查找正确的位置,但这在Windows上不起作用。而且在Unix(至少在Mac OS X上的Aquamacs)上,套接字将位于类似/tmp/emacs501/server的地方(501是我的UID)。]

[顺便说一下,看看这个问题:如何拥有可移植的Emacs?也许有些东西可以帮助您,或者您可以添加一些内容 :-)]


0

这里有一个 Emacs 23.2 的便携应用程序版本的初始打包(此处)。在这里进行了初步测试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接