Jawaban:
Anda dapat menentukan grup filter untuk proyek yang diketahui menggunakan sesuatu seperti ini:
;; Define ibuffer filter groups for each known project
(defun my/define-projectile-filter-groups ()
(when (boundp 'projectile-known-projects)
(setq my/project-filter-groups
(mapcar
(lambda (it)
(let ((name (file-name-nondirectory (directory-file-name it))))
`(,name (filename . ,(expand-file-name it)))))
projectile-known-projects))))
;; Set up default ibuffer filter groups
(setq ibuffer-saved-filter-groups
(list
(cons "default"
(append
(my/define-projectile-filter-groups)
;; ... whatever other groups you want, e.g.
'(("dired" (mode . dired-mode))
("erc" (mode . erc-mode)))
))))
;; Enable default groups by default
(add-hook 'ibuffer-mode-hook
(lambda ()
(ibuffer-switch-to-saved-filter-groups "default")))
;; You probably don't want to see empty project groups
(setq ibuffer-show-empty-filter-groups nil)
Memperbarui
Karena saya awalnya menulis jawaban ini, @sanityinc telah membuat varian ibuffer-vc
yang membuat grup filter dengan projectile project root. Anda dapat menemukannya ibuffer-projectile
di MELPA atau di GitHub .
projectile-switch-buffer
. Ibuffer dimaksudkan untuk mengelola buffer dalam jumlah besar, dan itulah sebabnya ia memiliki pengelompokan dan penyaringan. Saya suka pendekatan saat ini yang dikelompokkan berdasarkan daftar proyek yang dikenal, membuatnya lebih konsisten dengan Proyektil.
Proyek dimaksud dalam arti kata proyektil.
Menggunakan Proyektil, ada cara untuk beralih ke buffer di dalam proyek tertentu C-c p b
Bolehkah saya menyarankan ibuffer-vc ? Cara untuk mengelompokkan buffer Anda berdasarkan direktori root vc induknya.
ibuffer-vc
cukup dekat dengan apa yang saya cari. Tapi itu menimpa milikku ibuffer-saved-filter-groups
; apakah ada cara untuk membuat grup VC sebagai tambahan ke grup standar saya?
nox/ibuffer-apply-filter-groups
.