Give config/default keybinds higher precedence
This is highly experimental! It gives keybinds bound with `map!` much higher precedence, allowing it to override the defaults imposed by major modes and plugins (like evil-collection).
This commit is contained in:
parent
69da6da541
commit
abe42fcb9a
3 changed files with 19 additions and 35 deletions
|
@ -10,6 +10,14 @@
|
|||
(defvar doom-localleader-key "SPC m"
|
||||
"The localleader prefix key, for major-mode specific commands.")
|
||||
|
||||
(defvar doom-mode-map (make-sparse-keymap)
|
||||
"TODO")
|
||||
|
||||
(define-minor-mode doom-mode
|
||||
"TODO"
|
||||
:global t
|
||||
:init-value t)
|
||||
|
||||
(defvar doom-evil-state-alist
|
||||
'((?n . normal)
|
||||
(?v . visual)
|
||||
|
@ -300,17 +308,19 @@ Example
|
|||
(unless (featurep 'evil)
|
||||
(throw 'skip 'evil))
|
||||
(dolist (state states)
|
||||
(push `(define-key
|
||||
,(if (eq state 'global)
|
||||
'(current-global-map)
|
||||
(intern (format "evil-%s-state-%smap" state (if doom--local "local-" ""))))
|
||||
,key ,def)
|
||||
(push (if (eq state 'global)
|
||||
`(define-key doom-mode-map ,key ,def)
|
||||
(if doom--local
|
||||
`(evil-local-set-key ',state ,key ,def)
|
||||
`(evil-define-key* ',state doom-mode-map ,key ,def)))
|
||||
forms)))
|
||||
(doom--keymaps
|
||||
(dolist (keymap doom--keymaps)
|
||||
(push `(define-key ,keymap ,key ,def) forms)))
|
||||
(t
|
||||
(push `(,(if doom--local #'local-set-key #'global-set-key) ,key ,def)
|
||||
(push (if doom--local
|
||||
`(local-set-key ,key ,def)
|
||||
`(define-key doom-mode-map ,key ,def))
|
||||
forms))))
|
||||
(setq states '()
|
||||
doom--local nil
|
||||
|
|
|
@ -733,32 +733,3 @@
|
|||
(:after view
|
||||
(:map view-mode-map "<escape>" #'View-quit-all)))
|
||||
|
||||
|
||||
;;
|
||||
;; Evil-collection mods
|
||||
;;
|
||||
|
||||
;; TODO find a better way
|
||||
(when (featurep 'evil-collection)
|
||||
;; don't interfere with leader key
|
||||
(evil-define-key* '(normal visual) special-mode-map (kbd doom-leader-key) nil)
|
||||
(after! dired
|
||||
(evil-define-key* 'normal dired-mode-map (kbd doom-leader-key) nil))
|
||||
|
||||
;; Don't rebind Doom's keybinds
|
||||
(after! alchemist
|
||||
(evil-define-key* 'normal alchemist-mode-map "gd" nil "K" nil "gz" nil))
|
||||
(after! anaconda-mode
|
||||
(evil-define-key* 'normal anaconda-mode-map "gd" nil "K" nil))
|
||||
(after! compile
|
||||
(evil-define-key* '(normal visual) compilation-mode-map "gd" nil "K" nil))
|
||||
(after! cider
|
||||
(evil-define-key* '(normal visual) cider-mode-map "gd" nil "K" nil))
|
||||
(after! go-mode
|
||||
(evil-define-key* 'normal go-mode-map "gd" nil "K" nil))
|
||||
(after! lua-mode
|
||||
(evil-define-key* 'normal lua-mode-map "K" nil))
|
||||
(after! outline
|
||||
(evil-define-key* 'normal outline-mode-map "\C-j" nil "\C-k" nil))
|
||||
(after! racer
|
||||
(evil-define-key* 'normal racer-mode-map "gd" nil "K" nil)))
|
||||
|
|
|
@ -63,6 +63,9 @@
|
|||
(add-hook 'doom-init-hook #'evil-mode)
|
||||
(evil-select-search-module 'evil-search-module 'evil-search)
|
||||
|
||||
;; ensure `doom-mode-map' has high precedence
|
||||
(evil-make-overriding-map doom-mode-map)
|
||||
|
||||
(set! :popup "^\\*evil-registers" '((size . 0.3)))
|
||||
(set! :popup "^\\*Command Line" '((size . 8)))
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue