分离并重新连接到Emacs服务器

时间:2013-02-26 21:51:24

标签: emacs

我已经在使用Emacs server来解决文档中描述的一些问题,例如,我的(server-start)初始化文件中有.emacs,我设置了{{1} env。变量为EDITOR,以便emacsclient和其他程序在需要我输入文本或日志消息时不会打开新的Emacs实例。到目前为止,这种方法很有效。

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

这可以用Emacs服务器吗?我相信我在网上看到的答案是肯定的,但是:

我的问题:

如何从Emacs服务器安全地分离,以及稍后重新安装

2 个答案:

答案 0 :(得分:7)

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

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

随后,仅使用emacsclient连接到正在运行的守护程序。

答案 1 :(得分:3)

emacs --daemon中的

(server-start).emacs

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

照常离开C-x C-c