From 27cabea6b6f2078c6d76cb0449473c5d7c023a5f Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 20 Dec 2019 13:40:06 -0500 Subject: [PATCH] Fix gs in org-mode #2218 Also makes +evil/easymotion generic; it can now be moved to any key, and new keys can be added to the event, rather than having to wait for evilem-map to become available. Also fixes +org/goto-visible if used before avy is loaded. Relevant to #1672 --- modules/config/default/+evil-bindings.el | 3 ++- modules/editor/evil/autoload/evil.el | 14 +++----------- modules/lang/org/autoload/org-avy.el | 1 + 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/modules/config/default/+evil-bindings.el b/modules/config/default/+evil-bindings.el index 27d556271ba..365e34abaaf 100644 --- a/modules/config/default/+evil-bindings.el +++ b/modules/config/default/+evil-bindings.el @@ -87,7 +87,8 @@ :m "gs" #'+evil/easymotion ; lazy-load `evil-easymotion' (:after org :map org-mode-map - :m "gsh" #'+org/goto-visible) + :prefix "" + "h" #'+org/goto-visible) (:when (featurep! :editor multiple-cursors) :prefix "gz" diff --git a/modules/editor/evil/autoload/evil.el b/modules/editor/evil/autoload/evil.el index ccbdebfdf7c..2575b4e05af 100644 --- a/modules/editor/evil/autoload/evil.el +++ b/modules/editor/evil/autoload/evil.el @@ -88,17 +88,9 @@ the only window, use evil-window-move-* (e.g. `evil-window-move-far-left')." "Invoke and lazy-load `evil-easymotion' without compromising which-key integration." (interactive) - (let ((prefix (this-command-keys))) - (evil-define-key* 'motion 'global prefix nil) - (evilem-default-keybindings (key-description prefix)) - (setq prefix-arg current-prefix-arg - unread-command-events - (mapcar (lambda (e) (cons t e)) - (vconcat (when evil-this-operator - (where-is-internal evil-this-operator - evil-normal-state-map - t)) - prefix))))) + (evilem-default-keybindings "") + (setq prefix-arg current-prefix-arg) + (push '(t . easymotion) unread-command-events)) ;;;###autoload (autoload '+evil:apply-macro "editor/evil/autoload/evil" nil t) (evil-define-operator +evil:apply-macro (beg end) diff --git a/modules/lang/org/autoload/org-avy.el b/modules/lang/org/autoload/org-avy.el index 0e10663e738..6112e239224 100644 --- a/modules/lang/org/autoload/org-avy.el +++ b/modules/lang/org/autoload/org-avy.el @@ -3,6 +3,7 @@ ;;;###autoload (defun +org-headline-avy () "TODO" + (require 'avy) (save-excursion (when-let* ((org-reverse-note-order t) (pos (avy-with avy-goto-line (avy-jump (rx bol (1+ "*") (1+ blank))))))