diff --git a/modules/config/default/+evil-bindings.el b/modules/config/default/+evil-bindings.el index c3c086730..3528697bd 100644 --- a/modules/config/default/+evil-bindings.el +++ b/modules/config/default/+evil-bindings.el @@ -88,7 +88,7 @@ :nv "P" #'evil-mc-make-and-goto-first-cursor :nv "q" #'evil-mc-undo-all-cursors :nv "t" #'+multiple-cursors/evil-mc-toggle-cursors - :nv "u" #'evil-mc-undo-last-added-cursor + :nv "u" #'+multiple-cursors/evil-mc-undo-cursor :nv "z" #'+multiple-cursors/evil-mc-toggle-cursor-here :v "I" #'evil-mc-make-cursor-in-visual-selection-beg :v "A" #'evil-mc-make-cursor-in-visual-selection-end) diff --git a/modules/editor/multiple-cursors/autoload/evil-mc.el b/modules/editor/multiple-cursors/autoload/evil-mc.el index 822c6d34d..da4a00fd2 100644 --- a/modules/editor/multiple-cursors/autoload/evil-mc.el +++ b/modules/editor/multiple-cursors/autoload/evil-mc.el @@ -101,3 +101,22 @@ FLAGS can be g and/or i; which mean the same thing they do in (if (evil-mc-has-cursors-p) (evil-mc-print-cursors-info "Created") (evil-mc-message "No cursors were created")))) + +;;;###autoload (autoload '+multiple-cursors/evil-mc-undo-cursor "editor/multiple-cursors/autoload/evil-mc" nil t) +(evil-define-command +multiple-cursors/evil-mc-undo-cursor () + "Undos last cursor, or all cursors in visual region." + :repeat nil + :evil-mc t + (interactive) + (if (evil-visual-state-p) + (or (mapc (lambda (c) + (evil-mc-delete-cursor c) + (setq evil-mc-cursor-list (delq c evil-mc-cursor-list))) + (cl-remove-if-not + (lambda (pos) + (and (>= pos evil-visual-beginning) + (< pos evil-visual-end))) + evil-mc-cursor-list + :key #'evil-mc-get-cursor-start)) + (message "No cursors to undo in region")) + (evil-mc-undo-last-added-cursor)))