暗无天日

=============>DarkSun的个人博客

防止意外退出Emacs

不知道你有没有遇到过这样的问题,有时候会不小心按到 C-c C-x,造成Emacs意外退出.

这个时候如果有个提示确认的动作就好了.

通过配置 confirm-kill-emacs 就能够实现这一功能. 关于 confirm-kill-emacs 的说明如下:

How to ask for confirmation when leaving Emacs.
If nil, the default, don’t ask at all.  If the value is non-nil, it should
be a predicate function; for example ‘yes-or-no-p’.

不过如果直接把它设置成 yes-or-no-p 的话,那么每次退出都要按一下 y 才行,又有点麻烦. 最后能设定一个时间,超过这个时间则默认自动退出. 这个行为可以使用 y-or-n-p-timeout 来实现.

;; 为防止不小心按到C-c C-x,在退出Emacs前需要确认
(setq confirm-kill-emacs (lambda (prompt) (y-or-n-p-with-timeout "是否退出Emacs:(" 10 "y")))

这样,在按下 C-c C-x 后Emacs会提示你"是否退出Emacs",这个时候按下 n 则不会退出Emacs,若10秒内没有输入,则自动退出.