Menus
Pulldown and popup menus are available to invoke Hyperbole commands, including those from the HyRolo and the Koutliner. These menus operate like any other application menus and are fairly self-explanatory. Use the Remove-This-Menu command on the Hyperbole menubar menu to get rid of the menu if you do not need it. Invoking Hyperbole from the keyboard, as explained below, will add the menu back to the menubar. Here is the Hyperbole Menubar Menu and its Find submenu.
Image 5.1: Hyperbole Menubar Menu
Image 5.2: Find Menubar Menu
The Hyperbole popup menu, hyperbole-popup-menu, replicates the Hyperbole menubar menu. It can be bound to a mouse key but is not bound to one by default. It can also be assigned as the default Action or Assist Key action to use when no matching context is found. See Smart Key - Default Context, for details.
The rest of this section discusses only the specialized minibuffer menus which appear in the minibuffer window and work with all emacs versions on all display devices. They provide similar capabilities to those of the Hyperbole menubar but additionally allow for fast menu item selection via the keyboard or mouse. When used with the keyboard, they provide command access similar to key bindings. In fact, any menu item can be bound to a global key sequence. See Binding Minibuffer Menu Items.
The top-level Hyperbole minibuffer menu is invoked from a key given in your hyperbole.el file (by default, {C-h h}) or with a click of the Action Mouse Key in the minibuffer when it is inactive. It should look like this:
Hy> Act Butfile/ Cust/ Doc/ Ebut/ Find/ Gbut/ HyWiki/ Ibut/ Kotl/ Msg/ Rolo/ Screen/ Win/ historYA menu item can be selected in a number of ways:
- from the keyboard, by typing the first capitalized character of its name,
- with a press of {RET} or the Action Key or Action Mouse Key on the name,
- by pressing {TAB} or {M-f} to move forward an item,
- or by pressing {Shift-TAB} or {M-b} to move backward an item.
A prefix argument given to one of the movement commands, moves by that number of items within the menu. A press of the Assist Key on an item displays help for the item, including the action that it performs. "/" at the end of an item name indicates that it brings up a submenu.
While a menu is active, to re-activate the top-level Hyperbole menu, use {C-t} or press the Action Key while on the menu prefix (before the ‘>’ character). This allows you to browse the submenus and then return to the top menu.
You can reload the Hyperbole minibuffer menus and Smart Key handlers to reflect any recent edits when on the top-level Hyperbole menu by pressing {RET} or the Action Key on the menu name (first item that ends with ’>’). This will also quit from the menu.
You can quit from the minibuffer menus without selecting an item by using {Q}, or by pressing {RET} or {M-RET} when at the end of a menu. {C-g} aborts from the minibuffer whether you are at a menu prompt or any other Hyperbole prompt. {X} both quits the menus and disables the Hyperbole global minor mode; {C-h h} restores the menus and re-enables Hyperbole minor mode.
The top-level Hyperbole minibuffer menu items serve the following purposes:
Act
Activate button at point or if there is no button at point, prompt for a labeled explicit or implicit button from the current buffer to activate.
Butfile/
Easy access to a directory-specific or personal file of buttons. HYPB is the name of the directory-specific button file and ~/.hyperb/HYPB is the personal file of global buttons. These are good places to begin experimenting with button creation.
Cust/
Hyperbole option customization. This includes whether ftp and www URLs are recognized by the find-file commands, where Hyperbole link referents are displayed, where URLs are displayed, where web search results are displayed, whether the activation key for each minibuffer menu item is highlighted or not, whether date stamps are added to rolo entries, and whether to use proportional or windowful scrolling when a Smart Key is pressed at the end of a line. See Customization.
The ‘KeyBindings/’ submenu allows individual changes to each keyboard key that Hyperbole binds for its commands, notably the Action Key. See Smart Key Bindings, for more information.
See Hyperbole Key Bindings, for complete descriptions of Hyperbole’s key bindings and how to manage them.
Doc/
Hyperbole documentation quick access. This menu contains an About item which describes Hyperbole; a Concepts item that discusses how Hyperbole features all interrelate; a Demo item which demonstrates a number of interactive Hyperbole features; a New item that details new Hyperbole features, as well as a WhyUse item with use cases. It also contains the Types/ submenu for documentation on Hyperbole implicit button and action types.
Ebut/
All explicit button commands. The window-system-based Hyperbole menu includes an activation menu item for each explicit button found in the current buffer.
Find/
Buffer and file line finding commands and web searching. This menu brings together many existing line finding commands that are difficult to recall quickly when needed, simplifying finding and then jumping to matching lines by using the Action Key. It includes commands for filtering a buffer to just those lines that either match or do not match a regular expression. It also includes a submenu for quick access to popular web search engines.
Below are each of the commands on the Find menu.
GrepFiles - Show numbered line matches for a regexp in all non-backup, non-auto-save files below the current directory. If in an Emacs Lisp mode buffer and no PREFIX-ARG is given, limit search to only .el and .el.gz files. Set
hui-select-rgrep-commandto change the grep command or options.LocateFiles - Prompt for a pattern and display a list of all matching pathnames found throughout the file system. On Mac OS X, this uses Spotlight (the
mdfindcommand); on UNIX, it uses thelocatecommand. Within the resulting *Locate* buffer, Find/Grep-Files will find matching lines within only these paths (files and directories).MatchFileBuffers - Show numbered line matches for regexp in all file-based buffers.
OccurHere - Show numbered line matches for regexp from this buffer.
RemoveLines - Following point, remove all lines that match regexp.
SaveLines - Following point, keep only lines that match regexp.
Web/ - Select a search engine and term and search with them or use Jump to go to a named URL (using webjump library).
Hyperbole binds the key {C-c /} for quick access to this menu, if it is not already bound prior to Hyperbole’s initialization. The Cust/Web-Search-Search menu sets the option,
hyperbole-web-search-browser-function, which determines whether web search results are displayed within Emacs or with an external web browser. A short video introduction to the Find/Web menu may be found at https://youtu.be/8lMlJed0-OM.The Find/Web menu looks like this:
Web> Amazon Bing Dictionary ducKduckgo Elisp Facebook Google gitHub Images Jump Maps RFCs StackOverflow Wikipedia X Youtube
Gbut/
All global button commands. Global buttons are accessed by name rather than by direct selection. The Hyperbole menubar menu also includes an activation menu item for each global button.
HyWiki/
A HyWiki is a personal wiki of interlinked Org files (pages) in a single directory, where each page name automatically becomes a live HyWikiWord link back to the associated page whenever added in any file in the HyWiki directory. This menu includes commands to create, edit, grep, search for HyWikiWords and publish a HyWiki to the web.
Ibut/
All implicit button commands.
Kotl/
Autonumbered, structured outliner commands with per-node hyperlink anchors. See Koutliner.
Msg/
Hyperbole-specific email messaging commands. Use this to send mail to a Hyperbole discussion mailing list.
Rolo/
Hierarchical, multi-file contact manager lookup and edit commands. See HyRolo.
Screen/
Window, frame and buffer display control commands. See HyControl.
Win/
Window configuration management commands, such as adding and restoring window configurations by name. See Window Configurations.
historY
Return to previous positions in the button traversal history.