-
Notifications
You must be signed in to change notification settings - Fork 17
/
init-evil.el
105 lines (87 loc) · 4.36 KB
/
init-evil.el
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
; Source: https://raw.githubusercontent.com/terhechte/emacs.d/master/modes-init/init-evil.el
(setq evil-want-C-u-scroll t)
(setq evil-want-fine-undo t)
(require 'evil)
(evil-mode 1)
(require 'evil-commentary)
(evil-commentary-mode)
;; New is C-g
(define-key evil-insert-state-map "\C-g" 'evil-normal-state)
(define-key evil-normal-state-map (kbd "C-u") 'evil-scroll-up)
;; http://dnquark.com/blog/2012/02/emacs-evil-ecumenicalism/
;; I want c-n / c-p to work like in emacs
(define-key evil-insert-state-map "\C-e" 'end-of-line)
(define-key evil-visual-state-map "\C-e" 'evil-end-of-line)
(define-key evil-normal-state-map "\C-f" 'evil-forward-char)
(define-key evil-insert-state-map "\C-f" 'evil-forward-char)
(define-key evil-insert-state-map "\C-f" 'evil-forward-char)
(define-key evil-normal-state-map "\C-b" 'evil-backward-char)
(define-key evil-insert-state-map "\C-b" 'evil-backward-char)
(define-key evil-visual-state-map "\C-b" 'evil-backward-char)
(define-key evil-normal-state-map "\C-n" 'evil-next-line)
(define-key evil-insert-state-map "\C-n" 'evil-next-line)
(define-key evil-visual-state-map "\C-n" 'evil-next-line)
(define-key evil-normal-state-map "\C-p" 'evil-previous-line)
(define-key evil-insert-state-map "\C-p" 'evil-previous-line)
(define-key evil-visual-state-map "\C-p" 'evil-previous-line)
(define-key evil-normal-state-map "\C-y" 'yank)
(define-key evil-insert-state-map "\C-y" 'yank)
(define-key evil-visual-state-map "\C-y" 'yank)
(define-key evil-normal-state-map "\C-k" 'kill-line)
(define-key evil-insert-state-map "\C-k" 'kill-line)
(define-key evil-visual-state-map "\C-k" 'kill-line)
(define-key evil-normal-state-map (kbd "TAB") 'evil-undefine)
; http://stackoverflow.com/questions/8483182/emacs-evil-mode-best-practice
(defun evil-undefine ()
(interactive)
(let (evil-mode-map-alist)
(call-interactively (key-binding (this-command-keys)))))
;;; esc quits
(define-key evil-normal-state-map [escape] 'keyboard-quit)
(define-key evil-visual-state-map [escape] 'keyboard-quit)
(define-key minibuffer-local-map [escape] 'minibuffer-keyboard-quit)
(define-key minibuffer-local-ns-map [escape] 'minibuffer-keyboard-quit)
(define-key minibuffer-local-completion-map [escape] 'minibuffer-keyboard-quit)
(define-key minibuffer-local-must-match-map [escape] 'minibuffer-keyboard-quit)
(define-key minibuffer-local-isearch-map [escape] 'minibuffer-keyboard-quit)
; load evil leader
(require 'evil-leader)
(global-evil-leader-mode)
(evil-leader/set-leader ",")
(define-key evil-normal-state-map (kbd "C-.") 'execute-extended-command)
(define-key evil-visual-state-map (kbd "C-.") 'execute-extended-command)
(require 'evil-numbers)
(global-set-key (kbd "C-c +") 'evil-numbers/inc-at-pt)
(global-set-key (kbd "C-c -") 'evil-numbers/dec-at-pt)
(require 'evil-surround)(global-evil-surround-mode 1)
(require 'evil-nerd-commenter)(evilnc-default-hotkeys)
(require 'powerline)(powerline-center-evil-theme)
;; Dvorak.
(define-key evil-normal-state-map "h" 'evil-backward-char)
(define-key evil-normal-state-map "t" 'evil-next-line)
(define-key evil-normal-state-map "n" 'evil-previous-line)
(define-key evil-normal-state-map "s" 'evil-forward-char)
;; (define-key evil-normal-state-map [left] 'undefined)
;; (define-key evil-normal-state-map [down] 'undefined)
;; (define-key evil-normal-state-map [up] 'undefined)
;; (define-key evil-normal-state-map [right] 'undefined)
(define-key evil-normal-state-map "k" 'undefined)
(define-key evil-normal-state-map "l" 'undefined)
(define-key evil-normal-state-map ";" 'undefined)
(define-key evil-motion-state-map "h" 'evil-backward-char)
(define-key evil-motion-state-map "t" 'evil-next-line)
(define-key evil-motion-state-map "n" 'evil-previous-line)
(define-key evil-motion-state-map "s" 'evil-forward-char)
;; (define-key evil-motion-state-map [left] 'undefined)
;; (define-key evil-motion-state-map [down] 'undefined)
;; (define-key evil-motion-state-map [up] 'undefined)
;; (define-key evil-motion-state-map [right] 'undefined)
(define-key evil-motion-state-map "k" 'undefined)
(define-key evil-motion-state-map "l" 'undefined)
(define-key evil-motion-state-map ";" 'undefined)
(define-key evil-normal-state-map "N" 'undefined)
(define-key evil-normal-state-map "k" 'evil-search-next)
(define-key evil-normal-state-map "K" 'evil-search-previous)
(setq undo-tree-history-directory-alist '(("." . "~/.emacs.d/undo")))
(global-undo-tree-mode)
(evil-set-undo-system 'undo-tree)