2014-10-19 184 views
4

如何在Emacs上获得当前缓冲区的数量(不包括内部缓冲区)?得到Emacs中缓冲区的数量

我有这个,但它看起来令人费解

;; number of buffers excluding internal buffers         
(apply '+ (mapcar 
      (lambda (b) 
      (if (or (buffer-file-name b) 
        (not (string-equal (substring (buffer-name b) 0 1) " "))) 
       1 0)) 
      (buffer-list))) 

它的作用是计算,它们或者访问一个文件或者其 名称不以空格开始的缓冲区。

我只想添加帧标题的缓冲区数量。

回答

6

我不知道一个单一的功能,这是否的,但这里是你的 代码,简化:

(cl-count-if 
(lambda (b) 
    (or (buffer-file-name b) 
     (not (string-match "^ " (buffer-name b))))) 
(buffer-list))