diff options
| -rw-r--r-- | emacs-config.org | 95 |
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 |
