[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] scratch/hyperbole-lexbind 64c3563 17/20: Expanded Org mode doc; i
From: |
Stefan Monnier |
Subject: |
[elpa] scratch/hyperbole-lexbind 64c3563 17/20: Expanded Org mode doc; introduce 'key series' term in Glossary |
Date: |
Wed, 14 Aug 2019 04:30:24 -0400 (EDT) |
branch: scratch/hyperbole-lexbind
commit 64c35636d5d3e52718bc8bee3cc51afe40de868f
Author: Bob Weiner <address@hidden>
Commit: Bob Weiner <address@hidden>
Expanded Org mode doc; introduce 'key series' term in Glossary
---
Changes | 15 ++++++-
DEMO | 57 +++++++++++++++---------
hib-kbd.el | 116 +++++++++++++++++++++++++------------------------
hsys-org.el | 21 ++++++++-
man/hyperbole.html | 125 ++++++++++++++++++++++++++++++++++-------------------
man/hyperbole.info | Bin 512812 -> 514595 bytes
man/hyperbole.pdf | Bin 1270678 -> 1272688 bytes
man/hyperbole.texi | 101 ++++++++++++++++++++++++++++---------------
8 files changed, 275 insertions(+), 160 deletions(-)
diff --git a/Changes b/Changes
index fcf7199..863a46a 100644
--- a/Changes
+++ b/Changes
@@ -1,3 +1,15 @@
+2019-07-28 Bob Weiner <address@hidden>
+
+* DEMO, man/hyperbole.texi (Implicit Button Type Summaries): Updated to
expanded
+ Org mode support.
+
+* hib-kbd.el:
+ man/hyperbole.texi (Implicit Button Type Summaries, Glossary): Changed
hib-kbd
+ key-sequence to key-series to indicate can be multiple key sequences.
Added
+ def. to Glossary.
+ (kbd-key:doc): Changed to call hkey-help rather than
trigger
+ an error when key-series is not a single bound key sequence.
+
2019-07-23 Bob Weiner <address@hidden>
* man/hyperbole.texi (Referent Display): Rewrote and added details on how the
4 types
@@ -107,7 +119,8 @@
2019-07-08 Bob Weiner <address@hidden>
-* hbut.el (ibut:label-separator-regexp, hbut:outside-comment-p): Added.
+* hbut.el (ibut:label-separator-regexp, hbut:outside-comment-p): Added doc
+for expanded Org mode reference handling.
2019-07-01 Bob Weiner <address@hidden>
diff --git a/DEMO b/DEMO
index b113171..0c0feb2 100644
--- a/DEMO
+++ b/DEMO
@@ -254,7 +254,7 @@ the argument is used to adjust one dimension of the frame.
The {@} command splits a frame into a grid of up to 9 rows by 9 columns of
windows, showing a different buffer in each window, if available. First
let's expand our frame to full screen with the {.1 %} command and then show
-a 2 x 3 grid. We can do multiple commands in one key sequence. Press the
+a 2 x 3 grid. We can do multiple commands in one 'key series'. Press the
action key here: {.1 % .23 @}.
You can even write something like this to do the whole thing in one sequence.
@@ -263,7 +263,7 @@ window with {C-x 1}. Now we can execute a single sequence
from any buffer
that creates our 2x3 window grid: {C-h h s f .1 % .23 @ q}. Pretty amazing,
right? You can separate each command by any number of spaces or even jam
them all together: {C-hhsf.1%.23@q}. Use SPC (separated by spaces) to
-include a space as part of the key sequence.
+include a space as part of the key series.
A zero argument to the {@} command is special. It means you want to display
buffers with a particular major mode first, e.g. c-mode. You will be
@@ -350,7 +350,7 @@ Action Key click on {C-x4r work RET} to search for all
entries from Work
Industries; then type {q} to quit from the HyRolo search results buffer.
{C-x4r manager RET} finds all managers plus their staff across companies.
{C-x4r Dunn,\ J RET} finds just that staffer. Notice that you must quote the
-space with a backslash when including it in a key sequence search string or
+space with a backslash when including it in a key series search string or
else the space will be removed; when just typing the same string
interactively, don't add the backslash.
@@ -374,9 +374,9 @@ not one Match entries
without the arg
=====================================================================
So for example, {C-x4r (or smith dunn) RET} finds both the Smith and Dunn
-entries. (Note that you do not need to backslash quote spaces within
+entries. (Note that you do not need to quote spaces with backslashes within
parentheses, square brackets, angle brackets or double quotes when used in
-key sequences). To find any Managers and their staffers at HiHo Industries,
+key series). To find any Managers and their staffers at HiHo Industries,
use: {C-x4r (and manager hiho) RET}. To find managers anywhere but at HiHo:
{C-x4r (and manager (not hiho)) RET}. Finally, this will find all people who
are not managers at HiHo: {C-x4r (not (and manager hiho)) RET}.
@@ -434,17 +434,19 @@ label it by using {C-h h i l}.
Now let's explore some implicit button types.
-** Key Sequence Buttons
+** Key Series Buttons
-Any Emacs key sequence (or multiple sequences) delimited by curly braces is
-an implicit button. Press the Action Key with {C-u C-p} for example and the
-point should move four lines upward. An Assist Key press on the key sequence
-displays the documentation for its command binding, i.e. what it does. Key
-sequences together with the arguments their commands prompt for, may also be
-given, e.g. {M-x apropos RET hyperbole RET}. Click with the Action Mouse Key
-in the braces to try it out.
+Any series of Emacs key sequences (or 'key series') delimited by curly
+braces is an implicit button. Press the Action Key within {C-u C-p C-n C-e}
+for example and the point should move three lines upward and to the end of
+line. An Assist Key press on the key series either displays the documentation
+for its command binding (if a single key sequence) or displays help for the
+implicit button, i.e. what it does. Key series together with the
+arguments their commands prompt for, may also be given, e.g. {M-x apropos
+RET hyperbole RET}. Click with the Action Mouse Key within the first line
+of this button to try it out.
-Hyperbole minibuffer menu items may also be activated as key sequences. For
+Hyperbole minibuffer menu items may also be activated as key series. For
example, {C-h h d i} displays the online browsable Info version of the
Hyperbole Manual. Press your Action Key between the braces to see it. Once
in the Info browser, use {s} to search for any topic throughout the manual.
@@ -456,14 +458,27 @@ demonstrations and tours with this and other implicit
button types.
** Org Mode
-For users of Emacs Org mode, Hyperbole does a few things. First, the
-Action Key will follow and execute links in Org mode files. Second, when
-point is on an outline heading in Org mode, the Action Key cycles the view
-of the subtree at point and the Assist Key cycles the view of all headings
-in the buffer. The Assist Key will also display help when pressed on an Org
-mode link.
+For users of Emacs Org mode, Hyperbole does quite a few things.
-In any other context besides the end of a line, the Action Key will invoke
+First, the Action Key follows internal links in Org mode files. When
+pressed on a link referent/target, the link definition is displayed,
+allowing two-way navigation between definitions and targets.
+
+Second, the Action Key follows Org mode external links. The Assist Key
+displays help when pressed on an Org mode link.
+
+Third, within a radio target definition, the Action Key jumps to the first
+occurrence of an associated radio target.
+
+Fourth, when point is on an outline heading in Org mode, the Action Key
+cycles the view of the subtree at point and the Assist Key cycles the view
+of all headings in the buffer.
+
+Fifth, with point on the first line of a code block definition, the Action
+Key executes the code block via the Org mode standard binding of {C-c C-c},
+(org-ctrl-c-ctrl-c).
+
+In any other context besides the end of a line, the Action Key invokes
the Org mode standard binding of {M-RET}, (org-meta-return).
** Implicit Path Links
diff --git a/hib-kbd.el b/hib-kbd.el
index 8888668..bc4ab9f 100644
--- a/hib-kbd.el
+++ b/hib-kbd.el
@@ -11,15 +11,16 @@
;;
;;; Commentary:
;;
-;; A press of the Action Key on a key sequence executes its
-;; command binding or Hyperbole minibuffer menu binding.
+;; A press of the Action Key on any sequence of keys delimited by braces
+;; executes its command binding or Hyperbole minibuffer menu binding.
;;
-;; A press of the Assist Key on a key sequence displays the
-;; documentation for it.
+;; A press of the Assist Key on any sequence of keys delimited by braces
+;; displays the documentation for it.
;;
-;; Key sequences should be in human readable string form with spaces
-;; between each key and the whole sequence delimited by braces,
-;; e.g. {C-x o}. Forms such as {\C-b}, {\^b}, and {^b} will not be
+;; Sequences of keys should be in human readable string form with spaces
+;; between each key, may contain any number of individual key sequences
+;; and the whole thing should be delimited by braces, e.g. {M-x apropos
+;; RET hyperbole RET}. Forms such as {\C-b}, {\^b}, and {^b} will not be
;; recognized.
;;; Code:
@@ -32,10 +33,10 @@
;;; ************************************************************************
;;; Public implicit button types
;;; ************************************************************************
-
-(defact kbd-key (key-sequence)
+
+(defact kbd-key (key-series)
"Executes a normalized key sequence without curly braces, {}.
-KEY-SEQUENCE must be a string of one of the following:
+KEY-SERIES must be a string of one of the following:
a Hyperbole minibuffer menu item key sequence,
a HyControl key sequence,
a M-x extended command,
@@ -43,7 +44,7 @@ KEY-SEQUENCE must be a string of one of the following:
Returns t if the sequence appears to be valid, else nil."
(interactive "kKey sequence to execute (no {}): ")
- (kbd-key:act key-sequence))
+ (kbd-key:act key-series))
(defib kbd-key ()
"Executes a key sequence found around point, delimited by curly braces, {},
if any.
@@ -66,37 +67,37 @@ Any key sequence must be a string of one of the following:
;; standard ASCII characters.
(hbut:label-p t "‘" "’" t)))
;; This excludes delimiters
- (key-sequence (car seq-and-pos))
+ (key-series (car seq-and-pos))
(start (cadr seq-and-pos))
binding)
;; Match only when start delimiter is preceded by whitespace or
;; is the 1st buffer character, so do not match to things like
${variable}.
(when (memq (char-before start) '(nil ?\ ?\t ?\n ?\j ?\f))
- (when (and (stringp key-sequence)
- (not (eq key-sequence "")))
- (setq key-sequence (kbd-key:normalize key-sequence)
- binding (key-binding key-sequence)))
- (and (stringp key-sequence)
+ (when (and (stringp key-series)
+ (not (eq key-series "")))
+ (setq key-series (kbd-key:normalize key-series)
+ binding (key-binding key-series)))
+ (and (stringp key-series)
(or (and binding (not (integerp binding)))
- (kbd-key:special-sequence-p key-sequence))
+ (kbd-key:special-sequence-p key-series))
(ibut:label-set seq-and-pos)
- (hact 'kbd-key key-sequence))))))
+ (hact 'kbd-key key-series))))))
;;; ************************************************************************
;;; Public functions
;;; ************************************************************************
-(defun kbd-key:act (key-sequence)
- "Executes the command binding for normalized KEY-SEQUENCE.
-Returns t if KEY-SEQUENCE has a binding, else nil."
+(defun kbd-key:act (key-series)
+ "Executes the command binding for normalized KEY-SERIES.
+Returns t if KEY-SERIES has a binding, else nil."
(interactive "kKeyboard key to execute (no {}): ")
- (setq current-prefix-arg nil) ;; Execution of the key-sequence may set it.
- (let ((binding (key-binding key-sequence)))
+ (setq current-prefix-arg nil) ;; Execution of the key-series may set it.
+ (let ((binding (key-binding key-series)))
(cond ((null binding)
;; If this is a special key seqence, execute it by adding
;; its keys to the stream of unread command events.
- (when (kbd-key:special-sequence-p key-sequence)
- (setq unread-command-events (nconc unread-command-events (mapcar
'identity key-sequence)))
+ (when (kbd-key:special-sequence-p key-series)
+ (setq unread-command-events (nconc unread-command-events (mapcar
'identity key-series)))
t))
((memq binding '(action-key action-mouse-key hkey-either))
(beep)
@@ -104,11 +105,11 @@ Returns t if KEY-SEQUENCE has a binding, else nil."
t)
(t (call-interactively binding) t))))
-(defun kbd-key:doc (key-sequence &optional full)
- "Shows first line of doc for binding of keyboard KEY-SEQUENCE in minibuffer.
+(defun kbd-key:doc (key-series &optional full)
+ "Shows first line of doc for binding of keyboard KEY-SERIES in minibuffer.
With optional prefix arg FULL, displays full documentation for command."
(interactive "kKey sequence: \nP")
- (let* ((keys (kbd-key:normalize key-sequence))
+ (let* ((keys (kbd-key:normalize key-series))
(cmd (let ((cmd (key-binding keys)))
(if (not (integerp cmd)) cmd)))
(doc (and cmd (documentation cmd)))
@@ -118,7 +119,7 @@ With optional prefix arg FULL, displays full documentation
for command."
(or full
(setq end-line (string-match "[\n]" doc)
doc (substitute-command-keys (substring doc 0
end-line))))
- (setq doc (format "No documentation for {%s} %s" key-sequence (or
cmd ""))))
+ (setq doc (format "No documentation for {%s} %s" key-series (or
cmd ""))))
(if (and cmd doc)
(if full
(describe-function cmd)
@@ -127,18 +128,19 @@ With optional prefix arg FULL, displays full
documentation for command."
(if full
(hui:menu-help doc)
(message doc)))
- (t (error "(kbd-key:doc): No binding found for keys {%s}"
key-sequence)))))
+ (t (hkey-help)))))
+
(defun kbd-key:help (but)
"Display documentation for binding of keyboard key given by BUT's label."
(let ((kbd-key (hbut:key-to-label (hattr:get but 'lbl-key))))
(if kbd-key (kbd-key:doc kbd-key t))))
-(defun kbd-key:normalize (key-sequence)
- "Returns KEY-SEQUENCE string (without surrounding {}) normalized into a form
that can be parsed by commands."
+(defun kbd-key:normalize (key-series)
+ "Returns KEY-SERIES string (without surrounding {}) normalized into a form
that can be parsed by commands."
(interactive "kKeyboard key sequence to normalize (no {}): ")
- (if (stringp key-sequence)
- (let ((norm-key-seq (copy-sequence key-sequence))
+ (if (stringp key-series)
+ (let ((norm-key-seq (copy-sequence key-series))
(case-fold-search nil)
(case-replace t)
(substring)
@@ -188,36 +190,36 @@ With optional prefix arg FULL, displays full
documentation for command."
(lambda (str)
(concat "" (substring str (match-beginning 1)
(1+ (match-beginning
1))))))))
- (error "(kbd-key:normalize): requires a string argument, not `%s'"
key-sequence)))
+ (error "(kbd-key:normalize): requires a string argument, not `%s'"
key-series)))
;;; ************************************************************************
;;; Private functions
;;; ************************************************************************
-(defun kbd-key:extended-command-p (key-sequence)
- "Returns non-nil if the string KEY-SEQUENCE is a normalized extended command
invocation, i.e. M-x command."
- (and (stringp key-sequence) (string-match kbd-key:extended-command-prefix
key-sequence)))
+(defun kbd-key:extended-command-p (key-series)
+ "Returns non-nil if the string KEY-SERIES is a normalized extended command
invocation, i.e. M-x command."
+ (and (stringp key-series) (string-match kbd-key:extended-command-prefix
key-series)))
-(defun kbd-key:hyperbole-hycontrol-key-p (key-sequence)
- "Returns t if normalized, non-nil KEY-SEQUENCE is given when in a HyControl
mode, else nil.
+(defun kbd-key:hyperbole-hycontrol-key-p (key-series)
+ "Returns t if normalized, non-nil KEY-SERIES is given when in a HyControl
mode, else nil.
Allows for multiple key sequences strung together."
- (and key-sequence
+ (and key-series
(featurep 'hycontrol)
(or hycontrol-windows-mode hycontrol-frames-mode)
;; If wanted to limit to single key bindings and provide tighter
checking:
- ;; (string-match "[-.0-9]*\\(.*\\)" key-sequence)
- ;; (key-binding (match-string 1 key-sequence))
+ ;; (string-match "[-.0-9]*\\(.*\\)" key-series)
+ ;; (key-binding (match-string 1 key-series))
t))
-(defun kbd-key:hyperbole-mini-menu-key-p (key-sequence)
- "Returns t if normalized KEY-SEQUENCE appears to invoke a Hyperbole menu
item or sequence of keys, else nil."
- (when key-sequence
+(defun kbd-key:hyperbole-mini-menu-key-p (key-series)
+ "Returns t if normalized KEY-SERIES appears to invoke a Hyperbole menu item
or sequence of keys, else nil."
+ (when key-series
(let ((mini-menu-key (kbd-key:normalize (key-description (car
(where-is-internal 'hyperbole))))))
- (if (string-match (regexp-quote mini-menu-key) key-sequence) t))))
+ (if (string-match (regexp-quote mini-menu-key) key-series) t))))
-(defun kbd-key:key-and-arguments (key-sequence)
- "Returns t if normalized KEY-SEQUENCE appears to be a bound key sequence
possibly with following interactive arguments, else nil."
- (let ((prefix-binding (and (stringp key-sequence) (key-binding (substring
key-sequence 0 1)))))
+(defun kbd-key:key-and-arguments (key-series)
+ "Returns t if normalized KEY-SERIES appears to be a bound key sequence
possibly with following interactive arguments, else nil."
+ (let ((prefix-binding (and (stringp key-series) (key-binding (substring
key-series 0 1)))))
;; Just ensure that 1st character is bound to something that is
;; not a self-insert-command or a number.
(and prefix-binding
@@ -244,16 +246,16 @@ Allows for multiple key sequences strung together."
start end))
string))
-(defun kbd-key:special-sequence-p (key-sequence)
- "Returns non-nil if normalized KEY-SEQUENCE string is one of the following:
+(defun kbd-key:special-sequence-p (key-series)
+ "Returns non-nil if normalized KEY-SERIES string is one of the following:
a Hyperbole minibuffer menu item key sequence,
a HyControl key sequence,
a M-x extended command,
or a valid key sequence together with its interactive arguments."
- (or (kbd-key:hyperbole-mini-menu-key-p key-sequence)
- (kbd-key:hyperbole-hycontrol-key-p key-sequence)
- (kbd-key:extended-command-p key-sequence)
- (kbd-key:key-and-arguments key-sequence)))
+ (or (kbd-key:hyperbole-mini-menu-key-p key-series)
+ (kbd-key:hyperbole-hycontrol-key-p key-series)
+ (kbd-key:extended-command-p key-series)
+ (kbd-key:key-and-arguments key-series)))
;;; ************************************************************************
;;; Private variables
diff --git a/hsys-org.el b/hsys-org.el
index 9581e46..7c916e1 100644
--- a/hsys-org.el
+++ b/hsys-org.el
@@ -56,7 +56,26 @@
;;; ************************************************************************
(defib org-mode ()
- "Follows any Org mode link at point or cycles through views of the outline
subtree at point."
+ "Follows Org mode references, cycles outline visibility and executes code
blocks.
+
+First, this follows internal links in Org mode files. When pressed on a
+link referent/target, the link definition is displayed, allowing two-way
+navigation between definitions and targets.
+
+Second, this follows Org mode external links.
+
+Third, within a radio target definition, this jumps to the first
+occurrence of an associated radio target.
+
+Fourth, when point is on an outline heading in Org mode, this
+cycles the view of the subtree at point.
+
+Fifth, with point on the first line of a code block definition, this
+executes the code block via the Org mode standard binding of {C-c C-c},
+(org-ctrl-c-ctrl-c).
+
+In any other context besides the end of a line, the Action Key invokes the
+Org mode standard binding of {M-RET}, (org-meta-return)."
(when (funcall hsys-org-mode-function)
(let (start-end)
(cond ((setq start-end (hsys-org-internal-link-target-at-p))
diff --git a/man/hyperbole.html b/man/hyperbole.html
index 0fb35b5..f96c183 100644
--- a/man/hyperbole.html
+++ b/man/hyperbole.html
@@ -348,7 +348,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</P>
<PRE>
Edition 7.0.3a
-Printed July 21, 2019.
+Printed July 28, 2019.
Published by the Free Software Foundation, Inc.
Author: Bob Weiner
@@ -972,7 +972,7 @@ archives, and the World-Wide Web (WWW).
added to documents with a simple drag between windows, no markup language
needed. Implicit buttons are patterns automatically recognized within
existing text that perform actions, e.g. bug#24568 displays the bug status
-information for that bug number, without the need for any additional
+information for that Emacs bug number, without the need for any additional
markup. Global buttons are buttons that are activated by name from
anywhere within Emacs.
See <a href="#Buttons">Buttons</a>.
@@ -997,7 +997,8 @@ fast, flexible file and text finding commands. A powerful,
hierarchical
contact manager, see <a href="#HyRolo">HyRolo</a>, which anyone can use, is
also included.
It is easy to learn since it introduces only a few new mechanisms
and has a menu interface, which may be operated from the keyboard or the
-mouse;
+mouse; it may also be used to look up any record-based information and
+Hyperbole buttons may be embedded in any records;
</p>
</dd>
<dt><em>Screen Control</em></dt>
@@ -1006,14 +1007,15 @@ Emacs, see <a href="#HyControl">HyControl</a>. With
just a few keystrokes, you
increasing a window’s height by 5 lines to moving a frame by 220 pixels
or immediately moving it to a screen corner. Text in each window or
frame may be enlarged or shrunk (zoomed) for easy viewing, plus many
-other features;
+other features; this allows Hyperbole to quickly control the way
+information is presented on-screen;
</p>
</dd>
<dt><em>Hypertextual Outliner</em></dt>
<dd><p>an advanced outliner, see <a href="#Koutliner">Koutliner</a>, with
multi-level
autonumbering and permanent identifiers attached to each outline node
for use as hypertext link anchors, per node properties and flexible
-view specifications that can be embedded within links or used
+view specifications that can be included in links or used
interactively;
</p>
</dd>
@@ -1067,7 +1069,7 @@ links to external information sources. See <a
href="#Koutliner">Koutliner</a>.
<p>Some of Hyperbole’s most significant features are:
</p>
<ul>
-<li> Buttons may link to information or may execute procedures, such as
+<li> Buttons may link to information or may execute functions, such as
starting or communicating with external programs;
</li><li> A simple mouse drag from a button source location to its link
@@ -2557,8 +2559,7 @@ Messages are recognized in any buffer.
<a name="index-ilink"></a>
</dd>
<dt><code>link-to-ibut <ilink></code></dt>
-<dd><p>At point, activates a link to an implicit button.
-The implicit buttonâs action is executed in the context of the current
buffer.
+<dd><p>At point, activates a link to an implicit button within the current
buffer.
Recognizes the format â<ilink:â <button label> â>â, e.g.
<ilink: my sequence of keys>.
</p>
<a name="index-ibtypes-link_002dto_002dgbut"></a>
@@ -2577,8 +2578,7 @@ Recognizes the format â<glink:â <button
label> â>â
<a name="index-elink"></a>
</dd>
<dt><code>link-to-ebut <elink></code></dt>
-<dd><p>At point, activates a link to an explicit button.
-The explicit buttonâs action is executed in the context of the current
buffer.
+<dd><p>At point, activates a link to an explicit button within the current
buffer.
Recognizes the format â<elink:â <button label> â>â, e.g.
<elink: project-list>.
</p>
<a name="index-ibtypes-klink"></a>
@@ -2616,11 +2616,13 @@ retrievals.
</p>
<a name="index-ibtypes-kbd_002dkey"></a>
<a name="index-key-sequence"></a>
+<a name="index-sequence-of-keys"></a>
</dd>
<dt><code>kbd-key</code></dt>
-<dd><p>Executes a key sequence found around point, delimited by curly braces,
{}, if any.
-Key sequences should be in human readable form, e.g. <kbd>{C-x C-b}</kbd>.
Formats such
-as {^x^b} will not be recognized.
+<dd><p>Executes a key series (series of key sequences) found around point,
+delimited by curly braces, {}, if any. Key series should be in
+human readable form, e.g. <kbd>{C-x C-b}</kbd>. Formats such as {^x^b}
+will not be recognized.
</p>
<p>Any key sequence must be a string of one of the following:
</p><ul>
@@ -2961,21 +2963,38 @@ for a valid match. See the function documentation for
<code>hpath:find</code>
for special file display options.
</p>
<a name="index-ibtypes-org_002dmode"></a>
-<a name="index-browse_002durl_002dbrowser_002dfunction-1"></a>
<a name="index-org_002dmode"></a>
<a name="index-Org-mode"></a>
+<a name="index-radio-target"></a>
+<a name="index-code-block"></a>
+<a name="index-C_002dc-C_002dc"></a>
+<a name="index-M_002dRET-1"></a>
+<a name="index-org_002dctrl_002dc_002dctrl_002dc"></a>
+<a name="index-org_002dmeta_002dreturn"></a>
</dd>
<dt><code>org-mode</code></dt>
-<dd><p>The Action Key follows any Org mode link at point or cycles through
-views of the outline subtree at point. In any other context besides
-the end of a line, the Action Key will invoke the Org mode standard
-binding of <kbd>{M-<span class="key">RET</span>}</kbd>, (org-meta-return).
The Assist Key on
-an Org mode heading cycles through views of the whole buffer outline
-and on an Org mode link, displays standard Hyperbole help.
+<dd><p>For users of Emacs Org mode, Hyperbole does quite a few things.
+</p>
+<p>First, the Action Key follows internal links in Org mode files. When
+pressed on a link referent/target, the link definition is displayed,
+allowing two-way navigation between definitions and targets.
+</p>
+<p>Second, the Action Key follows Org mode external links. The Assist
+Key displays help when pressed on an Org mode link.
</p>
-<p>The variable, <code>browse-url-browser-function</code>, customizes the url
-browser that is used for urls. Valid values of this variable
-include <code>browse-url-default-browser</code> and
<code>browse-url-generic</code>.
+<p>Third, within a radio target definition, the Action Key jumps to the
+first occurrence of an associated radio target.
+</p>
+<p>Fourth, when point is on an outline heading in Org mode, the Action Key
+cycles the view of the subtree at point and the Assist Key cycles the
+view of all headings in the buffer.
+</p>
+<p>Fifth, with point on the first line of a code block definition, the
+Action Key executes the code block via the Org mode standard binding
+of <kbd>{C-c C-c}</kbd>, <code>org-ctrl-c-ctrl-c</code>.
+</p>
+<p>In any other context besides the end of a line, the Action Key invokes
+the Org mode standard binding of <kbd>{M-RET}</kbd>,
<code>org-meta-return</code>.
</p>
<a name="index-ibtypes-doc_002did"></a>
<a name="index-online-library"></a>
@@ -3303,15 +3322,18 @@ at point.
<a name="index-URL-1"></a>
<a name="index-World_002dwide-Web-1"></a>
<a name="index-WWW-1"></a>
-<a name="index-browse_002durl_002dbrowser_002dfunction-2"></a>
+<a name="index-browse_002durl_002dbrowser_002dfunction-1"></a>
</dd>
<dt><code>www-url</code></dt>
<dd><p>Follows a link given by a URL. The variable,
<code>browse-url-browser-function</code>, customizes the url browser
-that is used. See its documentation string for details.
+that is used. Valid values of this variable include
+<code>browse-url-default-browser</code> and <code>browse-url-generic</code>.
+See its documentation string for details.
</p></dd>
</dl>
+
<a name="index-action-1"></a>
<a name="index-hui_003aebut_002dprompt_002dfor_002daction"></a>
<p>Action types create a convenient way of specifying button behavior
@@ -5067,7 +5089,7 @@ level to insertion at the child level.
<dt><kbd>{C-u C-c c}</kbd></dt>
<dd><p>Copy <tree> to follow as the first child of <cell>.
</p>
-<a name="index-C_002dc-C_002dc"></a>
+<a name="index-C_002dc-C_002dc-1"></a>
</dd>
<dt><kbd>{C-c C-c}</kbd></dt>
<dd><p>Copy <tree> to be the predecessor of <cell>.
@@ -7491,6 +7513,16 @@ any number of buttons with the same base label within a
single buffer.
<p>Jedi is a Emacs package for Python completion, definition and documentation
lookup.
</p>
</dd>
+<dt><b>Key Sequence</b></dt>
+<dd><p>A single sequence of keys that can invoke an Emacs command.
+</p>
+</dd>
+<dt><b>Key Series</b></dt>
+<dd><p>A series of one or more Emacs key sequences delimited by braces that
+Hyperbole processes when activated as an implicit button, as if the
+keys were typed in by the user.
+</p>
+</dd>
<dt><b>Koutline</b></dt>
<dd><p>A hierarchically ordered grouping of cells which may be stored as a file
and viewed and edited as an outline.
@@ -8011,8 +8043,8 @@ available with InfoDock.
<a name="index-menu_002c-Cust_002fReferents"></a>
<a name="index-C_002dh-h-c-r"></a>
<p>Links to standard files, those which don’t match any special referent
-category handled by any described earlier, are displayed in an Emacs
-window specified by the <code>hpath:display-where</code> setting. It may be
changed with the
+category described earlier, are displayed in an Emacs window specified
+by the <code>hpath:display-where</code> setting. It may be changed with the
Cust/Referents <kbd>{C-h h c r}</kbd> menu.
</p>
<p>Available options are:
@@ -8087,7 +8119,7 @@ entry. Alternatively, the viewer-program may be a Lisp
function that
takes a single filename argument.
</p>
<p>The association lists used by this function are stored in variables
-vfor each available window system:
<code>hpath:external-display-alist-macos</code>,
+for each available window system:
<code>hpath:external-display-alist-macos</code>,
<code>hpath:external-display-alist-mswindows</code>, and
<code>hpath:external-display-alist-x</code>. Examine and modify these
values to suit your needs.
@@ -8113,16 +8145,15 @@ compared against the values in
<code>hpath:variables</code>. The first
match found, if any, is selected and its associated variable name is
substituted into the link pathname, in place of its literal value.
When a link button is activated, potentially at a different site,
-Hyperbole replaces each variable within the link pathname with the
-first matching value from this list to recreate the literal pathname.
+Hyperbole replaces each variable in the link pathname with the first
+matching value from this list to recreate the literal pathname.
Environment variables are also replaced whenever link paths are
resolved.
</p>
<p>This permits sharing of links over wide areas, where the variable values
differ between link creator and link activator. The entire process
is wholly transparent to the user; it is explained here simply to help
-you in deciding whether or not to modify the value of
-<code>hpath:variables</code>.
+you in deciding whether or not to modify the value of
<code>hpath:variables</code>.
</p>
<hr>
<a name="Web-Search-Engines"></a>
@@ -8321,7 +8352,7 @@ shown here:
</p>
<dl compact="compact">
<dd><a name="index-key-binding_002c-M_002dRET"></a>
-<a name="index-M_002dRET-1"></a>
+<a name="index-M_002dRET-2"></a>
</dd>
<dt><kbd>{M-<span class="key">RET</span>}</kbd></dt>
<dd><p>Action Key: Invoke the Action Key in the present context.
@@ -10126,10 +10157,10 @@ Next: <a href="#Smart-Key-_002d-C-Source-Code"
accesskey="n" rel="next">Smart Ke
<div class="format">
<pre class="format">This works only for identifiers defined within the same
source file in
-which they are referenced. It requires either Emacs’ imenu or
XEmacs’
-func-menu library and it requires that an index of identifiers has
-been built for the current buffer. Other handlers handle identifier
-references and definitions across multiple files.
+which they are referenced. It requires either Emacs’ imenu library
+and it requires that an index of identifiers has been built for the
+current buffer. Other handlers handle identifier references and
+definitions across multiple files.
When pressed on an identifier name after an identifier index has been
generated:
ACTION KEY
@@ -10768,7 +10799,7 @@ Next: <a href="#Smart-Key-_002d-HyRolo-Match-Buffers"
accesskey="n" rel="next">S
<a name="index-click_002c-world_002dwide-web"></a>
<a name="index-W3"></a>
<a name="index-URL-2"></a>
-<a name="index-browse_002durl_002dbrowser_002dfunction-3"></a>
+<a name="index-browse_002durl_002dbrowser_002dfunction-2"></a>
<a name="index-World_002dwide-Web-2"></a>
<a name="index-WWW-2"></a>
<a name="index-C_002dh-h-c-u-1"></a>
@@ -11554,7 +11585,8 @@ Next: <a href="#Function" accesskey="n"
rel="next">Function</a>, Previous: <a hr
<tr><td></td><td valign="top"><a href="#index-C_002dc-c"><code>C-c
c</code></a>:</td><td> </td><td valign="top"><a
href="#Relocating-and-Copying">Relocating and Copying</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-C_002dc-C_002da"><code>C-c
C-a</code></a>:</td><td> </td><td valign="top"><a
href="#Hiding-and-Showing">Hiding and Showing</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-C_002dc-C_002db"><code>C-c
C-b</code></a>:</td><td> </td><td valign="top"><a
href="#Moving-Around">Moving Around</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-C_002dc-C_002dc"><code>C-c
C-c</code></a>:</td><td> </td><td valign="top"><a
href="#Relocating-and-Copying">Relocating and Copying</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-C_002dc-C_002dc"><code>C-c
C-c</code></a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Type-Summaries">Implicit Button Type
Summaries</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-C_002dc-C_002dc-1"><code>C-c
C-c</code></a>:</td><td> </td><td valign="top"><a
href="#Relocating-and-Copying">Relocating and Copying</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-C_002dc-C_002dd"><code>C-c
C-d</code></a>:</td><td> </td><td valign="top"><a
href="#Moving-Around">Moving Around</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-C_002dc-C_002df"><code>C-c
C-f</code></a>:</td><td> </td><td valign="top"><a
href="#Moving-Around">Moving Around</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-C_002dc-C_002dh"><code>C-c
C-h</code></a>:</td><td> </td><td valign="top"><a
href="#Hiding-and-Showing">Hiding and Showing</a></td></tr>
@@ -11704,7 +11736,8 @@ Next: <a href="#Function" accesskey="n"
rel="next">Function</a>, Previous: <a hr
<tr><td></td><td valign="top"><a
href="#index-M_002do-r-_003cwindow_002did_003e"><code>M-o r
<window-id></code></a>:</td><td> </td><td valign="top"><a
href="#Keyboard-Drags">Keyboard Drags</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-M_002do-t-_003cwindow_002did_003e"><code>M-o t
<window-id></code></a>:</td><td> </td><td valign="top"><a
href="#Keyboard-Drags">Keyboard Drags</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-M_002dRET"><code>M-<span
class="key">RET</span></code></a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-Bindings">Smart Key Bindings</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-M_002dRET-1"><code>M-<span
class="key">RET</span></code></a>:</td><td> </td><td valign="top"><a
href="#Global-Key-Bindings">Global Key Bindings</a></td></tr>
+<tr><td></td><td valign="top"><a
href="#index-M_002dRET-1"><code>M-RET</code></a>:</td><td> </td><td
valign="top"><a href="#Implicit-Button-Type-Summaries">Implicit Button Type
Summaries</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-M_002dRET-2"><code>M-<span
class="key">RET</span></code></a>:</td><td> </td><td valign="top"><a
href="#Global-Key-Bindings">Global Key Bindings</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-M_002dx-kotl_002dmode_003ashow_002dsubtree"><code>M-x
kotl-mode:show-subtree</code></a>:</td><td> </td><td valign="top"><a
href="#Hiding-and-Showing">Hiding and Showing</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-middle-mouse-key-1"><code>middle
mouse key</code></a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-Bindings">Smart Key Bindings</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
@@ -12018,9 +12051,8 @@ Next: <a href="#Concept-Index" accesskey="n"
rel="next">Concept Index</a>, Previ
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Function_fn_letter-B">B</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-browse_002durl_002dbrowser_002dfunction">browse-url-browser-function</a>:</td><td> </td><td
valign="top"><a href="#Implicit-Button-Type-Summaries">Implicit Button Type
Summaries</a></td></tr>
-<tr><td></td><td valign="top"><a
href="#index-browse_002durl_002dbrowser_002dfunction-1">browse-url-browser-function</a>:</td><td> </td><td
valign="top"><a href="#Implicit-Button-Type-Summaries">Implicit Button Type
Summaries</a></td></tr>
-<tr><td></td><td valign="top"><a
href="#index-browse_002durl_002dbrowser_002dfunction-2">browse-url-browser-function</a>:</td><td> </td><td
valign="top"><a href="#Action-Types">Action Types</a></td></tr>
-<tr><td></td><td valign="top"><a
href="#index-browse_002durl_002dbrowser_002dfunction-3">browse-url-browser-function</a>:</td><td> </td><td
valign="top"><a href="#Smart-Key-_002d-WWW-URLs">Smart Key - WWW
URLs</a></td></tr>
+<tr><td></td><td valign="top"><a
href="#index-browse_002durl_002dbrowser_002dfunction-1">browse-url-browser-function</a>:</td><td> </td><td
valign="top"><a href="#Action-Types">Action Types</a></td></tr>
+<tr><td></td><td valign="top"><a
href="#index-browse_002durl_002dbrowser_002dfunction-2">browse-url-browser-function</a>:</td><td> </td><td
valign="top"><a href="#Smart-Key-_002d-WWW-URLs">Smart Key - WWW
URLs</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Function_fn_letter-C">C</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-c_002b_002b_002dcpp_002dinclude_002dpath">c++-cpp-include-path</a>:</td><td> </td><td
valign="top"><a href="#Smart-Key-_002d-C_002b_002b-Source-Code">Smart Key -
C++ Source Code</a></td></tr>
@@ -12425,6 +12457,8 @@ Next: <a href="#Concept-Index" accesskey="n"
rel="next">Concept Index</a>, Previ
<tr><th><a name="Function_fn_letter-O">O</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-objc_002dcpp_002dinclude_002dpath">objc-cpp-include-path</a>:</td><td> </td><td
valign="top"><a href="#Smart-Key-_002d-Objective_002dC-Source-Code">Smart Key
- Objective-C Source Code</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-objc_002dinclude_002dpath">objc-include-path</a>:</td><td> </td><td
valign="top"><a href="#Smart-Key-_002d-Objective_002dC-Source-Code">Smart Key
- Objective-C Source Code</a></td></tr>
+<tr><td></td><td valign="top"><a
href="#index-org_002dctrl_002dc_002dctrl_002dc"><code>org-ctrl-c-ctrl-c</code></a>:</td><td> </td><td
valign="top"><a href="#Implicit-Button-Type-Summaries">Implicit Button Type
Summaries</a></td></tr>
+<tr><td></td><td valign="top"><a
href="#index-org_002dmeta_002dreturn"><code>org-meta-return</code></a>:</td><td> </td><td
valign="top"><a href="#Implicit-Button-Type-Summaries">Implicit Button Type
Summaries</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Function_fn_letter-R">R</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-run_002dhooks"><code>run-hooks</code></a>:</td><td> </td><td
valign="top"><a href="#Glossary">Glossary</a></td></tr>
@@ -12745,6 +12779,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-clone-window">clone
window</a>:</td><td> </td><td valign="top"><a
href="#Cloning-Windows">Cloning Windows</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-clone-window-1">clone
window</a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-clone-window-2">clone
window</a>:</td><td> </td><td valign="top"><a
href="#Smart-Mouse-Drags-outside-a-Window">Smart Mouse Drags outside a
Window</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-code-block">code
block</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Type-Summaries">Implicit Button Type
Summaries</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-code-block-selection">code block
selection</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-Thing-Selection">Smart Key Thing Selection</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-collaboration">collaboration</a>:</td><td> </td><td
valign="top"><a href="#Koutliner-History">Koutliner History</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-collapse-lines">collapse
lines</a>:</td><td> </td><td valign="top"><a href="#View-Specs">View
Specs</a></td></tr>
@@ -13403,6 +13438,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-quit-HyControl">quit
HyControl</a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Concept-Index_cp_letter-R">R</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-radio-target">radio
target</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Type-Summaries">Implicit Button Type
Summaries</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-raise-frame">raise
frame</a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-rdb_002dmode">rdb-mode</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-_002d-RDB-Mode">Smart Key - RDB Mode</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-rebalance-windows">rebalance
windows</a>:</td><td> </td><td valign="top"><a
href="#Creating-and-Deleting-Windows">Creating and Deleting
Windows</a></td></tr>
@@ -13470,6 +13506,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-searching_002c-rolo">searching,
rolo</a>:</td><td> </td><td valign="top"><a
href="#HyRolo-Searching">HyRolo Searching</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-selection">selection</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-Thing-Selection">Smart Key Thing Selection</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-selection_002c-menu-items">selection, menu
items</a>:</td><td> </td><td valign="top"><a
href="#Menus">Menus</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-sequence-of-keys">sequence of
keys</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Type-Summaries">Implicit Button Type
Summaries</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-set">set</a>:</td><td> </td><td valign="top"><a
href="#Thing-Selection">Thing Selection</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-set-1">set</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-_002d-Delimited-Things">Smart Key - Delimited
Things</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-setting-the-view-spec">setting
the view spec</a>:</td><td> </td><td valign="top"><a
href="#View-Specs">View Specs</a></td></tr>
diff --git a/man/hyperbole.info b/man/hyperbole.info
index 78fe934..160274a 100644
Binary files a/man/hyperbole.info and b/man/hyperbole.info differ
diff --git a/man/hyperbole.pdf b/man/hyperbole.pdf
index 8b3ec58..7d42404 100644
Binary files a/man/hyperbole.pdf and b/man/hyperbole.pdf differ
diff --git a/man/hyperbole.texi b/man/hyperbole.texi
index 1f59b75..af9a46e 100644
--- a/man/hyperbole.texi
+++ b/man/hyperbole.texi
@@ -155,7 +155,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</P>
<PRE>
Edition 7.0.3a
-Printed July 21, 2019.
+Printed July 28, 2019.
Published by the Free Software Foundation, Inc.
Author: Bob Weiner
@@ -197,7 +197,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
@example
Edition 7.0.3a
-July 21, 2019
+July 28, 2019
Published by the Free Software Foundation, Inc.
Author: Bob Weiner
@@ -623,7 +623,7 @@ Hyperbole hyperlink and other kinds of buttons (explicit
buttons) may be
added to documents with a simple drag between windows, no markup language
needed. Implicit buttons are patterns automatically recognized within
existing text that perform actions, e.g. bug#24568 displays the bug status
-information for that bug number, without the need for any additional
+information for that Emacs bug number, without the need for any additional
markup. Global buttons are buttons that are activated by name from
anywhere within Emacs.
@xref{Buttons}.
@@ -647,7 +647,8 @@ fast, flexible file and text finding commands. A powerful,
hierarchical
contact manager, @pxref{HyRolo}, which anyone can use, is also included.
It is easy to learn since it introduces only a few new mechanisms
and has a menu interface, which may be operated from the keyboard or the
-mouse;
+mouse; it may also be used to look up any record-based information and
+Hyperbole buttons may be embedded in any records;
@item Screen Control
the fastest, easiest-to-use window and frame control available for GNU
@@ -655,13 +656,14 @@ Emacs, @pxref{HyControl}. With just a few keystrokes,
you can shift from
increasing a window's height by 5 lines to moving a frame by 220 pixels
or immediately moving it to a screen corner. Text in each window or
frame may be enlarged or shrunk (zoomed) for easy viewing, plus many
-other features;
+other features; this allows Hyperbole to quickly control the way
+information is presented on-screen;
@item Hypertextual Outliner
an advanced outliner, @pxref{Koutliner}, with multi-level
autonumbering and permanent identifiers attached to each outline node
for use as hypertext link anchors, per node properties and flexible
-view specifications that can be embedded within links or used
+view specifications that can be included in links or used
interactively;
@item Programming Library
@@ -716,7 +718,7 @@ Some of Hyperbole's most significant features are:
@itemize @bullet
@item
-Buttons may link to information or may execute procedures, such as
+Buttons may link to information or may execute functions, such as
starting or communicating with external programs;
@item
@@ -1964,8 +1966,7 @@ Messages are recognized in any buffer.
@cindex link to implicit button
@cindex ilink
@item link-to-ibut <ilink>
-At point, activates a link to an implicit button.
-The implicit button’s action is executed in the context of the current buffer.
+At point, activates a link to an implicit button within the current buffer.
Recognizes the format ’<ilink:’ <button label> ’>’, e.g. <ilink: my sequence
of keys>.
@findex ibtypes link-to-gbut
@@ -1982,8 +1983,7 @@ Recognizes the format ’<glink:’ <button label> ’>’, e.g.
<glink: open to
@cindex link to explicit button
@cindex elink
@item link-to-ebut <elink>
-At point, activates a link to an explicit button.
-The explicit button’s action is executed in the context of the current buffer.
+At point, activates a link to an explicit button within the current buffer.
Recognizes the format ’<elink:’ <button label> ’>’, e.g. <elink: project-list>.
@findex ibtypes klink
@@ -2018,10 +2018,12 @@ retrievals.
@findex ibtypes kbd-key
@cindex key sequence
+@cindex sequence of keys
@item kbd-key
-Executes a key sequence found around point, delimited by curly braces, @{@},
if any.
-Key sequences should be in human readable form, e.g.@: @bkbd{C-x C-b}.
Formats such
-as @{^x^b@} will not be recognized.
+Executes a key series (series of key sequences) found around point,
+delimited by curly braces, @{@}, if any. Key series should be in
+human readable form, e.g.@: @bkbd{C-x C-b}. Formats such as @{^x^b@}
+will not be recognized.
Any key sequence must be a string of one of the following:
@itemize @bullet
@@ -2340,20 +2342,37 @@ for a valid match. See the function documentation for
@code{hpath:find}
for special file display options.
@findex ibtypes org-mode
-@vindex browse-url-browser-function
@cindex org-mode
@cindex Org mode
+@cindex radio target
+@cindex code block
+@kindex C-c C-c
+@kindex M-RET
+@findex org-ctrl-c-ctrl-c
+@findex org-meta-return
@item org-mode
-The Action Key follows any Org mode link at point or cycles through
-views of the outline subtree at point. In any other context besides
-the end of a line, the Action Key will invoke the Org mode standard
-binding of @bkbd{M-@key{RET}}, (org-meta-return). The Assist Key on
-an Org mode heading cycles through views of the whole buffer outline
-and on an Org mode link, displays standard Hyperbole help.
+For users of Emacs Org mode, Hyperbole does quite a few things.
+
+First, the Action Key follows internal links in Org mode files. When
+pressed on a link referent/target, the link definition is displayed,
+allowing two-way navigation between definitions and targets.
+
+Second, the Action Key follows Org mode external links. The Assist
+Key displays help when pressed on an Org mode link.
+
+Third, within a radio target definition, the Action Key jumps to the
+first occurrence of an associated radio target.
+
+Fourth, when point is on an outline heading in Org mode, the Action Key
+cycles the view of the subtree at point and the Assist Key cycles the
+view of all headings in the buffer.
-The variable, @code{browse-url-browser-function}, customizes the url
-browser that is used for urls. Valid values of this variable
-include @code{browse-url-default-browser} and @code{browse-url-generic}.
+Fifth, with point on the first line of a code block definition, the
+Action Key executes the code block via the Org mode standard binding
+of @bkbd{C-c C-c}, @code{org-ctrl-c-ctrl-c}.
+
+In any other context besides the end of a line, the Action Key invokes
+the Org mode standard binding of @bkbd{M-RET}, @code{org-meta-return}.
@findex ibtypes doc-id
@cindex online library
@@ -2641,9 +2660,12 @@ at point.
@item www-url
Follows a link given by a URL. The variable,
@code{browse-url-browser-function}, customizes the url browser
-that is used. See its documentation string for details.
+that is used. Valid values of this variable include
+@code{browse-url-default-browser} and @code{browse-url-generic}.
+See its documentation string for details.
@end table
+
@cindex action
@vindex hui:ebut-prompt-for-action
Action types create a convenient way of specifying button behavior
@@ -6207,6 +6229,14 @@ See also @url{https://tkf.github.io/emacs-jedi/latest/}.
Jedi is a Emacs package for Python completion, definition and documentation
lookup.
+@item Key Sequence
+A single sequence of keys that can invoke an Emacs command.
+
+@item Key Series
+A series of one or more Emacs key sequences delimited by braces that
+Hyperbole processes when activated as an implicit button, as if the
+keys were typed in by the user.
+
@item Koutline
A hierarchically ordered grouping of cells which may be stored as a file
and viewed and edited as an outline.
@@ -6654,8 +6684,8 @@ available with InfoDock.
@cindex menu, Cust/Referents
@kindex C-h h c r
Links to standard files, those which don't match any special referent
-category handled by any described earlier, are displayed in an Emacs
-window specified by the @code{hpath:display-where} setting. It may be changed
with the
+category described earlier, are displayed in an Emacs window specified
+by the @code{hpath:display-where} setting. It may be changed with the
Cust/Referents @bkbd{C-h h c r} menu.
@noindent
@@ -6722,7 +6752,7 @@ entry. Alternatively, the viewer-program may be a Lisp
function that
takes a single filename argument.
The association lists used by this function are stored in variables
-vfor each available window system: @code{hpath:external-display-alist-macos},
+for each available window system: @code{hpath:external-display-alist-macos},
@code{hpath:external-display-alist-mswindows}, and
@code{hpath:external-display-alist-x}. Examine and modify these
values to suit your needs.
@@ -6749,16 +6779,15 @@ compared against the values in @code{hpath:variables}.
The first
match found, if any, is selected and its associated variable name is
substituted into the link pathname, in place of its literal value.
When a link button is activated, potentially at a different site,
-Hyperbole replaces each variable within the link pathname with the
-first matching value from this list to recreate the literal pathname.
+Hyperbole replaces each variable in the link pathname with the first
+matching value from this list to recreate the literal pathname.
Environment variables are also replaced whenever link paths are
resolved.
This permits sharing of links over wide areas, where the variable values
differ between link creator and link activator. The entire process
is wholly transparent to the user; it is explained here simply to help
-you in deciding whether or not to modify the value of
-@code{hpath:variables}.
+you in deciding whether or not to modify the value of @code{hpath:variables}.
@node Web Search Engines, Using URLs with Find-File, Link Variable
Substitution, Customization
@subsection Web Search Engines
@@ -8480,10 +8509,10 @@ When pressed within a Python source code file (without
the OO-Browser):
@format
@group
This works only for identifiers defined within the same source file in
-which they are referenced. It requires either Emacs' imenu or XEmacs'
-func-menu library and it requires that an index of identifiers has
-been built for the current buffer. Other handlers handle identifier
-references and definitions across multiple files.
+which they are referenced. It requires either Emacs' imenu library
+and it requires that an index of identifiers has been built for the
+current buffer. Other handlers handle identifier references and
+definitions across multiple files.
@noindent
When pressed on an identifier name after an identifier index has been
generated:
- [elpa] scratch/hyperbole-lexbind 332ef33 19/20: V7.0.3b test release: Basic DEMO updates, (continued)
- [elpa] scratch/hyperbole-lexbind 332ef33 19/20: V7.0.3b test release: Basic DEMO updates, Stefan Monnier, 2019/08/14
- [elpa] scratch/hyperbole-lexbind c547ad4 10/20: Merge branch '7.0.3a' into prepare-pr-for-merging, Stefan Monnier, 2019/08/14
- [elpa] scratch/hyperbole-lexbind 131295e 07/20: Remove conditionals on xemacs, Stefan Monnier, 2019/08/14
- [elpa] scratch/hyperbole-lexbind ff0f602 11/20: Merge pull request #11 from matsl/prepare-pr-for-merging, Stefan Monnier, 2019/08/14
- [elpa] scratch/hyperbole-lexbind da8f3fa 09/20: Add labeled implicit buttons, in-buffer links to g/e/ibuts, Stefan Monnier, 2019/08/14
- [elpa] scratch/hyperbole-lexbind 9ad2bf0 08/20: Remove all featurep checks on xemacs and emacs, Stefan Monnier, 2019/08/14
- [elpa] scratch/hyperbole-lexbind 21c7432 15/20: Most changes for 7.0.3a release, Stefan Monnier, 2019/08/14
- [elpa] scratch/hyperbole-lexbind f38ee21 14/20: 7.0.3a changes for creating and modifying ibut labels, small fixes, Stefan Monnier, 2019/08/14
- [elpa] scratch/hyperbole-lexbind 6e555e7 20/20: Merge remote-tracking branch 'hyperbole/master' into externals/hyperbole, Stefan Monnier, 2019/08/14
- [elpa] scratch/hyperbole-lexbind d56c8c0 16/20: Most changes for 7.0.3a release, Stefan Monnier, 2019/08/14
- [elpa] scratch/hyperbole-lexbind 64c3563 17/20: Expanded Org mode doc; introduce 'key series' term in Glossary,
Stefan Monnier <=