summaryrefslogtreecommitdiff
path: root/modes/ibuffer
diff options
context:
space:
mode:
authorJustin Burkett <justin@burkett.cc>2018-07-12 15:05:50 -0400
committerJames N <james@jojojames.com>2019-10-09 19:41:45 -0700
commit95dad4c734ae3d3811c05b259eea15ac4f3cb5c5 (patch)
treed2e8bad926a11d2665ce3c86ca986e0f1447a23c /modes/ibuffer
parent34d515e99e911f368b335bbccc026b71b42a9821 (diff)
Use subdirectories for setup files (+READMEs)
Move setup files into subdirectories. Move mode directories to modes subdir. This will make it easy to specify a recipe in melpa that maintains the directory structure. Add interactive functions to jump to .el and README files See #170
Diffstat (limited to 'modes/ibuffer')
-rw-r--r--modes/ibuffer/evil-collection-ibuffer.el197
1 files changed, 197 insertions, 0 deletions
diff --git a/modes/ibuffer/evil-collection-ibuffer.el b/modes/ibuffer/evil-collection-ibuffer.el
new file mode 100644
index 0000000..b4c0a9c
--- /dev/null
+++ b/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 "25.1"))
+;; 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-unmark-all
+ (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-do-toggle-modified
+ ;; 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