Fix gzz not toggling evil-mc cursors in normal mode

This commit is contained in:
Henrik Lissner 2020-06-05 00:12:26 -04:00
parent d5d0fb95e2
commit 51ffacb4d9
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
2 changed files with 15 additions and 4 deletions

View file

@ -89,7 +89,7 @@
:nv "q" #'evil-mc-undo-all-cursors :nv "q" #'evil-mc-undo-all-cursors
:nv "t" #'+multiple-cursors/evil-mc-toggle-cursors :nv "t" #'+multiple-cursors/evil-mc-toggle-cursors
:nv "u" #'evil-mc-undo-last-added-cursor :nv "u" #'evil-mc-undo-last-added-cursor
:nv "z" #'+multiple-cursors/evil-mc-make-cursor-here :nv "z" #'+multiple-cursors/evil-mc-toggle-cursor-here
:v "I" #'evil-mc-make-cursor-in-visual-selection-beg :v "I" #'evil-mc-make-cursor-in-visual-selection-beg
:v "A" #'evil-mc-make-cursor-in-visual-selection-end) :v "A" #'evil-mc-make-cursor-in-visual-selection-end)

View file

@ -13,8 +13,8 @@
(message "evil-mc paused") (message "evil-mc paused")
(message "evil-mc resumed"))) (message "evil-mc resumed")))
;;;###autoload (autoload '+multiple-cursors/evil-mc-make-cursor-here "editor/multiple-cursors/autoload/evil-mc" nil t) ;;;###autoload (autoload '+multiple-cursors/evil-mc-toggle-cursor-here "editor/multiple-cursors/autoload/evil-mc" nil t)
(evil-define-command +multiple-cursors/evil-mc-make-cursor-here () (evil-define-command +multiple-cursors/evil-mc-toggle-cursor-here ()
"Create a cursor at point. If in visual block or line mode, then create "Create a cursor at point. If in visual block or line mode, then create
cursors on each line of the selection, on the column of the cursor. Otherwise cursors on each line of the selection, on the column of the cursor. Otherwise
pauses cursors." pauses cursors."
@ -22,7 +22,18 @@ pauses cursors."
:keep-visual nil :keep-visual nil
:evil-mc t :evil-mc t
(interactive) (interactive)
(cond ((memq evil-this-type '(block line)) (cond ((and (evil-mc-has-cursors-p)
(evil-normal-state-p)
(let* ((pos (point))
(cursor (cl-find-if (lambda (cursor)
(eq pos (evil-mc-get-cursor-start cursor)))
evil-mc-cursor-list)))
(when cursor
(evil-mc-delete-cursor cursor)
(setq evil-mc-cursor-list (delq cursor evil-mc-cursor-list))
t))))
((memq evil-this-type '(block line))
(let ((col (evil-column)) (let ((col (evil-column))
(line-at-pt (line-number-at-pos))) (line-at-pt (line-number-at-pos)))
;; Fix off-by-one error ;; Fix off-by-one error