我偶尔会在Emacs中遇到Cx Cc,而我打算只打Cx或Cc.当然,这会关闭所有打开的帧和缓冲区而不进行确认.我知道我可以让Emacs提示"你确定要退出吗?",但我不想一直这样做,这会让人讨厌.我只是希望它在打开超过N个文件(或缓冲区)时执行此操作.
所以我想将Cx Cc绑定到一个函数:
(if (< number of open buffers n) (save-buffers-kill-emacs) (are-you-sure))
但我无法弄清楚如何获取打开缓冲区的数量(或打开的帧数,或打开的文件数等).
这是我使用的:
(defun count-buffers (&optional display-anyway) "Display or return the number of buffers." (interactive) (let ((buf-count (length (buffer-list)))) (if (or (interactive-p) display-anyway) (message "%d buffers in this Emacs" buf-count)) buf-count))
我偷了它 ,但不记得从哪里.来自John Sturdy,听起来像一个迷人的家伙; 它可以从他的网站上获得.