附加到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 file , emacsclient -n file或emacsclient -c进行emacsclient -c 。
如常离开附加Cx Cc 。
