Alt+<Keys> should behave like Esc, <Keys> in sequence
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 15.2k
- Forks
- 1.5k
- Avg merge
- 3d 18h
- Merged PRs (30d)
- 6
Description
Is your feature request related to a problem? Please describe.
In nearly all terminal emulators I've used, I can with the default configuration press Alt+<keys> as a more ergonomic way to press Esc and then <keys>.
This trick is possible because of how terminals encode Esc and Alt. They are basically the same, except Esc is a sticky Alt.
For example, Alt+Space leaves insert mode without moving the cursor backward. Alt+J and Alt+K can be used to start moving vertically. Alt+Shift+; (equivalent to Esc, :) can be used to start entering a new command.
It's a little jarring to my muscle memory when it doesn't work in VSCode
Describe the solution you'd like
For any Alt+<keys> sequence not intercepted by the OS, browser, or VSCode bindings, it should be handled equivalently to Esc, <keys>
Describe alternatives you've considered
Binding every possibility manually: This is obviously inconvenient but works for ones I can think of beforehand.
The more complicated the configuration process is, the more I tend to convince myself I should deal with the defaults.
Additional context
I'm not the only one with this habit: https://github.com/VSCodeVim/Vim/issues/7436
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 investigating how VSCodeVim receives and processes Alt key sequences, including which sequences are intercepted by the OS, browser, or VSCode bindings. Done means an unhandled Alt+keys sequence behaves like Esc followed by those keys, while existing bindings and intercepted sequences remain unchanged.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript, vscode
- Domain
- developer-experience, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100