当使用 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 个赞