Risposte:
Puoi definire gruppi di filtri per progetti noti usando qualcosa del genere:
;; 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)
Aggiornare
Da quando ho scritto originariamente questa risposta, @sanityinc ha creato una variante ibuffer-vc
che crea gruppi di filtri in base alla radice del progetto proiettile. Puoi trovarlo ibuffer-projectile
su MELPA o su GitHub .
projectile-switch-buffer
. Ibuffer è pensato per la gestione di grandi quantità di buffer, ed è per questo che ha raggruppamenti e filtri. Mi piace l'approccio attuale che raggruppa in base all'elenco di progetti noti, rendendolo più coerente con Projectile.
Progetto è inteso nel senso proiettile della parola.
Utilizzando Projectile, c'è un modo per passare a un buffer all'interno di un progetto specifico C-c p b
Posso suggerire ibuffer-vc ? Un modo per raggruppare i buffer in base alla directory principale vc principale.
ibuffer-vc
è abbastanza vicino a quello che sto cercando. Ma sovrascrive il mio ibuffer-saved-filter-groups
; c'è un modo per creare i gruppi VC in aggiunta ai miei gruppi standard?
nox/ibuffer-apply-filter-groups
.