【问题标题】:Emacs can't start serverEmacs 无法启动服务器
【发布时间】:2014-12-12 20:52:57
【问题描述】:

我尝试在 Windows 8 机器上启动 emacs 服务器。我下载了 vanilla emacs,并使用runemacs.exe 运行它。然后我运行M-x server-start,这个命令的执行大约需要3分钟,之后有一个~/.emacs.d/server/server文件,内容如下:

127.0.0.1:65118 5868
r@Twzr]X-VjCB`g\&t;U1<bj3X]}6!8XUz~P;{q9'AIj322!w0O1XK[/K4v>ZOK*

并且 emacs 服务器无法运行:当我尝试使用 emacsclientw.exe 打开文件时,它显示没有服务器。

显然 emacs 尝试启动服务器但失败了。我是~/.emacs.d 文件夹的所有者。

【问题讨论】:

  • 不就是一个旧的服务器文件吗?如果您将其删除并重试,会发生什么情况?
  • @choroba:试过了——不,不是 emacs 制作的文件,经过 3 分钟的server-start
  • 请制定/添加一个明确的问题。提前致谢。顺便说一句:您对~/.emacs.d/server 有独家阅读权限吗? AFAIK emacs 将其他人具有读取权限的服务器目录视为安全风险。您是否仔细阅读了消息缓冲区?里面可能有一些问题指标。
  • @Tobias:是的,我让自己成为了~/.emacs.d 的唯一所有者。基本上我运行 emacs 并尝试启动服务器。然后 Emacs 挂起 3 分钟,之后没有服务器在运行,而是我有一个 ~/.emacs.d/server/server 文件,其内容已发布。
  • 尝试致电emacs --daemon --debug-init 并告诉我们会发生什么。如果出现错误,请尝试emacs -Q --daemon --debug-init

标签: windows emacs windows-8 permissions localhost


【解决方案1】:

您正在使用非标准套接字目录。默认情况下,套接字存储在/tmp/emacsXYZQ 中(其中XYZQ 是一个数字)。 emacsclient 不能指望知道你把插座放在哪里,所以你需要告诉它(如果它不是通常的地方)。您可以使用-s 命令来执行此操作。

emacsclient -s ~/.emacs.d/server/server

通常,您可以通过添加使这更方便

EMACS_SERVER_FILE=~/.emacs.d/server/server

到您的 ~/.profile 并正常使用 emacsclient,但我不确定 Windows 的模拟是什么。

参考:

【讨论】:

  • 我面临的问题是在 Windows 8 上。所以没有/tmp/emacsXYZQ。此外,我没有设置任何套接字目录——创建服务器文件的是 emacs。问题不是我无法连接到服务器,而是我无法启动它。
  • 但是您的两个建议 - 1:emacs -Q --daemon --debug-init 和 2:重新定义 server-socket-dir 都很好。一周后我再拿到这台电脑后试试(这是我学生的电脑,我会在下节课上试试)。
  • 我认为您的意思是-f (--server-file),而不是-s (--socket-name)。特别是因为-s 在 Windows 上不受支持。
猜你喜欢
  • 2011-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-28
  • 2019-07-20
  • 2013-12-08
  • 2015-08-15
  • 2021-07-08
相关资源
最近更新 更多