Exiting Insert mode loses multiple cursors when Insert mode was entered from Visual mode via `I` or `A`
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 15.2k
- Forks
- 1.5k
- Avg merge
- 3d 18h
- Merged PRs (30d)
- 6
Description
Describe the bug
When selecting multiple occurrences of a word or selection via Ctrl + D, then entering Insert mode with c, then entering Normal mode via Escape, the multiple cursors are preserved (great!). However if Insert mode was entered via Shift +i or Shift + a, then the additional cursors are lost. In both cases Insert mode was entered directly from Visual mode but afterwards they behave differently. I believe this is a discrepancy that shouldn't exist and makes me sad :(
The best workaround I can see is to enter Normal mode (from Visual mode) via Ctrl + [ before entering Insert mode. That way the cursors are preserved upon exiting Insert mode.
To Reproduce
Steps to reproduce the behavior:
- Select multiple occurrences of a word or selection via
Ctrl + D - Enter Insert mode via
Shift + iorShift + a - Type some text (optional)
- Exit Insert mode via
Escape - Only the first cursor remains
Expected behavior
Exiting Insert mode into Normal mode should retain all cursors. Then pressing Escape once more in Normal mode should clear the additional cursors.
Environment (please complete the following information):
- Extension (VsCodeVim) version: 1.21.6
- VSCode version: 1.59.0
- OS: Windows 11 Pro
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the behavior in VSCodeVim with Ctrl+D, Shift+I or Shift+A, and Escape, then compare that transition with entering Insert mode via c. Done means exiting Insert mode retains all cursors, while a second Escape in Normal mode clears the additional cursors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript, vscode
- Domain
- devtools
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 45/100