This page is about different ways to access Emacs menus from the keyboard – in particular, the menubar menus.
- LaCarte – Library lacarte.el, by DrewAdams. Each leaf menu item is pre-expanded to include its ancestors – for example,
Edit > Search > String Forward. Completion is available using
‘TAB’ etc., as usual – you can match against any prefix of the expanded name. You need not use multiple completions to move up and down the menu hierarchy, completing a small piece at at time, because the hierarchy is flattened. La Carte can be used with MS Windows keyboard accelerators (see `
- In addition, when used together with Icicles:
- Apropos matching is available, as well as the usual, prefix matching. With apropos completion, you can match any part of a menu item, and you can use a regular expression for matching. This gives you the power of navigating up and down the hierarchy, combined with the convenience of matching against the entire hierarchy all at once.
- You can use the arrow keys (or
‘C-p’) and Page Up/Down keys to cycle among all menu items matching your input. You can also see and access all matches at once, in buffer
- You can display the documentation for menu items as they appear in the MiniBuffer as completion candidates.
- Icicles - Key Completion – Since MenuBar actions are really KeySequences in Emacs, you can use Icicles key completion to navigate the menu-bar menus also! Just hit
‘S-TAB’ and pick
‘menu-bar’ in buffer
‘*Completions*’, and away you go… In this case, unlike LaCarte, you do navigate up and down the hierarchy (the hierarchy is not flattened). Completion candidates are key names and their command names, so don’t expect the external menu-item names, in most cases. For example, you choose `
menu-bar = ...’, then `
file = ...’, then `
write-file = write-file’ for the menu sequence File followed by Save As…. You go up the menu hierarchy by choosing `
..’, and you go down the hierarchy by choosing a submenu (which has `
= ...’ in its name).
- CategorizingInformationManager – http://www.jurta.org/emacs/ee/menubar.en.html, by JuriLinkov. Menu items are organized as a collapsible tree in a normal Emacs buffer (so you can search them, etc.). You can sort the tree by standard menu order or alphabetically. You can also mark your favorite or frequently used menu items for easy recognition. Completion is not available – you navigate the tree one level at a time, then choose a menu item. (Or, you can expand the entire tree and then search for a menu item.) Regexp matching is not available.
- Standard Emacs library TextModeMenu – You descend a menu by choosing a single menu level at a time, until you reach a leaf menu item. You can only go down in the menu hierarchy; you cannot go back up. There is no real completion, but you can use the first letter of a menu item as its abbreviation. Key-sequence shortcuts are echoed. There is no regexp matching.
- Lisp:textmenu.el – see TextMenu, by AlexSchroeder.
- menuacc.el – part of EmacsW32. Provides keyboard accelerators for Emacs menu items. (Currently this only works with the patched version of Emacs+EmacsW32. There is no Windows specific code in it really, but the needed support in Emacs is not yet there.)
- IswitchMenu – Iswitchb-like access to menu items.
- OneKey – customizable in-buffer menus for different types of items (major-mode commands, standard keybindings, yasnippets, etc). Useful for learning keybindings, or quickly finding relevant commands.
CategoryCompletion CategoryMenus CategoryKeys