One annoying then when looking up VS keyboard shortcuts is that they are always described in terms of the default keyboard combination you would use to invoke the action; this doesn't apply for people who've changed it. It makes more sense to list the "action name" - i.e. the thing you search for in the configure shortcut screen.
Command Name | Shortcuts | Notes |
---|---|---|
Tools.CustomizeKeyboard | ctl+shift+k | the most important shortcut so you can add shortcuts for everything else easily. |
Window.NextTab, Window.PreviousTab | Ctl+tab, ctl+shift+tab | Fix tab navigation - visual left-right rather than magic. |
GoToDefinition | F12 | Useful VS |
GoToAll | Ctl+G | Metasearch |
UndoClose | Ctl+Shift+T | requires VS2019 powertools |
File.Close | Ctl+W | Why do they make this so hard by default? |
Reformat | Ctl+Shift+E | Requires resharper. Useful to set this to happen automatically on every save. |
View.NavigateForward/Backward | Alt+left, right | This sets up reasonable keyboard navigation |
View.NextError | Ctl+1 | To cycle through syntax errors |
I'd guess only 1% of users actually understand the "context" / "extent" idea - where some shortcuts are global, others are only in certain editor windows. Also, the behavior when you override a shortcut is not specified.
I've played with editors which have an option to "display invoked command" in the status bar. So when you are trying to debug a keyboard shortcut which you suspect may be being intercepted by another one, you can see in the status bar how your keyboard interaction was interpreted: "you did ctl+shift+t which led to me doing X" where X is not what you want. This would make it a lot easier to debug this kind of thing.
Another thing that's missing is a filter view on the dropdown which would show only the ones which have anything assigned to them - 90% of the list below is listing of commands which have nothing set up.