diff --git a/modules/config/default/+bindings.el b/modules/config/default/+bindings.el index d8d259df2..4a0d994fd 100644 --- a/modules/config/default/+bindings.el +++ b/modules/config/default/+bindings.el @@ -334,7 +334,6 @@ :n "gr" #'+eval:region :n "gR" #'+eval/buffer :v "gR" #'+eval:replace-region - :m "gs" #'+default/easymotion ; lazy-load `evil-easymotion' :v "@" #'+evil:apply-macro :n "g@" #'+evil:apply-macro ;; repeat in visual mode (FIXME buggy) @@ -394,6 +393,25 @@ "C-SPC" #'ivy-call-and-recenter ; preview "M-RET" (+ivy-do-action! #'+ivy-git-grep-other-window-action))) + ;; easymotion + :m "gs" #'+default/easymotion ; lazy-load `evil-easymotion' + (:after evil-easymotion + :map evilem-map + "a" (evilem-create #'evil-forward-arg) + "A" (evilem-create #'evil-backward-arg) + "n" (evilem-create #'evil-ex-search-next) + "N" (evilem-create #'evil-ex-search-previous) + "s" (evilem-create #'evil-snipe-repeat + :pre-hook (save-excursion (call-interactively #'evil-snipe-s)) + :bind ((evil-snipe-scope 'buffer) + (evil-snipe-enable-highlight) + (evil-snipe-enable-incremental-highlight))) + "S" (evilem-create #'evil-snipe-repeat-reverse + :pre-hook (save-excursion (call-interactively #'evil-snipe-s)) + :bind ((evil-snipe-scope 'buffer) + (evil-snipe-enable-highlight) + (evil-snipe-enable-incremental-highlight)))) + ;; evil (:after evil :textobj "a" #'evil-inner-arg #'evil-outer-arg diff --git a/modules/config/default/autoload/evil.el b/modules/config/default/autoload/evil.el index ae0fdbffa..521bc72f2 100644 --- a/modules/config/default/autoload/evil.el +++ b/modules/config/default/autoload/evil.el @@ -38,25 +38,11 @@ buffers." ;;;###autoload (defun +default/easymotion () - "TODO" + "Invoke and lazy-load `evil-easymotion' without compromising which-key +integration." (interactive) (let ((prefix (this-command-keys))) (map! :m prefix nil) (evilem-default-keybindings prefix) - (let ((map evilem-map)) - (define-key map "n" (evilem-create #'evil-ex-search-next)) - (define-key map "N" (evilem-create #'evil-ex-search-previous)) - (define-key map "s" - (evilem-create #'evil-snipe-repeat - :pre-hook (save-excursion (call-interactively #'evil-snipe-s)) - :bind ((evil-snipe-scope 'buffer) - (evil-snipe-enable-highlight) - (evil-snipe-enable-incremental-highlight)))) - (define-key map "S" - (evilem-create #'evil-snipe-repeat-reverse - :pre-hook (save-excursion (call-interactively #'evil-snipe-s)) - :bind ((evil-snipe-scope 'buffer) - (evil-snipe-enable-highlight) - (evil-snipe-enable-incremental-highlight)))) - (set-transient-map map) - (which-key-reload-key-sequence prefix)))) + (set-transient-map evilem-map) + (which-key-reload-key-sequence prefix)))