Réponses:
Vous pouvez définir des groupes de filtres pour des projets connus en utilisant quelque chose comme ceci:
;; 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)
Mise à jour
Depuis que j'ai écrit cette réponse à l'origine, @sanityinc a créé une variante ibuffer-vc
qui crée des groupes de filtres par racine de projet de projectile. Vous pouvez le trouver ibuffer-projectile
sur MELPA ou sur GitHub .
projectile-switch-buffer
. Ibuffer est destiné à gérer une grande quantité de tampons, et c'est pourquoi il a un regroupement et un filtrage. J'aime l'approche actuelle qu'elle regroupe en fonction de la liste des projets connus, ce qui la rend plus cohérente avec Projectile.
Projet est entendu dans le sens Projectile du terme.
En utilisant Projectile, il existe un moyen de basculer vers un tampon dans un projet spécifique C-c p b
Puis-je suggérer ibuffer-vc ? Un moyen de regrouper vos tampons par leur répertoire racine vc parent.
ibuffer-vc
est assez proche de ce que je recherche. Mais il écrase mon ibuffer-saved-filter-groups
; existe-t-il un moyen de créer des groupes VC en plus de mes groupes standard?
nox/ibuffer-apply-filter-groups
.