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

Sab*_*bya 5 emacs

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

Ole*_*liv 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
Run Code Online (Sandbox Code Playgroud)

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

(ibuffer-filter-by-name "^[^*]")
Run Code Online (Sandbox Code Playgroud)

它表示缓冲区名称应该以除*之外的任何字符开头.