Variable: projectile-kill-buffers-filter
projectile-kill-buffers-filter is a customizable variable defined in
projectile.el.
Value
kill-all
Documentation
Determine which buffers are killed by projectile-kill-buffers.
When the kill-all option is selected, kills each buffer.
When the kill-only-files option is selected, kill only the buffer associated to a file.
It can also be a list of conditions, in which case a buffer is killed
when it satisfies any of them. This is a composable DSL modeled on
project.el's project-kill-buffer-conditions. Each condition is either:
- a regular expression, matched against the buffer name,
- a predicate function that takes the buffer as its argument and returns
non-nil if it should be killed,
- a cons cell whose car says how to interpret the cdr:
* major-mode - kill if the buffer's major mode is eq to the cdr,
* derived-mode - kill if the buffer's major mode is derived from it,
* not - the cdr is a single negated condition,
* and - the cdr is a list of conditions that must all match,
* or - the cdr is a list of conditions, any of which match.
An empty list (or nil) matches no buffers, so nothing is killed.
For example, to kill only file-visiting buffers and dired buffers:
(setq projectile-kill-buffers-filter
'(buffer-file-name (derived-mode . dired-mode)))
Otherwise, it should be a predicate that takes one argument: the buffer to be killed.
This variable was added, or its default value changed, in projectile version 2.0.0.
Source Code
;; Defined in ~/.emacs.d/elpa/projectile-20260820.1509/projectile.el
(defcustom projectile-kill-buffers-filter 'kill-all
"Determine which buffers are killed by `projectile-kill-buffers'.
When the kill-all option is selected, kills each buffer.
When the kill-only-files option is selected, kill only the buffer
associated to a file.
It can also be a list of conditions, in which case a buffer is killed
when it satisfies any of them. This is a composable DSL modeled on
project.el's `project-kill-buffer-conditions'. Each condition is either:
- a regular expression, matched against the buffer name,
- a predicate function that takes the buffer as its argument and returns
non-nil if it should be killed,
- a cons cell whose car says how to interpret the cdr:
* `major-mode' - kill if the buffer's major mode is `eq' to the cdr,
* `derived-mode' - kill if the buffer's major mode is derived from it,
* `not' - the cdr is a single negated condition,
* `and' - the cdr is a list of conditions that must all match,
* `or' - the cdr is a list of conditions, any of which match.
An empty list (or nil) matches no buffers, so nothing is killed.
For example, to kill only file-visiting buffers and dired buffers:
(setq projectile-kill-buffers-filter
\\='(buffer-file-name (derived-mode . dired-mode)))
Otherwise, it should be a predicate that takes one argument: the buffer to
be killed."
:group 'projectile
:type '(choice
(const :tag "All project buffers" kill-all)
(const :tag "Project file buffers" kill-only-files)
(function :tag "Predicate")
(repeat :tag "Conditions"
(choice regexp function symbol
(cons :tag "Major mode" (const major-mode) symbol)
(cons :tag "Derived mode" (const derived-mode) symbol)
(cons :tag "Negation" (const not) sexp)
(cons :tag "Conjunction" (const and) sexp)
(cons :tag "Disjunction" (const or) sexp))))
:package-version '(projectile . "2.0.0"))