summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKévin Le Gouguec <kevin.legouguec@gmail.com>2020-09-18 16:13:03 +0200
committerKévin Le Gouguec <kevin.legouguec@gmail.com>2020-09-18 16:13:03 +0200
commit1180e5d652515591c7c94a78e401a3a7001d6aa0 (patch)
tree9ae7d146de36f4ef1f541a8148a74234ec4ac238
parentc3c3f03b11abfbf30f5557bdabe753d426d9bff3 (diff)
downloaddotfiles-1180e5d652515591c7c94a78e401a3a7001d6aa0.tar.xz
Define more prefix commands
-rw-r--r--.emacs50
1 files changed, 35 insertions, 15 deletions
diff --git a/.emacs b/.emacs
index 6eea940..773af2f 100644
--- a/.emacs
+++ b/.emacs
@@ -141,33 +141,53 @@
'(("t" toggle-truncate-lines)
("v" visual-line-mode)))
+(my/define-prefix-command my/editing-map
+ "Keymap for toggling editing features."
+ '(("f" auto-fill-mode)))
+
(my/define-prefix-command my/input-map
"Keymap for input methods shortcuts."
`(("t" ,(my/make-input-toggle TeX))
("u" ,(my/make-input-toggle my/symbols))))
+(my/define-prefix-command my/kill-map
+ "Keymap for adding things to the kill ring."
+ '(("f" my/kill-ring-filename)
+ ("|" my/kill-ring-pipe-region)
+ ("!" my/kill-ring-shell)))
+
+(my/define-prefix-command my/manual-map
+ "Keymap for reading manuals."
+ '(("i" info-display-manual)
+ ("m" man)))
+
+(my/define-prefix-command my/project-map
+ "Keymap for project-related commands."
+ '(("g" my/magit-project)))
+
+(my/define-prefix-command my/whitespace-map
+ "Keymap for whitespace-related commands."
+ '(("c" whitespace-cleanup)
+ ("f" page-break-lines-mode)
+ ("m" whitespace-mode)
+ ("t" my/set-tab-width)))
+
;; C-c [[:alpha:]] is reserved for users - let's make good use of it.
(global-set-key (kbd "C-c c") 'compile)
(global-set-key (kbd "C-c d") 'my/display-map)
-(global-set-key (kbd "C-c e f") 'auto-fill-mode)
+(global-set-key (kbd "C-c e") 'my/editing-map)
(global-set-key (kbd "C-c i") 'my/input-map)
-(global-set-key (kbd "C-c k f") 'my/kill-ring-filename)
-(global-set-key (kbd "C-c k |") 'my/kill-ring-pipe-region)
-(global-set-key (kbd "C-c k !") 'my/kill-ring-shell)
-(global-set-key (kbd "C-c m i") 'info-display-manual)
-(global-set-key (kbd "C-c m m") 'man)
-(global-set-key (kbd "C-c p g") 'my/magit-project)
-(global-set-key (kbd "C-c w c") 'whitespace-cleanup)
-(global-set-key (kbd "C-c w f") 'page-break-lines-mode)
-(global-set-key (kbd "C-c w m") 'whitespace-mode)
-(global-set-key (kbd "C-c w t") 'my/set-tab-width)
+(global-set-key (kbd "C-c k") 'my/kill-map)
+(global-set-key (kbd "C-c m") 'my/manual-map)
+(global-set-key (kbd "C-c p") 'my/project-map)
+(global-set-key (kbd "C-c w") 'my/whitespace-map)
(unless (>= emacs-major-version 28)
- (global-set-key (kbd "C-c p c") (my/make-project-wide 'compile))
- (global-set-key (kbd "C-c p f") 'project-find-file)
- (global-set-key (kbd "C-c p !") (my/make-project-wide 'shell-command))
- (global-set-key (kbd "C-c p &") (my/make-project-wide 'async-shell-command)))
+ (define-key my/project-map "c" (my/make-project-wide 'compile))
+ (define-key my/project-map "f" 'project-find-file)
+ (define-key my/project-map "!" (my/make-project-wide 'shell-command))
+ (define-key my/project-map "&" (my/make-project-wide 'async-shell-command)))
(rg-enable-default-bindings) ; Uses the C-c s prefix.