3

我需要在关闭 Emacs (Cx Cc) 之前调用“my-global-modified-flag-update”函数。此函数将我不需要保存的缓冲区标记为未修改,从而避免 Emacs 向我询问。当然,它必须作为第一个任务运行,在 Emacs 询问我保存文件之前。

这是我对键盘命令“Cx Cc”(save-buffers-kill-terminal)的简单解决方案

(defun my-kill-emacs()
   (interactive)
   (my-global-modified-flag-update)
   (save-buffers-kill-terminal))
(global-set-key (kbd "C-x C-c") 'my-kill-emacs)

用鼠标关闭 Emacs 时如何做同样的事情?(点击窗口右上角 X)

4

2 回答 2

3

不要那样做。只需使用kill-emacs-hookor kill-emacs-query-functions。请参阅 Elisp 手册,节点Killing Emacs

于 2013-09-23T17:12:34.807 回答
3

我能想到的最简单的选择是,如果钩子对你来说还不够,那就是建议save-buffers-kill-emacs

试试这个:

(defadvice save-buffers-kill-emacs (before update-mod-flag activate)
    (my-global-modified-flag-update))
于 2013-09-24T08:35:09.757 回答