我经常使用buffer-menu在不同的buffer之间进行切换。我想要列出那些是文件或dired的buffer。该如何实现?
我经常使用buffer-menu在不同的buffer之间进行切换。我想要列出那些是文件或dired的buffer。该如何实现?
(ibuffer-filter-by-filename ".")
放入钩子即可。(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
编辑。如果您想过滤掉临时缓冲区(其名称以*开头),则可以设置以下过滤器(正则表达式)。
(ibuffer-filter-by-name "^[^*]")
它说缓冲区名称应该以除 * 之外的任何字符开头。
缓冲区菜单+(Buffer Menu+)是您需要的工具。它将Dired缓冲区视为文件缓冲区,因此当您使用C-u C-x C-b(list-buffers
或buffer-menu
)时,您只会看到Dired和文件缓冲区。
使用前缀参数(C-u M-x buffer-menu
)调用buffer-menu
将仅列出正在访问文件的缓冲区。不幸的是,我无法找到一种简单的方法来在该列表中包含dired。
(ibuffer-filter-by-filename ".")
也会过滤掉 dired 缓冲区。 - Sabya