icicles-menu.el: Execute a menu command from keyboard, with completion
Execute Emacs menu commands from the keyboard, with completion: library
Menus are not just for wimps and newbies anymore - they can help you quickly
locate and execute commands. No need to know where a menu command is in the
menu tree, or what its full name is. Just type part of its name any part
and use completion to get the rest (with the complete menu path) - and then
execute the command.
To use menu-command completion and cycling, bind, for example, `ESC M-x' to
`icicle-execute-menu-command'. That command prompts you for a menu command
to execute, and executes it. Example of use:
Menu commmand: .*print.*buf [next] [next]...
Each time you hit [next], the minibuffer input is completed to a different
menu item that matches "print" followed (somewhere) by "buf". Or, instead of
hitting the [next] key, hit S-TAB to choose from the list of all such
matching menu commands, in buffer *Completions*.
Here's another example, with simple, literal text as input for completion
(no regexp wildcards). TAB performs the ordinary prefix completion, not the
apropos completion of [next].
Menu command: T [TAB]
Menu command: Tools >
Menu command: Tools > Compa [TAB]
Menu command: Tools > Compare (Ediff) > Two F [TAB]
Menu command: Tools > Compare (Ediff) > Two Files... [RET]
The completion and cycling available with icicles.el works not only for
command execution (M-x), but also for any other minibuffer input that uses
completion. This includes commands that read buffer names (e.g. C-x b) and
file names (e.g. C-x C-f).