2

我在 Windows 上使用EmacsW32(已修补)。Emacs 在服务器模式下运行,以便随后对 emacsclientw 的调用在同一服务器会话中打开文件。

我已经映射了Cx Cc以使当前帧不可见并且不会杀死 emacs 服务器进程。我想单击窗口的X(关闭)按钮也只是隐藏框架而不像当前那样终止服务器进程。

有任何想法吗 ?谢谢!

4

1 回答 1

2

当然,我有办法做到这一点。可能会有一些改进,但这是一个很好的起点。

首先,我设置了一个变量并建议 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/exit 函数只是使框架不可见,就像您绑定到Cx Cc一样。

然后,如果有必要,我还有一个附加功能可以正确退出 emacs。这将设置变量并按如下方式调用 kill-emacs。

(defun bnb/really-kill-emacs ()
    (interactive)
    (setq bnb/really-kill-emacs t)
    (kill-emacs))
于 2010-01-04T21:07:02.260 回答