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-vcque cria grupos de filtros por raiz do projeto de projétil. Você pode encontrar ibuffer-projectileno MELPA ou no GitHub .
Isso é exatamente o que eu estava procurando, obrigado!
ckruse
Isso pode ser mesclado no Projectile.
Tu Do
Sim, devo enviar uma solicitação pull para apoiar grupos de ibuffer. Surgiu uma vez antes, mas não o acompanhei. : D Examinando mais de perto, pode fazer mais sentido fazer algo como ibuffer-vc e criar os grupos com base nos buffers atuais, e não na lista de projetos conhecidos. Mas uma opção simples seria fazer o projétil definir um grupo de filtros nomeado a partir de projetos conhecidos, como mostrado aqui.
glucas
Como o @Silex observou em outra resposta, alguém já adicionou o suporte ao ibuffer no início deste ano - eu tinha perdido isso. É uma abordagem diferente, pois filtra o ibuffer apenas para o projeto atual, mas parece útil.
glucas
@ Lucas bem, mas acho que os comportamentos atuais do Ibuffer no Projectile são redundantes 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.
Tu Do
5
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-vcestá 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?
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.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.
fonte
ibuffer-vc
está bem perto do que estou procurando. Mas substitui o meuibuffer-saved-filter-groups
; existe uma maneira de criar os grupos de VCs adicionalmente aos meus grupos padrão?nox/ibuffer-apply-filter-groups
.Usando o projétil, você pode simplesmente digitar C-c p I(projectile-ibuffer) e apenas os buffers desse projeto aparecerão no ibuffer.
fonte