-
Notifications
You must be signed in to change notification settings - Fork 36.8k
Description
I'm not asking for the ability to run multiple commands in sequence, as mentioned in
- Please allow multiple commands per keybinding #18621
- Macro like keybindings #871
- I can't bind one key with two or more commands in keybindings.json #171
or as addressed with the macros extension
I'd like to be able to assign a given keybinding to multiple different commands separately, and if multiple commands are applicable in the current context when the keystroke is used, present the user with a menu of the options, rather than considering it a conflict, where only one can "win".
There are many significant benefits to this:
- You don't have to worry about keybindings from your multiple extensions conflicting with each other.
- All extension authors can add the keybinding they think makes the most sense, instead of telling you to manually add it in your own personal keybindings.json.
- You don't have to worry about your personal keybindings clobbering a default keybinding (this sort of conflict does not appear when you use "Show Conflicts"—at least it did not in my tests).
- You will never accidentally use the wrong command because of a conflict in which you expected another command to be triggered by your keybinding.
- You can purposefully add multiple related commands to the same keybinding, so that you have fewer bindings to memorize. For example,
- you could assign all of your Git-related commands to ⌘⌥G, or, for more focused groupings,
- you could assign all variations of Git commands related to adding files to ⌘⌥A, and those related to commiting to ⌘⌥C, and so forth.
- You can experiment with changed keybindings without having to change the whole world in order to accommodate the change you think you might prefer.
Since there may be people who have grown accustomed to existing conflicts in their keybindings (and accustomed to the current winner) it would make sense for this behavior to have a setting to turn it on or off, so that they are not presented with a menu containing what used to be considered "conflicts" but under the new behavior are simply alternate options assigned to the same keystroke.