我在 Windows 上使用EmacsW32(已修补)。Emacs 在服务器模式下运行,以便随后对 emacsclientw 的调用在同一服务器会话中打开文件。
我已经映射了Cx Cc以使当前帧不可见并且不会杀死 emacs 服务器进程。我想单击窗口的X(关闭)按钮也只是隐藏框架而不像当前那样终止服务器进程。
有任何想法吗 ?谢谢!
我在 Windows 上使用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/exit 函数只是使框架不可见,就像您绑定到Cx Cc一样。
然后,如果有必要,我还有一个附加功能可以正确退出 emacs。这将设置变量并按如下方式调用 kill-emacs。
(defun bnb/really-kill-emacs ()
(interactive)
(setq bnb/really-kill-emacs t)
(kill-emacs))