From 19ca683f8676396f8ed50837d3cd19628fc247c7 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 25 Oct 2017 14:50:02 +0200 Subject: [PATCH] Add :g switch to map! #249 --- core/core-keybinds.el | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/core/core-keybinds.el b/core/core-keybinds.el index f2d70468e..ed7f96b8b 100644 --- a/core/core-keybinds.el +++ b/core/core-keybinds.el @@ -17,7 +17,8 @@ (?e . emacs) (?o . operator) (?m . motion) - (?r . replace)) + (?r . replace) + (?g . global)) "A list of cons cells that map a letter to a evil state symbol.") @@ -267,16 +268,23 @@ Example forms) (throw 'skip 'local)) ((and doom--keymaps states) - (unless (featurep 'evil) (throw 'skip 'evil)) + (unless (featurep 'evil) + (throw 'skip 'evil)) (dolist (keymap doom--keymaps) - (push `(,(if doom--defer 'evil-define-key 'evil-define-key*) - ',states ,keymap ,key ,def) - forms))) + (when (memq 'global states) + (push `(define-key ,keymap ,key ,def) forms)) + (when-let (states (delq 'global states)) + (push `(,(if doom--defer 'evil-define-key 'evil-define-key*) + ',states ,keymap ,key ,def) + forms)))) (states - (unless (featurep 'evil) (throw 'skip 'evil)) + (unless (featurep 'evil) + (throw 'skip 'evil)) (dolist (state states) (push `(define-key - ,(intern (format "evil-%s-state-%smap" state (if doom--local "local-" ""))) + ,(if (eq state 'global) + '(current-global-map) + (intern (format "evil-%s-state-%smap" state (if doom--local "local-" "")))) ,key ,def) forms))) (doom--keymaps