回答:
次のようなものを使用して、既知のプロジェクトのフィルターグループを定義できます。
;; 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)
更新
私が最初にこの回答を書いてから、@ sanityincはibuffer-vc
、発射体プロジェクトルートによってフィルターグループを作成するバリアントを作成しました。ibuffer-projectile
MELPAまたはGitHubで見つけることができます。
projectile-switch-buffer
です。Ibufferは大量のバッファを管理するためのものであり、そのため、グループ化とフィルタリングが行われます。既知のプロジェクトリストに基づいてグループ化し、Projectileとの一貫性を高める現在のアプローチが気に入っています。
プロジェクトは、単語の射影の意味で意味されます。
Projectileを使用して、特定のプロジェクト内のバッファーに切り替える方法があります C-c p b
ibuffer-vcを提案してもいいですか?バッファを親のvcルートディレクトリでグループ化する方法。
ibuffer-vc
私が探しているものにかなり近いです。しかし、それは私のを上書きしますibuffer-saved-filter-groups
。標準グループに加えてVCグループを作成する方法はありますか?
nox/ibuffer-apply-filter-groups
。