2013-09-28 36 views
10

你怎么关闭一个emacsclient帧而不杀死服务器/守护如何关闭emacsclient GUI框架而不杀死服务器

在GUI做C-x C-cC-x 5 0将退出这两个框架和服务器(和其他客户端),从终端完成时,而这只是退出当前帧。

(PS:我的emacs的版本是24.2,GTK我试过没有初始化文件,看它是否是从我的配置来了,但结果都是一样的。)

+0

很长一段时间,我遇到了emacs gtk版本的问题,并切换到另一个工具包。 freenode的#emacs频道的人员指出,这是gtk中长期存在的一个bug,会导致服务器崩溃。尝试使用清晰的工具包构建。 –

回答

7

它在minibuffer时说emacsclient开始,即“使用缓冲区完成时,键入Cx#”。

+0

'C-x#'也会在从gui中实现时终止服务器 – AdrieanKhisbe

+3

这对我来说当然不适合。 – Dolda2000

+0

我知道这不应该。 :/ 你使用的是什么版本? – AdrieanKhisbe

4

启动emacsclient-n/--no-wait标志:

不要等待服务器返回

您不需要关闭客户端在这种情况下。

如果你有一个接近emacsclient刚刚杀缓冲服务器将保持不变。

6

我认为这里的关键是你需要在守护进程模式下启动服务器。如果服务器在现有的emacs进程中运行 - 例如,如果您的初始化文件中有(server-start) - 服务器将随着emacs进程而死亡。

有一对夫妇的开始在守护进程模式的服务器的方式:

  • 呼叫emacs与​​命令行选项
  • 呼叫emacsclient与命令行选项,这将影响运行emacs --daemon然后尝试连接到它

一旦你的服务器处于守护进程模式,你应该能够关闭任何框架和守护进程将继续坐着等待进一步的连接。

0

我使用Debian和i3以及OSX。我通常通过窗口管理器的关闭窗口快捷方式退出emacsclient GUI框架。例如,在OSX中,我使用“Command + w”关闭客户端GUI框架而不会终止服务器,并且在i3中,我使用“Super + Shift + q”(i3的默认关闭窗口)退出客户端框架。

2

因为你从现有的框架跑(server-start),该框架是不是emacsclient框架,和关闭最后一个这样的框架明显得到相同的待遇C-x C-c:它会退出Emacs。

如果您使用emacs --daemon,可能使用ALTERNATE_EDITOR=''技巧,您不会有这个问题;你可以使用emacsclient -n -c来打开一个GUI框架,关闭它后,守护程序就会坐在等待你打开一个新的框架,无论是基于图形还是基于终端。

+0

我甚至可以通过systemd启动它,如在WikEmacs中所述:http://wikemacs.org/wiki/Emacs_server#Adding_To_OS_Startup – MKesper