Skip to content

Default Hyperbole Bindings

Hyperbole’s default key bindings can be viewed and edited from either the Cust/KeyBindings minibuffer menu or from the Hyperbole menubar menu as shown here:

Change Key Bindings

Image C.1: Hyperbole Key Bindings Menu

Below are descriptions of Hyperbole’s default keyboard key bindings. All except {C-h h} (the global key used to enable Hyperbole and display its minibuffer menu) are bound within Hyperbole’s minor mode keymap, hyperbole-mode-map.

{M-RET}

Action Key: Invoke the Action Key in the present context.

{C-u M-RET}

Assist Key: Invoke the Assist Key in the present context.

{C-c \}

HyControl: Control windows, frames and buffer display. This binding is made only if the key is not bound prior to initializing Hyperbole.

{C-c /}

Search the Web: Display a minibuffer menu of web search engines. Once an engine is selected, prompt for a search term and perform the associated search.

This binding is made only if the key is not bound prior to initializing Hyperbole; it also defers to any major-mode binding. When needed, the Find/Web minibuffer menu item, {C-h h f w}, will do the same thing.

{C-c @}

Display a grid of windows in the selected frame, sized according to the prefix argument. The left digit of the argument is the number of grid rows and the right digit is the number of grid columns. Use {C-h h y} to restore the prior frame configuration.

If the argument is 0, prompt for a major mode whose buffers should be displayed first in the grid windows, then prompt for the grid size.

If the argument is < 0, prompt for a shell glob-type file pattern and display files that match the pattern in an auto-sized windows grid.

This binding is made only if the key is not bound prior to initializing Hyperbole; it also defers to any major-mode binding and when outline-minor-mode is active.

For further details, see the {@} key binding description in HyControl.

{M-o}

Drag Operation: Keyboard emulation of the start and stop of mouse drags to invoke Smart Key actions. This binding is made only if the key is not bound prior to initializing Hyperbole and if Emacs is run under a window system. If the Ace Window package is loaded, then Ace Window commands are typically bound to {M-o} instead. Then {M-o w} may be used to quickly create an implicit link button in the selected window that links to a referent in any other window chosen via the Ace Window prompt.

{C-h h}

{C-h h X}

Hyperbole Mini Menu: Enable Hyperbole minor mode and invoke the Hyperbole minibuffer menu, giving access to many Hyperbole commands. This is bound globally. Use {C-h h X} to close the Hyperbole minibuffer menu and disable Hyperbole minor mode.

{C-h A}

Action Key Help: Show what the Action Key will do in the current context.

{C-u C-h A}

Assist Key Help: Show what the Assist Key will do in the same context.

{C-c RET}

Mark Things: Mark larger and larger syntactical units in a buffer when invoked repeatedly, showing in the minibuffer the type of unit marked each time. For example, if on an opening brace at the start of a C, Java or Javascript function, this marks the whole function.

This binding is made only if the key is not bound prior to initializing Hyperbole; it also defers to any major-mode binding.

{C-c .}

Delimited Thing Jump: Jump between the start and end of a delimited thing, which may be an HTML tag pair.

This binding is made only if the key is not bound prior to initializing Hyperbole; it also defers to any major-mode binding. See Smart Key Thing Selection, for more information.

{M-w}

Delimited Thing, Koutline Cell Reference or Region Copy: While Hyperbole is active, it sets mark-even-if-inactive to nil and overrides {M-w} with its own command, hui:kill-ring-save, which copies the region only when it is active/highlighted. When there is no active region, {M-w} does one of the following:

  1. in a Koutline klink, copies the klink;
  2. in a Koutline cell, outside any klink, copies a klink reference to the current cell;
  3. on a Hyperbole button, copies the text of the button excluding delimiters;
  4. at the start of a paired delimiter, copy the text including the delimiters.

{C-x r s}

Delimited Thing, Koutline Cell Reference or Region Save to Register: This does the same thing as {M-w} except it copies to an Emacs register given by a letter or number rather than the kill ring. While Hyperbole is active, it overrides {C-x r s} with its own command, hui:copy-to-register. which copies the region only when it is active/highlighted.

The variable, hkey-init, controls whether or not any Hyperbole key bindings are made when hyperbole-mode is active. It is set to ‘t’ (true) by default in hyperbole.el. This setting means all Hyperbole key bindings will be initialized when Hyperbole is loaded. If you want to disable these bindings permanently, simply add (setq hkey-init nil) to your ~/.emacs file prior to the point at which you load Hyperbole; then restart Emacs. Henceforth, you will have to choose the Hyperbole commands that you want to use and bind those to keys.

If you ever want to temporarily disable Hyperbole key and mouse bindings, simply toggle Hyperbole minor mode off with the hyperbole-mode command. There is no default key binding for this command; use {M-x hyperbole-mode RET}. Alternatively, you may select a key and bind it as part of any setting of hyperbole-init-hook within your personal ~/.emacs file. For example:

emacs-lisp
(add-hook 'hyperbole-init-hook
          (lambda () (global-set-key
                       "\C-ct" 'hyperbole-mode)))