branch: externals/hyperbole commit ea0f4df3c7f414e488d3095f9474c8587e7cb0b5 Author: Robert Weiner <r...@gnu.org> Commit: Robert Weiner <r...@gnu.org>
Generalize Hyperbole key binding deferrals to other modes --- ChangeLog | 19 +++++++++++++ HY-NEWS | 3 ++- hhist.el | 31 ++++++++++----------- hui-select.el | 79 +++++++++++++++++++++++++++++------------------------- hycontrol.el | 37 ++++++++++++++----------- hypb.el | 20 ++++++++++---- hyperbole.el | 63 ++----------------------------------------- man/hyperbole.texi | 49 ++++++++++++++++++--------------- 8 files changed, 145 insertions(+), 156 deletions(-) diff --git a/ChangeLog b/ChangeLog index ed978b94ea..ae16c751f4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,22 @@ +2022-02-20 Bob Weiner <r...@gnu.org> + +* hhist.el (hhist:add): Trigger error if elt is not a frame config. + +* man/hyperbole.texi (Default Hyperbole Bindings): Document here + {C-h h X} to exit from/disable Hyperbole mode. + +* hyperbole.el: Remove long commented-out autoloads; generated + automatically where needed now. + +* hypb.el (hypb:cmd-key-string): Rename to 'hypb:cmd-key-series' + since puts braces around the return value and update doc. + (hypb:cmd-key-vector): Add to commpare to 'this-single-command-keys'. + +* hui-select.el (hui-select-goto-matching-delimiter, hui-select-thing): + hycontrol.el (hycontrol-windows-grid): Remove hard-coding of + hyperbole-mode-map binding. Defer to org-mode and outline-minor-mode + only when current command key matches this binding. + 2022-02-18 Mats Lidell <ma...@gnu.org> * test/kcell-tests.el (kcell-tests--ref-to-id): Add test for diff --git a/HY-NEWS b/HY-NEWS index 0004954972..eea6b1c3b5 100644 --- a/HY-NEWS +++ b/HY-NEWS @@ -948,7 +948,8 @@ org-mode to handle jumps to its own locations for compatibility. Similarly, in org-mode buffers when not on an Org link or heading, and the {M-RET} Action Key is pressed, Hyperbole defers to Org's - org-meta-return command. + org-meta-return command. Hyperbole bindings of {C-c RET}, {C-c .} + and {C-c @} also defer to org-mode. - Drag-based Kill, Copy and Yank: Added support for dragging across frames. diff --git a/hhist.el b/hhist.el index 3df6b20405..939aba3f94 100644 --- a/hhist.el +++ b/hhist.el @@ -3,7 +3,7 @@ ;; Author: Bob Weiner ;; ;; Orig-Date: 24-Apr-91 at 03:36:23 -;; Last-Mod: 24-Jan-22 at 00:18:32 by Bob Weiner +;; Last-Mod: 20-Feb-22 at 16:40:21 by Bob Weiner ;; ;; Copyright (C) 1991-2021 Free Software Foundation, Inc. ;; See the "HY-COPY" file for license information. @@ -25,16 +25,17 @@ ;;; ************************************************************************ (defun hhist:add (elt) - "Add ELT to hyper-history list if not the same as current or previous loc. -ELT must have been created via a call to 'hhist:element'." + "Add ELT to hyper-history list if not the same as current or prior location (frame configuration). +ELT must have been created via a call to 'hhist:element' prior to +changing the current frame configuration somehow." ;; Even though this next line looks useless, it cures a problem with ;; window buffer correspondences on startup, so don't remove it. (set-buffer (window-buffer (selected-window))) - (let ((prev-config elt)) - (if (or (equal prev-config (current-frame-configuration)) - (equal prev-config (car *hhist*))) - nil - (setq *hhist* (cons elt *hhist*))))) + (when (not (frame-configuration-p elt)) + (error "(hhist:add): 'elt' must be a frame configuration, not " elt)) + (unless (or (equal elt (car *hhist*)) + (equal elt (current-frame-configuration))) + (setq *hhist* (cons elt *hhist*)))) (defun hhist:element () "Return a history element for current point location." @@ -53,17 +54,17 @@ The command is ignored with ARG < 1." ((listp arg) 1) (t arg))) (let ((prev-config)) - (if (null *hhist*) - (and (> arg 0) - (message "(hhist:remove): No previous location to which to return.") - (beep)) + (when *hhist* + (when (< arg 1) + (message "(hhist:remove): No previous location to which to return.") + (beep)) (while (and (> arg 0) *hhist*) (setq prev-config (car *hhist*) *hhist* (cdr *hhist*) arg (1- arg))) - (if (frame-configuration-p prev-config) - ;; Minify but keep any frames created after this frame configuration was saved. - (set-frame-configuration prev-config t))))) + (when (frame-configuration-p prev-config) + ;; Minify but keep any frames created after this frame configuration was saved. + (set-frame-configuration prev-config t))))) (defun hhist:init () "Reset history list." diff --git a/hui-select.el b/hui-select.el index 5c60581c90..303d43699e 100644 --- a/hui-select.el +++ b/hui-select.el @@ -3,7 +3,7 @@ ;; Author: Bob Weiner ;; ;; Orig-Date: 19-Oct-96 at 02:25:27 -;; Last-Mod: 12-Feb-22 at 10:42:19 by Mats Lidell +;; Last-Mod: 20-Feb-22 at 14:50:54 by Bob Weiner ;; ;; Copyright (C) 1996-2021 Free Software Foundation, Inc. ;; See the "HY-COPY" file for license information. @@ -299,19 +299,23 @@ The non-nil value returned is the function to call to select that syntactic unit (defun hui-select-goto-matching-delimiter () "Jump back and forth between the start and end delimiters of a thing." (interactive) - (cond ((memq major-mode hui-select-markup-modes) - (hui-select-goto-matching-tag)) - ((and (derived-mode-p 'org-mode) - (called-interactively-p 'interactive) - (equal (this-command-keys) "\C-c.")) - ;; Prevent a conflict with {C-c .} binding in Org mode - (call-interactively (lookup-key org-mode-map "\C-c."))) - ((and (preceding-char) (or (= ?\) (char-syntax (preceding-char))) - (= ?\" (preceding-char)))) - (backward-sexp)) - ((and (following-char) (or (= ?\( (char-syntax (following-char))) - (= ?\" (following-char)))) - (forward-sexp)))) + (if (memq major-mode hui-select-markup-modes) + (hui-select-goto-matching-tag) + (let* ((key (hypb:cmd-key-vector #'hui-select-goto-matching-delimiter + hyperbole-mode-map)) + (org-key-cmd (and (derived-mode-p 'org-mode) + (called-interactively-p 'interactive) + (equal (this-single-command-keys) key) + (lookup-key org-mode-map key)))) + (cond (org-key-cmd + ;; Prevent a conflict with {C-c .} binding in Org mode + (call-interactively org-key-cmd)) + ((and (preceding-char) (or (= ?\) (char-syntax (preceding-char))) + (= ?\" (preceding-char)))) + (backward-sexp)) + ((and (following-char) (or (= ?\( (char-syntax (following-char))) + (= ?\" (following-char)))) + (forward-sexp)))))) ;;;###autoload (defun hui-select-initialize () @@ -408,28 +412,31 @@ interactively, the type of selection is displayed in the minibuffer." ;; Reset selection based on the syntax of character at point. (hui-select-reset) nil))) - (cond ((and (derived-mode-p 'org-mode) - (called-interactively-p 'interactive) - (equal (this-command-keys) "\C-c\C-m")) - ;; Prevent a conflict with {C-c RET} binding in Org mode - (call-interactively (lookup-key org-mode-map "\C-c\C-m"))) - ;; - ;; No key conflicts, perform normal Hyperbole operation - (t (let ((region (hui-select-get-region-boundaries))) - (unless region - (when (eq hui-select-previous 'punctuation) - (setq region (hui-select-word (point))))) - (when region - (goto-char (car region)) - (set-mark (cdr region)) - (when (fboundp 'activate-region) (activate-region)) - (when (and (boundp 'transient-mark-mode) - transient-mark-mode) - (setq mark-active t)) - (and (called-interactively-p 'interactive) hui-select-display-type - (message "%s" hui-select-previous)) - (run-hooks 'hui-select-thing-hook) - t))))) + (let* ((key (hypb:cmd-key-vector #'hui-select-thing hyperbole-mode-map)) + (org-key-cmd (and (derived-mode-p 'org-mode) + (called-interactively-p 'interactive) + (equal (this-single-command-keys) key) + (lookup-key org-mode-map key)))) + (cond (org-key-cmd + ;; Prevent a conflict with {C-c RET} binding in Org mode + (call-interactively org-key-cmd)) + ;; + ;; No key conflicts, perform normal Hyperbole operation + (t (let ((region (hui-select-get-region-boundaries))) + (unless region + (when (eq hui-select-previous 'punctuation) + (setq region (hui-select-word (point))))) + (when region + (goto-char (car region)) + (set-mark (cdr region)) + (when (fboundp 'activate-region) (activate-region)) + (when (and (boundp 'transient-mark-mode) + transient-mark-mode) + (setq mark-active t)) + (and (called-interactively-p 'interactive) hui-select-display-type + (message "%s" hui-select-previous)) + (run-hooks 'hui-select-thing-hook) + t)))))) ;;;###autoload (defun hui-select-thing-with-mouse (event) diff --git a/hycontrol.el b/hycontrol.el index 8dc6fd5264..1d3183a1fa 100644 --- a/hycontrol.el +++ b/hycontrol.el @@ -3,7 +3,7 @@ ;; Author: Bob Weiner ;; ;; Orig-Date: 1-Jun-16 at 15:35:36 -;; Last-Mod: 31-Jan-22 at 00:33:24 by Bob Weiner +;; Last-Mod: 20-Feb-22 at 16:29:37 by Bob Weiner ;; ;; Copyright (C) 2016-2021 Free Software Foundation, Inc. ;; See the "HY-COPY" file for license information. @@ -122,7 +122,8 @@ ;;; Other required Elisp libraries ;;; ************************************************************************ -(require 'set) +(require 'hhist) ; To store frame-config when hycontrol-windows-grid is used +(require 'hyperbole) ; For hyperbole-mode-map and requires 'set and 'hypb ;; Frame face enlarging/shrinking (zooming) requires this separately available library. ;; Everything else works fine without it, so don't make it a required dependency. (require 'zoom-frm nil t) @@ -1525,30 +1526,34 @@ When done, this resets the persistent HyControl prefix argument to 1 to prevent following commands from using the often large grid size argument." (interactive "p") - (let* ((key "\C-c@") + (let* ((key (hypb:cmd-key-vector #'hycontrol-windows-grid hyperbole-mode-map)) (this-key-flag (and (called-interactively-p 'interactive) - (equal (this-command-keys) key)))) - (cond ((and this-key-flag (derived-mode-p 'org-mode)) + (equal (this-single-command-keys) key)))) + (cond ((and this-key-flag (derived-mode-p 'org-mode) + (lookup-key org-mode-map key)) ;; Prevent a conflict with binding in Org mode (call-interactively (lookup-key org-mode-map key))) - ((and this-key-flag (derived-mode-p 'outline-mode)) + ((and this-key-flag (derived-mode-p 'outline-mode) + (lookup-key outline-mode-map key)) ;; Prevent a conflict with binding in Outline mode (call-interactively (lookup-key outline-mode-map key))) ((and this-key-flag (boundp 'outline-minor-mode) - outline-minor-mode) + outline-minor-mode (lookup-key outline-minor-mode-map key)) ;; Prevent a conflict with binding in Outline minor mode (call-interactively (lookup-key outline-minor-mode-map key))) ;; ;; No key conflicts, display window grid - (t (setq arg (prefix-numeric-value (or arg current-prefix-arg))) - (cond ((> arg 0) - (hycontrol-make-windows-grid arg)) - ((< arg 0) - (setq current-prefix-arg nil) - (call-interactively #'hycontrol-windows-grid-by-file-pattern)) - (t - (setq current-prefix-arg 0) - (call-interactively #'hycontrol-windows-grid-by-major-mode))))))) + (t (let ((hist-elt (hhist:element))) + (setq arg (prefix-numeric-value (or arg current-prefix-arg))) + (cond ((> arg 0) + (hycontrol-make-windows-grid arg)) + ((< arg 0) + (setq current-prefix-arg nil) + (call-interactively #'hycontrol-windows-grid-by-file-pattern)) + (t + (setq current-prefix-arg 0) + (call-interactively #'hycontrol-windows-grid-by-major-mode))) + (hhist:add hist-elt)))))) ;; Save prior frame configuration for easy return (defun hycontrol-windows-grid-by-buffer-list (buffers) "Display an automatically sized window grid showing list of BUFFERS." diff --git a/hypb.el b/hypb.el index 8fbe131a4e..3e4c1c8ad2 100644 --- a/hypb.el +++ b/hypb.el @@ -3,7 +3,7 @@ ;; Author: Bob Weiner ;; ;; Orig-Date: 6-Oct-91 at 03:42:38 -;; Last-Mod: 12-Feb-22 at 14:59:21 by Bob Weiner +;; Last-Mod: 20-Feb-22 at 14:16:25 by Bob Weiner ;; ;; Copyright (C) 1991-2022 Free Software Foundation, Inc. ;; See the "HY-COPY" file for license information. @@ -106,9 +106,11 @@ OP may be +, -, xor, or default =." (set-file-modes file (funcall func (hypb:oct-to-int octal-permissions) (file-modes file))))) -(defun hypb:cmd-key-string (cmd-sym &optional keymap) - "Return a single pretty printed key sequence string bound to CMD-SYM. -Global keymap is used unless optional KEYMAP is given." +(defun hypb:cmd-key-series (cmd-sym &optional keymap) + "Return a single, brace-delimited, human readable key sequence string bound to CMD-SYM. +Global keymap is used unless optional KEYMAP is given. + +Trigger an error if CMD-SYM is not bound." (if (and cmd-sym (symbolp cmd-sym) (fboundp cmd-sym)) (let* ((get-keys (lambda (cmd-sym keymap) (key-description (where-is-internal @@ -120,7 +122,15 @@ Global keymap is used unless optional KEYMAP is given." " " (symbol-name cmd-sym) " RET") keys) "}")) - (error "(hypb:cmd-key-string): Invalid cmd-sym arg: %s" cmd-sym))) + (error "(hypb:cmd-key-series): Invalid cmd-sym arg: %s" cmd-sym))) + +(defun hypb:cmd-key-vector (cmd-sym &optional keymap) + "Return as a vector the first key sequence bound to CMD-SYM from global keymap or optional KEYMAP. +Return nil if no valid key binding is found. + +The returned value may be compared with `equal' to `this-single-command-keys'. +Use `key-description' to make it human readable." + (where-is-internal cmd-sym keymap t)) (defun hypb:installation-type () "Return a list of (hyperbole-installation-type-string hyperbole-install-version-number-string). diff --git a/hyperbole.el b/hyperbole.el index 85fdb437f0..577c69e188 100644 --- a/hyperbole.el +++ b/hyperbole.el @@ -5,7 +5,7 @@ ;; Author: Bob Weiner ;; Maintainer: Bob Weiner <r...@gnu.org>, Mats Lidell <ma...@gnu.org> ;; Created: 06-Oct-92 at 11:52:51 -;; Last-Mod: 12-Feb-22 at 10:42:19 by Mats Lidell +;; Last-Mod: 20-Feb-22 at 12:15:16 by Bob Weiner ;; Released: 03-May-21 ;; Version: 8.0.0pre ;; Keywords: comm, convenience, files, frames, hypermedia, languages, mail, matching, mouse, multimedia, outlines, tools, wp @@ -374,68 +374,9 @@ directory or directories specified." ;; Menu items could call this function before Info is loaded. (autoload 'Info-goto-node "info" "Jump to specific Info node." t) -;; Hyperbole user interface entry points that trigger loading of the -;; full Hyperbole system. These are left commented here for -;; reference in case we ever go back to autoloading Hyperbole rather -;; than initializing it fully in this file. - -;; ;; Action type definitions. -;; (autoload 'defact "hyperbole" -;; "Creates an action TYPE (an unquoted symbol) with PARAMS, described by DOC." -;; nil 'macro) -;; ;; Implicit button type definitions. -;; (autoload 'defib "hyperbole" -;; "Creates implicit button TYPE (unquoted sym) with PARAMS, described by DOC." -;; nil 'macro) - -;; (autoload 'ebut:map "hyperbole" "Map over the Hyperbole explicit buttons in a buffer." nil) -;; (autoload 'hbut:key-src "hyperbole" "Called by {e} command in rolo match buffer.") -;; (autoload 'hui:ebut-rename "hyperbole" "Rename a Hyperbole button." t) -;; (autoload 'hyperbole "hyperbole" "Hyperbole info manager menus." t) - -;; (autoload 'action-key "hyperbole" -;; "Context-sensitive Action Key command." t) -;; (autoload 'action-key-depress "hyperbole" "Depress context-sensitive Action Key." t) -;; (autoload 'assist-key-depress "hyperbole" "Depress context-sensitive Assist Key." t) -;; (autoload 'action-key-depress-emacs "hyperbole" "Depress context-sensitive Action Key." t) -;; (autoload 'assist-key-depress-emacs "hyperbole" "Depress context-sensitive Assist Key." t) -;; (autoload 'action-mouse-key-emacs "hyperbole" "Execute context-sensitive Action Key." t) -;; (autoload 'assist-mouse-key-emacs "hyperbole" "Execute context-sensitive Assist Key." t) -;; (autoload 'hkey-help "hyperbole" -;; "Display help for the Action Key command in current context. -;; With optional ASSIST-FLAG non-nil, display help for the Assist Key command. -;; Returns non-nil iff associated help documentation is found." t) -;; (autoload 'hkey-assist-help "hyperbole" -;; "Display help for the Assist Key command in current context." t) -;; (autoload 'hkey-help-hide "hyperbole" -;; "Restores frame to configuration prior to help buffer display." nil) -;; (autoload 'hkey-help-show "hyperbole" -;; "Saves prior frame configuration if BUFFER displays help." nil) -;; (autoload 'assist-key "hyperbole" -;; "Context-sensitive Assist Key command." t) -;; (autoload 'action-mouse-key "hyperbole" -;; "Context-sensitive Action Mouse Key command." t) -;; (autoload 'assist-mouse-key "hyperbole" -;; "Context-sensitive Assist Mouse Key command." t) -;; (autoload 'hkey-operate "hyperbole" "Emulate Hyperbole mouse key drags." t) -;; (autoload 'symset:add "hyperbole" "Adds ELT to SYMBOL's PROP set." nil) -;; (autoload 'hact "hyperbole" "Performs action formed from rest of ARGS." nil) -;; (autoload 'actypes::exec-window-cmd "hyperbole" -;; "Executes an external window-based SHELL-CMD string asynchronously." nil) -;; (autoload 'hpath:absolute-to "hyperbole" -;; "Make PATH absolute from optional DEFAULT-DIRS." nil) -;; (autoload 'hpath:display-buffer "hyperbole" -;; "Displays and selects BUFFER at optional DISPLAY-WHERE location or at `hpath:display-where'." t) -;; (autoload 'hpath:find "hyperbole" -;; "Edit file FILENAME, possibly using a special command." t) -;; (autoload 'hpath:find-other-frame "hyperbole" -;; "Edit file FILENAME in other frame, possibly using a special command." t) -;; (autoload 'hpath:find-other-window "hyperbole" -;; "Edit file FILENAME in other window, possibly using a special command." t) - ;; Auto-autoload doesn't work for next item because it is defined ;; within a condition-case, so autoload it here. -(autoload 'Vm-init "hvm" "Initializes Hyperbole Vm support." t) +(autoload 'Vm-init "hvm" "Initializes Hyperbole Vm support." t) ;;; ************************************************************************ ;;; Outline Mode Aliases diff --git a/man/hyperbole.texi b/man/hyperbole.texi index 02559a7b9d..0ba257fd88 100644 --- a/man/hyperbole.texi +++ b/man/hyperbole.texi @@ -7,7 +7,7 @@ @c Author: Bob Weiner @c @c Orig-Date: 6-Nov-91 at 11:18:03 -@c Last-Mod: 13-Feb-22 at 11:38:53 by Bob Weiner +@c Last-Mod: 20-Feb-22 at 15:50:00 by Bob Weiner @c %**start of header (This is for running Texinfo on a region.) @setfilename hyperbole.info @@ -156,7 +156,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</P> <PRE> Edition 8.0.0pre -Printed February 12, 2022. +Printed February 20, 2022. Published by the Free Software Foundation, Inc. Author: Bob Weiner @@ -198,7 +198,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. @example Edition 8.0.0pre -February 12, 2022 +February 20, 2022 Published by the Free Software Foundation, Inc. Author: Bob Weiner @@ -935,15 +935,18 @@ on a pathname to display the associated file or directory. @cindex change key bindings @cindex toggle key bindings @cindex key bindings, toggle +@cindex enable Hyperbole @cindex disable Hyperbole +@cindex Hyperbole minibufer menu @kindex C-h h -@kindex X -@kindex q +@kindex C-h h X +@kindex C-h h q @bkbd{C-h h} enables Hyperbole if it has been disabled and displays a Hyperbole menu in the minibuffer for quick keyboard or mouse-based selection. Select an item from this menu by typing the item's first capital letter. Use @bkbd{q} to quit from the minibuffer menu while leaving Hyperbole enabled. -Use@bkbd{X} to quit from the minibuffer menu and disable Hyperbole minor mode. +Use@bkbd{X} (note this is capitalized) to quit from the minibuffer menu +and disable Hyperbole minor mode. Use @bkbd{C-h h d d} for an interactive demonstration of standard Hyperbole button capabilities. @@ -7948,11 +7951,8 @@ addition to any non-mouse-sensitive button highlighting. @cindex key binding list This appendix covers two topics: 1. how to bind Hyperbole minibuffer menu items to global keys and 2. summaries of all of Hyperbole's -key bindings and whether each overrides any existing binding or -not. It also describes how to temporarily disable these bindings and -how to manage whether Hyperbole overrides local, mode-specific key -bindings that hide global Hyperbole keys. - +default key bindings. User-specific Hyperbole key binding customizations +override Hyperbole's defaults. @menu * Binding Minibuffer Menu Items:: * Default Hyperbole Bindings:: @@ -8003,7 +8003,7 @@ Assist Key: Invoke the Assist Key in the present context. @cindex key binding, C-c \ @kitem C-c @backslashchar{} HyControl: Control windows, frames and buffer display. This binding -is made only if the key is not bound prior to loading Hyperbole. +is made only if the key is not bound prior to initializing Hyperbole. @kindex C-c / @kindex C-h h f w @@ -8015,7 +8015,7 @@ is made only if the key is not bound prior to loading Hyperbole. 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 loading Hyperbole; otherwise, the Find/Web minibuffer menu +prior to initializing Hyperbole; otherwise, the Find/Web minibuffer menu item, @bkbd{C-h h f w}, will do the same thing. @kindex C-c @@ @@ -8034,7 +8034,7 @@ 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 loading Hyperbole. +This binding is made only if the key is not bound prior to initializing Hyperbole. For further details, see the @bkbd{@@} key binding description in @ref{HyControl}. @@ -8043,17 +8043,22 @@ in @ref{HyControl}. @kitem 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 loading Hyperbole and if Emacs is run under +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 @bkbd{M-o} instead. Then @bkbd{M-o w} -may be used to quickly create an explicit link button in the selected window that -links to any other window chosen via the Ace Window prompt. +may be used to quickly create an explicit link button in the selected window +that links to any other window chosen via the Ace Window prompt. @cindex key binding, C-h h @kitem C-h h -Hyperbole Mini Menu: Invoke the Hyperbole minibuffer menu, giving -access to many Hyperbole commands. This is bound globally as a means -of enabling Hyperbole minor mode. +@kinem C-h h X +@cindex Hyperbole minibuffer menu +@cindex enable Hyperbole +@cindex disable Hyperbole +Hyperbole Mini Menu: Enable Hyperbole minor mode and invoke the +Hyperbole minibuffer menu, giving access to many Hyperbole commands. +This is bound globally. Use @bkbd{C-h h X} to close the Hyperbole +minibuffer menu and disable Hyperbole minor mode. @cindex key binding, C-h A @cindex key binding, C-u C-h A @@ -8068,14 +8073,14 @@ Mark Things: Mark larger and larger synctactical 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 loading +binding is made only if the key is not bound prior to initializing Hyperbole. @cindex key binding, C-c . @kitem 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 loading Hyperbole. @xref{Smart Key +the key is not bound prior to initializing Hyperbole. @xref{Smart Key Thing Selection}, for more information. @end table