changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > core / annotate emacs/keys.el

changeset 39: e87c995efea1
parent: a4186c03d6cf
child: 9edf6739cf09
author: ellis <ellis@rwest.io>
date: Tue, 07 Nov 2023 18:50:41 -0500
permissions: -rw-r--r--
description: emacs config
26
51a8370766f7 emacs config
ellis <ellis@rwest.io>
parents: 21
diff changeset
1
 ;;; keys.el --- emacs keys -*- lexical-binding: t -*-
51a8370766f7 emacs config
ellis <ellis@rwest.io>
parents: 21
diff changeset
2
 
51a8370766f7 emacs config
ellis <ellis@rwest.io>
parents: 21
diff changeset
3
 ;; default keybinds
51a8370766f7 emacs config
ellis <ellis@rwest.io>
parents: 21
diff changeset
4
 
51a8370766f7 emacs config
ellis <ellis@rwest.io>
parents: 21
diff changeset
5
 ;;; Commentary:
51a8370766f7 emacs config
ellis <ellis@rwest.io>
parents: 21
diff changeset
6
 
51a8370766f7 emacs config
ellis <ellis@rwest.io>
parents: 21
diff changeset
7
 ;; I encourage you to remap these keys as you see fit. Where possible,
51a8370766f7 emacs config
ellis <ellis@rwest.io>
parents: 21
diff changeset
8
 ;; wrap your custom bindings in a keymap instead of redefining the
51a8370766f7 emacs config
ellis <ellis@rwest.io>
parents: 21
diff changeset
9
 ;; global defaults defined here.
51a8370766f7 emacs config
ellis <ellis@rwest.io>
parents: 21
diff changeset
10
 
51a8370766f7 emacs config
ellis <ellis@rwest.io>
parents: 21
diff changeset
11
 ;;; Code:
51a8370766f7 emacs config
ellis <ellis@rwest.io>
parents: 21
diff changeset
12
 
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
13
 ;;; User keys
35
b8b2433003ef paredit/repeat
ellis <ellis@rwest.io>
parents: 34
diff changeset
14
 ;; paredit-map
