Emacs buffer-menu:如何只显示文件+ dired缓冲区?

时间:2011-10-27 09:47:16

标签: emacs

我广泛使用缓冲区菜单在缓冲区之间切换。我想列出文件或dired的缓冲区。我怎么能这样做?

3 个答案:

答案 0 :(得分:6)

您可以使用ibuffer

您可以在那里定义缓冲区组。您可以标记缓冲区,使用过滤和排序,在标记的缓冲区中搜索/替换以及其他有用的东西。

对于你的情况,只需放入钩子(ibuffer-filter-by-filename ".")

这是我的.emacs的一个例子。

(require 'ibuffer)

(setq ibuffer-saved-filter-groups
      (quote (("default"
               ("dired" (mode . dired-mode))
               ("java" (mode . java-mode))
               ("org" (mode . org-mode))
               ("sql" (mode . sql-mode))
               ("xml" (mode . nxml-mode))))))    

(setq ibuffer-show-empty-filter-groups nil)

(add-hook 'ibuffer-mode-hook 
 (lambda () 
  (ibuffer-switch-to-saved-filter-groups "default")
  (ibuffer-filter-by-filename "."))) ;; to show only dired and files buffers

EDIT。如果要过滤掉临时缓冲区(名称以*开头),可以设置以下过滤器(正则表达式)

(ibuffer-filter-by-name "^[^*]")

它表示缓冲区名称应以除*。

之外的任何字符开头

答案 1 :(得分:2)

Buffer Menu+有你想要的。它将Dired缓冲区视为文件缓冲区,因此当您使用 C-u C-x C-b list-buffersbuffer-menu)时,您只能获得Dired和文件缓冲区。

答案 2 :(得分:0)

使用前缀参数(buffer-menu)调用C-u M-x buffer-menu将仅列出正在访问文件的缓冲区。不幸的是,我看不到在该列表中包含dired的简单方法。