Respostas:
Você pode definir grupos de filtros para projetos conhecidos usando algo como isto:
;; 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)
Atualizar
Desde que escrevi essa resposta, o @sanityinc criou uma variante ibuffer-vc
que cria grupos de filtros por raiz do projeto de projétil. Você pode encontrar ibuffer-projectile
no MELPA ou no GitHub .
projectile-switch-buffer
. O Ibuffer é destinado ao gerenciamento de grande quantidade de buffers, e é por isso que possui agrupamento e filtragem. Gosto da abordagem atual que agrupa com base na lista de projetos conhecidos, tornando-a mais consistente com o Projectile.
Projeto é entendido no sentido Projétil da palavra.
Usando o Projectile, existe uma maneira de mudar para um buffer dentro de um projeto específico C-c p b
Posso sugerir ibuffer-vc ? Uma maneira de agrupar seus buffers pelo diretório raiz vc do pai.
ibuffer-vc
está bem perto do que estou procurando. Mas substitui o meu ibuffer-saved-filter-groups
; existe uma maneira de criar os grupos de VCs adicionalmente aos meus grupos padrão?
nox/ibuffer-apply-filter-groups
.