summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--emacs-config.org95
1 files changed, 53 insertions, 42 deletions
diff --git a/emacs-config.org b/emacs-config.org
index 4844bfc..b98f4a8 100644
--- a/emacs-config.org
+++ b/emacs-config.org
@@ -215,84 +215,95 @@ Enable supported org babel languages.
(cl-pushnew `(,lang . t) org-babel-load-languages))
#+end_src
-* Global Keybindings
+* Keybindings
Unlock previously unusable keybinding.
#+begin_src elisp
(define-key input-decode-map [?\C-\[] (kbd "<C-[>"))
#+end_src
+** Global Keybindings
+To prevent other packages overriding any custom global keybinding, all custom global keybinding are stored in a global minor mode.
+#+begin_src elisp
+ (define-minor-mode +global-keys
+ "Minor to store my custom global keybindings."
+ :global t
+ :lighter " +GKEYS"
+ :keymap (make-sparse-keymap))
+
+ (+global-keys)
+#+end_src
+
File actions.
#+begin_src elisp
- (keymap-global-set "C-x x R" #'rename-visited-file)
- (keymap-global-set "C-x x D" #'delete-file)
+ (keymap-set +global-keys-map "C-x x R" #'rename-visited-file)
+ (keymap-set +global-keys-map "C-x x D" #'delete-file)
#+end_src
Window actions.
#+begin_src elisp
- (keymap-global-set "M-o" #'other-window)
- (keymap-global-set "M-O" #'window-swap-states)
- (keymap-global-set "M-V" #'scroll-other-window-down)
- (keymap-global-set "C-S-V" #'scroll-other-window)
- (keymap-global-set "C-M-<" #'beginning-of-buffer-other-window)
- (keymap-global-set "C-M->" #'end-of-buffer-other-window)
- (keymap-global-set "C-M-]" #'next-buffer)
- (keymap-global-set "M-ESC" #'previous-buffer) ; C-M-[ translates to M-ESC
+ (keymap-set +global-keys-map "M-o" #'other-window)
+ (keymap-set +global-keys-map "M-O" #'window-swap-states)
+ (keymap-set +global-keys-map "M-V" #'scroll-other-window-down)
+ (keymap-set +global-keys-map "C-S-V" #'scroll-other-window)
+ (keymap-set +global-keys-map "C-M-<" #'beginning-of-buffer-other-window)
+ (keymap-set +global-keys-map "C-M->" #'end-of-buffer-other-window)
+ (keymap-set +global-keys-map "C-M-]" #'next-buffer)
+ (keymap-set +global-keys-map "M-ESC" #'previous-buffer) ; C-M-[ translates to M-ESC
#+end_src
Set meta-key quick actions to mirror =C-x DIGIT= bindings, therefore reducing the need for additional keypresses.
These bindings override their corresponding numerical argument, however these can be can be alternatively called with =C-u DIGIT= or =C-DIGIT=.
#+begin_src elisp
- (keymap-global-set "C-M-0" #'kill-buffer-and-window)
- (keymap-global-set "C-M--" #'kill-this-buffer)
- (keymap-global-set "M-0" #'delete-window)
- (keymap-global-set "M-1" #'delete-other-windows)
- (keymap-global-set "M-2" #'split-window-below)
- (keymap-global-set "M-3" #'split-window-right)
- (keymap-global-set "M-4" #'ctl-x-4-prefix)
- (keymap-global-set "M-5" #'ctl-x-5-prefix)
- (keymap-global-set "M-6" (keymap-global-lookup "C-x 6"))
- ;; (keymap-global-set "M-7" (keymap-global-lookup "C-x 7"))
- (keymap-global-set "M-8" (keymap-global-lookup "C-x 8"))
- ;; (keymap-global-set "M-9" (keymap-global-lookup "C-x 9"))
+ (keymap-set +global-keys-map "C-M-0" #'kill-buffer-and-window)
+ (keymap-set +global-keys-map "C-M--" #'kill-this-buffer)
+ (keymap-set +global-keys-map "M-0" #'delete-window)
+ (keymap-set +global-keys-map "M-1" #'delete-other-windows)
+ (keymap-set +global-keys-map "M-2" #'split-window-below)
+ (keymap-set +global-keys-map "M-3" #'split-window-right)
+ (keymap-set +global-keys-map "M-4" #'ctl-x-4-prefix)
+ (keymap-set +global-keys-map "M-5" #'ctl-x-5-prefix)
+ (keymap-set +global-keys-map "M-6" (keymap-global-lookup "C-x 6"))
+ (keymap-set +global-keys-map "M-7" (keymap-global-lookup "C-x 7"))
+ (keymap-set +global-keys-map "M-8" (keymap-global-lookup "C-x 8"))
+ (keymap-set +global-keys-map "M-9" (keymap-global-lookup "C-x 9"))
#+end_src
Tab actions.
#+begin_src elisp
- (keymap-global-set "C-x C-<tab>" #'tab-new)
- (keymap-global-set "C-x C-<backspace>" #'tab-close)
- (keymap-global-set "C-x t l" #'tab-list)
- (keymap-global-set "C-x t <tab>" #'toggle-frame-tab-bar)
+ (keymap-set +global-keys-map "C-x C-<tab>" #'tab-new)
+ (keymap-set +global-keys-map "C-x C-<backspace>" #'tab-close)
+ (keymap-set +global-keys-map "C-x t l" #'tab-list)
+ (keymap-set +global-keys-map "C-x t <tab>" #'toggle-frame-tab-bar)
#+end_src
Improve region text manipulation.
#+begin_src elisp
- (keymap-global-set "M-c" #'capitalize-dwim)
- (keymap-global-set "M-l" #'downcase-dwim)
- (keymap-global-set "M-u" #'upcase-dwim)
- (keymap-global-set "M-U" #'upcase-char)
+ (keymap-set +global-keys-map "M-c" #'capitalize-dwim)
+ (keymap-set +global-keys-map "M-l" #'downcase-dwim)
+ (keymap-set +global-keys-map "M-u" #'upcase-dwim)
+ (keymap-set +global-keys-map "M-U" #'upcase-char)
#+end_src
Help actions.
#+begin_src elisp
- (keymap-global-set "C-h M" #'describe-keymap)
- (keymap-global-set "C-h j" #'describe-char)
+ (keymap-set +global-keys-map "C-h M" #'describe-keymap)
+ (keymap-set +global-keys-map "C-h j" #'describe-char)
#+end_src
Display modes.
#+begin_src elisp
- (keymap-global-set "C-x x c" #'display-fill-column-indicator-mode)
- (keymap-global-set "C-x x l" #'display-line-numbers-mode)
- (keymap-global-set "C-x x h" #'hl-line-mode)
- (keymap-global-set "C-x x o" #'overwrite-mode)
- (keymap-global-set "C-x x s" #'prettify-symbols-mode)
- (keymap-global-set "C-x x w" #'visual-line-mode)
- (keymap-global-set "C-x x SPC" #'whitespace-mode)
+ (keymap-set +global-keys-map "C-x x c" #'display-fill-column-indicator-mode)
+ (keymap-set +global-keys-map "C-x x l" #'display-line-numbers-mode)
+ (keymap-set +global-keys-map "C-x x h" #'hl-line-mode)
+ (keymap-set +global-keys-map "C-x x o" #'overwrite-mode)
+ (keymap-set +global-keys-map "C-x x s" #'prettify-symbols-mode)
+ (keymap-set +global-keys-map "C-x x w" #'visual-line-mode)
+ (keymap-set +global-keys-map "C-x x SPC" #'whitespace-mode)
#+end_src
-* Version Control
+** Diff-mode
Rebind diff-mode's ~diff-goto-source~ keybinding due to conflict with =M-o=.
#+begin_src elisp
(with-eval-after-load 'diff-mode
- (keymap-set diff-mode-map "M-o" #'other-window)
(keymap-set diff-mode-map "M-j" #'diff-goto-source))
#+end_src