如何切换 ibuffer 的分组方式

当使用 ibuffer 时,我希望能够以多种方式对 buffers 进行分组,例如按照目录、项目、后缀或者不分组,这样在浏览 buffer 列表时可以方便地进行切换分组并进行操作。请问 ibuffer 是否支持这个功能?

1 个赞

可以参考 ibuffer-vc 这个插件写一个根据文件所属项目生成 ibuffer group 的函数,然后把它绑定到 ibuffer 的 keymap 上,要切换时按一下

我目前使用 ibuffer-vc 的方式如下:

;;config for ibuffer-vc
;;copied from ibuffer-vc.el
(defun init-ibuffer-group-by-vc-and-default ()
  (interactive)
  (let* ((vc-res (ibuffer-vc-generate-filter-groups-by-vc-root))
	 (new-group (append vc-res (cdr (assoc "default" ibuffer-saved-filter-groups)))))
    (setq ibuffer-filter-groups new-group)
    (let ((ibuf (get-buffer "*Ibuffer*")))
      (when ibuf
        (with-current-buffer ibuf
          (pop-to-buffer ibuf)
          (ibuffer-update nil t))))))
(define-key ibuffer-mode-map (kbd "/ '") 'init-ibuffer-group-by-vc-and-default)

这样按 / ' 之后 ibuffer-vc 的分组方式就添加到现有分组里了

我更偏爱 ibuffer-projectile,分组更自然。

1 个赞