evil-mc icon indicating copy to clipboard operation
evil-mc copied to clipboard

evil-undo (`u`) unaligns the cursors

Open duianto opened this issue 3 years ago • 0 comments

evil-undo (u) unaligns the cursors, undo (C-/) keeps them aligned.

Reproduction steps

With multiple words in a buffer.

abcdef
abcdef
abcdef
  • In evil normal state, create evil-mc cursors on all occurrences by pressing: grm The cursors appear at the end of the words.
abcde[f]
abcde[f]
abcde[f]
  • Move back the cursors to the left twice: hh
abc[d]ef
abc[d]ef
abc[d]ef
  • Enter evil insert state: i
abc|def
abc|def
abc|def
  • Type a character: x
abcx|def
abcx|def
abcx|def
  • Exit to evil normal state: esc
abc[x]def
abc[x]def
abc[x]def

Move the cursors to the beginning of the words: b

[a]bxcdef
[a]bxcdef
[a]bxcdef

Undo: u (evil-undo)

Observed

The real cursor moved to the position where the x was. The fake cursors remain at the beginning of the words.

abc[d]ef
[a]bcdef
[a]bcdef

Expected

The cursors should remain aligned. This behavior is observed when the Emacs undo command is used: C-/ (undo) All cursors move to the positions where the x's were.

abc[d]ef
abc[d]ef
abc[d]ef

The cursors should probably stay where they were when the undo command was called.

[a]bcdef
[a]bcdef
[a]bcdef

Notes

The same behavior is also observed when the words are unaligned.

  • evil-undo (u)
abc[d]ef
  [a]bcdef
    [a]bcdef
  • undo (C-/)
abc[d]ef
  abc[d]ef
    abc[d]ef

System Info

evil-mc-20210730.1752 GNU Emacs 27.2 (build 1, x86_64-w64-mingw32) of 2021-03-26 Windows 21H1

duianto avatar Aug 01 '21 08:08 duianto