aboutsummaryrefslogtreecommitdiff
path: root/.config/emacs/lisp/evil-collection/modes/ibuffer
diff options
context:
space:
mode:
authorJack Jamison <jackqjamison@gmail.com>2026-07-05 01:19:30 -0400
committerJack Jamison <jackqjamison@gmail.com>2026-07-05 01:19:30 -0400
commitbdf9a71ab7baa2b1de9abcfd5df1a9107a55d141 (patch)
treec4524e6c41aa5107211103401dabfaefc81aa882 /.config/emacs/lisp/evil-collection/modes/ibuffer
parentfe3984f541bd32bdfa418afb305b614176b55ca0 (diff)
add a bunch of emacs packages HELP
Diffstat (limited to '.config/emacs/lisp/evil-collection/modes/ibuffer')
-rw-r--r--.config/emacs/lisp/evil-collection/modes/ibuffer/README.org60
-rw-r--r--.config/emacs/lisp/evil-collection/modes/ibuffer/evil-collection-ibuffer.el197
2 files changed, 257 insertions, 0 deletions
diff --git a/.config/emacs/lisp/evil-collection/modes/ibuffer/README.org b/.config/emacs/lisp/evil-collection/modes/ibuffer/README.org
new file mode 100644
index 0000000..b4f7fc5
--- /dev/null
+++ b/.config/emacs/lisp/evil-collection/modes/ibuffer/README.org
@@ -0,0 +1,60 @@
+* ibuffer
+
+ Evil bindings for [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Ibuffer.html][IBuffer]].
+
+** Key bindings
+
+ Most marking, filtering, and operate-on-marked commands keep their default
+ ibuffer keys. The table below covers what evil-collection relocates.
+
+ | Command | Original | Evil |
+ |----------------------------------------------+-----------------+--------------------------------------------|
+ | =ibuffer-forward-line= | =n= | (default) |
+ | =ibuffer-backward-line= | =p= | (default) |
+ | =ibuffer-forward-line= (g-prefix) | n/a | =gj= |
+ | =ibuffer-backward-line= (g-prefix) | n/a | =gk= |
+ | =ibuffer-update= | =g= | =gr= |
+ | =ibuffer-redisplay= | =l= | =gR= |
+ | =ibuffer-jump-to-buffer= | =j=, =M-g= | =J=, =M-g= |
+ | =ibuffer-visit-buffer= | =RET=, =e=, =f= | =RET= |
+ | =ibuffer-visit-buffer-other-window= | =o= | =go= |
+ | =ibuffer-visit-buffer-other-window-noselect= | =C-o= | =C-o= |
+ | =ibuffer-visit-buffer-1-window= | =M-o= | =M-o= |
+ | =ibuffer-do-view= | =A=, =v= | =A=, =gv= |
+ | =ibuffer-do-view-horizontally= | =C-x v= | =gV= |
+ | =ibuffer-mark-forward= | =m= | =m= |
+ | =ibuffer-unmark-forward= | =u= | =u= |
+ | =ibuffer-unmark-backward= | =DEL= | =DEL= |
+ | =ibuffer-toggle-marks= | =t= | =t=, =~= |
+ | =ibuffer-unmark-all-marks= | =U= | =U= |
+ | =ibuffer-unmark-all= | =M-DEL= | =M-DEL= |
+ | =ibuffer-mark-for-delete= | =d= | =d= |
+ | =ibuffer-mark-for-delete-backwards= | =C-d= | =C-d= (when =evil-want-C-d-scroll= is nil) |
+ | =ibuffer-do-kill-on-deletion-marks= | =x= | =x= |
+ | =ibuffer-do-kill-lines= | =k= | =K= |
+ | =ibuffer-bury-buffer= | =b= | =X= |
+ | =ibuffer-kill-line= | =C-k= | =gx= |
+ | =ibuffer-yank= | =C-y= | =C-y= |
+ | =ibuffer-copy-filename-as-kill= | =w= | =yf= |
+ | =ibuffer-copy-buffername-as-kill= | =B= | =yb= |
+ | =ibuffer-diff-with-file= | === | === |
+ | =ibuffer-toggle-sorting-mode= | =,= | =,= |
+ | =ibuffer-invert-sorting= | =s i= | =o i= |
+ | =ibuffer-do-sort-by-alphabetic= | =s a= | =o a= |
+ | =ibuffer-do-sort-by-recency= | =s v= | =o v= |
+ | =ibuffer-do-sort-by-size= | =s s= | =o s= |
+ | =ibuffer-do-sort-by-filename/process= | =s f= | =o f= |
+ | =ibuffer-do-sort-by-major-mode= | =s m= | =o m= |
+ | =ibuffer-forward-filter-group= | =M-n=, =TAB= | =C-j=, =M-n=, =]]=, =TAB= |
+ | =ibuffer-backward-filter-group= | =M-p=, =S-TAB= | =C-k=, =M-p=, =[[=, =S-TAB= |
+ | =ibuffer-jump-to-filter-group= | =M-j= | =M-j= |
+ | =ibuffer-forward-next-marked= | =M-}= | =}=, =M-}= |
+ | =ibuffer-backwards-next-marked= | =M-{= | ={=, =M-{= |
+ | =ibuffer-switch-format= | =`= | =`= |
+ | =ibuffer-add-to-tmp-show= | =+= | =+= |
+ | =ibuffer-add-to-tmp-hide= | =-= | =-= |
+ | =quit-window= | =q= | =q=, =ZZ=, =ZQ= |
+
+ Operate-on-marked uppercase keys (=D=, =E=, =F=, =H=, =I=, =M=, =N=, =O=,
+ =P=, =Q=, =R=, =S=, =T=, =V=, =W=), the =% =, =* =, =s = (filter) and
+ =/ = prefixes keep their default ibuffer behavior.
diff --git a/.config/emacs/lisp/evil-collection/modes/ibuffer/evil-collection-ibuffer.el b/.config/emacs/lisp/evil-collection/modes/ibuffer/evil-collection-ibuffer.el
new file mode 100644
index 0000000..ccca359
--- /dev/null
+++ b/.config/emacs/lisp/evil-collection/modes/ibuffer/evil-collection-ibuffer.el
@@ -0,0 +1,197 @@
+;;; evil-collection-ibuffer.el --- Evil bindings for IBuffer -*- lexical-binding: t -*-
+
+;; Copyright (C) 2017 James Nguyen
+
+;; Author: James Nguyen <james@jojojames.com>
+;; Maintainer: James Nguyen <james@jojojames.com>
+;; Pierre Neidhardt <mail@ambrevar.xyz>
+;; URL: https://github.com/emacs-evil/evil-collection
+;; Version: 0.0.1
+;; Package-Requires: ((emacs "26.3"))
+;; Keywords: evil, ibuffer, tools
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+;; Evil bindings for IBuffer.
+
+;;; Code:
+(require 'evil-collection)
+(require 'ibuffer)
+
+(defconst evil-collection-ibuffer-maps '(ibuffer-mode-map))
+
+;;;###autoload
+(defun evil-collection-ibuffer-setup ()
+ "Set up `evil' bindings for `ibuffer'."
+ (evil-set-initial-state 'ibuffer-mode 'normal)
+
+ (evil-collection-define-key 'normal 'ibuffer-mode-map
+ (kbd "C-d") (if evil-want-C-d-scroll
+ 'evil-scroll-down
+ 'ibuffer-mark-for-delete-backwards))
+
+ (evil-collection-define-key 'normal 'ibuffer-mode-map
+ (kbd "=") 'ibuffer-diff-with-file
+ (kbd "J") 'ibuffer-jump-to-buffer
+ (kbd "M-g") 'ibuffer-jump-to-buffer
+ (kbd "M-s a C-s") 'ibuffer-do-isearch
+ (kbd "M-s a M-C-s") 'ibuffer-do-isearch-regexp
+ (kbd "M-s a C-o") 'ibuffer-do-occur
+
+ ;; mark
+ (kbd "m") 'ibuffer-mark-forward
+ (kbd "~") 'ibuffer-toggle-marks
+ (kbd "u") 'ibuffer-unmark-forward
+ (kbd "DEL") 'ibuffer-unmark-backward
+ (kbd "M-DEL") 'ibuffer-unmark-all
+ (kbd "* *") 'ibuffer-mark-special-buffers
+ (kbd "* c") 'ibuffer-change-marks
+ (kbd "U") 'ibuffer-unmark-all-marks
+ (kbd "* M") 'ibuffer-mark-by-mode
+ (kbd "* m") 'ibuffer-mark-modified-buffers
+ (kbd "* u") 'ibuffer-mark-unsaved-buffers
+ (kbd "* s") 'ibuffer-mark-special-buffers
+ (kbd "* r") 'ibuffer-mark-read-only-buffers
+ (kbd "* /") 'ibuffer-mark-dired-buffers
+ (kbd "* e") 'ibuffer-mark-dissociated-buffers
+ (kbd "* h") 'ibuffer-mark-help-buffers
+ (kbd "* z") 'ibuffer-mark-compressed-file-buffers
+ (kbd ".") 'ibuffer-mark-old-buffers
+
+ (kbd "d") 'ibuffer-mark-for-delete
+ (kbd "x") 'ibuffer-do-kill-on-deletion-marks
+
+ ;; immediate operations
+ (kbd "gj") 'ibuffer-forward-line
+ (kbd "gk") 'ibuffer-backward-line
+
+ (kbd "}") 'ibuffer-forward-next-marked
+ (kbd "{") 'ibuffer-backwards-next-marked
+ (kbd "M-}") 'ibuffer-forward-next-marked
+ (kbd "M-{") 'ibuffer-backwards-next-marked
+
+ (kbd "gR") 'ibuffer-redisplay
+ (kbd "gr") 'ibuffer-update
+
+ "`" 'ibuffer-switch-format
+ "-" 'ibuffer-add-to-tmp-hide
+ "+" 'ibuffer-add-to-tmp-show
+ "X" 'ibuffer-bury-buffer
+ (kbd ",") 'ibuffer-toggle-sorting-mode
+ (kbd "o i") 'ibuffer-invert-sorting
+ (kbd "o a") 'ibuffer-do-sort-by-alphabetic
+ (kbd "o v") 'ibuffer-do-sort-by-recency
+ (kbd "o s") 'ibuffer-do-sort-by-size
+ (kbd "o f") 'ibuffer-do-sort-by-filename/process
+ (kbd "o m") 'ibuffer-do-sort-by-major-mode
+
+ (kbd "s RET") 'ibuffer-filter-by-mode
+ (kbd "s m") 'ibuffer-filter-by-used-mode
+ (kbd "s M") 'ibuffer-filter-by-derived-mode
+ (kbd "s n") 'ibuffer-filter-by-name
+ (kbd "s *") 'ibuffer-filter-by-starred-name
+ (kbd "s f") 'ibuffer-filter-by-filename
+ (kbd "s b") 'ibuffer-filter-by-basename
+ (kbd "s .") 'ibuffer-filter-by-file-extension
+ (kbd "s <") 'ibuffer-filter-by-size-lt
+ (kbd "s >") 'ibuffer-filter-by-size-gt
+ (kbd "s i") 'ibuffer-filter-by-modified
+ (kbd "s v") 'ibuffer-filter-by-visiting-file
+ (kbd "s c") 'ibuffer-filter-by-content
+ (kbd "s e") 'ibuffer-filter-by-predicate
+
+ (kbd "s r") 'ibuffer-switch-to-saved-filters
+ (kbd "s a") 'ibuffer-add-saved-filters
+ (kbd "s x") 'ibuffer-delete-saved-filters
+ (kbd "s d") 'ibuffer-decompose-filter
+ (kbd "s s") 'ibuffer-save-filters
+ (kbd "s p") 'ibuffer-pop-filter
+ (kbd "s <up>") 'ibuffer-pop-filter
+ (kbd "s !") 'ibuffer-negate-filter
+ (kbd "s t") 'ibuffer-exchange-filters
+ (kbd "s TAB") 'ibuffer-exchange-filters
+ (kbd "s o") 'ibuffer-or-filter
+ (kbd "s |") 'ibuffer-or-filter
+ (kbd "s &") 'ibuffer-and-filter
+ (kbd "s g") 'ibuffer-filters-to-filter-group
+ (kbd "s P") 'ibuffer-pop-filter-group
+ (kbd "s S-<up>") 'ibuffer-pop-filter-group
+ (kbd "s D") 'ibuffer-decompose-filter-group
+ (kbd "s /") 'ibuffer-filter-disable
+
+ (kbd "C-j") 'ibuffer-forward-filter-group
+ (kbd "M-n") 'ibuffer-forward-filter-group
+ (kbd "]]") 'ibuffer-forward-filter-group
+ "\t" 'ibuffer-forward-filter-group
+ (kbd "M-p") 'ibuffer-backward-filter-group
+ (kbd "C-k") 'ibuffer-backward-filter-group
+ (kbd "[[") 'ibuffer-backward-filter-group
+ [backtab] 'ibuffer-backward-filter-group
+ (kbd "M-j") 'ibuffer-jump-to-filter-group
+ (kbd "gx") 'ibuffer-kill-line
+ (kbd "C-y") 'ibuffer-yank
+ (kbd "s S") 'ibuffer-save-filter-groups
+ (kbd "s R") 'ibuffer-switch-to-saved-filter-groups
+ (kbd "s X") 'ibuffer-delete-saved-filter-groups
+ (kbd "s \\") 'ibuffer-clear-filter-groups
+
+ (kbd "% n") 'ibuffer-mark-by-name-regexp
+ (kbd "% m") 'ibuffer-mark-by-mode-regexp
+ (kbd "% f") 'ibuffer-mark-by-file-name-regexp
+ (kbd "% g") 'ibuffer-mark-by-content-regexp
+ (kbd "% L") 'ibuffer-mark-by-locked
+
+ (kbd "C-t") 'ibuffer-visit-tags-table
+
+ (kbd "|") 'ibuffer-do-shell-command-pipe
+ (kbd "!") 'ibuffer-do-shell-command-file
+ (kbd "t") 'ibuffer-toggle-marks
+ ;; marked operations
+ (kbd "A") 'ibuffer-do-view
+ (kbd "D") 'ibuffer-do-delete
+ (kbd "E") 'ibuffer-do-eval
+ (kbd "F") 'ibuffer-do-shell-command-file
+ (kbd "I") 'ibuffer-do-query-replace-regexp
+ (kbd "H") 'ibuffer-do-view-other-frame
+ (kbd "N") 'ibuffer-do-shell-command-pipe-replace
+ (kbd "M") 'ibuffer-do-toggle-modified
+ (kbd "O") 'ibuffer-do-occur
+ (kbd "P") 'ibuffer-do-print
+ (kbd "Q") 'ibuffer-do-query-replace
+ (kbd "R") 'ibuffer-do-rename-uniquely
+ (kbd "S") 'ibuffer-do-save
+ (kbd "T") 'ibuffer-do-toggle-read-only
+ (kbd "r") 'ibuffer-do-replace-regexp
+ (kbd "V") 'ibuffer-do-revert
+ (kbd "W") 'ibuffer-do-view-and-eval
+
+ (kbd "K") 'ibuffer-do-kill-lines
+ (kbd "yf") 'ibuffer-copy-filename-as-kill
+ (kbd "yb") 'ibuffer-copy-buffername-as-kill
+
+ (kbd "RET") 'ibuffer-visit-buffer
+ (kbd "go") 'ibuffer-visit-buffer-other-window
+ (kbd "C-o") 'ibuffer-visit-buffer-other-window-noselect
+ (kbd "M-o") 'ibuffer-visit-buffer-1-window
+ (kbd "gv") 'ibuffer-do-view
+ (kbd "gV") 'ibuffer-do-view-horizontally
+
+ ;; Quit
+ "q" 'quit-window
+ "ZZ" 'quit-window
+ "ZQ" 'quit-window))
+
+(provide 'evil-collection-ibuffer)
+;;; evil-collection-ibuffer.el ends here