当使用Emacsw32在Windows上关闭当前窗口时,如何使Emacs服务器运行?

StackOverflow https://stackoverflow.com/questions/2001485

  •  18-09-2019
  •  | 
  •  

我在用着 emacsw32(修补) 在窗户上。 Emacs正在以服务器模式运行,因此随后呼叫emacsClientW在同一服务器会话中打开文件。

我有 CX CC 映射以使当前帧不可见,而不是杀死Emacs服务器进程。我想单击窗口的 X (关闭)按钮也只需隐藏框架而不像当前那样终止服务器进程。

有任何想法吗 ?谢谢!

有帮助吗?

解决方案

当然,我有一种方法。可能会有改进,但这是一个很好的起点。

首先,我设置了一个变量,并建议Kill-Emacs功能

(defvar bnb/really-kill-emacs nil)
(defadvice kill-emacs (around bnb/really-exit activate)
    "Only kill emacs if the variable is true"
    (if bnb/really-kill-emacs
        ad-do-it)
      (bnb/exit))

BNB/退出功能只会使框架像您所限制的那样看不见 CX CC.

然后,如果有必要,我有一个额外的功能可以正确退出EMAC。这将设置变量并呼叫杀伤emacs如下。

(defun bnb/really-kill-emacs ()
    (interactive)
    (setq bnb/really-kill-emacs t)
    (kill-emacs))
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top