2

当使用客户端在守护程序中运行 emacs 并且我点击 Cx k 时,它说:Emacs 缓冲区仍然有客户端。你确定你要退出吗?

但是当使用 Cx# 时,它会立即退出。

我不明白其中的区别。如果 Cx k 在客户端中,为什么首先不能正常运行?

我发现这个片段应该使 Cx k 行为正常,但我不明白其中的区别。

此外,当 emacs 客户端启动时,它会从前一个缓冲区启动几秒钟,然后打开新缓冲区。emacs server 的目的不是加快初始启动时间吗?为什么会这样做/我该如何解决?在初始加载时,它会从头开始几秒钟。

4

2 回答 2

5

我无法写出C-x#比 Emacs 已经给你的更好的解释了。只需键入C-hkC-x#

我假设这会C-xk警告您,因为您没有使用明确告诉客户端您已完成的机制,并且您可能试图从任何Emacs 帧中终止缓冲区(除非您将 Emacs 作为守护程序运行,会有非客户端帧),它确保您知道缓冲区与某处的客户端相关联

查询本身来自server-kill-buffer-query-function哪个被添加到kill-buffer-query-functions,并且可能无法知道从哪里发出杀戮。它有以下评论:

;; Ask before killing a server buffer.
;; It was suggested to release its client instead,
;; but I think that is dangerous--the client would proceed
;; using whatever is on disk in that file. -- rms.
于 2014-01-23T20:08:31.267 回答
2

Basically C-x k kills a buffer and C-x # notifies the emacs server that you are done editing and that the client may exit. Kind of like killing a process with kill or exiting it correctly.

于 2014-01-23T20:18:09.440 回答