icicles-menu.el: Execute a menu command from keyboard, with completion

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

icicles-menu.el: Execute a menu command from keyboard, with completion

Drew Adams
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.

Available here: http://www.emacswiki.org/cgi-bin/wiki/icicles-menu.el.
Writeup is here: http://www.emacswiki.org/cgi-bin/wiki/IciclesMenu.

You can use this with library `icicles.el', which lets you cycle through the
completion candidates and complete them, using regexp matching ("apropos
completion") or ordinary prefix matching.

Available here: http://www.emacswiki.org/cgi-bin/wiki/icicles.el. Writeup is
here: http://www.emacswiki.org/cgi-bin/wiki/IciclesMenu.

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:
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).


Gnu-emacs-sources mailing list
[hidden email]