便携式Emacs? (Emacs服务器无法正常工作)

时间:2008-12-11 14:20:48

标签: emacs portability

我已经看到了一些关于使emacs可移植(在Windows上)的建议。我在我的site-start.el中有这个:

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

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

我更改了HOME变量,这样不仅可以读取我的.emacs初始化文件(和其他初始化文件),而且emacs生成的所有内容都将保留在程序目录中,不需要我一个一个地指定所有内容的路径。

这很好但是emacs服务器不能正常工作;我收到错误消息“无法建立连接,因为目标计算机主动拒绝它。”如果我不更改我的HOME var,则emacs服务器可以正常工作。有办法解决这个问题吗?

2 个答案:

答案 0 :(得分:6)

Quoth the Emacs manual

当您启动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中。)
[你可能也告诉Emacsclient使用-s查找正确的地方“socket”,但这在Windows上不起作用。在Unix上(至少在带有Aquamacs的Mac OS X上)套接字会在/tmp/emacs501/server之类的地方(501是我的UID)。]

[哦,顺便说一句,请看一下这个问题:How can I have a portable Emacs?也许有些东西会对你有所帮助,或者你有什么可以补充的: - )]

答案 1 :(得分:0)

最新包装的便携式应用程序版本的emacs 23.2 here.初步测试在这里工作。