15

如何在不杀死服务器/守护进程的情况下关闭 emacsclient 框架

在 gui 中执行C-x C-cC-x 5 0操作将退出框架和服务器(以及其他客户端),而这只是在从终端完成时退出当前框架。

(Ps:我的 emacs 版本是 24.2,gtk。我试过不使用 init-file 来查看它是否来自我的配置,但结果是一样的)

4

6 回答 6

12

从 minibufferemacsclient开始时:

完成缓冲区后,键入 Cx #

于 2013-09-28T17:19:39.290 回答
6

我认为这里的关键是您需要以守护程序模式启动服务器。如果服务器在现有的 emacs 进程中运行 - 例如,如果您(server-start)的 init 文件中有 - 服务器会因 emacs 进程而死。

有两种方法可以在守护程序模式下启动服务器:

  • emacs使用--daemon命令行选项调用
  • emacsclient使用命令行选项调用,该--alternate-editor=""选项实际上emacs --daemon将为您运行,然后尝试连接到它

一旦服务器处于守护程序模式,您应该能够关闭任何帧,并且守护程序将继续等待进一步的连接。

于 2013-11-01T14:01:05.943 回答
4

以/标志开头将emacsclient-n--no-wait

不要等待服务器返回

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

如果您必须关闭emacsclient,只需终止缓冲区,服务器将保持不变。

于 2013-09-28T17:29:58.447 回答
2

因为您(server-start)从现有框架运行,所以该框架不是 emacsclient 框架,并且关闭最后一个这样的框架显然会得到与 相同的处理C-x C-c:它将退出 Emacs。

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

于 2014-07-07T03:25:54.027 回答
1

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

于 2014-06-02T19:18:09.327 回答
0

在现代版本的 GNU Emacs(27+) 中,它说

完成此帧后,键入 Cx 5 0

于 2021-11-06T01:29:15.803 回答