2008-12-08 43 views
9

我偶尔打算在Emacs上打C-x C-c,打算打C-x或C-c。当然,这将关闭所有未确认的开放帧和缓冲区。我知道我可以让Emacs提示“你确定要退出?”,但我不想一直这么做,这会让人讨厌。我只是希望它在打开多于N个文件(或缓冲区)时执行此操作。如何计算Emacs中打开的缓冲区/文件的数量?

所以我想CX抄送结合到一起的线功能:

(if (< number of open buffers n) 
    (save-buffers-kill-emacs) 
    (are-you-sure)) 

但我无法弄清楚如何获得(开放缓冲区的数目或开放的帧数,或打开文件的数量等)。

回答

9

这是我用:

(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,谁听起来像一个迷人的家伙;它可从his website获得。

4

另外,您可以考虑使用桌面模式,它会在您再次启动Emacs时自动恢复您的缓冲区。只需添加

(desktop-save-mode 1) 

到您的.emacs。 见GNU Emacs manualEmacswiki

相关问题