39
e87c995efea1 emacs config
ellis <ellis@rwest.io>
parents: 38
diff changeset
15
 (require 'default)
35
b8b2433003ef paredit/repeat
ellis <ellis@rwest.io>
parents: 34
diff changeset
16
 (defvar-keymap parens-map
b8b2433003ef paredit/repeat
ellis <ellis@rwest.io>
parents: 34
diff changeset
17
   :doc "parens-minor-mode keymap."
b8b2433003ef paredit/repeat
ellis <ellis@rwest.io>
parents: 34
diff changeset
18
   :repeat (:enter)
b8b2433003ef paredit/repeat
ellis <ellis@rwest.io>
parents: 34
diff changeset
19
   :prefix 'parens-map
b8b2433003ef paredit/repeat
ellis <ellis@rwest.io>
parents: 34
diff changeset
20
   "u" #'backward-up-list
b8b2433003ef paredit/repeat
ellis <ellis@rwest.io>
parents: 34
diff changeset
21
   "f" #'forward-sexp
b8b2433003ef paredit/repeat
ellis <ellis@rwest.io>
parents: 34
diff changeset
22
   "b" #'backward-sexp
b8b2433003ef paredit/repeat
ellis <ellis@rwest.io>
parents: 34
diff changeset
23
   "d" #'down-list
b8b2433003ef paredit/repeat
ellis <ellis@rwest.io>
parents: 34
diff changeset
24
   "k" #'kill-sexp
b8b2433003ef paredit/repeat
ellis <ellis@rwest.io>
parents: 34
diff changeset
25
   "n" #'paredit-forward
b8b2433003ef paredit/repeat
ellis <ellis@rwest.io>
parents: 34
diff changeset
26
   "p" #'paredit-backward
b8b2433003ef paredit/repeat
ellis <ellis@rwest.io>
parents: 34
diff changeset
27
   "K" #'paredit-kill
b8b2433003ef paredit/repeat
ellis <ellis@rwest.io>
parents: 34
diff changeset
28
   "]" #'paredit-forward-slurp-sexp
b8b2433003ef paredit/repeat
ellis <ellis@rwest.io>
parents: 34
diff changeset
29
   "[" #'paredit-backward-slurp-sexp
b8b2433003ef paredit/repeat
ellis <ellis@rwest.io>
parents: 34
diff changeset
30
   "}" #'paredit-forward-barf-sexp
b8b2433003ef paredit/repeat
ellis <ellis@rwest.io>
parents: 34
diff changeset
31
   "{" #'paredit-backward-barf-sexp
b8b2433003ef paredit/repeat
ellis <ellis@rwest.io>
parents: 34
diff changeset
32
   "C" #'paredit-convolute-sexp
b8b2433003ef paredit/repeat
ellis <ellis@rwest.io>
parents: 34
diff changeset
33
   "J" #'paredit-join-sexps
b8b2433003ef paredit/repeat
ellis <ellis@rwest.io>
parents: 34
diff changeset
34
   "S" #'paredit-split-sexp
b8b2433003ef paredit/repeat
ellis <ellis@rwest.io>
parents: 34
diff changeset
35
   "R" #'paredit-raise-sexp
b8b2433003ef paredit/repeat
ellis <ellis@rwest.io>
parents: 34
diff changeset
36
   "\\" #'indent-region
b8b2433003ef paredit/repeat
ellis <ellis@rwest.io>
parents: 34
diff changeset
37
   "/" #'undo
b8b2433003ef paredit/repeat
ellis <ellis@rwest.io>
parents: 34
diff changeset
38
   "t" #'transpose-sexps
b8b2433003ef paredit/repeat
ellis <ellis@rwest.io>
parents: 34
diff changeset
39
   "x" #'eval-defun)
b8b2433003ef paredit/repeat
ellis <ellis@rwest.io>
parents: 34
diff changeset
40
 
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
41
 (defvar-keymap toggle-map
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
42
   :doc "User-specified keymap for mode toggles. Usually bound to 'C-c c SPC'."
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
43
   :prefix 'toggle-map
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
44
   "v" #'global-visual-line-mode
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
45
   "h" #'global-hl-line-mode
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
46
   "l" #'global-line-numbers-mode
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
47
   "L" #'global-display-line-numbers-mode
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
48
   "a" #'gpm-mouse-mode
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
49
   "r" #'refill-mode
38
a4186c03d6cf defaults
ellis <ellis@rwest.io>
parents: 35
diff changeset
50
   "o" #'outline-minor-mode
a4186c03d6cf defaults
ellis <ellis@rwest.io>
parents: 35
diff changeset
51
   "O" #'allout-mode
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
52
   "R" #'global-auto-revert-mode
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
53
   "t" #'toggle-frame-tab-bar
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
54
   "d" #'toggle-debug-on-error
31
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
55
   "SPC" #'toggle-macro-recording
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
56
   "w" #'toggle-theme)
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
57
 
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
58
 (defvar-keymap status-map
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
59
   :doc "User-specified keymap for status functions. Usually bound to 'C-c c .'."
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
60
   "l" #'eglot-list-connections
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
61
   "p" #'list-processes
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
62
   "t" #'list-threads
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
63
   "a" #'list-abbrevs
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
64
   "c" #'list-timers
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
65
   "d" #'list-dynamic-libraries
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
66
   "P" #'list-packages)
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
67
 
31
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
68
 (defvar-keymap server-map
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
69
   :doc "User-specified keymap for server functions. Usually bound to 'C-c c q'."
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
70
   "q"  #'kill-emacs
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
71
   "r" #'kill-emacs-restart)
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
72
 
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
73
 (defvar-keymap review-map
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
74
   :doc "User-specified keymap for review functions. Usually bound to 'C-c c r'."
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
75
   "s" #'flyspell-buffer
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
76
   "SPC" #'whitespace-cleanup)
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
77
 
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
78
 (defvar-keymap user-map
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
79
   :doc "User-specified keymap usually bound to 'C-c c' and populated in 'custom.el'."
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
80
   :prefix 'user-map
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
81
   "c" #'org-capture
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
82
   "l" #'org-store-link
31
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
83
   "f" #'load-file
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
84
   "u" #'compile
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
85
   "a" #'org-agenda
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
86
   "<return>" #'shell
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
87
   "C-<return>" #'term
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
88
   "S-<return>" #'eshell
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
89
   "!" #'async-shell-command
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
90
   "s" #'speedbar
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
91
   "SPC" toggle-map
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
92
   "." status-map
31
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
93
   "r" review-map
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
94
   "q" server-map
35
b8b2433003ef paredit/repeat
ellis <ellis@rwest.io>
parents: 34
diff changeset
95
   "(" parens-map
34
882a5c1e7b9f emacs config
ellis <ellis@rwest.io>
parents: 33
diff changeset
96
   "d i" #'image-dired
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
97
   "<tab>" #'outline-cycle
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
98
   "<backtab>" #'outline-cycle-buffer
34
882a5c1e7b9f emacs config
ellis <ellis@rwest.io>
parents: 33
diff changeset
99
   "z" #'scratch-buffer
882a5c1e7b9f emacs config
ellis <ellis@rwest.io>
parents: 33
diff changeset
100
   "C-z" #'scratch-new
31
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
101
   "Z" #'default-scratch-buffer
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
102
   ";" #'prog-comment-dwim
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
103
   "C-;" #'prog-comment-timestamp-keyword)
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
104
 
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
105
 ;;; Modes
33
e3b0ec661dfa added inbox.el, more emacs config
ellis <ellis@rwest.io>
parents: 31
diff changeset
106
 (add-hook 
e3b0ec661dfa added inbox.el, more emacs config
ellis <ellis@rwest.io>
parents: 31
diff changeset
107
  'conf-toml-mode-hook
e3b0ec661dfa added inbox.el, more emacs config
ellis <ellis@rwest.io>
parents: 31
diff changeset
108
  (lambda ()
e3b0ec661dfa added inbox.el, more emacs config
ellis <ellis@rwest.io>
parents: 31
diff changeset
109
    (keymap-set conf-toml-mode-map "C-c C-c C-r" #'rust-run)
e3b0ec661dfa added inbox.el, more emacs config
ellis <ellis@rwest.io>
parents: 31
diff changeset
110
    (keymap-set conf-toml-mode-map "C-c C-c C-u" #'rust-compile)
e3b0ec661dfa added inbox.el, more emacs config
ellis <ellis@rwest.io>
parents: 31
diff changeset
111
    (keymap-set conf-toml-mode-map "C-c C-c C-t" #'rust-test)))
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
112
 
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
113
 ;;; C-x
34
882a5c1e7b9f emacs config
ellis <ellis@rwest.io>
parents: 33
diff changeset
114
 (keymap-set ctl-x-map "C-b" #'ibuffer)
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
115
 
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
116
 ;;; C-x r
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
117
 (keymap-set ctl-x-r-map "SPC" #'point-to-register)
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
118
 (keymap-set ctl-x-r-map "C-l" #'list-registers)
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
119
 (keymap-set ctl-x-r-map "C-b" #'buffer-to-register)
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
120
 (keymap-set ctl-x-r-map "C-f" #'file-query-to-register)
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
121
 (keymap-set ctl-x-r-map "C-r" #'copy-register)
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
122
 
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
123
 ;;; C-x x
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
124
 
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
125
 ;;; Global
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 27
diff changeset
126
 (keymap-global-set "C-c c" user-map)
34
882a5c1e7b9f emacs config
ellis <ellis@rwest.io>
parents: 33
diff changeset
127
 (keymap-global-set "<remap> <tab-to-tab-stop>" #'imenu)
35
b8b2433003ef paredit/repeat
ellis <ellis@rwest.io>
parents: 34
diff changeset
128
 (keymap-global-set "<XF86Paste>" parens-map)
27
1142c97f92ab emacs config
ellis <ellis@rwest.io>
parents: 26
diff changeset
129
 
1142c97f92ab emacs config
ellis <ellis@rwest.io>
parents: 26
diff changeset
130
 (provide 'keys)
1142c97f92ab emacs config
ellis <ellis@rwest.io>
parents: 26
diff changeset
131
 ;; keys.el ends here