我已经在使用Emacs server来解决文档中描述的一些问题,例如,我的(server-start)
初始化文件中有.emacs
,我设置了{{1} env。变量为EDITOR
,以便emacsclient
和其他程序在需要我输入文本或日志消息时不会打开新的Emacs实例。到目前为止,这种方法很有效。
我现在想知道我是否可以使用Emacs服务器:我经常通过git
会话远程启动Emacs。有时我需要关闭ssh -X
会话(例如,我需要重新启动本地计算机)并重新连接。如果不是完全关闭Emacs,我可以很好地从Emacs 分离,然后重新连接。
这可以用Emacs服务器吗?我相信我在网上看到的答案是肯定的,但是:
如何从Emacs服务器安全地分离,以及稍后重新安装?
答案 0 :(得分:7)
如果直接从SSH会话中启动Emacs,则无法正常分离,因为Emacs进程成为远程shell创建的进程组的一部分,如果shell存在,它将终止其进程组中的所有进程。
但是,您可以先使用emacs --daemon
以守护程序模式启动Emacs。 Emacs将加载配置,启动编辑服务器(即使您的配置中没有明确的(server-start)
),也可以从终端分离。这个Emacs守护进程将在不同的SSH会话中保持活动状态。
随后,仅使用emacsclient
连接到正在运行的守护程序。
答案 1 :(得分:3)
emacs --daemon
中的 (server-start)
或.emacs
。
接下来使用emacsclient file
,emacsclient -n file
或emacsclient -c
进行附加。
照常离开C-x C-c
。