Skip to content

Commit 5a14fea

Browse files
committed
Split keybindings out from evil-integration
1 parent 10749f7 commit 5a14fea

File tree

4 files changed

+120
-75
lines changed

4 files changed

+120
-75
lines changed

evil-integration.el

Lines changed: 0 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -90,36 +90,6 @@
9090
(when (fboundp 'evil-repeat-abort)
9191
(evil-repeat-abort)))
9292

93-
;; etags-select
94-
;; FIXME: probably etags-select should be recomended in docs
95-
(eval-after-load 'etags-select
96-
'(progn
97-
(define-key evil-motion-state-map "g]" 'etags-select-find-tag-at-point)))
98-
99-
;;; Buffer-menu
100-
101-
(evil-add-hjkl-bindings Buffer-menu-mode-map 'motion)
102-
103-
;; dictionary.el
104-
105-
(evil-add-hjkl-bindings dictionary-mode-map 'motion
106-
"?" 'dictionary-help ; "h"
107-
"C-o" 'dictionary-previous) ; "l"
108-
109-
;;; Dired
110-
111-
(eval-after-load 'dired
112-
'(progn
113-
;; use the standard Dired bindings as a base
114-
(defvar dired-mode-map)
115-
(evil-make-overriding-map dired-mode-map 'normal)
116-
(evil-add-hjkl-bindings dired-mode-map 'normal
117-
"J" 'dired-goto-file ; "j"
118-
"K" 'dired-do-kill-lines ; "k"
119-
"r" 'dired-do-redisplay ; "l"
120-
;; ":d", ":v", ":s", ":e"
121-
";" (lookup-key dired-mode-map ":"))))
122-
12393
(eval-after-load 'wdired
12494
'(progn
12595
(add-hook 'wdired-mode-hook #'evil-change-to-initial-state)
@@ -132,21 +102,6 @@
132102
'(defadvice elp-results (after evil activate)
133103
(evil-motion-state)))
134104

135-
;;; ERT
136-
137-
(evil-add-hjkl-bindings ert-results-mode-map 'motion)
138-
139-
;;; Info
140-
141-
(evil-add-hjkl-bindings Info-mode-map 'motion
142-
"0" 'evil-digit-argument-or-evil-beginning-of-line
143-
(kbd "\M-h") 'Info-help ; "h"
144-
"\C-t" 'Info-history-back ; "l"
145-
"\C-o" 'Info-history-back
146-
" " 'Info-scroll-up
147-
"\C-]" 'Info-follow-nearest-node
148-
(kbd "DEL") 'Info-scroll-down)
149-
150105
;;; Parentheses
151106

152107
(defadvice show-paren-function (around evil disable)
@@ -184,29 +139,6 @@
184139
(let ((ov (and (boundp ov) (symbol-value ov))))
185140
(when (overlayp ov) (delete-overlay ov))))))))
186141

187-
;;; Speedbar
188-
189-
(evil-add-hjkl-bindings speedbar-key-map 'motion
190-
"h" 'backward-char
191-
"j" 'speedbar-next
192-
"k" 'speedbar-prev
193-
"l" 'forward-char
194-
"i" 'speedbar-item-info
195-
"r" 'speedbar-refresh
196-
"u" 'speedbar-up-directory
197-
"o" 'speedbar-toggle-line-expansion
198-
(kbd "RET") 'speedbar-edit-line)
199-
200-
;; Ibuffer
201-
(eval-after-load 'ibuffer
202-
'(progn
203-
(defvar ibuffer-mode-map)
204-
(evil-make-overriding-map ibuffer-mode-map 'normal)
205-
(evil-define-key 'normal ibuffer-mode-map
206-
"j" 'evil-next-line
207-
"k" 'evil-previous-line
208-
"RET" 'ibuffer-visit-buffer)))
209-
210142
;;; Undo tree
211143
(when (and (require 'undo-tree nil t)
212144
(fboundp 'global-undo-tree-mode))
@@ -556,13 +488,6 @@ Based on `evil-enclose-ace-jump-for-motion'."
556488
'(with-no-warnings
557489
(push 'evil-mode-cmhh mumamo-change-major-mode-no-nos)))
558490

559-
;;; ag.el
560-
(eval-after-load 'ag
561-
'(progn
562-
(defvar ag-mode-map)
563-
(add-to-list 'evil-motion-state-modes 'ag-mode)
564-
(evil-add-hjkl-bindings ag-mode-map 'motion)))
565-
566491
;; visual-line-mode integration
567492
(when evil-respect-visual-line-mode
568493
(let ((swaps '((evil-next-line . evil-next-visual-line)

evil-keybindings.el

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
;;; evil-keybindings.el --- Add some Evil keybindings to other modules
2+
3+
;; Author: Vegard Øye <vegard_oye at hotmail.com>
4+
;; Maintainer: Vegard Øye <vegard_oye at hotmail.com>
5+
6+
;; Version: 1.2.13
7+
8+
;;
9+
;; This file is NOT part of GNU Emacs.
10+
11+
;;; License:
12+
13+
;; This file is part of Evil.
14+
;;
15+
;; Evil is free software: you can redistribute it and/or modify
16+
;; it under the terms of the GNU General Public License as published by
17+
;; the Free Software Foundation, either version 3 of the License, or
18+
;; (at your option) any later version.
19+
;;
20+
;; Evil is distributed in the hope that it will be useful,
21+
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
22+
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23+
;; GNU General Public License for more details.
24+
;;
25+
;; You should have received a copy of the GNU General Public License
26+
;; along with Evil. If not, see <http://www.gnu.org/licenses/>.
27+
28+
(require 'evil-maps)
29+
(require 'evil-core)
30+
(require 'evil-macros)
31+
(require 'evil-types)
32+
(require 'evil-repeat)
33+
34+
;; etags-select
35+
;; FIXME: probably etags-select should be recomended in docs
36+
(eval-after-load 'etags-select
37+
'(progn
38+
(define-key evil-motion-state-map "g]" 'etags-select-find-tag-at-point)))
39+
40+
;;; Buffer-menu
41+
42+
(evil-add-hjkl-bindings Buffer-menu-mode-map 'motion)
43+
44+
;; dictionary.el
45+
46+
(evil-add-hjkl-bindings dictionary-mode-map 'motion
47+
"?" 'dictionary-help ; "h"
48+
"C-o" 'dictionary-previous) ; "l"
49+
50+
;;; Dired
51+
52+
(eval-after-load 'dired
53+
'(progn
54+
;; use the standard Dired bindings as a base
55+
(defvar dired-mode-map)
56+
(evil-make-overriding-map dired-mode-map 'normal)
57+
(evil-add-hjkl-bindings dired-mode-map 'normal
58+
"J" 'dired-goto-file ; "j"
59+
"K" 'dired-do-kill-lines ; "k"
60+
"r" 'dired-do-redisplay ; "l"
61+
;; ":d", ":v", ":s", ":e"
62+
";" (lookup-key dired-mode-map ":"))))
63+
64+
;;; ERT
65+
66+
(evil-add-hjkl-bindings ert-results-mode-map 'motion)
67+
68+
;;; Info
69+
70+
(evil-add-hjkl-bindings Info-mode-map 'motion
71+
"0" 'evil-digit-argument-or-evil-beginning-of-line
72+
(kbd "\M-h") 'Info-help ; "h"
73+
"\C-t" 'Info-history-back ; "l"
74+
"\C-o" 'Info-history-back
75+
" " 'Info-scroll-up
76+
"\C-]" 'Info-follow-nearest-node
77+
(kbd "DEL") 'Info-scroll-down)
78+
79+
;;; Speedbar
80+
81+
(evil-add-hjkl-bindings speedbar-key-map 'motion
82+
"h" 'backward-char
83+
"j" 'speedbar-next
84+
"k" 'speedbar-prev
85+
"l" 'forward-char
86+
"i" 'speedbar-item-info
87+
"r" 'speedbar-refresh
88+
"u" 'speedbar-up-directory
89+
"o" 'speedbar-toggle-line-expansion
90+
(kbd "RET") 'speedbar-edit-line)
91+
92+
;; Ibuffer
93+
(eval-after-load 'ibuffer
94+
'(progn
95+
(defvar ibuffer-mode-map)
96+
(evil-make-overriding-map ibuffer-mode-map 'normal)
97+
(evil-define-key 'normal ibuffer-mode-map
98+
"j" 'evil-next-line
99+
"k" 'evil-previous-line
100+
"RET" 'ibuffer-visit-buffer)))
101+
102+
;;; ag.el
103+
(eval-after-load 'ag
104+
'(progn
105+
(defvar ag-mode-map)
106+
(add-to-list 'evil-motion-state-modes 'ag-mode)
107+
(evil-add-hjkl-bindings ag-mode-map 'motion)))
108+
109+
(provide 'evil-keybindings)
110+
111+
;;; evil-keybindings.el ends here

evil-vars.el

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1877,6 +1877,12 @@ This variable must be set before Evil is loaded."
18771877
:type 'boolean
18781878
:group 'evil)
18791879

1880+
(defcustom evil-want-keybinding t
1881+
"Whether to load evil-keybindings.el.
1882+
This variable must be set before evil is loaded."
1883+
:type 'boolean
1884+
:group 'evil)
1885+
18801886
(defcustom evil-want-minibuffer nil
18811887
"Whether to enable Evil in minibuffer(s)."
18821888
:type 'boolean

evil.el

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,9 @@
141141
(when evil-want-integration
142142
(require 'evil-integration))
143143

144+
(when evil-want-keybinding
145+
(require 'evil-keybindings))
146+
144147
(run-hooks 'evil-after-load-hook)
145148

146149
(provide 'evil)

0 commit comments

Comments
 (0)