附加到Emacs服务器

我已经在文档中描述的一些问题中使用了Emacs服务器。例如,我的.emacs init文件中有(server-start) ,并且已经设置了EDITOR env。 变量为emacsclient以便git和其他程序在需要输入文本或日志消息时不会打开Emacs的新实例。 迄今为止,这工作非常顺利。

我现在想知道是否可以使用Emacs服务器来实现其他功能:我经常通过ssh -X会话远程启动Emacs。 有时我需要关闭ssh会话(例如,我需要重新启动本地计算机)并重新连接。 如果不是完全关闭这个Emacs,我可以从Emacs中分离出来,然后重新连接

Emacs服务器可以吗? 我从网上阅读的东西中相信答案是肯定的,但是:

我的问题:

如何安全地从Emacs服务器分离并稍后重新连接


如果您从SSH会话中直接启动Emacs,则无法正常分离,因为Emacs进程成为远程shell创建的进程组的一部分,并且如果该shell存在,它将终止其进程组中的所有进程。

但是,您可以先使用emacs --daemon启动守护进程模式下的emacs --daemon 。 Emacs将加载配置,启动一个编辑服务器(即使在配置中没有明确的(server-start) ),并从终端上分离。 这个Emacs守护进程将在不同的SSH会话中保持活动状态。

随后,只能使用emacsclient连接到正在运行的守护进程。


.emacs emacs --daemon(server-start)

接下来使用emacsclient fileemacsclient -n fileemacsclient -c进行emacsclient -c

如常离开附加Cx Cc

链接地址: http://www.djcxy.com/p/62183.html

上一篇: attaching to Emacs server

下一篇: Wrong type argument , stringp, 1