emacs里能否自定义SIGHUP信号的处理?

测试了一下, 好像无法定义.

另外, emacs收到此信号后, 好像会无条件退出. 会保存desktop会话, 但是不保存文件修改.

现在想自定义一个函数, 退出前保存所有文件修改. 这个该怎么实现? 主要在终端里面用到, 终端窗口关闭的时候.

https://www.gnu.org/software/emacs/manual/html_node/elisp/Killing-Emacs.html

sighup 时 Emacs 会 call kill-emacs, 想执行代码要加在 kill-emacs-hook 上.

区分是不是 sighup 估计不可能了,虽然 signal code 会作为整数参数传给 kill-emacs ,但在 kill-emacs-hook 里应该得不到 kill-emacs 的参数

好吧. 我是想在终端关闭的时候, 自动保存修改的buffer文件. 但手工退出emacs又不想自动保存, 因为它会提示用户是否保存.

倒不是大问题.

你可以在手工退出时用的函數里設置个變量,在 kill-emacs-hook 里做判斷

1 个赞