aboutsummaryrefslogtreecommitdiff
path: root/+colemak.el
blob: 31df83deaa1ac601060a24adefd0d61bb06a9c75 (plain)
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
;;; $DOOMDIR/+colemak.el -*- lexical-binding: t; -*-

(remove-hook 'doom-first-input-hook #'evil-snipe-mode)

(evil-define-key '(normal visual operator) 'global
  "n" 'evil-backward-char
  "e" 'evil-next-line
  "i" 'evil-previous-line
  "o" 'evil-forward-char)

(evil-define-key '(normal visual operator) 'global
  "l" 'evil-backward-word-begin
  "L" 'evil-backward-WORD-begin
  "u" 'evil-forward-word-end
  "U" 'evil-forward-WORD-end
  "y" 'evil-forward-word-begin
  "Y" 'evil-forward-word-begin)

(with-eval-after-load 'evil-ex
  (define-key evil-ex-completion-map (kbd "C-l") 'left-word)
  (define-key evil-ex-completion-map (kbd "C-y") 'right-word))

(evil-define-key 'normal 'global
  "s" 'evil-insert
  "S" 'evil-insert-line
  "t" 'evil-append
  "T" 'evil-append-line
  "h" 'evil-open-below
  "H" 'evil-open-above)

(evil-define-key '(normal visual) 'global
  "w" 'evil-change
  "W" 'evil-change-line)

(evil-define-key 'normal 'global
  "x" 'evil-delete-char
  "c" 'evil-yank
  "v" 'evil-paste-after
  "X" 'evil-delete-line
  "C" 'evil-yank-line
  "V" 'evil-paste-before)

(evil-define-key 'visual 'global
  "x" 'evil-delete
  "c" 'evil-yank
  "v" 'evil-paste-after)

(evil-define-key 'normal 'global
  "z" 'evil-undo
  "Z" 'evil-redo)

(evil-define-key 'normal 'global
  "a" 'evil-visual-char
  "A" 'evil-visual-line
  "ga" 'evil-visual-restore)

(evil-define-key '(normal visual operator) 'global
  "p" 'evil-find-char-to
  "P" 'evil-find-char-to-backward
  "b" 'evil-repeat-find-char
  "B" 'evil-repeat-find-char-reverse
  "k" 'evil-search-next
  "K" 'evil-search-previous)

(with-eval-after-load 'evil
  (evil-define-key '(operator visual) 'global "r" evil-inner-text-objects-map))

(define-prefix-command 'my-colemak-fold-map)
(evil-define-key '(normal visual) 'global "j" 'my-colemak-fold-map)

(define-key my-colemak-fold-map "j" 'evil-scroll-line-to-center)
(define-key my-colemak-fold-map "n" 'evil-scroll-line-to-top)
(define-key my-colemak-fold-map "e" 'evil-scroll-line-to-bottom)

(evil-define-key 'normal 'global
  "gK" 'evil-lookup)

(map! :n "SPC w n" #'evil-window-left
      :n "SPC w e" #'evil-window-down
      :n "SPC w i" #'evil-window-up
      :n "SPC w o" #'evil-window-right)