changelog shortlog graph tags branches changeset files revisions annotate raw help

Mercurial > core / emacs/keys.el

changeset 683: c5fe76568de0
parent: 849f72b72b41
author: Richard Westhaver <ellis@rwest.io>
date: Sat, 28 Sep 2024 17:48:06 -0400
permissions: -rw-r--r--
description: fixed clap objects to support make-load-form method - thunk is symbol only
1 ;;; keys.el --- emacs keys -*- lexical-binding: t -*-
2 
3 ;; default keybinds
4 
5 ;;; Commentary:
6 
7 ;; I encourage you to remap these keys as you see fit. Where possible,
8 ;; wrap your custom bindings in a keymap instead of redefining the
9 ;; global defaults defined here.
10 
11 ;;; Code:
12 (require 'default)
13 
14 (defvar-keymap parens-map
15  :doc "parens-minor-mode keymap."
16  :repeat (:enter)
17  :prefix 'parens-map
18  "u" #'backward-up-list
19  "f" #'forward-sexp
20  "b" #'backward-sexp
21  "d" #'down-list
22  "k" #'kill-sexp
23  "\\" #'indent-region
24  "/" #'undo
25  "t" #'transpose-sexps
26  "x" #'eval-defun)
27 
28 (defvar-keymap toggle-map
29  :doc "User-specified keymap for mode toggles. Usually bound to 'C-c c SPC'."
30  :prefix 'toggle-map
31  "v" #'global-visual-line-mode
32  "h" #'global-hl-line-mode
33  "i" #'imenu-list-smart-toggle
34  "N" #'global-display-line-numbers-mode
35  "c" #'corfu-mode
36  "a" #'gpm-mouse-mode
37  "r" #'refill-mode
38  "o" #'outline-minor-mode
39  "O" #'allout-mode
40  "R" #'global-auto-revert-mode
41  "t" #'toggle-frame-tab-bar
42  "T" #'load-theme
43  "d" #'toggle-debug-on-error
44  "SPC" #'toggle-macro-recording
45  "x" #'org-clock-toggle-auto-clockout
46  "s" #'slime-toggle
47  "w" #'which-key-mode)
48 
49 (defvar-keymap status-map
50  :doc "User-specified keymap for status functions. Usually bound to 'C-c c .'."
51  "l" #'eglot-list-connections
52  "p" #'list-processes
53  "t" #'list-threads
54  "a" #'list-abbrevs
55  "c" #'list-timers
56  "d" #'list-dynamic-libraries
57  "P" #'list-packages)
58 
59 (defvar-keymap server-map
60  :doc "User-specified keymap for server functions. Usually bound to 'C-c c q'."
61  "q" #'kill-emacs
62  "r" #'kill-emacs-restart)
63 
64 (defvar-keymap review-map
65  :doc "User-specified keymap for review functions. Usually bound to 'C-c c r'."
66  "s" #'flyspell-buffer
67  "SPC" #'whitespace-cleanup
68  "C-s" #'org-schedule-effort
69  "u" #'untabify
70  "q" #'query-replace-regexp)
71 
72 (defvar-keymap search-map
73  :doc "User-specified keymap for search functions. Usually bound to 'C-c c s'."
74  "g" #'grep
75  "r" #'rgrep
76  "z" #'zrgrep
77  "f" #'re-search-forward
78  "b" #'re-search-backward
79  "d" #'xref-find-definitions
80  "a" #'xref-find-apropos
81  "SPC" #'whitespace-cleanup)
82 
83 (defvar-keymap clock-map
84  :doc "User-specified keymap for org-clock functions. Usually bound to 'C-c c t'."
85  "j" #'org-clock-goto
86  "i" #'org-clock-in
87  "o" #'org-clock-out
88  "d" #'org-clock-display
89  "x" #'org-clock-cancel
90  "l" #'org-clock-in-last
91  "e" #'org-clock-modify-effort-estimate
92  "m" #'org-clock-mark-default-task)
93 
94 (defvar-keymap user-map
95  :doc "User-specified keymap usually bound to 'C-c c' and populated in 'custom.el'."
96  :prefix 'user-map
97  "c" #'org-capture
98  "1" #'org-inbox-open
99  "l" #'org-store-link
100  "C-l" #'org-web-tools-insert-link-for-url
101  "f" #'load-file
102  "u" #'compile
103  "a" #'org-agenda
104  "A" #'org-agenda-show-week-all
105  "RET" #'eshell
106  "C-<return>" #'eshell-new
107  "s-<return>" #'term
108  "!" #'async-shell-command
109  "i" #'imenu
110  "SPC" toggle-map
111  "." status-map
112  "s" search-map
113  "r" review-map
114  "q" server-map
115  "(" parens-map
116  "M-l" #'duplicate-dwim
117  "d i" #'image-dired
118  "TAB" #'outline-cycle
119  "<backtab>" #'outline-cycle-buffer
120  "z" #'scratch-buffer
121  "C-z" #'scratch-new
122  "Z" #'default-scratch-buffer
123  "t" clock-map
124  ";" #'prog-comment-dwim
125  "C-;" #'prog-comment-timestamp-keyword)
126 
127 ;;; Modes
128 (add-hook
129  'conf-toml-mode-hook
130  (lambda ()
131  (keymap-set conf-toml-mode-map "C-c C-c C-r" #'rust-run)
132  (keymap-set conf-toml-mode-map "C-c C-c C-u" #'rust-compile)
133  (keymap-set conf-toml-mode-map "C-c C-c C-t" #'rust-test)))
134 
135 ;;; C-x
136 (keymap-set ctl-x-map "C-b" #'ibuffer)
137 
138 ;;; C-x r
139 (keymap-set ctl-x-r-map "SPC" #'point-to-register)
140 (keymap-set ctl-x-r-map "C-l" #'list-registers)
141 (keymap-set ctl-x-r-map "C-b" #'buffer-to-register)
142 (keymap-set ctl-x-r-map "C-f" #'file-query-to-register)
143 (keymap-set ctl-x-r-map "C-r" #'copy-register)
144 
145 ;;; C-x x
146 
147 ;;; Global
148 (keymap-global-set "C-c c" user-map)
149 (keymap-global-set "<remap> <tab-to-tab-stop>" #'imenu)
150 (keymap-global-set "<XF86Paste>" parens-map)
151 (keymap-global-set "C-c C-p" #'outline-previous-heading)
152 (keymap-global-set "C-c C-n" #'outline-next-heading)
153 (global-set-key [remap dabbrev-expand] 'hippie-expand)
154 (keymap-global-set "C-c a" #'org-agenda)
155 (keymap-global-set "C-c t" #'org-todo)
156 
157 (provide 'keys)
158 ;; keys.el ends here