Add define-key! macro; refactor config/default key fixes

I'd like to phase out map! where it isn't absolutely necessary, since it
isn't very well optimized.
This commit is contained in:
Henrik Lissner 2018-06-01 02:15:19 +02:00
parent dff6e44635
commit 3359d351f5
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
2 changed files with 70 additions and 44 deletions

View file

@ -153,6 +153,18 @@ For example, :nvi will map to (list 'normal 'visual 'insert). See
(defvar doom--defer nil)
(defvar doom--local nil)
(defmacro define-key! (keymap key def &rest rest)
"TODO"
(declare (indent defun))
`(progn
(define-key ,keymap ,key ,def)
,@(let (forms)
(while rest
(let ((key (pop rest))
(def (pop rest)))
(push `(define-key ,keymap ,key ,def) forms)))
(nreverse forms))))
(defmacro map! (&rest rest)
"A nightmare of a key-binding macro that will use `evil-define-key*',
`define-key', `local-set-key' and `global-set-key' depending on context and