2

我已经在使用Emacs 服务器解决文档中描述的一些问题,例如,我(server-start).emacsinit 文件中有,并且我已经设置了EDITORenv。变量,emacsclient以便git其他程序在需要我输入文本或记录消息时不会打开新的 Emacs 实例。到目前为止,这工作得很好。

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

Emacs 服务器可以做到这一点吗?我相信根据我在网上阅读的内容,答案是肯定的,但是:

我的问题:

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

4

2 回答 2

8

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

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

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

于 2013-02-26T21:58:24.043 回答
4

emacs --daemon(server-start).emacs.

下次使用emacsclient fileemacsclient -n fileemacsclient -c仅用于连接。

像往常一样离开附加C-x C-c

于 2014-03-14T11:26:50.697 回答