Multi-plugin power users must remember and quickly access 100+ hotkeys. This quickly devolves into a “was that control-command W” or “shift-alt W”??
Emacs manages key bindings for many many dozens of plugins by using Muti-key command trees. Where hot keys can be bound to a SEQUENCE of keystrokes. As long as no sequence is a prefix of any other sequence they can be distinguished at execution time.
How this is used:
The use GROUPS commands and binds all of them to sequences with the same first key stroke. Common commands are still assigned a single stroke hotkey, while complex commands are assigned two (or sometimes more key strokes).
This is far easier to remember since one can arrange to use a pneumonic letter like “T” for table related commands, then a pneumonic letter like “I” for insert, and “R” for row. So the command would be ^T-I-R for table-insert-row.
OPTIONAL SUB-MENUS ADDITIONAL FEATURE:
A valuable addition would be the ability to bind a special “sub-menu” indicator, to a keystroke prefix. This tells Obsidian to present the user with a dynamically constructed submenu of all possible next key strokes, this can greatly aid the user’s memory of all key strokes under the “Table commands” “^T” prefix. This submenu would popup after the user paused some number of milliseconds or perhaps when they typed a special “help key”
Using these submenus the user would only need to remember the keystroke that brings up the submenu of many related commands.
Some plugin already create a submenu (e.g. menu of all possible template). Judicious prefix naming of those menu items can approximate a command tree like experience. BUT:
one can only have the specific sub-menus that the plugin creator provided. Power users will want to fashion their own submenus. Also those menus have ALL templates, while the user will only want a related subset along with non-template commands in their submenu, but that is impossible. Finally these menus require hitting return at the end. this is a 50% increase in keystrokes required for two-keystroke commands.
I could not find any related requests.