summaryrefslogtreecommitdiff
path: root/lisp/td-meow.el
blob: ca0c32e1efae2cc8bb5f60cf44583ddc3393f7ee (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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
;;; td-meow.el --- making emacs purr -*- lexical-binding: t; -*-

;;; Code:

;;; Functions

(defun meow-setup ()
  (setq meow-cheatsheet-layout meow-cheatsheet-layout-qwerty)
  (meow-motion-overwrite-define-key
   '("j"        . meow-next)
   '("k"        . meow-prev)
   '("<escape>" . ignore))
  (meow-leader-define-key
   ;; `SPC j/k' will run the original command in MOTION state.
   '("j" . "H-j")
   '("k" . "H-k")
   ;; Use `SPC (0-9)' for digit arguments.
   '("1" . meow-digit-argument)
   '("2" . meow-digit-argument)
   '("3" . meow-digit-argument)
   '("4" . meow-digit-argument)
   '("5" . meow-digit-argument)
   '("6" . meow-digit-argument)
   '("7" . meow-digit-argument)
   '("8" . meow-digit-argument)
   '("9" . meow-digit-argument)
   '("0" . meow-digit-argument)
   '("/" . meow-keypad-describe-key)
   '("?" . meow-cheatsheet))
  (meow-normal-define-key
   '("0"        . meow-expand-0)
   '("9"        . meow-expand-9)
   '("8"        . meow-expand-8)
   '("7"        . meow-expand-7)
   '("6"        . meow-expand-6)
   '("5"        . meow-expand-5)
   '("4"        . meow-expand-4)
   '("3"        . meow-expand-3)
   '("2"        . meow-expand-2)
   '("1"        . meow-expand-1)
   '("-"        . negative-argument)
   '(";"        . meow-reverse)
   '(","        . meow-inner-of-thing)
   '("."        . meow-bounds-of-thing)
   '("["        . meow-beginning-of-thing)
   '("]"        . meow-end-of-thing)
   '("a"        . meow-append)
   '("A"        . meow-open-below)
   '("b"        . meow-back-word)
   '("B"        . meow-back-symbol)
   '("c"        . meow-change)
   '("d"        . meow-delete)
   '("D"        . meow-backward-delete)
   '("e"        . meow-next-word)
   '("E"        . meow-next-symbol)
   '("f"        . meow-find)
   '("g"        . meow-cancel-selection)
   '("G"        . meow-grab)
   '("h"        . meow-left)
   '("H"        . meow-left-expand)
   '("i"        . meow-insert)
   '("I"        . meow-open-above)
   '("j"        . meow-next)
   '("J"        . meow-next-expand)
   '("k"        . meow-prev)
   '("K"        . meow-prev-expand)
   '("l"        . meow-right)
   '("L"        . meow-right-expand)
   '("m"        . meow-join)
   '("n"        . meow-search)
   '("o"        . meow-block)
   '("O"        . meow-to-block)
   '("p"        . meow-yank)
   '("q"        . meow-quit)
   '("Q"        . meow-goto-line)
   '("r"        . meow-replace)
   '("R"        . meow-swap-grab)
   '("s"        . meow-kill)
   '("t"        . meow-till)
   '("u"        . meow-undo)
   '("U"        . meow-undo-in-selection)
   '("v"        . meow-visit)
   '("w"        . meow-mark-word)
   '("W"        . meow-mark-symbol)
   '("x"        . meow-line)
   '("X"        . meow-goto-line)
   '("y"        . meow-save)
   '("Y"        . meow-sync-grab)
   '("z"        . meow-pop-selection)
   '("'"        . repeat)
   '("<escape>" . ignore))
  ;; Allow `C-g' to exit to NORMAL state, similar to how evil does it.
  (meow-define-keys 'insert '("C-g" . meow-insert-exit)))

;;; Packages

(use-package meow
  :ensure t
  :custom
  (meow-display-thing-help t)
  (meow-expand-hint-counts '((word  . 30)
                             (line  . 30)
                             (block . 30)
                             (find  . 30)
                             (till  . 30)))
  :config
  (meow-setup)
  (meow-global-mode))

(provide 'td-meow)
;;; td-meow.el ends here