Câu trả lời:
Bạn có thể xác định các nhóm bộ lọc cho các dự án đã biết bằng cách sử dụng một cái gì đó như thế này:
;; 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)
Cập nhật
Vì ban đầu tôi đã viết câu trả lời này, @sanityinc đã tạo ra một biến thể ibuffer-vc
tạo các nhóm bộ lọc theo gốc dự án. Bạn có thể tìm thấy ibuffer-projectile
trên MELPA hoặc trên GitHub .
projectile-switch-buffer
. Ibuffer có nghĩa là để quản lý số lượng lớn bộ đệm, và đó là lý do tại sao nó có nhóm và lọc. Tôi thích cách tiếp cận hiện tại mà nhóm dựa trên danh sách dự án đã biết, làm cho nó phù hợp hơn với Projectile.
Project có nghĩa theo nghĩa Projectile của từ này.
Sử dụng Projectile, có một cách để chuyển sang bộ đệm trong một dự án cụ thể C-c p b
Tôi có thể đề nghị ibuffer-vc không? Một cách để nhóm bộ đệm của bạn theo thư mục gốc vc gốc của chúng.
ibuffer-vc
là khá gần với những gì tôi đang tìm kiếm. Nhưng nó ghi đè lên tôi ibuffer-saved-filter-groups
; Có cách nào để tạo các nhóm VC bổ sung cho các nhóm tiêu chuẩn của tôi không?
nox/ibuffer-apply-filter-groups
.