diff options
Diffstat (limited to '.config/emacs/lisp/evil-collection/modes/ibuffer')
| -rw-r--r-- | .config/emacs/lisp/evil-collection/modes/ibuffer/README.org | 60 | ||||
| -rw-r--r-- | .config/emacs/lisp/evil-collection/modes/ibuffer/evil-collection-ibuffer.el | 197 |
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 |
