[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/hyperbole 766ac22 04/51: Large commit of RSW changes
From: |
Stefan Monnier |
Subject: |
[elpa] externals/hyperbole 766ac22 04/51: Large commit of RSW changes |
Date: |
Sun, 12 Jul 2020 18:10:07 -0400 (EDT) |
branch: externals/hyperbole
commit 766ac2293ddc80be6e9f42b5ac5058b842b4fbee
Author: Bob Weiner <Bob.Weiner@DuffandPhelps.com>
Commit: Bob Weiner <Bob.Weiner@DuffandPhelps.com>
Large commit of RSW changes
---
Changes | 86 +-
DEMO | 8 +-
HY-ABOUT | 2 +-
HY-NEWS | 17 +-
Makefile | 4 +-
README.md | 2 +-
README.md.html | 2 +-
hact.el | 22 +-
hactypes.el | 13 +
hargs.el | 5 +-
hbut.el | 42 +-
hib-kbd.el | 2 +-
hibtypes.el | 1349 ++++++------
hmouse-drv.el | 7 +-
hpath.el | 141 +-
hui-menu.el | 1 +
hui-mini.el | 1 +
hui-mouse.el | 5 +
hui-select.el | 1393 ++++++------
hui.el | 63 +-
hvar.el | 56 +-
hversion.el | 4 +-
hyperbole-banner.png | Bin 28333 -> 13234 bytes
hyperbole.el | 4 +-
kotl/kfill.el | 176 +-
man/hyperbole.html | 5831 ++++++++++++++++++++++++--------------------------
man/hyperbole.info | Bin 517448 -> 518845 bytes
man/hyperbole.pdf | Bin 1278118 -> 1278484 bytes
man/hyperbole.texi | 71 +-
man/version.texi | 8 +-
30 files changed, 4629 insertions(+), 4686 deletions(-)
diff --git a/Changes b/Changes
index 4e60f08..31dda5d 100644
--- a/Changes
+++ b/Changes
@@ -1,3 +1,87 @@
+2020-01-07 Bob Weiner <rsw@gnu.org>
+
+* hui-mini.el (hui:menus): Added Gbut/Rename.
+ hui-menu.el (infodock-hyperbole-menu): Added Global-Button/Rename.
+
+2020-01-06 Bob Weiner <rsw@gnu.org>
+
+* hui.el (hui:gbut-modify): Changed hargs:read-match to use 'gbut' type
+ rather than 'ebut'.
+ (hui:gbut-rename): Added.
+
+2020-01-05 Bob Weiner <rsw@gnu.org>
+
+* hbut.el (hbut:key, ebut:key, ibut:key, hbut:rename): Added.
+
+* hui.el (hui:hbut-rename, hui:hbut-operate): Added.
+ (hui:hbut-act): Rewrote to use hui:hbut-operate.
+
+2020-01-04 Bob Weiner <rsw@gnu.org>
+
+* hibtypes.el (pathname):
+ man/hyperbole.texi (Implicit Button Types):
+ hpath.el (hpath:find): Documented allowable Emacs Lisp and env. variable
syntax.
+
+2019-12-29 Bob Weiner <rsw@gnu.org>
+
+* hpath.el (hpath:posix-to-mswindows-separators):
+ (hpath:mswindows-to-posix-separators):
+ (hpath:directory-expand-alist): Corrected use of this variable by
switching
+ it to hpath:posix-to-mswindows-separators.
+
+2019-12-28 Bob Weiner <rsw@gnu.org>
+
+* hui-select.el (hui-select-set-region): Resolved markup-pair selection when
selecting
+ the whole buffer.
+
+* hibtypes.el (action): Ignore / don't match to unbound symbols.
+
+2019-12-18 Bob Weiner <rsw@gnu.org>
+
+* hui-select.el (hui-select-markup-modes):
+ man/hyperbole.texi (Smart Key Thing Selection): Added XML mode support.
+
+2019-10-13 Bob Weiner <rsw@gnu.org>
+
+* hact.el (action:path-args-rel): Limited to file-name-directory call to 'loc'
value.
+ hpath.el (hpath:find): Added file-name-directory call wrapped around 'loc'
value;
+ otherwise, default-directory could be set to a filename.
+
+* hpath.el (hpath:absolute-to): Resolved bug that trimmed whitespace off
non-path args,
+ e.g. key series, thereby removing trailing C-m keys.
+
+2019-10-06 Bob Weiner <rsw@gnu.org>
+
+* hui-mouse.el (hkey-alist): Added support for selection of bookmarks from
bookmark menu list.
+
+2019-10-05 Bob Weiner <rsw@gnu.org>
+
+* hactypes.el (link-to-bookmark): Added to link to an Emacs bookmark, similar
to a
+ global button with a link action type.
+ man/hyperbole.texi (Action Types): Added link-to-bookmark.
+
+* hpath.el (hpath:cache-mswindows-mount-points): Changed mapcar to mapc since
+ not using return value.
+ (hpath:display-buffer-function, hpath:display-path-function,
+ hpath:display-where-function): Added.
+ (hpath:display-buffer): Added call to hpath:display-buffer-function.
+ (hpath:find): Added call to hpath:display-path-function.
+
+2019-10-04 Bob Weiner <rsw@gnu.org>
+
+* hpath.el (hpath:to-markup-anchor): If anchor contains both a dash and a
space, then
+ don't convert dashes to spaces.
+
+* hmouse-drv.el (hkey-help): Added display of ibtype or actype (for explicit
buttons).
+
+* hact.el (actype:def-symbol):
+* hbut.el (ibtype:def-symbol): Improved doc strings.
+ (htype:def-symbol): Added.
+
+==============================================================================
+V7.0.8 changes ^^^^:
+==============================================================================
+
2019-10-01 Bob Weiner <rsw@gnu.org>
* hact.el (htype:delete): Removed improper quote in (fboundp 'sym) call.
@@ -25,8 +109,6 @@
2019-09-19 Bob Weiner <rsw@gnu.org>
-* hmouse-drv.el (hkey-help): Added display of ibtype, if any.
-
* hbut.el (ibtype:def-symbol): Added.
* hact.el (actype:def-symbol): Change mislabeled 'sym-name' to 'name'.
diff --git a/DEMO b/DEMO
index e730e06..cd93c8b 100644
--- a/DEMO
+++ b/DEMO
@@ -69,7 +69,7 @@ Assist Key provides help, such as reporting on a button's
attributes, or
serves a complementary function to whatever the Action Key does within a
context. Press the Action Key within this <(button)> to see all of the
contexts and operations of the Smart Keys. SPACE scrolls forward and
-backwards DELETE scrolls backward within the Smart Key summary; {q} quits
+BACKWARDS DELETE scrolls backward within the Smart Key summary; {q} quits
and returns here.
See also the later section, <(Smart Mouse Keys)>.
@@ -224,10 +224,10 @@ the same thing.
Once in HyControl, your minibuffer window at the bottom of the selected frame
will display a summary of keys you may use to adjust your windows until you
-press {q} or {Q} to quit from HyControl. If you don't see it, press {?}, to
-turn on this help display. The key, {t}, will always switch you between
+press {q} or {Q} to quit from HyControl. If you don't see it, press {?} to
+turn on this help display. The key {t} will always switch you between
controlling frames and windows, the minor modes of HyControl, with a modeline
-indicator of either "HyFrm" or HyWin" depending on which type of control is
+indicator of either "HyFrm" or "HyWin" depending on which type of control is
active. See "(hyperbole)HyControl" for full usage information.
** Frame Commands
diff --git a/HY-ABOUT b/HY-ABOUT
index f2939fa..93e1a22 100644
--- a/HY-ABOUT
+++ b/HY-ABOUT
@@ -3,7 +3,7 @@
Designed and Written by Bob Weiner
Maintained by Mats Lidell and Bob Weiner
https://www.gnu.org/software/hyperbole/
- Version 7.0.7
+ Version 7.0.8
Say thanks if you like Hyperbole:
https://saythanks.io/to/rswgnu
diff --git a/HY-NEWS b/HY-NEWS
index 6b93a7f..8fc5862 100644
--- a/HY-NEWS
+++ b/HY-NEWS
@@ -2,7 +2,7 @@
by Bob Weiner
===========================================================================
-* V7.0.7
+* V7.0.8
===========================================================================
BUTTONS
@@ -32,6 +32,9 @@
debugger-source: Jump to the source of errors from the Python pytype
package
ipython-stack-frame: Jump to the source of ipython stack traces and
exceptions
+ - Other New Action Types:
+ link-to-bookmark: Display an Emacs bookmark
+
- Much Faster Implicit Buttons: Major speedup in implicit button
identification
and activation even with the new generalized Action implicit button type
syntax, due to internal optimizations.
@@ -50,6 +53,10 @@
"${hyperb:dir}DEMO#Smart Mouse Keys"
"${hyperb:dir}/DEMO#Smart Mouse Keys"
+ - Jump Thing: Added xml-mode support for pressing the Action Key when on a
start or
+ end tag pair to select the whole region between them. {C-c .} also
moves between
+ the start and matching end tag. See "(hyperbole)Smart Key Thing
Selection".
+
DOCUMENTATION
@@ -67,6 +74,8 @@
- DEMO (Action Buttons): Added description and examples.
+ - Path Variables: Better documented how these are handled.
+
- Hyperbole Manual, DEMO (Implicit Buttons): Added description and
example of implicit button labels.
@@ -103,6 +112,10 @@
- ibut:at-type-p: Added to test if point is on a specific type of
implicit button.
+ - hbut:key, ebut:key, ibut:key, hbut:rename, hui:hbut-rename,
+ hui:hbut-operate: Added to allow renaming of any type of labeled
+ Hyperbole button.
+
- hypb:region-with-text-property-value: Added and used in hysy-org.el.
- hsys-org-mode-function, hsys-org-mode-p: Added to determine when
@@ -135,6 +148,8 @@
SMART (ACTION AND ASSIST) KEYS
+ - Emacs Bookmark Menu Mode: Jump to the bookmark at point.
+
- hpath:find-program: Changed to prioritize hpath:native-image-suffixes
over hpath:internal-display-alist over hpath:external-display-alist-macos
instead of the reverse. This prevents external viewers from being
diff --git a/Makefile b/Makefile
index 1d02daf..d2e831d 100644
--- a/Makefile
+++ b/Makefile
@@ -63,7 +63,7 @@
# This ver setup won't work under any make except GNU make, so set it manually.
#HYPB_VERSION = "`head -3 hversion.el | tail -1 | sed -e 's/.*|\(.*\)|.*/\1/'`"
-HYPB_VERSION = 7.0.7
+HYPB_VERSION = 7.0.8
# Emacs executable used to byte-compile .el files into .elc's.
# Possibilities include: emacs, infodock, etc.
@@ -260,7 +260,7 @@ elc-init:
src: autoloads tags
# Remove and then rebuild all byte-compiled .elc files, even those .elc files
-# which do not yet exist, plus built TAGS file.
+# which do not yet exist, plus build TAGS file.
bin: src
$(RM) *.elc kotl/*.elc
$(EMACS) $(BATCHFLAGS) $(PRELOADS) -f batch-byte-compile $(EL_KOTL)
$(EL_COMPILE)
diff --git a/README.md b/README.md
index f0bdb90..786d684 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# GNU Hyperbole 7.0.7 - The Everyday Hypertextual Information Manager
+# GNU Hyperbole 7.0.8 - The Everyday Hypertextual Information Manager
[Say thanks if you like Hyperbole.(https://saythanks.io/to/rswgnu)]
diff --git a/README.md.html b/README.md.html
index 2f60fe4..bddef2b 100644
--- a/README.md.html
+++ b/README.md.html
@@ -1,5 +1,5 @@
<h1>
-<a
id="user-content-gnu-hyperbole-707---the-everyday-hypertextual-information-manager"
class="anchor"
href="#gnu-hyperbole-707---the-everyday-hypertextual-information-manager"
aria-hidden="true"><span aria-hidden="true" class="octicon
octicon-link"></span></a>GNU Hyperbole 7.0.7 - The Everyday Hypertextual
Information Manager</h1>
+<a
id="user-content-gnu-hyperbole-708---the-everyday-hypertextual-information-manager"
class="anchor"
href="#gnu-hyperbole-708---the-everyday-hypertextual-information-manager"
aria-hidden="true"><span aria-hidden="true" class="octicon
octicon-link"></span></a>GNU Hyperbole 7.0.8 - The Everyday Hypertextual
Information Manager</h1>
<p>[Say thanks if you like Hyperbole.(<a href="https://saythanks.io/to/rswgnu"
rel="nofollow">https://saythanks.io/to/rswgnu</a>)]</p>
<p><strong>Table of Contents</strong></p>
diff --git a/hact.el b/hact.el
index fd87af9..e1abfd7 100644
--- a/hact.el
+++ b/hact.el
@@ -212,6 +212,16 @@ Return the new function symbol derived from TYPE."
(run-hooks 'htype-create-hook)
',sym)))
+(defun htype:def-symbol (type)
+ "Return the abbreviated symbol used in the definition of a Hyperbole TYPE.
+TYPE may be either an implicit button type or action type. It may be
+given as a string or a symbol."
+ (let ((name (if (stringp type)
+ type
+ (symbol-name type))))
+ (when (string-match "\\`\\(ib\\|ac\\)types::" name)
+ (make-symbol (substring name (match-end 0))))))
+
(defun htype:delete (type type-category)
"Delete a Hyperbole TYPE derived from TYPE-CATEGORY (both symbols).
Return the Hyperbole symbol for the TYPE if it existed, else nil."
@@ -372,11 +382,9 @@ Other arguments are returned unchanged."
Other paths are simply expanded. Non-path arguments are returned unchanged."
(let ((loc (hattr:get 'hbut:current 'loc)))
(mapcar (lambda (arg)
- (hpath:relative-to arg
- (file-name-directory
- (if (stringp loc)
- loc
- (buffer-local-value 'default-directory
loc)))))
+ (hpath:relative-to arg (if (stringp loc)
+ (file-name-directory loc)
+ (buffer-local-value 'default-directory
loc))))
args-list)))
@@ -425,7 +433,9 @@ performing ACTION."
(defalias 'actype:elisp-symbol 'symtable:actype-p)
(defun actype:def-symbol (actype)
- "Return the abbreviated symbol for ACTYPE used in its `defact'; ACTYPE may
be a string or symbol."
+ "Return the abbreviated symbol for ACTYPE used in its `defact'.
+ACTYPE must be a symbol or string that begins with 'actype::' or nil
+is returned."
(let ((name (if (stringp actype)
actype
(symbol-name actype))))
diff --git a/hactypes.el b/hactypes.el
index 1b66216..eb99b55 100644
--- a/hactypes.el
+++ b/hactypes.el
@@ -247,6 +247,19 @@ For example: To: hyperbole-users-join@gnu.org\n")))
(t (hpath:find buf-str-or-file)))
(hypb:error "(hyp-source): Non-string argument: %s" buf-str-or-file)))
+(defact link-to-bookmark (bookmark)
+ "Display an Emacs BOOKMARK.
+When creating the button, if in Bookmark Menu mode, use the bookmark
+nearest point as the default. Otherwise, utilize the most recently used
+bookmark in the current file (bookmark-current-bookmark) as the default,
+if any."
+ (interactive
+ (list (bookmark-completing-read "Bookmark to link to"
+ (if (eq major-mode 'bookmark-bmenu-mode)
+ (bookmark-bmenu-bookmark)
+ bookmark-current-bookmark))))
+ (bookmark-jump bookmark (hpath:display-buffer-function)))
+
(defact link-to-buffer-tmp (buffer &optional point)
"Display a BUFFER scrolled to optional POINT.
If POINT is given, the buffer is displayed with POINT at the top of
diff --git a/hargs.el b/hargs.el
index 291f143..26bb614 100644
--- a/hargs.el
+++ b/hargs.el
@@ -325,8 +325,7 @@ Handles all of the interactive argument types that
`hargs:iform-read' does."
((eq hargs:reading-p 'gbut)
(when (eq (current-buffer) (get-file-buffer gbut:file))
(hbut:label-p 'as-label)))
- ((eq hargs:reading-p 'hbut) (or (ebut:label-p 'as-label)
- (ibut:label-p 'as-label)))
+ ((eq hargs:reading-p 'hbut) (hbut:label-p 'as-label))
((hbut:label-p) nil)
((eq hargs:reading-p 'file)
(cond ((derived-mode-p 'dired-mode)
@@ -403,7 +402,7 @@ Handles all of the interactive argument types that
`hargs:iform-read' does."
((eq hargs:reading-p 'key)
(require 'hib-kbd)
(let ((key-seq (hbut:label-p 'as-label "{" "}")))
- (and key-seq (kbd-key:normalize key-seq))))
+ (when key-seq (kbd-key:normalize key-seq))))
((eq hargs:reading-p 'integer)
(save-excursion (skip-chars-backward "-0-9")
(if (looking-at "-?[0-9]+")
diff --git a/hbut.el b/hbut.el
index 0a729b6..a1b2c16 100644
--- a/hbut.el
+++ b/hbut.el
@@ -153,6 +153,13 @@ buffer."
(and (symbolp object)
(eq (hattr:get object 'categ) 'explicit)))
+(defun ebut:key (ebut)
+ "Return the key for Hyperbole explicit button symbol EBUT."
+ (if (ebut:is-p ebut)
+ (hattr:get ebut 'lbl-key)
+ (error "(ebut:key): Argument is not a Hyperbole explicit button symbol,
`%s'"
+ ebut)))
+
(defun ebut:key-of-label-p (key label)
"Return t iff KEY matches to LABEL in a case insensitive manner."
(and (stringp key) (stringp label)
@@ -165,6 +172,8 @@ buffer."
(defun ebut:label-p (&optional as-label start-delim end-delim pos-flag
two-lines-flag)
"Return key for the Hyperbole explicit button label that point is within,
else nil.
+This is the normalized key form of the explicit button's label.
+
Assumes point is within the first line of any button label. All
following arguments are optional. If AS-LABEL is non-nil, label
is returned rather than the key derived from the label.
@@ -837,6 +846,13 @@ nil. BUFFER defaults to the current buffer."
"Return non-nil if OBJECT denotes a Hyperbole button."
(and (symbolp object) (hattr:get object 'categ)))
+(defun hbut:key (hbut)
+ "Return the key for Hyperbole button symbol HBUT."
+ (if (hbut:is-p hbut)
+ (hattr:get hbut 'lbl-key)
+ (error "(hbut:key): Argument is not a Hyperbole button symbol, `%s'"
+ hbut)))
+
(defun hbut:key-src (&optional full)
"Return key source (usually unqualified) for current Hyperbole button.
Also sets current buffer to key source.
@@ -901,7 +917,7 @@ represent the output of particular document formatters."
(concat src ".texinfo"))
((current-buffer))))))
-(defun hbut:key-src-set-buffer (src)
+(defun hbut:key-src-set-buffer (src)
"Set buffer to SRC, a buffer, file, directory or symlink and return SRC or
nil if invalid."
(cond ((null src) nil)
((bufferp src)
@@ -1046,6 +1062,17 @@ include delimiters when INCLUDE-DELIMS is non-nil)."
;; Match is outside of a programming language comment
(not (nth 4 (syntax-ppss)))))
+(defun hbut:rename (but)
+ "Interactively rename the Hyperbole button BUT from the current buffer."
+ (cond ((ebut:is-p but)
+ (ebut:to (ebut:key but))
+ (call-interactively #'hui:ebut-rename))
+ ((ibut:is-p but)
+ (ibut:to (ibut:key but))
+ (call-interactively #'hui:ibut-rename))
+ (t
+ (hypb:error "(hbut:rename): Button is invalid; it has no
attributes"))))
+
(defun hbut:report (&optional arg)
"Pretty print the attributes of a button or buttons.
@@ -1329,7 +1356,7 @@ current."
(defun ibut:label-p (&optional as-label start-delim end-delim pos-flag
two-lines-flag)
"Return key for the Hyperbole implicit button label that point is within,
else nil.
-This is an optional label that may precede an implicit button.
+This is the normalized key form of an optional label that may precede an
implicit button.
Use `ibut:at-p' instead to test if point is on either the
implicit button itself or the label. Assumes point is within the
first line of any button label.
@@ -1386,6 +1413,13 @@ positions at which the button label delimiter begins and
ends."
(ibut:key-to-label (ibut:label-to-key lbl)))))))
(if loc-p buts (when buts (apply #'set:create buts))))))
+(defun ibut:key (ibut)
+ "Return the key for Hyperbole implicit button symbol IBUT."
+ (if (ibut:is-p ibut)
+ (hattr:get ibut 'lbl-key)
+ (error "(ibut:key): Argument is not a Hyperbole implicit button symbol,
`%s'"
+ ibut)))
+
(defalias 'ibut:key-src 'hbut:key-src)
(defalias 'ibut:key-to-label 'hbut:key-to-label)
(defalias 'ibut:label-to-key 'hbut:label-to-key)
@@ -1497,7 +1531,9 @@ type for ibtype is presently undefined."
'(to-p ,to-func style ,style))))))
(defun ibtype:def-symbol (ibtype)
- "Return the abbreviated symbol for IBTYPE used in its `defib'; IBTYPE may be
a string or symbol."
+ "Return the abbreviated symbol for IBTYPE used in its `defib'.
+IBTYPE must be a symbol or string that begins with 'ibtype::' or nil
+is returned."
(let ((name (if (stringp ibtype)
ibtype
(symbol-name ibtype))))
diff --git a/hib-kbd.el b/hib-kbd.el
index 40166f3..eada6e8 100644
--- a/hib-kbd.el
+++ b/hib-kbd.el
@@ -49,7 +49,7 @@ Return t if the sequence appears to be valid, else nil."
(defib kbd-key ()
"Execute a key sequence found around point, delimited by curly braces, {},
if any.
Key sequences should be in human readable form, e.g. {C-x C-b}, or what
`key-description' returns.
-Forms such as {\C-b}, {\^b}, and {^b} will not be recognized.
+Forms such as {\C-b}, {\^b}, and {^M} will not be recognized.
Any key sequence must be a string of one of the following:
a Hyperbole minibuffer menu item key sequence,
diff --git a/hibtypes.el b/hibtypes.el
index af3e85a..1ffd1d5 100644
--- a/hibtypes.el
+++ b/hibtypes.el
@@ -28,30 +28,30 @@
(defconst mail-address-tld-regexp
(format "\\.%s\\'"
- (regexp-opt
- '("aero" "arpa" "asia" "biz" "cat" "com" "coop" "edu" "gov" "info"
- "int" "jobs" "mil" "mobi" "museum" "name" "net" "org" "pro" "tel"
- "travel" "uucp"
- "ac" "ad" "ae" "af" "ag" "ai" "al" "am" "an" "ao" "aq"
- "ar" "as" "at" "au" "aw" "ax" "az" "ba" "bb" "bd" "be" "bf" "bg"
"bh"
- "bi" "bj" "bl" "bm" "bn" "bo" "br" "bs" "bt" "bv" "bw" "by" "bz"
"ca"
- "cc" "cd" "cf" "cg" "ch" "ci" "ck" "cl" "cm" "cn" "co" "cr" "cu"
"cv"
- "cx" "cy" "cz" "de" "dj" "dk" "dm" "do" "dz" "ec" "ee" "eg" "eh"
"er"
- "es" "et" "eu" "fi" "fj" "fk" "fm" "fo" "fr" "ga" "gb" "gd" "ge"
"gf"
- "gg" "gh" "gi" "gl" "gm" "gn" "gp" "gq" "gr" "gs" "gt" "gu" "gw"
"gy"
- "hk" "hm" "hn" "hr" "ht" "hu" "id" "ie" "il" "im" "in" "io" "iq"
"ir"
- "is" "it" "je" "jm" "jo" "jp" "ke" "kg" "kh" "ki" "km" "kn" "kp"
"kr"
- "kw" "ky" "kz" "la" "lb" "lc" "li" "lk" "lr" "ls" "lt" "lu" "lv"
"ly"
- "ma" "mc" "md" "me" "mf" "mg" "mh" "mk" "ml" "mm" "mn" "mo" "mp"
"mq"
- "mr" "ms" "mt" "mu" "mv" "mw" "mx" "my" "mz" "na" "nc" "ne" "nf"
"ng"
- "ni" "nl" "no" "np" "nr" "nu" "nz" "om" "pa" "pe" "pf" "pg" "ph"
"pk"
- "pl" "pm" "pn" "pr" "ps" "pt" "pw" "py" "qa" "re" "ro" "rs" "ru"
"rw"
- "sa" "sb" "sc" "sd" "se" "sg" "sh" "si" "sj" "sk" "sl" "sm" "sn"
"so"
- "sr" "st" "su" "sv" "sy" "sz" "tc" "td" "tf" "tg" "th" "tj" "tk"
"tl"
- "tm" "tn" "to" "tp" "tr" "tt" "tv" "tw" "tz" "ua" "ug" "uk" "um"
"us"
- "uy" "uz" "va" "vc" "ve" "vg" "vi" "vn" "vu" "wf" "ws" "ye" "yt"
"yu"
- "za" "zm" "zw")
- t))
+ (regexp-opt
+ '("aero" "arpa" "asia" "biz" "cat" "com" "coop" "edu" "gov"
"info"
+ "int" "jobs" "mil" "mobi" "museum" "name" "net" "org" "pro"
"tel"
+ "travel" "uucp"
+ "ac" "ad" "ae" "af" "ag" "ai" "al" "am" "an" "ao" "aq"
+ "ar" "as" "at" "au" "aw" "ax" "az" "ba" "bb" "bd" "be" "bf"
"bg" "bh"
+ "bi" "bj" "bl" "bm" "bn" "bo" "br" "bs" "bt" "bv" "bw" "by"
"bz" "ca"
+ "cc" "cd" "cf" "cg" "ch" "ci" "ck" "cl" "cm" "cn" "co" "cr"
"cu" "cv"
+ "cx" "cy" "cz" "de" "dj" "dk" "dm" "do" "dz" "ec" "ee" "eg"
"eh" "er"
+ "es" "et" "eu" "fi" "fj" "fk" "fm" "fo" "fr" "ga" "gb" "gd"
"ge" "gf"
+ "gg" "gh" "gi" "gl" "gm" "gn" "gp" "gq" "gr" "gs" "gt" "gu"
"gw" "gy"
+ "hk" "hm" "hn" "hr" "ht" "hu" "id" "ie" "il" "im" "in" "io"
"iq" "ir"
+ "is" "it" "je" "jm" "jo" "jp" "ke" "kg" "kh" "ki" "km" "kn"
"kp" "kr"
+ "kw" "ky" "kz" "la" "lb" "lc" "li" "lk" "lr" "ls" "lt" "lu"
"lv" "ly"
+ "ma" "mc" "md" "me" "mf" "mg" "mh" "mk" "ml" "mm" "mn" "mo"
"mp" "mq"
+ "mr" "ms" "mt" "mu" "mv" "mw" "mx" "my" "mz" "na" "nc" "ne"
"nf" "ng"
+ "ni" "nl" "no" "np" "nr" "nu" "nz" "om" "pa" "pe" "pf" "pg"
"ph" "pk"
+ "pl" "pm" "pn" "pr" "ps" "pt" "pw" "py" "qa" "re" "ro" "rs"
"ru" "rw"
+ "sa" "sb" "sc" "sd" "se" "sg" "sh" "si" "sj" "sk" "sl" "sm"
"sn" "so"
+ "sr" "st" "su" "sv" "sy" "sz" "tc" "td" "tf" "tg" "th" "tj"
"tk" "tl"
+ "tm" "tn" "to" "tp" "tr" "tt" "tv" "tw" "tz" "ua" "ug" "uk"
"um" "us"
+ "uy" "uz" "va" "vc" "ve" "vg" "vi" "vn" "vu" "wf" "ws" "ye"
"yt" "yu"
+ "za" "zm" "zw")
+ t))
"Regular expression of most common Internet top level domain names.")
(defconst mail-address-regexp
@@ -76,9 +76,9 @@
(defvar mail-address-mode-list
'(emacs-lisp-mode lisp-interaction-mode lisp-mode scheme-mode
- c-mode c++-mode html-mode java-mode js2-mode objc-mode
- python-mode smalltalk-mode fundamental-mode text-mode
- indented-text-mode web-mode)
+ c-mode c++-mode html-mode java-mode js2-mode objc-mode
+ python-mode smalltalk-mode fundamental-mode text-mode
+ indented-text-mode web-mode)
"List of major modes in which mail address implicit buttons are active.")
(defun mail-address-at-p ()
@@ -87,39 +87,38 @@
(save-excursion
(skip-chars-backward "^ \t\n\r\f\"\'(){}[];:<>|")
(and (or (looking-at mail-address-regexp)
- (looking-at (concat "mailto:" mail-address-regexp)))
- (save-match-data
- (string-match mail-address-tld-regexp (match-string-no-properties
1)))
- (match-string-no-properties 1)))))
+ (looking-at (concat "mailto:" mail-address-regexp)))
+ (save-match-data
+ (string-match mail-address-tld-regexp
(match-string-no-properties 1)))
+ (match-string-no-properties 1)))))
(defib mail-address ()
"If on an e-mail address in a specific buffer type, compose mail to that
address in another window.
Applies to any major mode in `mail-address-mode-list', the HyRolo match buffer,
any buffer attached to a file in `hyrolo-file-list', or any buffer with
\"mail\" or \"rolo\" (case-insensitive) within its name."
- (if (let ((case-fold-search t))
- (or
- (and (memq major-mode mail-address-mode-list)
- (not (string-match "-Elements\\'" (buffer-name)))
- ;; Don't want this to trigger within an OOBR-FTR buffer.
- (not (string-match "\\`\\(OOBR.*-FTR\\|oobr.*-ftr\\)"
- (buffer-name)))
- (not (string-equal "*Implementors*" (buffer-name))))
- (and
- (string-match "mail\\|rolo" (buffer-name))
- ;; Don't want this to trigger in a mail/news summary buffer.
- (not (or (hmail:lister-p) (hnews:lister-p))))
- (if (boundp 'hyrolo-display-buffer)
- (equal (buffer-name) hyrolo-display-buffer))
- (and buffer-file-name
- (boundp 'hyrolo-file-list)
- (set:member (current-buffer)
- (mapcar 'get-file-buffer hyrolo-file-list)))))
- (let ((address (mail-address-at-p)))
- (if address
- (progn
- (ibut:label-set address (match-beginning 1) (match-end 1))
- (hact 'mail-other-window nil address))))))
+ (when (let ((case-fold-search t))
+ (or
+ (and (memq major-mode mail-address-mode-list)
+ (not (string-match "-Elements\\'" (buffer-name)))
+ ;; Don't want this to trigger within an OOBR-FTR buffer.
+ (not (string-match "\\`\\(OOBR.*-FTR\\|oobr.*-ftr\\)"
+ (buffer-name)))
+ (not (string-equal "*Implementors*" (buffer-name))))
+ (and
+ (string-match "mail\\|rolo" (buffer-name))
+ ;; Don't want this to trigger in a mail/news summary buffer.
+ (not (or (hmail:lister-p) (hnews:lister-p))))
+ (when (boundp 'hyrolo-display-buffer)
+ (equal (buffer-name) hyrolo-display-buffer))
+ (and buffer-file-name
+ (boundp 'hyrolo-file-list)
+ (set:member (current-buffer)
+ (mapcar 'get-file-buffer
hyrolo-file-list)))))
+ (let ((address (mail-address-at-p)))
+ (when address
+ (ibut:label-set address (match-beginning 1) (match-end 1))
+ (hact 'mail-other-window nil address)))))
;;; ========================================================================
;;; Displays files and directories when a valid pathname is activated.
@@ -129,11 +128,14 @@ any buffer attached to a file in `hyrolo-file-list', or
any buffer with
"Make a valid pathname display the path entry.
Also works for delimited and non-delimited remote pathnames,
Texinfo @file{} entries, and hash-style link references to HTML,
-Markdown or Emacs outline headings, and MSWindows paths (see
-\"${hyperb:dir}/DEMO#POSIX and MSWindows Paths\" for details).
-Emacs Lisp library files (filenames without any directory
-component that end in .el and .elc) are looked up using the
-`load-path' directory list.
+XML, SGML, Markdown or Emacs outline headings, shell script
+comments, and MSWindows paths (see \"${hyperb:dir}/DEMO#POSIX and
+MSWindows Paths\" for details). Emacs Lisp library
+files (filenames without any directory component that end in .el
+and .elc) are looked up using the `load-path' directory list.
+
+The pathname may contain references to Emacs Lisp variables or
+shell environment variables using the syntax, \"${variable-name}\".
See `hpath:at-p' function documentation for possible delimiters.
See `hpath:suffixes' variable documentation for suffixes that are
@@ -143,41 +145,41 @@ display options."
;;
;; Ignore paths in Buffer menu, dired and helm modes.
(unless (or (eq major-mode 'helm-major-mode)
- (delq nil (mapcar (lambda (substring)
- (string-match substring (format-mode-line
mode-name)))
- '("Buffer Menu" "IBuffer" "Dired"))))
+ (delq nil (mapcar (lambda (substring)
+ (string-match substring
(format-mode-line mode-name)))
+ '("Buffer Menu" "IBuffer"
"Dired"))))
(let ((path (hpath:at-p))
- full-path)
+ full-path)
(if path
- (progn (apply #'ibut:label-set path (hpath:start-end path))
- (hact 'link-to-file path))
- ;;
- ;; Match to Emacs Lisp and Info files without any directory component.
- (if (setq path (hpath:delimited-possible-path))
- (cond ((string-match "\\`[^\\\\/~]+\\.elc?\\(\\.gz\\)?\\'" path)
- (apply #'ibut:label-set path (hpath:start-end path))
- (if (string-match hpath:prefix-regexp path)
- (hact 'hpath:find path)
- (setq full-path (locate-library path))
- (if full-path
- (hact 'link-to-file full-path)
- (hact 'error "(pathname): \"%s\" not found in
`load-path'"
- path))))
- ;; Match only if "(filename)" references a valid Info file
- ;; and point is within the filename, not on any delimiters
- ;; so that delimited thing matches trigger later.
- ((and (not (looking-at "[\"()]"))
- (string-match "\\`(\\([^ \t\n\r\f]+\\))\\'" path)
- (save-match-data (require 'info))
- (Info-find-file (match-string 1 path) t))
- (apply #'ibut:label-set path (hpath:start-end path))
- (hact 'link-to-Info-node (format "%sTop" path)))
- ((string-match hpath:info-suffix path)
- (apply #'ibut:label-set path (hpath:start-end path))
- (hact 'link-to-Info-node (format "(%s)Top" path)))
- ;; Otherwise, fall through and allow other implicit
- ;; button types to handle this context.
- ))))))
+ (progn (apply #'ibut:label-set path (hpath:start-end path))
+ (hact 'link-to-file path))
+ ;;
+ ;; Match to Emacs Lisp and Info files without any directory
component.
+ (when (setq path (hpath:delimited-possible-path))
+ (cond ((string-match "\\`[^\\\\/~]+\\.elc?\\(\\.gz\\)?\\'" path)
+ (apply #'ibut:label-set path (hpath:start-end path))
+ (if (string-match hpath:prefix-regexp path)
+ (hact 'hpath:find path)
+ (setq full-path (locate-library path))
+ (if full-path
+ (hact 'link-to-file full-path)
+ (hact 'error "(pathname): \"%s\" not found in
`load-path'"
+ path))))
+ ;; Match only if "(filename)" references a valid Info
file
+ ;; and point is within the filename, not on any
delimiters
+ ;; so that delimited thing matches trigger later.
+ ((and (not (looking-at "[\"()]"))
+ (string-match "\\`(\\([^ \t\n\r\f]+\\))\\'"
path)
+ (save-match-data (require 'info))
+ (Info-find-file (match-string 1 path) t))
+ (apply #'ibut:label-set path (hpath:start-end path))
+ (hact 'link-to-Info-node (format "%sTop" path)))
+ ((string-match hpath:info-suffix path)
+ (apply #'ibut:label-set path (hpath:start-end path))
+ (hact 'link-to-Info-node (format "(%s)Top" path)))
+ ;; Otherwise, fall through and allow other implicit
+ ;; button types to handle this context.
+ ))))))
;;; ========================================================================
;;; Use the XEmacs func-menu library to jump to a function referred to
@@ -190,35 +192,35 @@ display options."
"Display the in-buffer definition of a function name that point is within or
after, else nil.
Trigger only when the \"func-menu.el\" library has been loaded and the
current major mode is one handled by func-menu."
- (if (and (boundp 'fume-function-name-regexp-alist)
- (assq major-mode fume-function-name-regexp-alist)
- (not (derived-mode-p 'dired-mode))
- ;; Not sure if this is defined in early versions of Emacs.
- (fboundp 'skip-syntax-backward)
- ;; Prevent triggering when on method, class or function definition
- ;; lines under InfoDock where outlining in programming modes is used.
- (if (and (featurep 'infodock)
- (boundp 'id-outline-in-programming-modes)
- id-outline-in-programming-modes
- (boundp 'outline-regexp) (stringp outline-regexp))
- (save-excursion (beginning-of-line)
- (not (looking-at outline-regexp)))
- t))
+ (when (and (boundp 'fume-function-name-regexp-alist)
+ (assq major-mode fume-function-name-regexp-alist)
+ (not (derived-mode-p 'dired-mode))
+ ;; Not sure if this is defined in early versions of Emacs.
+ (fboundp 'skip-syntax-backward)
+ ;; Prevent triggering when on method, class or function
definition
+ ;; lines under InfoDock where outlining in programming modes
is used.
+ (if (and (featurep 'infodock)
+ (boundp 'id-outline-in-programming-modes)
+ id-outline-in-programming-modes
+ (boundp 'outline-regexp) (stringp outline-regexp))
+ (save-excursion (beginning-of-line)
+ (not (looking-at outline-regexp)))
+ t))
(save-excursion
- (skip-syntax-backward "w_")
- (if (looking-at "\\(\\sw\\|\\s_\\)+")
- (let ((function-name (buffer-substring-no-properties (point)
(match-end 0)))
- (start (point))
- (end (match-end 0))
- function-pos)
- (unless fume-funclist
- (fume-set-defaults)
- (let ((fume-scanning-message nil))
- (fume-rescan-buffer)))
- (setq function-pos (cdr-safe (assoc function-name fume-funclist)))
- (when function-pos
- (ibut:label-set function-name start end)
- (hact 'function-in-buffer function-name function-pos)))))))
+ (skip-syntax-backward "w_")
+ (when (looking-at "\\(\\sw\\|\\s_\\)+")
+ (let ((function-name (buffer-substring-no-properties (point)
(match-end 0)))
+ (start (point))
+ (end (match-end 0))
+ function-pos)
+ (unless fume-funclist
+ (fume-set-defaults)
+ (let ((fume-scanning-message nil))
+ (fume-rescan-buffer)))
+ (setq function-pos (cdr-safe (assoc function-name
fume-funclist)))
+ (when function-pos
+ (ibut:label-set function-name start end)
+ (hact 'function-in-buffer function-name
function-pos)))))))
;;; ========================================================================
;;; Handles internal references within an annotated bibliography, delimiters=[]
@@ -233,15 +235,15 @@ must have an attached file."
(and (not (bolp))
buffer-file-name
(let ((chr (aref (buffer-name) 0)))
- (not (or (eq chr ?\ ) (eq chr ?*))))
+ (not (or (eq chr ?\ ) (eq chr ?*))))
(not (or (derived-mode-p 'prog-mode)
- (apply #'derived-mode-p '(c-mode objc-mode c++-mode java-mode
markdown-mode org-mode))))
+ (apply #'derived-mode-p '(c-mode objc-mode c++-mode
java-mode markdown-mode org-mode))))
(let* ((ref-and-pos (hbut:label-p t "[" "]" t))
- (ref (car ref-and-pos)))
- (and ref (eq ?w (char-syntax (aref ref 0)))
- (not (string-match "[#@]" ref))
- (progn (ibut:label-set ref-and-pos)
- (hact 'annot-bib ref))))))
+ (ref (car ref-and-pos)))
+ (and ref (eq ?w (char-syntax (aref ref 0)))
+ (not (string-match "[#@]" ref))
+ (progn (ibut:label-set ref-and-pos)
+ (hact 'annot-bib ref))))))
;;; ========================================================================
;;; Handles Gnu debbugs issue ids, e.g. bug#45678 or just 45678.
@@ -260,42 +262,42 @@ must have an attached file."
;;; ========================================================================
(defun markdown-follow-link-p ()
- "Jump between reference links and definitions; between footnote markers
and footnote text.
+ "Jump between reference links and definitions; between footnote markers and
footnote text.
Return t if jump and nil otherwise."
- (cond
- ;; Footnote definition
- ((markdown-footnote-text-positions)
- (markdown-footnote-return)
- t)
- ;; Footnote marker
- ((markdown-footnote-marker-positions)
- (markdown-footnote-goto-text)
- t)
- ;; Reference link
- ((thing-at-point-looking-at markdown-regex-link-reference)
- (markdown-reference-goto-definition)
- t)
- ;; Reference definition
- ((thing-at-point-looking-at markdown-regex-reference-definition)
- (markdown-reference-goto-link (match-string-no-properties 2))
- t)))
+ (cond
+ ;; Footnote definition
+ ((markdown-footnote-text-positions)
+ (markdown-footnote-return)
+ t)
+ ;; Footnote marker
+ ((markdown-footnote-marker-positions)
+ (markdown-footnote-goto-text)
+ t)
+ ;; Reference link
+ ((thing-at-point-looking-at markdown-regex-link-reference)
+ (markdown-reference-goto-definition)
+ t)
+ ;; Reference definition
+ ((thing-at-point-looking-at markdown-regex-reference-definition)
+ (markdown-reference-goto-link (match-string-no-properties 2))
+ t)))
(defun markdown-follow-inline-link-p (opoint)
"Test to see if on an inline link, jump to its referent if it is absolute
(not relative within the file), otherwise return to OPOINT."
(skip-chars-forward "^\]\[()")
(if (looking-at "\][\[()]")
(progn (if (looking-at "\(")
- (skip-chars-backward "^\]\[()")
- (skip-chars-forward "\]\[\("))
- ;; Leave point on the link even if not activated
- ;; here, so that code elsewhere activates it.
- (if (and (markdown-link-p)
- (save-match-data (not (or (hpath:www-at-p)
(hpath:at-p)))))
- ;; In-file referents are handled by the
'markdown-internal-link'
- ;; implicit button type, not here.
- (progn (ibut:label-set (match-string-no-properties 0)
(match-beginning 0) (match-end 0))
- (hpath:display-buffer (current-buffer))
- (hact 'markdown-follow-link-at-point))))
+ (skip-chars-backward "^\]\[()")
+ (skip-chars-forward "\]\[\("))
+ ;; Leave point on the link even if not activated
+ ;; here, so that code elsewhere activates it.
+ (when (and (markdown-link-p)
+ (save-match-data (not (or (hpath:www-at-p)
(hpath:at-p)))))
+ ;; In-file referents are handled by the
'markdown-internal-link'
+ ;; implicit button type, not here.
+ (ibut:label-set (match-string-no-properties 0)
(match-beginning 0) (match-end 0))
+ (hpath:display-buffer (current-buffer))
+ (hact 'markdown-follow-link-at-point)))
(goto-char opoint)
nil))
@@ -303,27 +305,27 @@ Return t if jump and nil otherwise."
"Display any in-file Markdown link referent at point.
Pathnames and urls are handled elsewhere."
(when (and (eq major-mode 'markdown-mode)
- (not (hpath:www-at-p)))
+ (not (hpath:www-at-p)))
(let ((opoint (point))
- npoint)
+ npoint)
(cond ((markdown-link-p)
- (condition-case ()
- ;; Follows a reference link or footnote to its referent.
- (if (markdown-follow-link-p)
- (when (/= opoint (point))
- (ibut:label-set (match-string-no-properties 0)
(match-beginning 0) (match-end 0))
- (setq npoint (point))
- (goto-char opoint)
- (hact 'link-to-file buffer-file-name npoint))
- ;; Follows an infile link.
- (markdown-follow-inline-link-p opoint))
- ;; May be on the name of an inline link, so move to the
- ;; link itself and follow that.
- (error (markdown-follow-inline-link-p opoint))))
- ((markdown-wiki-link-p)
- (ibut:label-set (match-string-no-properties 0) (match-beginning 0)
(match-end 0))
- (hpath:display-buffer (current-buffer))
- (hact 'markdown-follow-wiki-link-at-point))))))
+ (condition-case ()
+ ;; Follows a reference link or footnote to its
referent.
+ (if (markdown-follow-link-p)
+ (when (/= opoint (point))
+ (ibut:label-set (match-string-no-properties 0)
(match-beginning 0) (match-end 0))
+ (setq npoint (point))
+ (goto-char opoint)
+ (hact 'link-to-file buffer-file-name npoint))
+ ;; Follows an infile link.
+ (markdown-follow-inline-link-p opoint))
+ ;; May be on the name of an inline link, so move to the
+ ;; link itself and follow that.
+ (error (markdown-follow-inline-link-p opoint))))
+ ((markdown-wiki-link-p)
+ (ibut:label-set (match-string-no-properties 0)
(match-beginning 0) (match-end 0))
+ (hpath:display-buffer (current-buffer))
+ (hact 'markdown-follow-wiki-link-at-point))))))
;;; ========================================================================
;;; Summarizes an Internet rfc for random access browsing by section.
@@ -333,16 +335,16 @@ Pathnames and urls are handled elsewhere."
"Summarize the contents of an Internet rfc from anywhere within an rfc
buffer.
Each line in the summary may be selected to jump to a section."
(let ((case-fold-search t)
- (toc)
- (opoint (point)))
+ (toc)
+ (opoint (point)))
(if (and (string-match "rfc" (buffer-name))
- (goto-char (point-min))
- (progn (setq toc (search-forward "Table of Contents" nil t))
- (re-search-forward "^[ \t]*1.0?[ \t]+[^ \t\n\r]" nil t
- (and toc 2))))
- (progn (beginning-of-line)
- (ibut:label-set (buffer-name))
- (hact 'rfc-toc (buffer-name) opoint))
+ (goto-char (point-min))
+ (progn (setq toc (search-forward "Table of Contents" nil t))
+ (re-search-forward "^[ \t]*1.0?[ \t]+[^ \t\n\r]"
nil t
+ (and toc 2))))
+ (progn (beginning-of-line)
+ (ibut:label-set (buffer-name))
+ (hact 'rfc-toc (buffer-name) opoint))
(goto-char opoint)
nil)))
@@ -353,45 +355,45 @@ Each line in the summary may be selected to jump to a
section."
(defib id-cflow ()
"Expand or collapse C call trees and jump to code definitions.
Require cross-reference tables built by the external `cxref' program of Cflow."
- (if (and (eq major-mode 'id-cflow-mode)
- (not (eolp)))
- (let ((pnt (point)))
- (save-excursion
- (cond
- ;; If on a repeated function mark, display its previously
- ;; expanded tree.
- ((progn (skip-chars-backward " ")
- (looking-at id-cflow-repeated-indicator))
- (let ((end (point))
- start entry)
- (beginning-of-line)
- (skip-chars-forward "| ")
- (setq start (point)
- entry (buffer-substring-no-properties start end))
- (ibut:label-set entry start end)
- (condition-case ()
- (hact 'link-to-regexp-match
- (concat "^[| ]*[&%%]*" (regexp-quote entry) "$")
- 1 (current-buffer) t)
- (error
- (goto-char end)
- (error "(id-cflow): No prior expansion found")))))
- ;; If to the left of an entry, expand or contract its tree.
- ((progn (beginning-of-line)
- (or (= pnt (point))
- (and (looking-at "[| ]+")
- (<= pnt (match-end 0)))))
- (hact 'id-cflow-expand-or-contract current-prefix-arg))
- ;; Within an entry's filename, display the file.
- ((search-forward "\(" pnt t)
- (let* ((start (point))
- (end (1- (search-forward "\)" nil t)))
- (file (buffer-substring-no-properties start end)))
- (ibut:label-set file start end)
- (hact 'link-to-file file)))
- ;; Within an entry's function name, jump to its definition.
- (t
- (hact 'smart-c)))))))
+ (when (and (eq major-mode 'id-cflow-mode)
+ (not (eolp)))
+ (let ((pnt (point)))
+ (save-excursion
+ (cond
+ ;; If on a repeated function mark, display its previously
+ ;; expanded tree.
+ ((progn (skip-chars-backward " ")
+ (looking-at id-cflow-repeated-indicator))
+ (let ((end (point))
+ start entry)
+ (beginning-of-line)
+ (skip-chars-forward "| ")
+ (setq start (point)
+ entry (buffer-substring-no-properties start end))
+ (ibut:label-set entry start end)
+ (condition-case ()
+ (hact 'link-to-regexp-match
+ (concat "^[| ]*[&%%]*" (regexp-quote entry)
"$")
+ 1 (current-buffer) t)
+ (error
+ (goto-char end)
+ (error "(id-cflow): No prior expansion found")))))
+ ;; If to the left of an entry, expand or contract its tree.
+ ((progn (beginning-of-line)
+ (or (= pnt (point))
+ (and (looking-at "[| ]+")
+ (<= pnt (match-end 0)))))
+ (hact 'id-cflow-expand-or-contract current-prefix-arg))
+ ;; Within an entry's filename, display the file.
+ ((search-forward "\(" pnt t)
+ (let* ((start (point))
+ (end (1- (search-forward "\)" nil t)))
+ (file (buffer-substring-no-properties start end)))
+ (ibut:label-set file start end)
+ (hact 'link-to-file file)))
+ ;; Within an entry's function name, jump to its definition.
+ (t
+ (hact 'smart-c)))))))
;;; ========================================================================
;;; Jumps to the source line associated with a ctags file entry.
@@ -406,18 +408,18 @@ Require cross-reference tables built by the external
`cxref' program of Cflow."
;; identifier pathname line-number
;; ctags vgrind output format entry
(let ((identifier (match-string-no-properties 1))
- (file (expand-file-name (match-string-no-properties 2)))
- (line-num (string-to-number (match-string-no-properties 3))))
- (ibut:label-set identifier (match-beginning 1) (match-end 1))
- (hact 'link-to-file-line file line-num)))
+ (file (expand-file-name (match-string-no-properties 2)))
+ (line-num (string-to-number (match-string-no-properties 3))))
+ (ibut:label-set identifier (match-beginning 1) (match-end 1))
+ (hact 'link-to-file-line file line-num)))
((looking-at "^\\(\\S-+\\) +\\([1-9][0-9]*\\) \\(\\S-+\\.[a-zA-Z]+\\) ")
;; ctags cxref output format entry
;; identifier line-number pathname
(let ((identifier (match-string-no-properties 1))
- (line-num (string-to-number (match-string-no-properties 2)))
- (file (expand-file-name (match-string-no-properties 3))))
- (ibut:label-set identifier (match-beginning 1) (match-end 1))
- (hact 'link-to-file-line file line-num))))))
+ (line-num (string-to-number (match-string-no-properties 2)))
+ (file (expand-file-name (match-string-no-properties 3))))
+ (ibut:label-set identifier (match-beginning 1) (match-end 1))
+ (hact 'link-to-file-line file line-num))))))
;;; ========================================================================
;;; Jumps to the source line associated with an etags file entry in a TAGS
buffer.
@@ -427,34 +429,34 @@ Require cross-reference tables built by the external
`cxref' program of Cflow."
"Jump to the source line associated with an etags file entry in a TAGS
buffer.
If on a tag entry line, jump to the source line for the tag. If on a
pathname line or line preceding it, jump to the associated file."
- (if (let (case-fold-search) (string-match "^TAGS" (buffer-name)))
- (save-excursion
- (beginning-of-line)
- (cond
- ((save-excursion
- (and (or (and (eq (following-char) ?\^L)
- (zerop (forward-line 1)))
- (and (zerop (forward-line -1))
- (eq (following-char) ?\^L)
- (zerop (forward-line 1))))
- (looking-at "\\([^,\n\r]+\\),[0-9]+$")))
- (let ((file (match-string-no-properties 1)))
- (ibut:label-set file (match-beginning 1) (match-end 1))
- (hact 'link-to-file file)))
- ((looking-at
- "\\([^\^?\n\r]+\\)[ ]*\^?\\([^\^A\n\r]+\^A\\)?\\([1-9][0-9]+\\),")
- (let* ((tag-grouping (if (match-beginning 2) 2 1))
- (tag (buffer-substring-no-properties (match-beginning
tag-grouping)
- (1- (match-end
tag-grouping))))
- (line (string-to-number (match-string-no-properties 3)))
- file)
- (ibut:label-set tag (match-beginning tag-grouping)
- (1- (match-end tag-grouping)))
- (save-excursion
- (if (re-search-backward "\^L\r?\n\\([^,\n\r]+\\),[0-9]+$" nil t)
- (setq file (expand-file-name (match-string-no-properties 1)))
- (setq file "No associated file name")))
- (hact 'link-to-file-line file line)))))))
+ (when (let (case-fold-search) (string-match "^TAGS" (buffer-name)))
+ (save-excursion
+ (beginning-of-line)
+ (cond
+ ((save-excursion
+ (and (or (and (eq (following-char) ?\^L)
+ (zerop (forward-line 1)))
+ (and (zerop (forward-line -1))
+ (eq (following-char) ?\^L)
+ (zerop (forward-line 1))))
+ (looking-at "\\([^,\n\r]+\\),[0-9]+$")))
+ (let ((file (match-string-no-properties 1)))
+ (ibut:label-set file (match-beginning 1) (match-end 1))
+ (hact 'link-to-file file)))
+ ((looking-at
+ "\\([^\^?\n\r]+\\)[ ]*\^?\\([^\^A\n\r]+\^A\\)?\\([1-9][0-9]+\\),")
+ (let* ((tag-grouping (if (match-beginning 2) 2 1))
+ (tag (buffer-substring-no-properties (match-beginning
tag-grouping)
+ (1-
(match-end tag-grouping))))
+ (line (string-to-number (match-string-no-properties 3)))
+ file)
+ (ibut:label-set tag (match-beginning tag-grouping)
+ (1- (match-end tag-grouping)))
+ (save-excursion
+ (if (re-search-backward "\^L\r?\n\\([^,\n\r]+\\),[0-9]+$" nil t)
+ (setq file (expand-file-name
(match-string-no-properties 1)))
+ (setq file "No associated file name")))
+ (hact 'link-to-file-line file line)))))))
;;; ========================================================================
;;; Jumps to C/C++ source line associated with Cscope C analyzer output line.
@@ -469,19 +471,19 @@ anything."
(and (boundp 'cscope:bname-prefix) ;; (featurep 'cscope)
(stringp cscope:bname-prefix)
(string-match (regexp-quote cscope:bname-prefix)
- (buffer-name))
+ (buffer-name))
(= (match-beginning 0) 0)
(save-excursion
- (beginning-of-line)
- (looking-at cscope-output-line-regexp))
+ (beginning-of-line)
+ (looking-at cscope-output-line-regexp))
(let (start end)
- (skip-chars-backward "^\n\r")
- (setq start (point))
- (skip-chars-forward "^\n\r")
- (setq end (point))
- (ibut:label-set (buffer-substring start end)
- start end)
- (hact 'cscope-interpret-output-line))))
+ (skip-chars-backward "^\n\r")
+ (setq start (point))
+ (skip-chars-forward "^\n\r")
+ (setq end (point))
+ (ibut:label-set (buffer-substring start end)
+ start end)
+ (hact 'cscope-interpret-output-line))))
;;; ========================================================================
;;; Makes README table of contents entries jump to associated sections.
@@ -496,18 +498,18 @@ with some whitespace followed by one or more asterisk
characters. Each
file section name line must start with one or more asterisk characters at
the very beginning of the line."
(let (section)
- (if (and (string-match "DEMO\\|README\\|TUTORIAL" (buffer-name))
- (save-excursion
- (beginning-of-line)
- ;; Entry line within a TOC
- (if (looking-at "[ \t]+\\*+[ \t]+\\(.*[^ \t]\\)[ \t]*$")
- (setq section (match-string-no-properties 1))))
- (progn (ibut:label-set section (match-beginning 1) (match-end 1))
- t)
- (save-excursion (re-search-backward
- "^\\*?*[ \t]*\\(Table of \\)?Contents[ \t]*$"
- nil t)))
- (hact 'text-toc section))))
+ (when (and (string-match "DEMO\\|README\\|TUTORIAL" (buffer-name))
+ (save-excursion
+ (beginning-of-line)
+ ;; Entry line within a TOC
+ (if (looking-at "[ \t]+\\*+[ \t]+\\(.*[^ \t]\\)[ \t]*$")
+ (setq section (match-string-no-properties 1))))
+ (progn (ibut:label-set section (match-beginning 1)
(match-end 1))
+ t)
+ (save-excursion (re-search-backward
+ "^\\*?*[ \t]*\\(Table of
\\)?Contents[ \t]*$"
+ nil t)))
+ (hact 'text-toc section))))
;;; ========================================================================
;;; Makes directory summaries into file list menus.
@@ -518,21 +520,20 @@ the very beginning of the line."
Display selected files. Each file name must be at the beginning of the line
or may be preceded by some semicolons and must be followed by one or more
spaces and then another non-space, non-parenthesis, non-brace character."
- (if buffer-file-name
- (let ((file (file-name-nondirectory buffer-file-name))
- entry start end)
- (if (or (string-equal file "DIR")
- (string-match "\\`MANIFEST\\(\\..+\\)?\\'" file))
+ (when buffer-file-name
+ (let ((file (file-name-nondirectory buffer-file-name))
+ entry start end)
+ (when (or (string-equal file "DIR")
+ (string-match "\\`MANIFEST\\(\\..+\\)?\\'" file))
(save-excursion
(beginning-of-line)
- (if (looking-at "\\(;+[ \t]*\\)?\\([^(){}* \t\n\r]+\\)")
- (progn
+ (when (looking-at "\\(;+[ \t]*\\)?\\([^(){}* \t\n\r]+\\)")
(setq entry (match-string-no-properties 2)
- start (match-beginning 2)
- end (match-end 2))
- (if (file-exists-p entry)
- (progn (ibut:label-set entry start end)
- (hact 'link-to-file entry))))))))))
+ start (match-beginning 2)
+ end (match-end 2))
+ (when (file-exists-p entry)
+ (ibut:label-set entry start end)
+ (hact 'link-to-file entry))))))))
;;; ========================================================================
;;; Executes or documents command bindings of brace delimited key sequences.
@@ -550,27 +551,27 @@ The following formats are recognized: RFC822, rfc-822,
and RFC 822. The
`hpath:rfc' variable specifies the location from which to retrieve RFCs.
Requires the Emacs builtin Tramp library for ftp file retrievals."
(let ((case-fold-search t)
- (rfc-num nil))
+ (rfc-num nil))
(and (not (memq major-mode '(dired-mode monkey-mode)))
- (boundp 'hpath:rfc)
- (stringp hpath:rfc)
- (or (looking-at " *\\(rfc[- ]?\\([0-9]+\\)\\)")
- (save-excursion
- (skip-chars-backward "0-9")
- (skip-chars-backward "- ")
- (skip-chars-backward "rRfFcC")
- (looking-at " *\\(rfc[- ]?\\([0-9]+\\)\\)")))
- (progn (setq rfc-num (match-string-no-properties 2))
- (ibut:label-set (match-string-no-properties 1))
- t)
- ;; Ensure remote file access is available for retrieving a remote
- ;; RFC, if need be.
- (if (string-match "^/.+:" hpath:rfc)
- ;; This is a remote path.
- (hpath:remote-available-p)
- ;; local path
- t)
- (hact 'link-to-rfc rfc-num))))
+ (boundp 'hpath:rfc)
+ (stringp hpath:rfc)
+ (or (looking-at " *\\(rfc[- ]?\\([0-9]+\\)\\)")
+ (save-excursion
+ (skip-chars-backward "0-9")
+ (skip-chars-backward "- ")
+ (skip-chars-backward "rRfFcC")
+ (looking-at " *\\(rfc[- ]?\\([0-9]+\\)\\)")))
+ (progn (setq rfc-num (match-string-no-properties 2))
+ (ibut:label-set (match-string-no-properties 1))
+ t)
+ ;; Ensure remote file access is available for retrieving a remote
+ ;; RFC, if need be.
+ (if (string-match "^/.+:" hpath:rfc)
+ ;; This is a remote path.
+ (hpath:remote-available-p)
+ ;; local path
+ t)
+ (hact 'link-to-rfc rfc-num))))
;;; ========================================================================
;;; Shows man page associated with a man apropos entry.
@@ -581,15 +582,15 @@ Requires the Emacs builtin Tramp library for ftp file
retrievals."
(save-excursion
(beginning-of-line)
(let ((nm "[^ \t\n\r!@,][^ \t\n\r,]*")
- topic)
+ topic)
(and (looking-at
- (concat
- "^\\(\\*[ \t]+[!@]\\)?\\(" nm "[ \t]*,[ \t]*\\)*\\(" nm "\\)[ \t]*"
- "\\(([-0-9a-zA-z]+)\\)\\(::\\)?[ \t]+-[ \t]+[^ \t\n\r]"))
- (setq topic (concat (match-string-no-properties 3)
- (match-string-no-properties 4)))
- (ibut:label-set topic (match-beginning 3) (match-end 4))
- (hact 'man topic)))))
+ (concat
+ "^\\(\\*[ \t]+[!@]\\)?\\(" nm "[ \t]*,[ \t]*\\)*\\(" nm "\\)[
\t]*"
+ "\\(([-0-9a-zA-z]+)\\)\\(::\\)?[ \t]+-[ \t]+[^ \t\n\r]"))
+ (setq topic (concat (match-string-no-properties 3)
+ (match-string-no-properties 4)))
+ (ibut:label-set topic (match-beginning 3) (match-end 4))
+ (hact 'man topic)))))
;;; ========================================================================
;;; Follows links to Hyperbole Koutliner cells.
@@ -605,16 +606,16 @@ Requires the Emacs builtin Tramp library for ftp file
retrievals."
"Call LINK-ACTYPE as the action type and prefix button with LABEL-PREFIX if
point is within an implicit button delimited by START-DELIM and END-DELIM."
;; Used by e/g/ilink implicit buttons."
(let* ((label-start-end (hbut:label-p t start-delim end-delim t t))
- (label-and-file (nth 0 label-start-end))
- (start-pos (nth 1 label-start-end))
- (end-pos (nth 2 label-start-end))
- lbl but-key lbl-key key-file)
+ (label-and-file (nth 0 label-start-end))
+ (start-pos (nth 1 label-start-end))
+ (end-pos (nth 2 label-start-end))
+ lbl but-key lbl-key key-file)
(when label-and-file
(setq label-and-file (parse-label-and-file label-and-file)
- partial-lbl (nth 0 label-and-file)
- but-key (hbut:label-to-key partial-lbl)
- key-file (nth 1 label-and-file)
- lbl-key (when but-key (concat label-prefix but-key)))
+ partial-lbl (nth 0 label-and-file)
+ but-key (hbut:label-to-key partial-lbl)
+ key-file (nth 1 label-and-file)
+ lbl-key (when but-key (concat label-prefix but-key)))
(ibut:label-set (hbut:key-to-label lbl-key) start-pos end-pos)
(hact link-actype but-key key-file))))
@@ -623,18 +624,18 @@ Requires the Emacs builtin Tramp library for ftp file
retrievals."
;; Can't use split-string here because file path may contain colons;
;; we want to split only on the first colon.
(let ((i 0)
- (len (length label-and-file))
- label
- file)
+ (len (length label-and-file))
+ label
+ file)
(while (< i len)
(when (= ?: (aref label-and-file i))
- (when (zerop i)
- (error "(parse-label-and-file): Missing label: '%s'" label-and-file))
- (setq label (hpath:trim (substring label-and-file 0 i))
- file (hpath:trim (substring label-and-file (1+ i))))
- (when (string-empty-p label) (setq label nil))
- (when (string-empty-p file) (setq file nil))
- (setq i len))
+ (when (zerop i)
+ (error "(parse-label-and-file): Missing label: '%s'"
label-and-file))
+ (setq label (hpath:trim (substring label-and-file 0 i))
+ file (hpath:trim (substring label-and-file (1+ i))))
+ (when (string-empty-p label) (setq label nil))
+ (when (string-empty-p file) (setq file nil))
+ (setq i len))
(setq i (1+ i)))
(unless (or label (string-empty-p label-and-file))
(setq label label-and-file))
@@ -706,28 +707,27 @@ buffer)."
(save-excursion
(beginning-of-line)
(let ((line-num-regexp "\\( *\\|-+> \\)?\\([1-9][0-9]*\\) ")
- line-num
- file)
- (when (looking-at line-num-regexp)
- ;; ipython stack trace matches and context lines (-A<num> option)
- (setq line-num (match-string-no-properties 2)
- file nil)
- (while (and (= (forward-line -1) 0)
- (looking-at line-num-regexp)))
- (unless (or (looking-at line-num-regexp)
- (not (re-search-forward " in " nil (point-at-eol)))
- (and (setq file (buffer-substring-no-properties
(point-at-bol) (match-beginning 0)))
- (string-empty-p (string-trim file))))
- (let* ((but-label (concat file ":" line-num))
- (source-loc (if (file-name-absolute-p file)
- nil
- (hbut:key-src t))))
- (if (stringp source-loc)
- (setq file (expand-file-name file (file-name-directory
source-loc))))
- (when (file-readable-p file)
- (setq line-num (string-to-number line-num))
- (ibut:label-set but-label)
- (hact 'link-to-file-line file line-num)))))))))
+ line-num
+ file)
+ (when (looking-at line-num-regexp)
+ ;; ipython stack trace matches and context lines (-A<num> option)
+ (setq line-num (match-string-no-properties 2)
+ file nil)
+ (while (and (= (forward-line -1) 0)
+ (looking-at line-num-regexp)))
+ (unless (or (looking-at line-num-regexp)
+ (not (re-search-forward " in " nil
(point-at-eol)))
+ (and (setq file (buffer-substring-no-properties
(point-at-bol) (match-beginning 0)))
+ (string-empty-p (string-trim file))))
+ (let* ((but-label (concat file ":" line-num))
+ (source-loc (unless (file-name-absolute-p file)
+ (hbut:key-src t))))
+ (when (stringp source-loc)
+ (setq file (expand-file-name file (file-name-directory
source-loc))))
+ (when (file-readable-p file)
+ (setq line-num (string-to-number line-num))
+ (ibut:label-set but-label)
+ (hact 'link-to-file-line file line-num)))))))))
(defib ripgrep-msg ()
"Jump to line associated with a ripgrep (rg) line numbered msg.
@@ -754,23 +754,23 @@ buffer)."
(save-excursion
(beginning-of-line)
(when (looking-at "\\([1-9][0-9]*\\)[-:]")
- ;; Ripgrep matches and context lines (-A<num> option)
- (let ((line-num (match-string-no-properties 1))
- file)
- (while (and (= (forward-line -1) 0)
- (looking-at "[1-9][0-9]*[-:]\\|--$")))
- (unless (or (looking-at "[1-9][0-9]*[-:]\\|--$")
- (and (setq file (buffer-substring-no-properties
(point-at-bol) (point-at-eol)))
- (string-empty-p (string-trim file))))
- (let* ((but-label (concat file ":" line-num))
- (source-loc (if (file-name-absolute-p file) nil
- (hbut:key-src t))))
- (if (stringp source-loc)
- (setq file (expand-file-name file (file-name-directory
source-loc))))
- (when (file-readable-p file)
- (setq line-num (string-to-number line-num))
- (ibut:label-set but-label)
- (hact 'link-to-file-line file line-num)))))))))
+ ;; Ripgrep matches and context lines (-A<num> option)
+ (let ((line-num (match-string-no-properties 1))
+ file)
+ (while (and (= (forward-line -1) 0)
+ (looking-at "[1-9][0-9]*[-:]\\|--$")))
+ (unless (or (looking-at "[1-9][0-9]*[-:]\\|--$")
+ (and (setq file (buffer-substring-no-properties
(point-at-bol) (point-at-eol)))
+ (string-empty-p (string-trim file))))
+ (let* ((but-label (concat file ":" line-num))
+ (source-loc (unless (file-name-absolute-p file)
+ (hbut:key-src t))))
+ (when (stringp source-loc)
+ (setq file (expand-file-name file (file-name-directory
source-loc))))
+ (when (file-readable-p file)
+ (setq line-num (string-to-number line-num))
+ (ibut:label-set but-label)
+ (hact 'link-to-file-line file line-num)))))))))
(defib grep-msg ()
"Jump to line associated with line numbered grep or compilation error msgs.
@@ -782,41 +782,41 @@ in grep and shell buffers."
(unless (eq major-mode 'helm-major-mode)
(save-excursion
(beginning-of-line)
- (if (or
- ;; Grep matches, UNIX C compiler and Introl 68HC11 C compiler errors
- (looking-at "\\([^ \t\n\r:]+\\)[:\^@] ?\\([1-9][0-9]*\\)[ :]")
- ;; HP C compiler errors
- (looking-at "[a-zA-Z0-9]+: \"\\([^\t\n\r\",]+\\)\", line
\\([0-9]+\\):")
- ;; BSO/Tasking 68HC08 C compiler errors
- (looking-at
- "[a-zA-Z 0-9]+: \\([^ \t\n\r\",]+\\) line \\([0-9]+\\)[ \t]*:")
- ;; UNIX Lint errors
- (looking-at "[^:]+: \\([^ \t\n\r:]+\\): line \\([0-9]+\\):")
- ;; SparcWorks C compiler errors (ends with :)
- ;; IBM AIX xlc C compiler errors (ends with .)
- (looking-at "\"\\([^\"]+\\)\", line \\([0-9]+\\)[:.]")
- ;; Introl as11 assembler errors
- (looking-at " \\*+ \\([^ \t\n\r]+\\) - \\([0-9]+\\) ")
- ;; perl5: ... at file.c line 10
- (looking-at ".+ at \\([^ \t\n\r]+\\) line +\\([0-9]+\\)")
- ;; Weblint
- (looking-at "\\([^ \t\n\r:()]+\\)(\\([0-9]+\\)): ")
- ;; Microsoft JVC
- ;; file.java(6,1) : error J0020: Expected 'class' or 'interface'
- (looking-at "^\\(\\([a-zA-Z]:\\)?[^:\( \t\n\r-]+\\)[:\(][
\t]*\\([0-9]+\\),")
- ;; Grep match context lines (-A<num> option)
- (and (string-match "grep\\|shell" (buffer-name))
- (looking-at "\\([^ \t\n\r:]+\\)-\\([1-9][0-9]*\\)-")))
- (let* ((file (match-string-no-properties 1))
- (line-num (match-string-no-properties 2))
- (but-label (concat file ":" line-num))
- (source-loc (if (file-name-absolute-p file) nil
- (hbut:key-src t))))
- (if (stringp source-loc)
- (setq file (expand-file-name file (file-name-directory
source-loc))))
- (setq line-num (string-to-number line-num))
- (ibut:label-set but-label)
- (hact 'link-to-file-line file line-num))))))
+ (when (or
+ ;; Grep matches, UNIX C compiler and Introl 68HC11 C compiler
errors
+ (looking-at "\\([^ \t\n\r:]+\\)[:\^@] ?\\([1-9][0-9]*\\)[ :]")
+ ;; HP C compiler errors
+ (looking-at "[a-zA-Z0-9]+: \"\\([^\t\n\r\",]+\\)\", line
\\([0-9]+\\):")
+ ;; BSO/Tasking 68HC08 C compiler errors
+ (looking-at
+ "[a-zA-Z 0-9]+: \\([^ \t\n\r\",]+\\) line \\([0-9]+\\)[
\t]*:")
+ ;; UNIX Lint errors
+ (looking-at "[^:]+: \\([^ \t\n\r:]+\\): line \\([0-9]+\\):")
+ ;; SparcWorks C compiler errors (ends with :)
+ ;; IBM AIX xlc C compiler errors (ends with .)
+ (looking-at "\"\\([^\"]+\\)\", line \\([0-9]+\\)[:.]")
+ ;; Introl as11 assembler errors
+ (looking-at " \\*+ \\([^ \t\n\r]+\\) - \\([0-9]+\\) ")
+ ;; perl5: ... at file.c line 10
+ (looking-at ".+ at \\([^ \t\n\r]+\\) line +\\([0-9]+\\)")
+ ;; Weblint
+ (looking-at "\\([^ \t\n\r:()]+\\)(\\([0-9]+\\)): ")
+ ;; Microsoft JVC
+ ;; file.java(6,1) : error J0020: Expected 'class' or
'interface'
+ (looking-at "^\\(\\([a-zA-Z]:\\)?[^:\( \t\n\r-]+\\)[:\(][
\t]*\\([0-9]+\\),")
+ ;; Grep match context lines (-A<num> option)
+ (and (string-match "grep\\|shell" (buffer-name))
+ (looking-at "\\([^ \t\n\r:]+\\)-\\([1-9][0-9]*\\)-")))
+ (let* ((file (match-string-no-properties 1))
+ (line-num (match-string-no-properties 2))
+ (but-label (concat file ":" line-num))
+ (source-loc (unless (file-name-absolute-p file)
+ (hbut:key-src t))))
+ (when (stringp source-loc)
+ (setq file (expand-file-name file (file-name-directory
source-loc))))
+ (setq line-num (string-to-number line-num))
+ (ibut:label-set but-label)
+ (hact 'link-to-file-line file line-num))))))
;;; ========================================================================
;;; Jumps to source line associated with debugger stack frame or breakpoint
@@ -831,84 +831,83 @@ This works with JavaScript and Python tracebacks, gdb,
dbx, and xdb. Such lines
(cond
;; Python pdb or traceback, pytype error
((or (looking-at "\\(^\\|.+ \\)File \"\\([^\"\n\r]+\\)\", line
\\([0-9]+\\)")
- (looking-at ">?\\(\\s-+\\)\\([^\"()\n\r]+\\)(\\([0-9]+\\))\\S-"))
+ (looking-at ">?\\(\\s-+\\)\\([^\"()\n\r]+\\)(\\([0-9]+\\))\\S-"))
(let* ((file (match-string-no-properties 2))
- (line-num (match-string-no-properties 3))
- (but-label (concat file ":" line-num)))
- (setq line-num (string-to-number line-num))
- (ibut:label-set but-label (match-beginning 2) (match-end 2))
- (hact 'link-to-file-line file line-num)))
+ (line-num (match-string-no-properties 3))
+ (but-label (concat file ":" line-num)))
+ (setq line-num (string-to-number line-num))
+ (ibut:label-set but-label (match-beginning 2) (match-end 2))
+ (hact 'link-to-file-line file line-num)))
;; JavaScript traceback
((or (looking-at "[a-zA-Z0-9-:.()? ]+? +at \\([^() \t]+\\) (\\([^:,
\t()]+\\):\\([0-9]+\\):\\([0-9]+\\))$")
- (looking-at "[a-zA-Z0-9-:.()? ]+? +at\\( \\)\\([^:,
\t()]+\\):\\([0-9]+\\):\\([0-9]+\\)$")
- (looking-at "[a-zA-Z0-9-:.()? ]+?\\( \\)\\([^:,
\t()]+\\):\\([0-9]+\\)\\(\\)$"))
+ (looking-at "[a-zA-Z0-9-:.()? ]+? +at\\( \\)\\([^:,
\t()]+\\):\\([0-9]+\\):\\([0-9]+\\)$")
+ (looking-at "[a-zA-Z0-9-:.()? ]+?\\( \\)\\([^:,
\t()]+\\):\\([0-9]+\\)\\(\\)$"))
(let* ((file (match-string-no-properties 2))
- (line-num (match-string-no-properties 3))
- (col-num (match-string-no-properties 4))
- but-label)
-
- ;; For Meteor app errors, remove the "app/" prefix which
- ;; is part of the build subdirectory and not part of the
- ;; source tree.
- (if (and (not (eq col-num "")) (string-match "^app/" file))
- (setq file (substring file (match-end 0))))
-
- (setq but-label (concat file ":" line-num)
- line-num (string-to-number line-num))
- (ibut:label-set but-label)
- (hact 'link-to-file-line file line-num)))
+ (line-num (match-string-no-properties 3))
+ (col-num (match-string-no-properties 4))
+ but-label)
+
+ ;; For Meteor app errors, remove the "app/" prefix which
+ ;; is part of the build subdirectory and not part of the
+ ;; source tree.
+ (when (and (not (eq col-num "")) (string-match "^app/" file))
+ (setq file (substring file (match-end 0))))
+
+ (setq but-label (concat file ":" line-num)
+ line-num (string-to-number line-num))
+ (ibut:label-set but-label)
+ (hact 'link-to-file-line file line-num)))
;; GDB or WDB
((looking-at
".+ \\(at\\|file\\) \\([^ :,]+\\)\\(:\\|, line \\)\\([0-9]+\\)\\.?$")
(let* ((file (match-string-no-properties 2))
- (line-num (match-string-no-properties 4))
- (but-label (concat file ":" line-num))
- (gdb-last-file (or (and (boundp 'gud-last-frame)
- (stringp (car gud-last-frame))
- (car gud-last-frame))
- (and (boundp 'gdb-last-frame)
- (stringp (car gdb-last-frame))
- (car gdb-last-frame)))))
- (setq line-num (string-to-number line-num))
- ;; The `file' typically has no directory component and so may
- ;; not be resolvable. `gdb-last-file' is the last file
- ;; displayed by gdb. Use its directory if available as a best
- ;; guess.
- (if gdb-last-file
- (setq file (expand-file-name
- file (file-name-directory gdb-last-file))))
- (ibut:label-set but-label)
- (hact 'link-to-file-line file line-num)))
+ (line-num (match-string-no-properties 4))
+ (but-label (concat file ":" line-num))
+ (gdb-last-file (or (and (boundp 'gud-last-frame)
+ (stringp (car
gud-last-frame))
+ (car gud-last-frame))
+ (and (boundp 'gdb-last-frame)
+ (stringp (car
gdb-last-frame))
+ (car gdb-last-frame)))))
+ (setq line-num (string-to-number line-num))
+ ;; The `file' typically has no directory component and so may
+ ;; not be resolvable. `gdb-last-file' is the last file
+ ;; displayed by gdb. Use its directory if available as a best
+ ;; guess.
+ (when gdb-last-file
+ (setq file (expand-file-name file (file-name-directory
gdb-last-file))))
+ (ibut:label-set but-label)
+ (hact 'link-to-file-line file line-num)))
;; XEmacs assertion failure
((looking-at ".+ (file=[^\"\n\r]+\"\\([^\"\n\r]+\\)\",
line=\\([0-9]+\\),")
(let* ((file (match-string-no-properties 1))
- (line-num (match-string-no-properties 2))
- (but-label (concat file ":" line-num)))
- (setq line-num (string-to-number line-num))
- (ibut:label-set but-label)
- (hact 'link-to-file-line file line-num)))
+ (line-num (match-string-no-properties 2))
+ (but-label (concat file ":" line-num)))
+ (setq line-num (string-to-number line-num))
+ (ibut:label-set but-label)
+ (hact 'link-to-file-line file line-num)))
;; New DBX
((looking-at ".+ line \\([0-9]+\\) in \"\\([^\"]+\\)\"$")
(let* ((file (match-string-no-properties 2))
- (line-num (match-string-no-properties 1))
- (but-label (concat file ":" line-num)))
- (setq line-num (string-to-number line-num))
- (ibut:label-set but-label)
- (hact 'link-to-file-line file line-num)))
+ (line-num (match-string-no-properties 1))
+ (but-label (concat file ":" line-num)))
+ (setq line-num (string-to-number line-num))
+ (ibut:label-set but-label)
+ (hact 'link-to-file-line file line-num)))
;; Old DBX and HP-UX xdb
((or (looking-at ".+ \\[\"\\([^\"]+\\)\":\\([0-9]+\\),") ;; Old DBX
- (looking-at ".+ \\[\\([^: ]+\\): \\([0-9]+\\)\\]")) ;; HP-UX xdb
+ (looking-at ".+ \\[\\([^: ]+\\): \\([0-9]+\\)\\]")) ;; HP-UX xdb
(let* ((file (match-string-no-properties 1))
- (line-num (match-string-no-properties 2))
- (but-label (concat file ":" line-num)))
- (setq line-num (string-to-number line-num))
- (ibut:label-set but-label)
- (hact 'link-to-file-line file line-num))))))
+ (line-num (match-string-no-properties 2))
+ (but-label (concat file ":" line-num)))
+ (setq line-num (string-to-number line-num))
+ (ibut:label-set but-label)
+ (hact 'link-to-file-line file line-num))))))
;;; ========================================================================
;;; Displays files at specific lines and optional column number
@@ -923,23 +922,25 @@ This works with JavaScript and Python tracebacks, gdb,
dbx, and xdb. Such lines
(defib pathname-line-and-column ()
"Make a valid pathname:line-num[:column-num] pattern display the path at
line-num and optional column-num.
Also works for remote pathnames.
+May also contain hash-style link references with the following format:
+\"<path>[#<link-anchor>]:<line-num>[:<column-num>]}\".
See `hpath:at-p' function documentation for possible delimiters.
See `hpath:suffixes' variable documentation for suffixes that are added to or
removed from pathname when searching for a valid match.
See `hpath:find' function documentation for special file display options."
(let ((path-line-and-col (hpath:delimited-possible-path)))
- (if (and (stringp path-line-and-col)
- (string-match hibtypes-path-line-and-col-regexp path-line-and-col))
- (let ((file (save-match-data (expand-file-name (hpath:substitute-value
(match-string-no-properties 1 path-line-and-col)))))
- (line-num (string-to-number (match-string-no-properties 3
path-line-and-col)))
- (col-num (when (match-end 4)
- (string-to-number (match-string-no-properties 5
path-line-and-col)))))
- (when (save-match-data (setq file (hpath:is-p file)))
- (ibut:label-set file (match-beginning 1) (match-end 1))
- (if col-num
- (hact 'link-to-file-line-and-column file line-num col-num)
- (hact 'link-to-file-line file line-num)))))))
+ (when (and (stringp path-line-and-col)
+ (string-match hibtypes-path-line-and-col-regexp
path-line-and-col))
+ (let ((file (save-match-data (expand-file-name
(hpath:substitute-value (match-string-no-properties 1 path-line-and-col)))))
+ (line-num (string-to-number (match-string-no-properties 3
path-line-and-col)))
+ (col-num (when (match-end 4)
+ (string-to-number
(match-string-no-properties 5 path-line-and-col)))))
+ (when (save-match-data (setq file (hpath:is-p file)))
+ (ibut:label-set file (match-beginning 1) (match-end 1))
+ (if col-num
+ (hact 'link-to-file-line-and-column file line-num col-num)
+ (hact 'link-to-file-line file line-num)))))))
;;; ========================================================================
;;; Jumps to source of Emacs Lisp byte-compiler error messages.
@@ -948,52 +949,52 @@ See `hpath:find' function documentation for special file
display options."
(defib elisp-compiler-msg ()
"Jump to source code for definition associated with an Emacs Lisp
byte-compiler error message.
Works when activated anywhere within an error line."
- (if (or (member (buffer-name) '("*Compile-Log-Show*" "*Compile-Log*"
- "*compilation*"))
- (save-excursion
- (and (re-search-backward "^[^ \t\n\r]" nil t)
- (looking-at "While compiling"))))
- (let (src buffer-p label)
- ;; InfoDock and XEmacs
- (or (and (save-excursion
- (re-search-backward
- "^Compiling \\(file\\|buffer\\) \\([^ \n]+\\) at "
- nil t))
- (setq buffer-p (equal (match-string-no-properties 1) "buffer")
- src (match-string-no-properties 2))
- (save-excursion
- (end-of-line)
- (re-search-backward "^While compiling \\([^ \n]+\\)\\(:$\\|
\\)"
- nil t))
- (progn
- (setq label (match-string-no-properties 1))
- (ibut:label-set label (match-beginning 1) (match-end 1))
- ;; Remove prefix generated by actype and ibtype definitions.
- (setq label (hypb:replace-match-string "[^:]+::" label "" t))
- (hact 'link-to-regexp-match
- (concat "^\(def[a-z \t]+" (regexp-quote label)
- "[ \t\n\r\(]")
- 1 src buffer-p)))
- ;; GNU Emacs
- (and (save-excursion
- (re-search-backward
- "^While compiling [^\t\n]+ in \\(file\\|buffer\\) \\([^
\n]+\\):$"
- nil t))
- (setq buffer-p (equal (match-string-no-properties 1) "buffer")
- src (match-string-no-properties 2))
- (save-excursion
- (end-of-line)
- (re-search-backward "^While compiling \\([^ \n]+\\)\\(:$\\|
\\)"
- nil t))
- (progn
- (setq label (match-string-no-properties 1))
- (ibut:label-set label (match-beginning 1) (match-end 1))
- ;; Remove prefix generated by actype and ibtype definitions.
- (setq label (hypb:replace-match-string "[^:]+::" label "" t))
- (hact 'link-to-regexp-match
- (concat "^\(def[a-z \t]+" (regexp-quote label)
- "[ \t\n\r\(]")
- 1 src buffer-p)))))))
+ (when (or (member (buffer-name) '("*Compile-Log-Show*" "*Compile-Log*"
+ "*compilation*"))
+ (save-excursion
+ (and (re-search-backward "^[^ \t\n\r]" nil t)
+ (looking-at "While compiling"))))
+ (let (src buffer-p label)
+ ;; InfoDock and XEmacs
+ (or (and (save-excursion
+ (re-search-backward
+ "^Compiling \\(file\\|buffer\\) \\([^ \n]+\\) at "
+ nil t))
+ (setq buffer-p (equal (match-string-no-properties 1)
"buffer")
+ src (match-string-no-properties 2))
+ (save-excursion
+ (end-of-line)
+ (re-search-backward "^While compiling \\([^
\n]+\\)\\(:$\\| \\)"
+ nil t))
+ (progn
+ (setq label (match-string-no-properties 1))
+ (ibut:label-set label (match-beginning 1) (match-end
1))
+ ;; Remove prefix generated by actype and ibtype
definitions.
+ (setq label (hypb:replace-match-string "[^:]+::" label
"" t))
+ (hact 'link-to-regexp-match
+ (concat "^\(def[a-z \t]+" (regexp-quote
label)
+ "[ \t\n\r\(]")
+ 1 src buffer-p)))
+ ;; GNU Emacs
+ (and (save-excursion
+ (re-search-backward
+ "^While compiling [^\t\n]+ in \\(file\\|buffer\\)
\\([^ \n]+\\):$"
+ nil t))
+ (setq buffer-p (equal (match-string-no-properties 1)
"buffer")
+ src (match-string-no-properties 2))
+ (save-excursion
+ (end-of-line)
+ (re-search-backward "^While compiling \\([^
\n]+\\)\\(:$\\| \\)"
+ nil t))
+ (progn
+ (setq label (match-string-no-properties 1))
+ (ibut:label-set label (match-beginning 1) (match-end
1))
+ ;; Remove prefix generated by actype and ibtype
definitions.
+ (setq label (hypb:replace-match-string "[^:]+::" label
"" t))
+ (hact 'link-to-regexp-match
+ (concat "^\(def[a-z \t]+" (regexp-quote
label)
+ "[ \t\n\r\(]")
+ 1 src buffer-p)))))))
;;; ========================================================================
;;; Jumps to source associated with a line of output from `patch'.
@@ -1002,25 +1003,25 @@ Works when activated anywhere within an error line."
(defib patch-msg ()
"Jump to source code associated with output from the `patch' program.
Patch applies diffs to source code."
- (if (save-excursion
- (beginning-of-line)
- (looking-at "Patching \\|Hunk "))
- (let ((opoint (point))
- (file) line)
- (beginning-of-line)
- (cond ((looking-at "Hunk .+ at \\([0-9]+\\)")
- (setq line (match-string-no-properties 1))
- (ibut:label-set line (match-beginning 1) (match-end 1))
- (if (re-search-backward "^Patching file \\(\\S +\\)" nil t)
- (setq file (match-string-no-properties 1))))
- ((looking-at "Patching file \\(\\S +\\)")
- (setq file (match-string-no-properties 1)
- line "1")
- (ibut:label-set file (match-beginning 1) (match-end 1))))
- (goto-char opoint)
- (when file
- (setq line (string-to-number line))
- (hact 'link-to-file-line file line)))))
+ (when (save-excursion
+ (beginning-of-line)
+ (looking-at "Patching \\|Hunk "))
+ (let ((opoint (point))
+ (file) line)
+ (beginning-of-line)
+ (cond ((looking-at "Hunk .+ at \\([0-9]+\\)")
+ (setq line (match-string-no-properties 1))
+ (ibut:label-set line (match-beginning 1) (match-end 1))
+ (if (re-search-backward "^Patching file \\(\\S +\\)" nil t)
+ (setq file (match-string-no-properties 1))))
+ ((looking-at "Patching file \\(\\S +\\)")
+ (setq file (match-string-no-properties 1)
+ line "1")
+ (ibut:label-set file (match-beginning 1) (match-end 1))))
+ (goto-char opoint)
+ (when file
+ (setq line (string-to-number line))
+ (hact 'link-to-file-line file line)))))
;;; ========================================================================
;;; Displays Texinfo or Info node associated with Texinfo @xref, @pxref or
@ref at point.
@@ -1034,72 +1035,72 @@ the @ symbol and the reference is to a node within the
current
Texinfo file, then the Texinfo node is shown.
For @code, @findex, @var and @vindex references, the associated documentation
string is displayed."
- (if (memq major-mode '(texinfo-mode para-mode))
- (let ((opoint (point))
- (bol (save-excursion (beginning-of-line) (point))))
- (cond ((save-excursion
- (beginning-of-line)
- ;; If a menu item, display the node for the item.
- (looking-at "*\\s-+\\([^:\t\n\r]+\\)::"))
- (hact 'link-to-texinfo-node
- (ibut:label-set (match-string 1) (match-beginning 1)
(match-end 1))))
- ;; Show doc for any Emacs Lisp identifier references,
- ;; marked with @code{} or @var{}.
- ((save-excursion
- (and (search-backward "@" bol t)
- (or (looking-at "@\\(code\\|var\\){\\([^\} \t\n\r]+\\)}")
- (looking-at "@\\(findex\\|vindex\\)[ ]+\\([^\}
\t\n\r]+\\)"))
- (>= (match-end 2) opoint)))
- (let ((type-str (match-string 1))
- (symbol (intern-soft (ibut:label-set (match-string 2)
(match-beginning 2) (match-end 2)))))
- (when (and symbol (pcase type-str
- ((or "code" "findex") (fboundp symbol))
- ((or "var" "vindex") (boundp symbol))))
- (hact 'link-to-elisp-doc symbol))))
- ;; If at an @node and point is within a node name reference
- ;; other than the current node, display it.
- ((save-excursion
- (and (save-excursion (beginning-of-line) (looking-at
"@node\\s-+[^,\n\r]+,"))
- (search-backward "," bol t)
- (looking-at ",\\s-*\\([^,\n\r]*[^, \t\n\r]\\)[,\n\r]")))
- (hact 'link-to-texinfo-node
- (ibut:label-set (match-string 1) (match-beginning 1)
(match-end 1))))
- ((save-excursion
- (and (search-backward "@" bol t)
- (looking-at
- (concat
- "@p?x?ref\\({\\)\\s-*\\([^,}]*[^,} \t\n\r]\\)\\s-*"
- "\\(,[^,}]*\\)?\\(,[^,}]*\\)?"
- "\\(,\\s-*\\([^,}]*[^,} \t\n\r]\\)\\)?[^}]*}"))
- (> (match-end 0) opoint)))
- (let* ((show-texinfo-node
- (and
- ;; Reference to node within this file.
- (not (match-beginning 6))
- ;; To the left of the reference opening brace.
- (<= opoint (match-beginning 1))))
- (node
- (save-match-data
- (if (match-beginning 6)
- ;; Explicit filename included in reference.
- (format "(%s)%s"
- (match-string-no-properties 6)
- (match-string-no-properties 2))
- ;; Derive file name from the source file name.
- (let ((nodename (match-string-no-properties 2))
- (file (file-name-nondirectory
buffer-file-name)))
- (if show-texinfo-node
- nodename
- (format "(%s)%s"
- (if (string-match "\\.[^.]+$" file)
- (substring file 0
- (match-beginning 0))
- "unspecified file")
- nodename)))))))
- (ibut:label-set (match-string 0) (match-beginning 0)
(match-end 0))
- (if show-texinfo-node
- (hact 'link-to-texinfo-node node)
- (hact 'link-to-Info-node node))))))))
+ (when (memq major-mode '(texinfo-mode para-mode))
+ (let ((opoint (point))
+ (bol (save-excursion (beginning-of-line) (point))))
+ (cond ((save-excursion
+ (beginning-of-line)
+ ;; If a menu item, display the node for the item.
+ (looking-at "*\\s-+\\([^:\t\n\r]+\\)::"))
+ (hact 'link-to-texinfo-node
+ (ibut:label-set (match-string 1) (match-beginning 1)
(match-end 1))))
+ ;; Show doc for any Emacs Lisp identifier references,
+ ;; marked with @code{} or @var{}.
+ ((save-excursion
+ (and (search-backward "@" bol t)
+ (or (looking-at "@\\(code\\|var\\){\\([^\}
\t\n\r]+\\)}")
+ (looking-at "@\\(findex\\|vindex\\)[
]+\\([^\} \t\n\r]+\\)"))
+ (>= (match-end 2) opoint)))
+ (let ((type-str (match-string 1))
+ (symbol (intern-soft (ibut:label-set (match-string
2) (match-beginning 2) (match-end 2)))))
+ (when (and symbol (pcase type-str
+ ((or "code" "findex")
(fboundp symbol))
+ ((or "var" "vindex") (boundp
symbol))))
+ (hact 'link-to-elisp-doc symbol))))
+ ;; If at an @node and point is within a node name reference
+ ;; other than the current node, display it.
+ ((save-excursion
+ (and (save-excursion (beginning-of-line) (looking-at
"@node\\s-+[^,\n\r]+,"))
+ (search-backward "," bol t)
+ (looking-at ",\\s-*\\([^,\n\r]*[^,
\t\n\r]\\)[,\n\r]")))
+ (hact 'link-to-texinfo-node
+ (ibut:label-set (match-string 1) (match-beginning 1)
(match-end 1))))
+ ((save-excursion
+ (and (search-backward "@" bol t)
+ (looking-at
+ (concat
+ "@p?x?ref\\({\\)\\s-*\\([^,}]*[^,}
\t\n\r]\\)\\s-*"
+ "\\(,[^,}]*\\)?\\(,[^,}]*\\)?"
+ "\\(,\\s-*\\([^,}]*[^,}
\t\n\r]\\)\\)?[^}]*}"))
+ (> (match-end 0) opoint)))
+ (let* ((show-texinfo-node
+ (and
+ ;; Reference to node within this file.
+ (not (match-beginning 6))
+ ;; To the left of the reference opening brace.
+ (<= opoint (match-beginning 1))))
+ (node
+ (save-match-data
+ (if (match-beginning 6)
+ ;; Explicit filename included in
reference.
+ (format "(%s)%s"
+ (match-string-no-properties
6)
+ (match-string-no-properties
2))
+ ;; Derive file name from the source file
name.
+ (let ((nodename
(match-string-no-properties 2))
+ (file (file-name-nondirectory
buffer-file-name)))
+ (if show-texinfo-node
+ nodename
+ (format "(%s)%s"
+ (if (string-match
"\\.[^.]+$" file)
+ (substring file 0
+
(match-beginning 0))
+ "unspecified file")
+ nodename)))))))
+ (ibut:label-set (match-string 0) (match-beginning 0)
(match-end 0))
+ (if show-texinfo-node
+ (hact 'link-to-texinfo-node node)
+ (hact 'link-to-Info-node node))))))))
;;; ========================================================================
;;; Activate any GNUS push-button at point.
@@ -1130,21 +1131,21 @@ Examples are \"(hyperbole)Implicit Buttons\" and
``(hyperbole)C-c /''.
Activates only if point is within the first line of the Info-node name."
(let* ((node-ref-and-pos (or (hbut:label-p t "\"" "\"" t t)
- ;; Typical GNU Info references; note
- ;; these are special quote marks, not the
- ;; standard ASCII characters.
- (hbut:label-p t "‘" "’" t t)
- ;; Regular dual single quotes (Texinfo smart
quotes)
- (hbut:label-p t "``" "''" t t)
- ;; Regular open and close quotes
- (hbut:label-p t "`" "'" t t)))
- (ref (car node-ref-and-pos))
- (node-ref (and (stringp ref)
- (string-match "\\`([^\):]+)" ref)
- (hpath:is-p (car node-ref-and-pos) nil t))))
+ ;; Typical GNU Info references; note
+ ;; these are special quote marks,
not the
+ ;; standard ASCII characters.
+ (hbut:label-p t "‘" "’" t t)
+ ;; Regular dual single quotes
(Texinfo smart quotes)
+ (hbut:label-p t "``" "''" t t)
+ ;; Regular open and close quotes
+ (hbut:label-p t "`" "'" t t)))
+ (ref (car node-ref-and-pos))
+ (node-ref (and (stringp ref)
+ (string-match "\\`([^\):]+)" ref)
+ (hpath:is-p (car node-ref-and-pos) nil t))))
(and node-ref
- (ibut:label-set node-ref-and-pos)
- (hact 'link-to-Info-node node-ref))))
+ (ibut:label-set node-ref-and-pos)
+ (hact 'link-to-Info-node node-ref))))
;;; ========================================================================
;;; Makes Hyperbole mail addresses output Hyperbole environment info.
@@ -1159,10 +1160,10 @@ a mail composer window would activate this implicit
button type."
(when (memq major-mode (list 'mail-mode hmail:composer hnews:composer))
(let ((addr (thing-at-point 'email)))
(cond ((null addr) nil)
- ((member addr '("hyperbole" "hyperbole-users@gnu.org"
"bug-hyperbole@gnu.org"))
- (hact 'hyp-config))
- ((string-match
"\\(hyperbole\\|hyperbole-users@gnu\\.org\\|bug-hyperbole@gnu\\.org\\)\\(-\\(join\\|leave\\|owner\\)\\)"
addr)
- (hact 'hyp-request))))))
+ ((member addr '("hyperbole" "hyperbole-users@gnu.org"
"bug-hyperbole@gnu.org"))
+ (hact 'hyp-config))
+ ((string-match
"\\(hyperbole\\|hyperbole-users@gnu\\.org\\|bug-hyperbole@gnu\\.org\\)\\(-\\(join\\|leave\\|owner\\)\\)"
addr)
+ (hact 'hyp-request))))))
;;; ========================================================================
;;; Makes source entries in Hyperbole reports selectable.
@@ -1179,11 +1180,11 @@ original DEMO file."
(beginning-of-line)
(when (looking-at hbut:source-prefix)
(let ((src (hbut:source)))
- (when src
- (unless (stringp src)
- (setq src (prin1-to-string src)))
- (ibut:label-set src (point) (progn (end-of-line) (point)))
- (hact 'hyp-source src))))))
+ (when src
+ (unless (stringp src)
+ (setq src (prin1-to-string src)))
+ (ibut:label-set src (point) (progn (end-of-line) (point)))
+ (hact 'hyp-source src))))))
;;; ========================================================================
;;; Executes an angle bracket delimited Hyperbole action, Elisp
@@ -1207,12 +1208,12 @@ If an Elisp variable, display a message showing its
value.
There may not be any <> characters within the expression. The
first identifier in the expression must be an Elisp variable,
action type or a function symbol to call, i.e. '<'actype-or-elisp-symbol
-arg1 ... argN '>'. For example, <mail user@mybiz.com>."
+arg1 ... argN '>'. For example, <mail nil \"user@somewhere.org\">."
(let* ((label-key-start-end (ibut:label-p nil action:start action:end t t))
- (ibut-key (nth 0 label-key-start-end))
- (start-pos (nth 1 label-key-start-end))
- (end-pos (nth 2 label-key-start-end))
- actype action args lbl var-flag)
+ (ibut-key (nth 0 label-key-start-end))
+ (start-pos (nth 1 label-key-start-end))
+ (end-pos (nth 2 label-key-start-end))
+ actype action args lbl var-flag)
;; Continue only if start-delim is either:
;; at the beginning of the buffer
;; or preceded by a space character or a grouping character
@@ -1222,42 +1223,48 @@ arg1 ... argN '>'. For example, <mail user@mybiz.com>."
;; at the end of the buffer
;; or is followed by a space, punctuation or grouping character.
(when (and ibut-key (or (null (char-before start-pos))
- (memq (char-syntax (char-before start-pos)) '(?\
?\> ?\( ?\))))
- (not (memq (char-syntax (char-after (1+ start-pos))) '(?\ ?\>)))
- (or (null (char-after end-pos))
- (memq (char-syntax (char-after end-pos)) '(?\ ?\> ?. ?\(
?\)))
- ;; Some of these characters may have symbol-constituent
syntax
- ;; rather than punctuation, so check them individually.
- (memq (char-after end-pos) '(?. ?, ?\; ?: ?! ?\' ?\"))))
+ (memq (char-syntax (char-before
start-pos)) '(?\ ?\> ?\( ?\))))
+ (not (memq (char-syntax (char-after (1+ start-pos))) '(?\
?\>)))
+ (or (null (char-after end-pos))
+ (memq (char-syntax (char-after end-pos)) '(?\ ?\>
?. ?\( ?\)))
+ ;; Some of these characters may have
symbol-constituent syntax
+ ;; rather than punctuation, so check them
individually.
+ (memq (char-after end-pos) '(?. ?, ?\; ?: ?! ?\'
?\"))))
(setq lbl (ibut:key-to-label ibut-key))
;; Handle $ preceding var name in cases where same name is
;; bound as a function symbol
(when (string-match "\\`\\$" lbl)
- (setq var-flag t
- lbl (substring lbl 1)))
+ (setq var-flag t
+ lbl (substring lbl 1)))
(setq actype (if (string-match-p " " lbl) (car (split-string lbl)) lbl)
- actype (or (intern-soft (concat "actype::" actype))
- (intern-soft actype)))
+ actype (or (intern-soft (concat "actype::" actype))
+ (intern-soft actype)))
+ ;; Ignore unbound symbols
+ (unless (and actype (or (fboundp actype) (boundp actype)))
+ (setq actype nil))
(when actype
- (ibut:label-set lbl start-pos end-pos)
- (setq action (read (concat "(" lbl ")"))
- args (cdr action))
- (cond ((and (symbolp actype) (fboundp actype)
- (string-match "-p\\'" (symbol-name actype)))
- ;; Is a function with a boolean result
- (setq action `(display-boolean ',action)
- actype 'display-boolean))
- ((and (null args) (symbolp actype) (boundp actype)
- (or var-flag (not (fboundp actype))))
- ;; Is a variable, display its value as the action
- (setq args `(',actype)
- action `(display-variable ',actype)
- actype 'display-variable)))
- ;; Necessary so can return a null value, which actype:act cannot.
- (let ((hrule:action (if (eq hrule:action #'actype:identity)
- hrule:action
- 'actype:eval)))
- (apply hrule:action actype (mapcar #'eval args)))))))
+ (ibut:label-set lbl start-pos end-pos)
+ (setq action (read (concat "(" lbl ")"))
+ args (cdr action))
+ (cond ((and (symbolp actype) (fboundp actype)
+ (string-match "-p\\'" (symbol-name actype)))
+ ;; Is a function with a boolean result
+ (setq action `(display-boolean ',action)
+ actype 'display-boolean))
+ ((and (null args) (symbolp actype) (boundp actype)
+ (or var-flag (not (fboundp actype))))
+ ;; Is a variable, display its value as the action
+ (setq args `(',actype)
+ action `(display-variable ',actype)
+ actype 'display-variable)))
+ ;; Necessary so can return a null value, which actype:act cannot.
+ (let ((hrule:action
+ (if (eq hrule:action #'actype:identity)
+ #'actype:identity
+ #'actype:eval)))
+ (if (eq hrule:action #'actype:identity)
+ (apply hrule:action actype args)
+ (apply hrule:action actype (mapcar #'eval args))))))))
;;; ========================================================================
;;; Inserts completion into minibuffer or other window.
@@ -1267,8 +1274,8 @@ arg1 ... argN '>'. For example, <mail user@mybiz.com>."
"Insert completion at point into minibuffer or other window."
(let ((completion (hargs:completion t)))
(and completion
- (ibut:label-set completion)
- (hact 'completion))))
+ (ibut:label-set completion)
+ (hact 'completion))))
(run-hooks 'hibtypes-end-load-hook)
diff --git a/hmouse-drv.el b/hmouse-drv.el
index baecd4b..9daa51c 100644
--- a/hmouse-drv.el
+++ b/hmouse-drv.el
@@ -843,8 +843,11 @@ Return non-nil iff associated help documentation is found."
(when (memq cmd-sym '(hui:hbut-act hui:hbut-help))
(princ (format "%s BUTTON SPECIFICS:\n\n%s\n"
- (ibtype:def-symbol
- (hattr:get 'hbut:current 'categ))
+ (htype:def-symbol
+ (if (eq (hattr:get 'hbut:current 'categ)
+ 'explicit)
+ (hattr:get 'hbut:current 'actype)
+ (hattr:get 'hbut:current 'categ)))
(actype:doc 'hbut:current t)))
(hattr:report
(nthcdr 2 (hattr:list 'hbut:current))))
diff --git a/hpath.el b/hpath.el
index b79bac5..29ebd61 100644
--- a/hpath.el
+++ b/hpath.el
@@ -86,7 +86,7 @@ If the value of 'hpath:mswindows-mount-prefix' changes, then
re-initialize this
(defvar hpath:directory-expand-alist nil
"Automatically set alist of (posix-mount-point . window-path-prefix)
elements.
-Used to expand windows prefixes to posix mount points during
mswindows-to-posix.")
+Used to expand posix mount points to Windows UNC paths during
posix-to-mswindows conversion.")
;;;###autoload
(defun hpath:mswindows-to-posix (path)
@@ -112,8 +112,7 @@ If path begins with an MSWindows drive letter, prefix the
converted path with th
(defun hpath:mswindows-to-posix-separators (path)
"Replace all backslashes with forward slashes in PATH and expand the path
against `directory-abbrev-alist', if possible.
Path must be a string or an error will be triggered."
- (let ((directory-abbrev-alist hpath:directory-expand-alist))
- (replace-regexp-in-string "\\\\" "/" (abbreviate-file-name path) nil t)))
+ (replace-regexp-in-string "\\\\" "/" (abbreviate-file-name path) nil t))
;;;###autoload
(defun hpath:posix-to-mswindows (path)
@@ -143,7 +142,8 @@ If path begins with an optional mount prefix,
'hpath:mswindows-mount-prefix', fo
"Replace all forward slashes with backslashes in PATH and abbreviate the
path if possible.
Path must be a string or an error will be triggered. See
'abbreviate-file-name' for how path abbreviation is handled."
- (replace-regexp-in-string "/" "\\\\" (abbreviate-file-name path)))
+ (let ((directory-abbrev-alist hpath:directory-expand-alist))
+ (replace-regexp-in-string "/" "\\\\" (abbreviate-file-name path))))
(defun hpath:posix-path-p (path)
"Return non-nil if PATH looks like a Posix path."
@@ -183,7 +183,7 @@ Call this function manually if mount points change after
Hyperbole is loaded."
(when (not hyperb:microsoft-os-p)
(let ((mount-points-to-add
;; Sort alist of (path-mounted . mount-point) elements from shortest
- ;; to longest path so that the longest path is selected first within
+ ;; to longest path so thDat the longest path is selected first within
;; 'directory-abbrev-alist' (elements are added in reverse order).
(sort
;; Convert plist to alist for sorting.
@@ -199,16 +199,17 @@ Call this function manually if mount points change after
Hyperbole is loaded."
(split-string (shell-command-to-string (format "df
-a -t drvfs 2> /dev/null | sort | uniq | grep -v '%s' | sed -e 's+ .*[-%%] /+
/+g'" hpath:posix-mount-points-regexp))))
(lambda (cons1 cons2) (<= (length (car cons1)) (length (car
cons2))))))
path mount-point)
- (mapcar (lambda (path-and-mount-point)
+ (mapc (lambda (path-and-mount-point)
(setq path (car path-and-mount-point)
mount-point (cdr path-and-mount-point))
- (add-to-list 'directory-abbrev-alist (cons (format "\\`%s"
(regexp-quote path))
+ (add-to-list 'directory-abbrev-alist (cons (format "\\`%s\\>"
(regexp-quote path))
mount-point)))
mount-points-to-add)
+ ;; Save the reverse of each mount-points-to-add so
+ ;; can expand paths when going from posix-to-mswindows.
(setq hpath:directory-expand-alist
- ;; Save the reverse of each mount-points-to-add so
- ;; can expand paths when going from posix-to-mswindows.
- (mapcar (lambda (elt) (cons (cdr elt) (car elt)))
mount-points-to-add))
+ (mapcar (lambda (elt) (cons (concat "\\`" (cdr elt) "\\>")
+ (car elt))) mount-points-to-add))
mount-points-to-add)))
@@ -540,27 +541,26 @@ These are used to indicate how to display or execute the
pathname.
Return PATH unchanged when it is not a valid path or when DEFAULT-DIRS
is invalid. DEFAULT-DIRS when non-nil may be a single directory or a list of
directories. The first one in which PATH is found is used."
- (cond ((not (stringp path))
- path)
- ((and (setq path (hpath:trim path))
- (not (hpath:is-p path nil t)))
- path)
- ((not (cond ((null default-dirs)
- (setq default-dirs (cons default-directory nil)))
- ((stringp default-dirs)
- (setq default-dirs (cons default-dirs nil)))
- ((listp default-dirs))
- (t nil)))
- path)
- (t
- (let ((rtn) dir)
- (while (and default-dirs (null rtn))
- (setq dir (expand-file-name
- (file-name-as-directory (car default-dirs)))
- rtn (expand-file-name path dir)
- default-dirs (cdr default-dirs))
- (or (file-exists-p rtn) (setq rtn nil)))
- (or rtn path)))))
+ (cond ((not (and (stringp path)
+ (hpath:is-p (hpath:trim path) nil t)))
+ path)
+ ((progn (setq path (hpath:trim path))
+ (not (cond ((null default-dirs)
+ (setq default-dirs (cons default-directory nil)))
+ ((stringp default-dirs)
+ (setq default-dirs (cons default-dirs nil)))
+ ((listp default-dirs))
+ (t nil))))
+ path)
+ (t
+ (let ((rtn) dir)
+ (while (and default-dirs (null rtn))
+ (setq dir (expand-file-name
+ (file-name-as-directory (car default-dirs)))
+ rtn (expand-file-name path dir)
+ default-dirs (cdr default-dirs))
+ (or (file-exists-p rtn) (setq rtn nil)))
+ (or rtn path)))))
(defun hpath:tramp-file-name-regexp ()
"Return a modified `tramp-file-name-regexp' for matching to the beginning of
a remote file name.
@@ -765,12 +765,7 @@ is displayed or nil if not displayed because BUFFER is
invalid."
;; BW 4/30/2016 - Commented out in case interferes with Smart Key
;; selection and yanking of the region via drags.
;; (hpath:push-tag-mark)
- (unless display-where (setq display-where hpath:display-where))
- (funcall (car (cdr (or (assq display-where
- hpath:display-buffer-alist)
- (assq 'other-window
- hpath:display-buffer-alist))))
- buffer)
+ (funcall (hpath:display-buffer-function display-where) buffer)
(selected-window)))
(defun hpath:display-buffer-other-frame (buffer)
@@ -792,29 +787,30 @@ window in which the buffer is displayed."
(switch-to-buffer buffer)
(selected-window))
-(defun hpath:to-line (line-num)
- "Move point to the start of an absolute LINE-NUM or the last line of the
current buffer."
- (save-restriction
- (widen)
- (goto-char (point-min))
- (if (eq selective-display t)
- (re-search-forward "[\n\r]" nil 'end (1- line-num))
- (forward-line (1- line-num)))))
+(defun hpath:display-buffer-function (&optional display-where)
+ "Return the function to display a Hyperbole buffer using optional symbol
DISPLAY-WHERE or `hpath:display-where'."
+ (hpath:display-where-function display-where hpath:display-buffer-alist))
+
+(defun hpath:display-path-function (&optional display-where)
+ "Return the function to display a Hyperbole path using optional symbol
DISPLAY-WHERE or `hpath:display-where'."
+ (hpath:display-where-function display-where hpath:display-where-alist))
(defun hpath:find-noselect (filename)
- "Find but don't display file FILENAME using user customizable settings of
display program and location.
-Return the current buffer iff file is displayed within a buffer (not with an
external
+ "Find but don't display FILENAME using user customizable settings of display
program and location.
+Return the current buffer iff FILENAME is displayed within a buffer (not with
an external
program), else nil.
-FILENAME may end with hash-style link references to HTML, Markdown or Emacs
-outline headings of the form, <file>#<anchor-name>."
+See `hpath:find' documentation for acceptable formats of FILENAME."
(hpath:find filename nil t))
(defun hpath:find (filename &optional display-where noselect)
- "Edit file FILENAME using user customizable settings of display program and
location.
+ "Edit FILENAME using user customizable settings of display program and
location.
Return the current buffer iff file is displayed within a buffer (not with an
external
program), else nil.
+FILENAME may contain references to Emacs Lisp variables or shell
+environment variables using the syntax, \"${variable-name}\".
+
FILENAME may start with a special prefix character that is handled as follows:
!filename - execute as a non-windowed program within a shell;
&filename - execute as a windowed program;
@@ -822,9 +818,10 @@ FILENAME may start with a special prefix character that is
handled as follows:
If FILENAME does not start with a prefix character:
- it may be followed by a hash-style link reference to HTML, Markdown
- or Emacs outline headings of the form, <file>#<anchor-name>,
- e.g. \"~/.bashrc#Alias Section\";
+ it may be followed by a hash-style link reference to HTML, XML,
+ SGML, shell script comment, Markdown or Emacs outline headings
+ of the form, <file>#<anchor-name>, e.g. \"~/.bashrc#Alias
+ Section\";
it may end with a line number and optional column number to which to go,
of the form, :<line-number>[:<column-number>], e.g. \"~/.bashrc:20:5\";
@@ -855,7 +852,7 @@ buffer but don't display it."
default-directory (or (hattr:get 'hbut:current 'dir)
;; Loc may be a buffer without a file
(if (stringp loc)
- loc
+ (file-name-directory loc)
default-directory)))
(when (string-match hpath:prefix-regexp filename)
(setq modifier (aref filename 0)
@@ -919,14 +916,7 @@ buffer but don't display it."
(error "(hpath:find): No available executable from:
%s"
display-executables)))
(t (setq path (hpath:validate path))
- (when (null display-where)
- (setq display-where hpath:display-where))
- (funcall
- (car (cdr (or (assq display-where
- hpath:display-where-alist)
- (assq 'other-window
- hpath:display-where-alist))))
- path)
+ (funcall (hpath:display-path-function display-where)
path)
(when (or hash anchor) (hpath:to-markup-anchor hash
anchor))
(when line-num
;; With an anchor, goto line relative to
@@ -958,9 +948,13 @@ buffer but don't display it."
(let ((opoint (point))
;; Markdown or outline link ids are case
;; insensitive and - characters are converted to
- ;; spaces at the point of definition.
+ ;; spaces at the point of definition unless
+ ;; anchor contains both - and space characters,
+ ;; then no conversion occurs.
(case-fold-search t)
- (anchor-name (subst-char-in-string ?- ?\ anchor)))
+ (anchor-name (if (string-match "-.* \\| .*-" anchor)
+ anchor
+ (subst-char-in-string ?- ?\ anchor))))
(goto-char (point-min))
(if (re-search-forward (format
(cond ((or (string-match
hpath:markdown-suffix-regexp buffer-file-name)
@@ -1353,6 +1347,15 @@ Returns LINKNAME unchanged if it is not a symbolic link
but is a pathname."
(setq referent (expand-file-name referent dirname))))
referent)
+(defun hpath:to-line (line-num)
+ "Move point to the start of an absolute LINE-NUM or the last line of the
current buffer."
+ (save-restriction
+ (widen)
+ (goto-char (point-min))
+ (if (eq selective-display t)
+ (re-search-forward "[\n\r]" nil 'end (1- line-num))
+ (forward-line (1- line-num)))))
+
(defun hpath:trim (path)
"Return PATH with any [\" \t\n\r] characters trimmed from its start and end."
(string-trim path "[\" \t\n\r]+" "[\" \t\n\r]+"))
@@ -1406,9 +1409,10 @@ to it."
;; Overload `substitute-in-file-name' to eliminate truncation of URL prefixes
;; such as http://.
+(eval-and-compile
(unless (fboundp 'hyperb:substitute-in-file-name)
(defalias 'hyperb:substitute-in-file-name
- (symbol-function 'substitute-in-file-name)))
+ (symbol-function 'substitute-in-file-name))))
(defun substitute-in-file-name (filename)
"Substitute environment variables referred to in FILENAME (skip Urls).
@@ -1549,6 +1553,13 @@ be integrated, otherwise the filename is appended as an
argument."
(format cmd filename)
(format "%s \"%s\"" cmd filename)))
+(defun hpath:display-where-function (display-where display-where-alist)
+ "Return the function to display a Hyperbole buffer or path using symbol
DISPLAY-WHERE or if null, `hpath:display-where'.
+DISPLAY-WHERE-ALIST is a lookup table mapping from DISPLAY-WHERE values to
associated functions."
+ (unless display-where (setq display-where hpath:display-where))
+ (car (cdr (or (assq display-where display-where-alist)
+ (assq 'other-window display-where-alist)))))
+
(defun hpath:remote-available-p ()
"Return non-nil if a remote file access package is available, nil otherwise.
Return the symbol for the appropriate package to require/use.
diff --git a/hui-menu.el b/hui-menu.el
index 1a0cdd3..dd6e706 100644
--- a/hui-menu.el
+++ b/hui-menu.el
@@ -401,6 +401,7 @@ REBUILD-FLAG is non-nil, in which case the menu is rebuilt."
["Edit" hui:gbut-modify t]
["Help" gbut:help t]
["Modify" hui:gbut-modify t]
+ ["Rename" hui:gbut-rename t]
)
'("Implicit-Button"
["Manual" (id-info "(hyperbole)Implicit Buttons") t]
diff --git a/hui-mini.el b/hui-mini.el
index 5682ed8..6dea17e 100644
--- a/hui-mini.el
+++ b/hui-mini.el
@@ -571,6 +571,7 @@ constructs. If not given, the top level Hyperbole menu is
used."
("Info" (id-info "(hyperbole)Global Buttons")
"Displays manual section on global buttons.")
("Modify" hui:gbut-modify "Modifies global button attributes.")
+ ("Rename" hui:gbut-rename "Renames a global button.")
))
'(ibut .
(("IButton>")
diff --git a/hui-mouse.el b/hui-mouse.el
index 9efe569..0c3193b 100644
--- a/hui-mouse.el
+++ b/hui-mouse.el
@@ -237,6 +237,11 @@ Its default value is #'smart-scroll-down."
(string-match "^\\*Help\\|Help\\*$" (buffer-name))) .
((hkey-help-hide) . (hkey-help-hide)))
;;
+ ;; Emacs bookmarks menu (bookmark.el)
+ ((eq major-mode 'bookmark-bmenu-mode) .
+ ((bookmark-jump (bookmark-bmenu-bookmark)
(hpath:display-buffer-function)) .
+ (hkey-help t)))
+ ;;
;; Pages directory listing mode (page-ext.el)
((eq major-mode 'pages-directory-mode) .
((pages-directory-goto) . (pages-directory-goto)))
diff --git a/hui-select.el b/hui-select.el
index b953dee..b146710 100644
--- a/hui-select.el
+++ b/hui-select.el
@@ -16,7 +16,7 @@
;; Simply load this library and you are ready to try it out by
;; double-clicking on various kinds of characters in different buffer major
;; modes. You'll quickly get the hang of it. (It also provides a command
-;; to jump between beginning and end tags within HTML and SGML buffers.)
+;; to jump between beginning and end tags within HTML, SGML and XML buffers.)
;;
;; A great deal of smarts are built-in so that it does the right thing
;; almost all of the time; many other attempts at similar behavior such as
@@ -63,11 +63,11 @@
;; `hui-select-and-copy-thing' - mark and copy the syntactical unit to the
;; kill ring
;; `hui-select-and-kill-thing' - kill the syntactical unit at point
-;; `hui-select-goto-matching-tag' - In HTML and SGML modes (actually any
-;; listed in the variable, `hui-select-markup-modes'), move point to the
+;; `hui-select-goto-matching-tag' - In modes listed in the variable,
+;; `hui-select-markup-modes'), move point to the
;; start of the tag paired with the closest tag that point is within or
;; which it precedes, so you can quickly jump back and forth between
-;; open and close tags. As noted, in html-mode this is bound to {C-c .}
+;; open and close tags. In these modes, this is bound to {C-c .}
;; `hui-select-at-p' - predicate to test if a buffer position (or point)
starts
;; or ends a matching syntactical region (excluding a single character).
;;
@@ -81,7 +81,7 @@
;; (hui-select-initialize)
;;
;; This will autoload this package, bind the selection command to a double
-;; click of the left mouse button and set up Java, C++ and HTML modes
+;; click of the left mouse button and set up Java, C++ and
`hui-select-markup-modes'
;; for proper entity selection.
;;
;; For any version of Emacs you should add the following autoload entries
@@ -107,7 +107,9 @@
(require 'hvar)
(eval-when-compile
- (require 'sgml-mode) ;; for html-mode
+ (require 'kotl-mode)
+ (require 'sgml-mode) ;; for HTML mode
+ (require 'nxml-mode) ;; for XML mode
(require 'web-mode nil t))
;;; ************************************************************************
@@ -121,7 +123,7 @@
:group 'hyperbole-commands)
(defcustom hui-select-markup-modes
- '(html-mode sgml-mode web-mode)
+ '(html-mode sgml-mode nxml-mode web-mode)
"*List of markup language modes that use SGML-style <tag> </tag> pairs."
:type '(repeat (function :tag "Mode"))
:group 'hyperbole-commands)
@@ -134,8 +136,8 @@
(defcustom hui-select-indent-modes
(append '(altmath-mode asm-mode csh-mode eiffel-mode ksh-mode
- math-mode miranda-mode python-mode pascal-mode sather-mode)
- hui-select-text-modes)
+ math-mode miranda-mode python-mode pascal-mode
sather-mode)
+ hui-select-text-modes)
"*List of language major modes that use indentation mostly to define
syntactic structure."
:type '(repeat (function :tag "Mode"))
:group 'hyperbole-commands)
@@ -211,33 +213,33 @@
;;;###autoload
(defun hui-select-at-p (&optional pos)
- "Return non-nil if the character after optional POS (or point) match a
syntax entry in `hui-select-syntax-alist'.
+ "Return non-nil if the character after optional POS (or point) matches a
syntax entry in `hui-select-syntax-alist'.
The non-nil value returned is the function to call to select that syntactic
unit."
(interactive "d")
(unless (and (bobp) (eobp))
(or (numberp pos) (setq pos (point)))
(setq hui-select-previous 'char)
(let* ((syntax (char-syntax (or (char-after pos) (char-before pos))))
- (pair (assq syntax hui-select-syntax-alist)))
+ (pair (assq syntax hui-select-syntax-alist)))
(and pair (or hui-select-whitespace (not (eq (cdr pair)
'thing-whitespace)))
- ;; Ignore matches that are preceded by '\' as a quote, e.g. ?\'
- (or (not (char-after pos))
- (= pos (point-min))
- (and (char-before pos) (/= ?\\ (char-before pos))))
- (cdr pair)))))
+ ;; Ignore matches that are preceded by '\' as a quote, e.g. ?\'
+ (or (not (char-after pos))
+ (= pos (point-min))
+ (and (char-before pos) (/= ?\\ (char-before pos))))
+ (cdr pair)))))
;;;###autoload
(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 (preceding-char) (or (= ?\) (char-syntax (preceding-char)))
- (= ?\" (preceding-char))))
- (backward-sexp))
- ((and (following-char) (or (= ?\( (char-syntax (following-char)))
- (= ?\" (following-char))))
- (forward-sexp))))
+ (hui-select-goto-matching-tag))
+ ((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 ()
@@ -248,71 +250,70 @@ Also, add language-specific syntax setups to aid in thing
selection."
(require 'hyperbole))
(if hkey-init
(progn
- (transient-mark-mode 1)
- (hkey-global-set-key [double-down-mouse-1] nil)
- (hkey-global-set-key [double-mouse-1] 'hui-select-thing-with-mouse)
- (hkey-global-set-key [triple-down-mouse-1] nil)
- (hkey-global-set-key [triple-mouse-1] 'hui-select-thing-with-mouse)))
+ (transient-mark-mode 1)
+ (hkey-global-set-key [double-down-mouse-1] nil)
+ (hkey-global-set-key [double-mouse-1] 'hui-select-thing-with-mouse)
+ (hkey-global-set-key [triple-down-mouse-1] nil)
+ (hkey-global-set-key [triple-mouse-1]
'hui-select-thing-with-mouse)))
;;
;; These hooks let you select C++ and Java methods and classes by
;; double-clicking on the first character of a definition or on its
;; opening or closing brace. This is all necessary since some
;; programmers don't put their function braces in the first column.
(var:add-and-run-hook 'java-mode-hook (lambda ()
- (setq defun-prompt-regexp
- "^[
\t]*\\(\\(\\(public\\|protected\\|private\\|const\\|abstract\\|synchronized\\|final\\|static\\|threadsafe\\|transient\\|native\\|volatile\\)\\s-+\\)*\\(\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*[][_$.a-zA-Z0-9]+\\|[[a-zA-Z]\\)\\s-*\\)\\s-+\\)\\)?\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*\\s-+\\)\\s-*\\)?\\([_a-zA-Z][^][
\t:;.,{}()=]*\\|\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)\\)\\s-*\\(([^);{}]*)\\)?\\([]
\t]*\\)\\(\\s-*\\<throws\\>\\s-*\\(\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)[,
\t\n\r\f]*\\)+\\)?\\s-*")))
+ (setq
defun-prompt-regexp
+ "^[
\t]*\\(\\(\\(public\\|protected\\|private\\|const\\|abstract\\|synchronized\\|final\\|static\\|threadsafe\\|transient\\|native\\|volatile\\)\\s-+\\)*\\(\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*[][_$.a-zA-Z0-9]+\\|[[a-zA-Z]\\)\\s-*\\)\\s-+\\)\\)?\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*\\s-+\\)\\s-*\\)?\\([_a-zA-Z][^][
\t:;.,{}()=]*\\|\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)\\)\\s-*\\(([^);{}]*)\\)?\\([]
\t]*\\)\\(\\s-*\\<throws\\>\\s-*\\(\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)[, \t\n\r\f
[...]
(var:add-and-run-hook 'c++-mode-hook (lambda ()
- (setq defun-prompt-regexp
- "^[
\t]*\\(template\\s-*<[^>;.{}]+>\\s-*\\)?\\(\\(\\(auto\\|const\\|explicit\\|extern\\s-+\"[^\"]+\"\\|extern\\|friend\\|inline\\|mutable\\|overload\\|register\\|static\\|typedef\\|virtual\\)\\s-+\\)*\\(\\([[<a-zA-Z][]_a-zA-Z0-9]*\\(::[]_a-zA-Z0-9]+\\)?\\s-*<[_<>a-zA-Z0-9
,]+>\\s-*[*&]*\\|[[<a-zA-Z][]_<>a-zA-Z0-9]*\\(::[[<a-zA-Z][]_<>a-zA-Z0-9]+\\)?\\s-*[*&]*\\)[*&
\t\n\r]+\\)\\)?\\(\\(::\\|[[<a-zA-Z][]_a-zA-Z0-9]*\\s-*<[^>;{}]+>\\s-*[*&]*::\\|[[<a-zA-Z][]_~<>a-zA-Z0-9]*\\s-*
[...]
+ (setq
defun-prompt-regexp
+ "^[
\t]*\\(template\\s-*<[^>;.{}]+>\\s-*\\)?\\(\\(\\(auto\\|const\\|explicit\\|extern\\s-+\"[^\"]+\"\\|extern\\|friend\\|inline\\|mutable\\|overload\\|register\\|static\\|typedef\\|virtual\\)\\s-+\\)*\\(\\([[<a-zA-Z][]_a-zA-Z0-9]*\\(::[]_a-zA-Z0-9]+\\)?\\s-*<[_<>a-zA-Z0-9
,]+>\\s-*[*&]*\\|[[<a-zA-Z][]_<>a-zA-Z0-9]*\\(::[[<a-zA-Z][]_<>a-zA-Z0-9]+\\)?\\s-*[*&]*\\)[*&
\t\n\r]+\\)\\)?\\(\\(::\\|[[<a-zA-Z][]_a-zA-Z0-9]*\\s-*<[^>;{}]+>\\s-*[*&]*::\\|[[<a-zA-Z][]
[...]
;;
;; Match to Lisp symbols with : in their names, often included in help
buffers.
(var:add-and-run-hook 'help-mode-hook (lambda () (modify-syntax-entry ?:
"_" help-mode-syntax-table)))
;;
;; Allow for marking and moving brace delimited groups.
(var:add-and-run-hook 'lisp-mode-hook
- (lambda ()
- (modify-syntax-entry ?\{ "\(\}"
lisp-mode-syntax-table)
- (modify-syntax-entry ?\} "\)\{"
lisp-mode-syntax-table)))
+ (lambda ()
+ (modify-syntax-entry ?\{ "\(\}"
lisp-mode-syntax-table)
+ (modify-syntax-entry ?\} "\)\{"
lisp-mode-syntax-table)))
;;
;; This hook makes tags, comments, sentences and text blocks
- ;; selectable in HTML mode. (You would do something similar for
- ;; SGML mode).
+ ;; selectable in SGML-related modes.
;;
;; Make tag begin and end delimiters act like grouping characters,
;; for easy syntactical selection of tags.
- (var:add-and-run-hook 'html-mode-hook
- (lambda ()
- (modify-syntax-entry ?< "(>" html-mode-syntax-table)
- (modify-syntax-entry ?> ")<" html-mode-syntax-table)
- (modify-syntax-entry ?\{ "\(\}"
html-mode-syntax-table)
- (modify-syntax-entry ?\} "\)\{"
html-mode-syntax-table)
- (modify-syntax-entry ?\" "\"" html-mode-syntax-table)
- (modify-syntax-entry ?= "." html-mode-syntax-table)
- (modify-syntax-entry ?. "_" html-mode-syntax-table)
- (make-local-variable 'comment-start)
- (make-local-variable 'comment-end)
- (setq comment-start "<!--" comment-end "-->")
- (make-local-variable 'sentence-end)
- (setq sentence-end "\\([^
\t\n\r>]<\\|>\\(<[^>]*>\\)*\\|[.?!][]\"')}]*\\($\\| $\\|\t\\| \\)\\)[ \t\n]*")
- (define-key html-mode-map "\C-c."
'hui-select-goto-matching-tag)))
- (var:add-and-run-hook 'web-mode-hook
- (lambda ()
- (modify-syntax-entry ?< "(>" web-mode-syntax-table)
- (modify-syntax-entry ?> ")<" web-mode-syntax-table)
- (modify-syntax-entry ?\{ "\(\}" web-mode-syntax-table)
- (modify-syntax-entry ?\} "\)\{" web-mode-syntax-table)
- (modify-syntax-entry ?\" "\"" web-mode-syntax-table)
- (modify-syntax-entry ?= "." web-mode-syntax-table)
- (modify-syntax-entry ?. "_" web-mode-syntax-table)
- (make-local-variable 'sentence-end)
- (setq sentence-end "\\([^
\t\n\r>]<\\|>\\(<[^>]*>\\)*\\|[.?!][]\"')}]*\\($\\| $\\|\t\\| \\)\\)[ \t\n]*")
- (define-key web-mode-map "\C-c."
'hui-select-goto-matching-tag))))
+ (let (hook-sym syntax-table keymap mode-str)
+ (mapc (lambda (mode)
+ (setq mode-str (symbol-name mode)
+ hook-sym (intern (concat mode-str "-hook"))
+ syntax-table-sym (intern (concat mode-str "-syntax-table"))
+ keymap-sym (intern (concat mode-str "-map")))
+ (var:add-and-run-hook hook-sym
+ `(lambda ()
+ (let ((syntax-table (symbol-value
',syntax-table-sym))
+ (keymap (symbol-value
',keymap-sym)))
+ (modify-syntax-entry ?<
"(>" syntax-table)
+ (modify-syntax-entry ?>
")<" syntax-table)
+ (modify-syntax-entry ?\{
"\(\}" syntax-table)
+ (modify-syntax-entry ?\}
"\)\{" syntax-table)
+ (modify-syntax-entry ?\"
"\"" syntax-table)
+ (modify-syntax-entry ?= "."
syntax-table)
+ (modify-syntax-entry ?. "_"
syntax-table)
+ (setq sentence-end "\\([^
\t\n\r>]<\\|>\\(<[^>]*>\\)*\\|[.?!][]\"')}]*\\($\\| $\\|\t\\| \\)\\)[ \t\n]*")
+ (define-key keymap "\C-c."
'hui-select-goto-matching-tag))))
+ (unless (eq mode 'web-mode)
+ (var:add-and-run-hook
+ hook-sym (lambda ()
+ (make-local-variable 'comment-start)
+ (make-local-variable 'comment-end)
+ (setq comment-start "<!--" comment-end
"-->")
+ (make-local-variable 'sentence-end)))))
+ hui-select-markup-modes)))
(defun hui-select-get-region-boundaries ()
"Return the (START . END) boundaries of region for `hui-select-thing'."
(or (hui-select-boundaries (point))
(when (eq hui-select-previous 'punctuation)
- (hui-select-word (point)))))
+ (hui-select-word (point)))))
;;;###autoload
(defun hui-select-get-region ()
@@ -329,26 +330,26 @@ If `hui-select-display-type' is non-nil and this is called
interactively, the type of selection is displayed in the minibuffer."
(interactive
(cond ((and (fboundp 'use-region-p) (use-region-p))
- nil)
- ((and (boundp 'transient-mark-mode) transient-mark-mode mark-active)
- nil)
- (t
- ;; Reset selection based on the syntax of character at point.
- (hui-select-reset)
- nil)))
+ nil)
+ ((and (boundp 'transient-mark-mode) transient-mark-mode
mark-active)
+ nil)
+ (t
+ ;; Reset selection based on the syntax of character at point.
+ (hui-select-reset)
+ nil)))
(let ((region (hui-select-get-region-boundaries)))
(unless region
(when (eq hui-select-previous 'punctuation)
- (setq region (hui-select-word (point)))))
+ (setq region (hui-select-word (point)))))
(when region
(goto-char (car region))
(set-mark (cdr region))
- (if (fboundp 'activate-region) (activate-region))
- (if (and (boundp 'transient-mark-mode)
- transient-mark-mode)
- (setq mark-active t))
+ (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))
+ (message "%s" hui-select-previous))
(run-hooks 'hui-select-thing-hook)
t)))
@@ -362,18 +363,18 @@ displayed in the minibuffer."
(interactive "@e")
(mouse-set-point event)
(cond ((and (eq hui-select-prior-point (point))
- (eq hui-select-prior-buffer (current-buffer)))
- ;; Prior click was at the same point as before, so enlarge
- ;; selection to the next bigger item.
- (let ((select-active-regions t)) ;; Automatically copy active
- ;; region to PRIMARY inter-program selection.
- (when (hui-select-bigger-thing)
- (and (called-interactively-p 'interactive) hui-select-display-type
- (message "%s" hui-select-previous))))
- t)
- (t (setq this-command 'mouse-start-selection)
- (hui-select-reset)
- (hui-select-thing-with-mouse event))))
+ (eq hui-select-prior-buffer (current-buffer)))
+ ;; Prior click was at the same point as before, so enlarge
+ ;; selection to the next bigger item.
+ (let ((select-active-regions t)) ;; Automatically copy active
+ ;; region to PRIMARY inter-program selection.
+ (when (hui-select-bigger-thing)
+ (and (called-interactively-p 'interactive)
hui-select-display-type
+ (message "%s" hui-select-previous))))
+ t)
+ (t (setq this-command 'mouse-start-selection)
+ (hui-select-reset)
+ (hui-select-thing-with-mouse event))))
;;;###autoload
(defun hui-select-goto-matching-tag ()
@@ -384,13 +385,13 @@ does not have a `>' terminator character."
(interactive)
(when (memq major-mode hui-select-markup-modes)
(let ((result)
- ;; Assume case of tag names is irrelevant.
- (case-fold-search t)
- (opoint (point))
- (tag)
- end-point
- start-regexp
- end-regexp)
+ ;; Assume case of tag names is irrelevant.
+ (case-fold-search t)
+ (opoint (point))
+ (tag)
+ end-point
+ start-regexp
+ end-regexp)
;; Leave point at the start of the tag that point is within or that
;; follows point.
@@ -399,86 +400,86 @@ does not have a `>' terminator character."
((looking-at "<[^<> \t\n\r]"))
;; Point was within a tag.
((and (re-search-backward "[<>]" nil t)
- (looking-at "<[^<> \t\n\r]")))
+ (looking-at "<[^<> \t\n\r]")))
;; Move to following tag.
((and (re-search-forward "<" nil t)
- (progn (backward-char 1)
- (looking-at "<[^<> \t\n\r]"))))
+ (progn (backward-char 1)
+ (looking-at "<[^<> \t\n\r]"))))
;; No tag follows point.
(t (error "(hui-select-goto-matching-tag): No tag found after point")))
(if (catch 'done
- (cond
- ;; Beginning of a tag pair
- ((looking-at "<[^/][^<> \t\n\r]*")
- (setq tag (match-string 0)
- start-regexp (regexp-quote tag)
- end-regexp (concat "</" (substring start-regexp 1)))
- ;; Skip over nested tags.
- (let ((count 0)
- (regexp (concat start-regexp "\\|" end-regexp))
- match-point)
- (while (and (>= count 0)
- (re-search-forward regexp nil t))
- (setq match-point (match-beginning 0))
- (if (/= (char-after (1+ (match-beginning 0))) ?/)
- ;; Start tag
- (setq count (1+ count))
- ;; End tag
- (setq end-point (point))
- (if (or (not (re-search-forward "[<>]" nil t))
- (= (preceding-char) ?<))
- ;; No terminator character `>' for end tag
- (progn (setq result end-point)
- (throw 'done nil)))
- (setq count (1- count))
- (when (zerop count)
- (goto-char match-point)
- (setq result t)
- (throw 'done result))))))
- ;;
- ;; End of a tag pair
- ((or (looking-at "</[^\> \t\n\r]+")
- (and (skip-chars-backward "<")
- (looking-at "</[^\> \t\n\r]+")))
- (goto-char (match-end 0))
- (setq tag (match-string 0)
- end-regexp (regexp-quote tag)
- start-regexp (concat "<" (substring end-regexp 2)))
- (setq end-point (point))
- (when (or (not (re-search-forward "[<>]" nil t))
- (= (preceding-char) ?<))
- ;; No terminator character `>' for end tag
- (setq result end-point)
- (throw 'done nil))
- ;; Skip over nested tags.
- (let ((count 0)
- (regexp (concat start-regexp "\\|" end-regexp)))
- (while (and (>= count 0)
- (re-search-backward regexp nil t))
- (if (= (char-after (1+ (point))) ?/)
- ;; End tag
- (setq count (1+ count))
- ;; Start tag
- (setq count (1- count))
- (when (zerop count)
- (setq result t)
- (throw 'done t))))))))
- nil
- ;; Didn't find matching tag.
- (goto-char opoint))
+ (cond
+ ;; Beginning of a tag pair
+ ((looking-at "<[^/][^<> \t\n\r]*")
+ (setq tag (match-string 0)
+ start-regexp (regexp-quote tag)
+ end-regexp (concat "</" (substring start-regexp
1)))
+ ;; Skip over nested tags.
+ (let ((count 0)
+ (regexp (concat start-regexp "\\|" end-regexp))
+ match-point)
+ (while (and (>= count 0)
+ (re-search-forward regexp nil t))
+ (setq match-point (match-beginning 0))
+ (if (/= (char-after (1+ (match-beginning 0))) ?/)
+ ;; Start tag
+ (setq count (1+ count))
+ ;; End tag
+ (setq end-point (point))
+ (if (or (not (re-search-forward "[<>]" nil t))
+ (= (preceding-char) ?<))
+ ;; No terminator character `>' for end tag
+ (progn (setq result end-point)
+ (throw 'done nil)))
+ (setq count (1- count))
+ (when (zerop count)
+ (goto-char match-point)
+ (setq result t)
+ (throw 'done result))))))
+ ;;
+ ;; End of a tag pair
+ ((or (looking-at "</[^\> \t\n\r]+")
+ (and (skip-chars-backward "<")
+ (looking-at "</[^\> \t\n\r]+")))
+ (goto-char (match-end 0))
+ (setq tag (match-string 0)
+ end-regexp (regexp-quote tag)
+ start-regexp (concat "<" (substring end-regexp
2)))
+ (setq end-point (point))
+ (when (or (not (re-search-forward "[<>]" nil t))
+ (= (preceding-char) ?<))
+ ;; No terminator character `>' for end tag
+ (setq result end-point)
+ (throw 'done nil))
+ ;; Skip over nested tags.
+ (let ((count 0)
+ (regexp (concat start-regexp "\\|" end-regexp)))
+ (while (and (>= count 0)
+ (re-search-backward regexp nil t))
+ (if (= (char-after (1+ (point))) ?/)
+ ;; End tag
+ (setq count (1+ count))
+ ;; Start tag
+ (setq count (1- count))
+ (when (zerop count)
+ (setq result t)
+ (throw 'done t))))))))
+ nil
+ ;; Didn't find matching tag.
+ (goto-char opoint))
(cond ((integerp result)
- (goto-char result)
- (error "(hui-select-goto-matching-tag): Add a terminator character
for this end <tag>"))
- ((null tag)
- (error "(hui-select-goto-matching-tag): No <tag> following point"))
- ((null result)
- (when (called-interactively-p 'interactive)
- (beep)
- (message "(hui-select-goto-matching-tag): No matching tag for
%s>" tag)
- result))
- (t result)))))
+ (goto-char result)
+ (error "(hui-select-goto-matching-tag): Add a terminator
character for this end <tag>"))
+ ((null tag)
+ (error "(hui-select-goto-matching-tag): No <tag> following
point"))
+ ((null result)
+ (when (called-interactively-p 'interactive)
+ (beep)
+ (message "(hui-select-goto-matching-tag): No matching tag
for %s>" tag)
+ result))
+ (t result)))))
;;;###autoload
(defun hui-select-and-copy-thing ()
@@ -510,10 +511,10 @@ The character at POS is selected if no other thing is
matched."
((eq hui-select-previous 'char)
(hui-select-syntactical-region pos))
((and (car hui-select-old-region)
- (memq hui-select-previous
- '(sexp sexp-start sexp-end sexp-up))
- (hui-select-sexp-up pos)
- (hui-select-region-bigger-p hui-select-old-region hui-select-region))
+ (memq hui-select-previous
+ '(sexp sexp-start sexp-end sexp-up))
+ (hui-select-sexp-up pos)
+ (hui-select-region-bigger-p hui-select-old-region
hui-select-region))
hui-select-region)
;;
;; In the general case, we can't know ahead of time what the next
@@ -521,42 +522,42 @@ The character at POS is selected if no other thing is
matched."
;; the best fit. This means that dynamically, the order of type
;; selection will change based on the buffer context.
(t (let ((min-region (1+ (- (point-max) (point-min))))
- (result)
- region region-size)
- (mapc
- (lambda (sym-func)
- (setq region
- (if (car (cdr sym-func))
- (funcall (car (cdr sym-func)) pos)))
- (if (and region (car region)
- (hui-select-region-bigger-p
- hui-select-old-region region)
- (setq region-size
- (- (cdr region) (car region)))
- (< region-size min-region))
- (setq min-region region-size
- result
- (list
- ;; The actual selection type is
- ;; sometimes different than the one we
- ;; originally tried, so recompute it here.
- (car (assq hui-select-previous
- hui-select-bigger-alist))
- (car region) (cdr region)))))
- hui-select-bigger-alist)
- (if result
- ;; Returns hui-select-region
- (progn (setq hui-select-previous (car result))
- (hui-select-set-region (nth 1 result) (nth 2 result)))
- ;;
- ;; Restore prior selection type since we failed to find a
- ;; new one.
- (setq hui-select-previous prior-type)
- (beep)
- (message
- "(hui-select-boundaries): `%s' is the largest selectable region"
- hui-select-previous)
- nil))))))
+ (result)
+ region region-size)
+ (mapc
+ (lambda (sym-func)
+ (setq region
+ (if (car (cdr sym-func))
+ (funcall (car (cdr sym-func)) pos)))
+ (if (and region (car region)
+ (hui-select-region-bigger-p
+ hui-select-old-region region)
+ (setq region-size
+ (- (cdr region) (car region)))
+ (< region-size min-region))
+ (setq min-region region-size
+ result
+ (list
+ ;; The actual selection type is
+ ;; sometimes different than the one we
+ ;; originally tried, so recompute it here.
+ (car (assq hui-select-previous
+ hui-select-bigger-alist))
+ (car region) (cdr region)))))
+ hui-select-bigger-alist)
+ (if result
+ ;; Returns hui-select-region
+ (progn (setq hui-select-previous (car result))
+ (hui-select-set-region (nth 1 result) (nth 2
result)))
+ ;;
+ ;; Restore prior selection type since we failed to find a
+ ;; new one.
+ (setq hui-select-previous prior-type)
+ (beep)
+ (message
+ "(hui-select-boundaries): `%s' is the largest selectable
region"
+ hui-select-previous)
+ nil))))))
;;;###autoload
(defun hui-select-double-click-hook (event click-count)
@@ -565,9 +566,9 @@ If the double-click occurs at the same point as the last
double-click, select
the next larger syntactic structure. If `hui-select-display-type' is non-nil,
the type of selection is displayed in the minibuffer."
(cond ((/= click-count 2)
- ;; Return nil so any other hooks are performed.
- nil)
- (t (hui-select-thing-with-mouse event))))
+ ;; Return nil so any other hooks are performed.
+ nil)
+ (t (hui-select-thing-with-mouse event))))
(defun hui-select-syntactical-region (pos)
"Return the (start . end) of a syntactically defined region based upon the
buffer position POS.
@@ -592,14 +593,14 @@ If an error occurs during syntax scanning, it returns
nil."
(if (save-excursion (goto-char pos) (eolp))
(hui-select-line pos)
(let* ((syntax (char-syntax (or (char-after pos) (char-before pos))))
- (pair (assq syntax hui-select-syntax-alist)))
+ (pair (assq syntax hui-select-syntax-alist)))
(cond ((and pair
- (or hui-select-whitespace
- (not (eq (cdr pair) 'hui-select-whitespace))))
- (funcall (cdr pair) pos))
- (hui-select-char-p
- (setq hui-select-previous 'char)
- (hui-select-set-region pos (1+ pos)))))))
+ (or hui-select-whitespace
+ (not (eq (cdr pair) 'hui-select-whitespace))))
+ (funcall (cdr pair) pos))
+ (hui-select-char-p
+ (setq hui-select-previous 'char)
+ (hui-select-set-region pos (1+ pos)))))))
(defun hui-select-at-delimited-thing-p ()
"Return non-nil if point is at a markup pair, list, array/vector, set,
comment or string, else nil.
@@ -609,14 +610,14 @@ Ignores any match if on an Emacs button and instead
returns nil."
(unless (button-at (point))
(setq hkey-value (hui-select-delimited-thing-call #'hui-select-at-p))
(cond ((eq hkey-value 'hui-select-punctuation)
- (if (hui-select-comment (point))
- (setq hkey-value #'hui-select-comment)
- ;; Else here used to be `hkey-value' but then we are returning a
- ;; value for any punctuation character without knowing if
- ;; it is part of a delimited thing. Nil should be the
- ;; right thing here.
- nil))
- (t hkey-value))))
+ (if (hui-select-comment (point))
+ (setq hkey-value #'hui-select-comment)
+ ;; Else here used to be `hkey-value' but then we are returning
a
+ ;; value for any punctuation character without knowing if
+ ;; it is part of a delimited thing. Nil should be the
+ ;; right thing here.
+ nil))
+ (t hkey-value))))
(defun hui-select-delimited-thing ()
"Select a markup pair, list, array/vector, set, comment or string at point
and return t, else nil."
@@ -625,22 +626,22 @@ Ignores any match if on an Emacs button and instead
returns nil."
;; If selected region is followed by only whitespace and then a
;; newline, add the newline to the region.
(if (use-region-p)
- (if (> (mark) (point))
- (save-excursion
- (goto-char (mark))
- (skip-chars-forward " \t")
- (and (char-after) (= ?\n (char-after))
- (set-mark (1+ (point)))))
- (if (looking-at "[ \t]*\n")
- (goto-char (match-end 0)))))))
+ (if (> (mark) (point))
+ (save-excursion
+ (goto-char (mark))
+ (skip-chars-forward " \t")
+ (and (char-after) (= ?\n (char-after))
+ (set-mark (1+ (point)))))
+ (if (looking-at "[ \t]*\n")
+ (goto-char (match-end 0)))))))
(defun hui-select-at-delimited-sexp-p ()
(unless (eolp)
(let ((syn-before (if (char-before) (char-syntax (char-before)) 0))
- (syn-after (if (char-after) (char-syntax (char-after)) 0)))
+ (syn-after (if (char-after) (char-syntax (char-after)) 0)))
(or (and (/= syn-before ?\\) (or (= syn-after ?\() (= syn-after ?\))))
- (and (= syn-before ?\)) (char-before (1- (point)))
- (/= ?\\ (char-syntax (char-before (1- (point))))))))))
+ (and (= syn-before ?\)) (char-before (1- (point)))
+ (/= ?\\ (char-syntax (char-before (1- (point))))))))))
(defun hui-select-mark-delimited-sexp ()
"If point is before or after an sexp and not at an end of line, then
deactivate the mark and mark the sexp.
@@ -649,22 +650,22 @@ Return t if marked, nil otherwise. If any error occurs
such as
nil."
(interactive)
(let ((mark-sexp-func (lambda ()
- (if (region-active-p) (deactivate-mark))
- (mark-sexp) t)))
+ (if (region-active-p) (deactivate-mark))
+ (mark-sexp) t)))
(condition-case nil
- (let ((syn-after (char-syntax (char-after)))
- syn-before)
- (cond ((eq syn-after ?\()
- (funcall mark-sexp-func))
- ((eq syn-after ?\))
- (forward-char 1)
- (backward-sexp)
- (funcall mark-sexp-func))
- ((and (not (eolp))
- (setq syn-before (char-syntax (char-before)))
- (eq syn-before ?\)))
- (backward-sexp)
- (funcall mark-sexp-func))))
+ (let ((syn-after (char-syntax (char-after)))
+ syn-before)
+ (cond ((eq syn-after ?\()
+ (funcall mark-sexp-func))
+ ((eq syn-after ?\))
+ (forward-char 1)
+ (backward-sexp)
+ (funcall mark-sexp-func))
+ ((and (not (eolp))
+ (setq syn-before (char-syntax (char-before)))
+ (eq syn-before ?\)))
+ (backward-sexp)
+ (funcall mark-sexp-func))))
(error nil))))
;;; ************************************************************************
@@ -675,23 +676,23 @@ Return t if marked, nil otherwise. If any error occurs
such as
"Return non-nil if on a blank line or a comment start or end line.
Assumes point is before any non-whitespace character on the line."
(let ((comment-end-p (and (stringp comment-end)
- (not (string-equal comment-end "")))))
+ (not (string-equal comment-end "")))))
(if (looking-at
- (concat "\\s-*$\\|\\s-*\\(//\\|/\\*\\|.*\\*/"
- (if comment-start
- (concat
- "\\|" (regexp-quote comment-start)))
- (if comment-end-p
- (concat
- "\\|.*" (regexp-quote comment-end)))
- "\\)"))
- (or (not (and comment-start comment-end-p))
- ;; Ignore start and end of comments that
- ;; follow non-commented text.
- (not (looking-at
- (format ".*\\S-.*%s.*%s"
- (regexp-quote comment-start)
- (regexp-quote comment-end))))))))
+ (concat "\\s-*$\\|\\s-*\\(//\\|/\\*\\|.*\\*/"
+ (if comment-start
+ (concat
+ "\\|" (regexp-quote comment-start)))
+ (if comment-end-p
+ (concat
+ "\\|.*" (regexp-quote comment-end)))
+ "\\)"))
+ (or (not (and comment-start comment-end-p))
+ ;; Ignore start and end of comments that
+ ;; follow non-commented text.
+ (not (looking-at
+ (format ".*\\S-.*%s.*%s"
+ (regexp-quote comment-start)
+ (regexp-quote comment-end))))))))
(defun hui-select-back-to-indentation ()
"Move point to the first non-whitespace character on this line and return
point.
@@ -699,9 +700,9 @@ This respects the current syntax table definition of
whitespace, whereas
`back-to-indentation' does not. This is relevant in literate programming and
mail and news reply modes."
(goto-char (min (progn (end-of-line) (point))
- (progn (beginning-of-line)
- (skip-syntax-forward " ")
- (point)))))
+ (progn (beginning-of-line)
+ (skip-syntax-forward " ")
+ (point)))))
(defun hui-select-bigger-thing ()
"Select a bigger object where point is."
@@ -713,43 +714,43 @@ mail and news reply modes."
"Select a markup pair, list, vector/array, set, comment or string at point
and return non-nil, else nil.
The non-nil value returned is the function to call to select that syntactic
unit."
(unless (and (memq major-mode hui-select-ignore-quoted-sexp-modes)
- ;; Ignore quoted identifier sexpressions, like #'function
- (char-after) (memq (char-after) '(?# ?\')))
- (let ((hui-select-char-p)
- (hui-select-whitespace)
- (hui-select-syntax-alist '((?\" . hui-select-string)
- (?\( . hui-select-sexp-start)
- (?\$ . hui-select-sexp-start)
- (?\' . hui-select-sexp-start)
- (?\) . hui-select-sexp-end)
- (?\< . hui-select-comment)
- ;; Punctuation needed to match
- ;; multi-char comment delimiters
- (?\. . hui-select-punctuation))))
- (hui-select-reset)
- (funcall func))))
+ ;; Ignore quoted identifier sexpressions, like #'function
+ (char-after) (memq (char-after) '(?# ?\')))
+ (let ((hui-select-char-p)
+ (hui-select-whitespace)
+ (hui-select-syntax-alist '((?\" . hui-select-string)
+ (?\( .
hui-select-sexp-start)
+ (?\$ .
hui-select-sexp-start)
+ (?\' .
hui-select-sexp-start)
+ (?\) . hui-select-sexp-end)
+ (?\< . hui-select-comment)
+ ;; Punctuation needed to
match
+ ;; multi-char comment
delimiters
+ (?\. .
hui-select-punctuation))))
+ (hui-select-reset)
+ (funcall func))))
(defun hui-select-region-bigger-p (old-region new-region)
"Return t if OLD-REGION is smaller than NEW-REGION and NEW-REGION partially
overlaps OLD-REGION, or if OLD-REGION is uninitialized."
(if (null (car old-region))
t
(and (> (abs (- (cdr new-region) (car new-region)))
- (abs (- (cdr old-region) (car old-region))))
- ;; Ensure the two regions intersect.
- (or (and (<= (min (cdr new-region) (car new-region))
- (min (cdr old-region) (car old-region)))
- (> (max (cdr new-region) (car new-region))
- (min (cdr old-region) (car old-region))))
- (and (> (min (cdr new-region) (car new-region))
- (min (cdr old-region) (car old-region)))
- (<= (min (cdr new-region) (car new-region))
- (max (cdr old-region) (car old-region))))))))
+ (abs (- (cdr old-region) (car old-region))))
+ ;; Ensure the two regions intersect.
+ (or (and (<= (min (cdr new-region) (car new-region))
+ (min (cdr old-region) (car old-region)))
+ (> (max (cdr new-region) (car new-region))
+ (min (cdr old-region) (car old-region))))
+ (and (> (min (cdr new-region) (car new-region))
+ (min (cdr old-region) (car old-region)))
+ (<= (min (cdr new-region) (car new-region))
+ (max (cdr old-region) (car old-region))))))))
(defun hui-select-reset ()
;; Reset syntactic selection.
(setq hui-select-prior-point (point)
- hui-select-prior-buffer (current-buffer)
- hui-select-previous 'char)
+ hui-select-prior-buffer (current-buffer)
+ hui-select-previous 'char)
(hui-select-set-region nil nil))
(defun hui-select-set-region (beginning end)
@@ -757,13 +758,14 @@ The non-nil value returned is the function to call to
select that syntactic unit
Return the updated cons cell."
(setcar hui-select-region beginning)
(setcdr hui-select-region end)
- (when (and (null beginning) (null end))
+ (unless (or beginning end)
(setcar hui-select-old-region nil)
(setcdr hui-select-old-region nil))
- (if (and (not (eq hui-select-previous 'buffer))
- (integerp beginning) (integerp end)
- (= beginning (point-min)) (= end (point-max)))
- ;; If we selected the whole buffer, make sure that 'thing' type is
'buffer'.
+ (if (and (not (memq hui-select-previous '(buffer markup-pair)))
+ (integerp beginning) (integerp end)
+ (= beginning (point-min)) (= end (point-max)))
+ ;; If we selected the whole buffer and not matching a markup-pair,
+ ;; make sure that 'thing' type is 'buffer'.
nil
hui-select-region))
@@ -773,41 +775,43 @@ Positions include delimiters. String is delimited by
double quotes unless
optional START-DELIM and END-DELIM (strings) are given.
Returns nil if not within a string."
(let ((opoint (point))
- (count 0)
- bol start delim-regexp start-regexp end-regexp)
+ (count 0)
+ bol start delim-regexp start-regexp end-regexp)
(or start-delim (setq start-delim "\""))
(or end-delim (setq end-delim "\""))
;; Special case for the empty string.
(if (looking-at (concat (regexp-quote start-delim)
- (regexp-quote end-delim)))
- (hui-select-set-region (point) (match-end 0))
+ (regexp-quote end-delim)))
+ (hui-select-set-region (point) (match-end 0))
(setq start-regexp (concat "\\(^\\|[^\\]\\)\\("
- (regexp-quote start-delim) "\\)")
- end-regexp (concat "[^\\]\\(" (regexp-quote end-delim) "\\)")
- delim-regexp (concat start-regexp "\\|" end-regexp))
+ (regexp-quote start-delim)
"\\)")
+ end-regexp (concat "[^\\]\\(" (regexp-quote end-delim) "\\)")
+ delim-regexp (concat start-regexp "\\|" end-regexp))
(save-excursion
- (beginning-of-line)
- (setq bol (point))
- (while (re-search-forward delim-regexp opoint t)
- (setq count (1+ count))
- ;; This is so we don't miss the closing delimiter of an empty
- ;; string.
- (if (and (= (point) (1+ bol))
- (looking-at (regexp-quote end-delim)))
+ (beginning-of-line)
+ (setq bol (point))
+ (while (re-search-forward delim-regexp opoint t)
(setq count (1+ count))
- (if (bobp) nil (backward-char 1))))
- (goto-char opoint)
- ;; If found an even # of starting and ending delimiters before
- ;; opoint, then opoint is at the start of a string, where we want it.
- (if (zerop (mod count 2))
- (if (bobp) nil (backward-char 1))
- (re-search-backward start-regexp nil t))
- ;; Point is now before the start of the string.
- (if (re-search-forward start-regexp nil t)
- (progn
- (setq start (match-beginning 2))
- (if (re-search-forward end-regexp nil t)
- (hui-select-set-region start (point)))))))))
+ ;; This is so we don't miss the closing delimiter of an empty
+ ;; string.
+ (if (and (= (point) (1+ bol))
+ (looking-at (regexp-quote end-delim)))
+ (setq count (1+ count))
+ (unless (bobp)
+ (backward-char 1))))
+ (goto-char opoint)
+ ;; If found an even # of starting and ending delimiters before
+ ;; opoint, then opoint is at the start of a string, where we want
it.
+ (if (zerop (mod count 2))
+ (unless (bobp)
+ (backward-char 1))
+ (re-search-backward start-regexp nil t))
+ ;; Point is now before the start of the string.
+ (if (re-search-forward start-regexp nil t)
+ (progn
+ (setq start (match-beginning 2))
+ (when (re-search-forward end-regexp nil t)
+ (hui-select-set-region start (point)))))))))
;;;
;;; Code selections
@@ -822,98 +826,98 @@ list, hui-select-brace-modes."
(save-excursion
(goto-char pos)
(let ((at-def-brace
- (or (looking-at "^\{") (looking-at "^\}")
- ;; Handle stupid old C-style and new Java
- ;; style of putting braces at the end of
- ;; lines.
- (and (= (following-char) ?\{)
- (stringp defun-prompt-regexp)
- (save-excursion
- (beginning-of-line)
- (looking-at defun-prompt-regexp)))
- (and (= (following-char) ?\})
- (stringp defun-prompt-regexp)
- (condition-case ()
- (progn
- ;; Leave point at opening brace.
- (goto-char
- (scan-sexps (1+ (point)) -1))
- ;; Test if these are defun braces.
- (save-excursion
- (beginning-of-line)
- (looking-at defun-prompt-regexp)))
- (error nil)))))
- eod)
- (if (or at-def-brace
- ;; At the start of a definition:
- ;; Must be at the first non-whitespace character in the line.
- (and (= (point) (save-excursion
(hui-select-back-to-indentation)))
- ;; Must be on an alpha or symbol-constituent character.
- ;; Also allow ~ for C++ destructors.
- (looking-at "[a-zA-z~]\\|\\s_")
- ;; Previous line, if any, must be blank or a comment
- ;; start or end or we must be looking at
- ;; `defun-prompt-regexp' when at the beginning of the line.
- (or (and (stringp defun-prompt-regexp)
- (save-excursion
- (beginning-of-line)
- (looking-at defun-prompt-regexp)))
- (save-excursion
- (if (/= (forward-line -1) 0)
- t
- (hui-select-at-blank-line-or-comment))))))
- (progn
- (setq hui-select-previous 'brace-def-or-declaration)
- ;; Handle declarations and definitions embedded within classes.
- (if (and (eq (following-char) ?\{)
- (/= (point) (save-excursion
- (hui-select-back-to-indentation))))
- (setq at-def-brace nil))
- ;;
- (if at-def-brace nil (beginning-of-line))
- (if (and (not at-def-brace)
- (stringp defun-prompt-regexp)
- (or (looking-at defun-prompt-regexp)
- ;; For Java classes mainly
- (looking-at "[a-zA-Z_$. \t]+\\s-*\{")))
- ;; Mark the declaration or definition
- (hui-select-set-region
- (point)
- (progn (goto-char (match-end 0))
- (if (eq (preceding-char) ?\{)
- (backward-char 1))
- (if (eq (following-char) ?\{)
- (forward-list 1)
- (search-forward ";" nil t))
- (skip-chars-forward " \t")
- (skip-chars-forward "\n")
- (if (looking-at "^\\s-*$")
- (forward-line 1))
- (point)))
- ;; Mark function definitions only
- (setq eod (save-excursion
- (condition-case ()
- (progn
- (if (and (eq major-mode 'java-mode)
- (fboundp 'id-java-end-of-defun))
- (id-java-end-of-defun)
- (end-of-defun))
- (if (looking-at "^\\s-*$")
- (forward-line 1))
- (point))
- (error (point-max)))))
- (if (= (following-char) ?\})
- ;; Leave point at opening brace.
- (goto-char (scan-sexps (1+ (point)) -1)))
- (if (= (following-char) ?\{)
- (progn
- (while (and (zerop (forward-line -1))
- (not (hui-select-at-blank-line-or-comment))))
- (if (hui-select-at-blank-line-or-comment)
- (forward-line 1))))
- ;; Mark the whole definition
- (setq hui-select-previous 'brace-def-or-declaration)
- (hui-select-set-region (point) eod))))))))
+ (or (looking-at "^\{") (looking-at "^\}")
+ ;; Handle stupid old C-style and new Java
+ ;; style of putting braces at the end of
+ ;; lines.
+ (and (= (following-char) ?\{)
+ (stringp defun-prompt-regexp)
+ (save-excursion
+ (beginning-of-line)
+ (looking-at defun-prompt-regexp)))
+ (and (= (following-char) ?\})
+ (stringp defun-prompt-regexp)
+ (condition-case ()
+ (progn
+ ;; Leave point at opening brace.
+ (goto-char
+ (scan-sexps (1+ (point)) -1))
+ ;; Test if these are defun braces.
+ (save-excursion
+ (beginning-of-line)
+ (looking-at defun-prompt-regexp)))
+ (error nil)))))
+ eod)
+ (if (or at-def-brace
+ ;; At the start of a definition:
+ ;; Must be at the first non-whitespace character in the
line.
+ (and (= (point) (save-excursion
(hui-select-back-to-indentation)))
+ ;; Must be on an alpha or symbol-constituent
character.
+ ;; Also allow ~ for C++ destructors.
+ (looking-at "[a-zA-z~]\\|\\s_")
+ ;; Previous line, if any, must be blank or a
comment
+ ;; start or end or we must be looking at
+ ;; `defun-prompt-regexp' when at the beginning of
the line.
+ (or (and (stringp defun-prompt-regexp)
+ (save-excursion
+ (beginning-of-line)
+ (looking-at
defun-prompt-regexp)))
+ (save-excursion
+ (if (/= (forward-line -1) 0)
+ t
+
(hui-select-at-blank-line-or-comment))))))
+ (progn
+ (setq hui-select-previous 'brace-def-or-declaration)
+ ;; Handle declarations and definitions embedded within
classes.
+ (if (and (eq (following-char) ?\{)
+ (/= (point) (save-excursion
+
(hui-select-back-to-indentation))))
+ (setq at-def-brace nil))
+ ;;
+ (if at-def-brace nil (beginning-of-line))
+ (if (and (not at-def-brace)
+ (stringp defun-prompt-regexp)
+ (or (looking-at defun-prompt-regexp)
+ ;; For Java classes mainly
+ (looking-at "[a-zA-Z_$. \t]+\\s-*\{")))
+ ;; Mark the declaration or definition
+ (hui-select-set-region
+ (point)
+ (progn (goto-char (match-end 0))
+ (if (eq (preceding-char) ?\{)
+ (backward-char 1))
+ (if (eq (following-char) ?\{)
+ (forward-list 1)
+ (search-forward ";" nil t))
+ (skip-chars-forward " \t")
+ (skip-chars-forward "\n")
+ (if (looking-at "^\\s-*$")
+ (forward-line 1))
+ (point)))
+ ;; Mark function definitions only
+ (setq eod (save-excursion
+ (condition-case ()
+ (progn
+ (if (and (eq major-mode
'java-mode)
+ (fboundp
'id-java-end-of-defun))
+ (id-java-end-of-defun)
+ (end-of-defun))
+ (if (looking-at "^\\s-*$")
+ (forward-line 1))
+ (point))
+ (error (point-max)))))
+ (if (= (following-char) ?\})
+ ;; Leave point at opening brace.
+ (goto-char (scan-sexps (1+ (point)) -1)))
+ (if (= (following-char) ?\{)
+ (progn
+ (while (and (zerop (forward-line -1))
+ (not
(hui-select-at-blank-line-or-comment))))
+ (if (hui-select-at-blank-line-or-comment)
+ (forward-line 1))))
+ ;; Mark the whole definition
+ (setq hui-select-previous 'brace-def-or-declaration)
+ (hui-select-set-region (point) eod))))))))
(defun hui-select-indent-def (pos)
"If POS is at the first alpha character on a line, return (start . end)
region.
@@ -925,85 +929,85 @@ list, hui-select-indent-modes."
(save-excursion
(goto-char pos)
(if (and
- ;; Use this function only if point is on the first non-blank
- ;; character of a block, whatever a block is for the current
- ;; mode.
- (cond ((eq major-mode 'kotl-mode)
- (and (looking-at "[1-9*]") (not (kview:valid-position-p))))
- ((or (eq major-mode 'outline-mode) selective-display)
- (save-excursion (beginning-of-line)
- (looking-at outline-regexp)))
- ;; After indent in any other mode, must be on an alpha
- ;; or symbol-constituent character.
- (t (looking-at "[a-zA-z]\\|\\s_")))
- ;; Must be at the first non-whitespace character in the line.
- (= (point) (save-excursion (hui-select-back-to-indentation))))
- (let* ((start-col (current-column))
- (opoint (if (eq major-mode 'kotl-mode)
- (progn (kotl-mode:to-valid-position) (point))
- (beginning-of-line) (point))))
- (while
- (and (zerop (forward-line 1))
- (bolp)
- (or (progn (hui-select-back-to-indentation)
- (> (current-column) start-col))
- ;; If in a text mode, allow outdenting, otherwise
- ;; only include special lines here indented to the
- ;; same point as the original line.
- (and (or (memq major-mode hui-select-text-modes)
- (= (current-column) start-col))
- (looking-at
- (or (car (cdr
- (assq
- major-mode
-
hui-select-indent-non-end-regexp-alist)))
- "\\'"))))))
- (if (and (looking-at
- (or (car (cdr (assq major-mode
- hui-select-indent-end-regexp-alist)))
- "\\'"))
- (or (memq major-mode hui-select-text-modes)
- (= (current-column) start-col)))
- (forward-line 1))
- (beginning-of-line)
- ;; Mark the whole definition
- (setq hui-select-previous 'indent-def)
- (hui-select-set-region opoint (point)))))))
+ ;; Use this function only if point is on the first non-blank
+ ;; character of a block, whatever a block is for the current
+ ;; mode.
+ (cond ((eq major-mode 'kotl-mode)
+ (and (looking-at "[1-9*]") (not
(kview:valid-position-p))))
+ ((or (eq major-mode 'outline-mode) selective-display)
+ (save-excursion (beginning-of-line)
+ (looking-at outline-regexp)))
+ ;; After indent in any other mode, must be on an alpha
+ ;; or symbol-constituent character.
+ (t (looking-at "[a-zA-z]\\|\\s_")))
+ ;; Must be at the first non-whitespace character in the line.
+ (= (point) (save-excursion (hui-select-back-to-indentation))))
+ (let* ((start-col (current-column))
+ (opoint (if (eq major-mode 'kotl-mode)
+ (progn (kotl-mode:to-valid-position)
(point))
+ (beginning-of-line) (point))))
+ (while
+ (and (zerop (forward-line 1))
+ (bolp)
+ (or (progn (hui-select-back-to-indentation)
+ (> (current-column) start-col))
+ ;; If in a text mode, allow outdenting,
otherwise
+ ;; only include special lines here
indented to the
+ ;; same point as the original line.
+ (and (or (memq major-mode
hui-select-text-modes)
+ (= (current-column)
start-col))
+ (looking-at
+ (or (car (cdr
+ (assq
+ major-mode
+
hui-select-indent-non-end-regexp-alist)))
+ "\\'"))))))
+ (if (and (looking-at
+ (or (car (cdr (assq major-mode
+
hui-select-indent-end-regexp-alist)))
+ "\\'"))
+ (or (memq major-mode hui-select-text-modes)
+ (= (current-column) start-col)))
+ (forward-line 1))
+ (beginning-of-line)
+ ;; Mark the whole definition
+ (setq hui-select-previous 'indent-def)
+ (hui-select-set-region opoint (point)))))))
(defun hui-select-symbol (pos)
"Return (start . end) of a symbol at POS."
(or (hui-select-markup-pair pos)
- ;; Test for indented def here since might be on an '*' representing
- ;; an outline entry, in which case we mark entries as indented blocks.
- (hui-select-indent-def pos)
- (save-excursion
- (if (memq (char-syntax (if (eobp) (preceding-char) (char-after pos)))
- '(?w ?_))
- (progn (setq hui-select-previous 'symbol)
- (condition-case ()
- (let ((end (scan-sexps pos 1)))
- (hui-select-set-region
- (min pos (scan-sexps end -1)) end))
- (error nil)))))))
+ ;; Test for indented def here since might be on an '*' representing
+ ;; an outline entry, in which case we mark entries as indented blocks.
+ (hui-select-indent-def pos)
+ (save-excursion
+ (if (memq (char-syntax (if (eobp) (preceding-char) (char-after pos)))
+ '(?w ?_))
+ (progn (setq hui-select-previous 'symbol)
+ (condition-case ()
+ (let ((end (scan-sexps pos 1)))
+ (hui-select-set-region
+ (min pos (scan-sexps end -1)) end))
+ (error nil)))))))
(defun hui-select-sexp-start (pos)
"Return (start . end) of sexp starting at POS."
(or (hui-select-markup-pair pos)
(hui-select-brace-def-or-declaration pos)
(save-excursion
- (setq hui-select-previous 'sexp-start)
- (condition-case ()
- (hui-select-set-region pos (scan-sexps pos 1))
- (error nil)))))
+ (setq hui-select-previous 'sexp-start)
+ (condition-case ()
+ (hui-select-set-region pos (scan-sexps pos 1))
+ (error nil)))))
(defun hui-select-sexp-end (pos)
"Return (start . end) of sexp ending at POS."
(or (hui-select-brace-def-or-declaration pos)
(save-excursion
- (setq hui-select-previous 'sexp-end)
- (condition-case ()
- (hui-select-set-region (scan-sexps (1+ pos) -1) (1+ pos))
- (error nil)))))
+ (setq hui-select-previous 'sexp-end)
+ (condition-case ()
+ (hui-select-set-region (scan-sexps (1+ pos) -1) (1+ pos))
+ (error nil)))))
(defun hui-select-sexp (pos)
"Return (start . end) of the sexp that POS is within."
@@ -1011,8 +1015,8 @@ list, hui-select-indent-modes."
(save-excursion
(goto-char pos)
(condition-case ()
- (hui-select-set-region (progn (backward-up-list 1) (point))
- (progn (forward-list 1) (point)))
+ (hui-select-set-region (progn (backward-up-list 1) (point))
+ (progn (forward-list 1) (point)))
(error nil))))
(defun hui-select-sexp-up (pos)
@@ -1024,8 +1028,8 @@ list, hui-select-indent-modes."
(save-excursion
(goto-char pos)
(condition-case ()
- (hui-select-set-region (progn (backward-up-list 1) (point))
- (progn (forward-list 1) (point)))
+ (hui-select-set-region (progn (backward-up-list 1) (point))
+ (progn (forward-list 1) (point)))
(error nil))))
(defun hui-select-preprocessor-def (pos)
@@ -1040,16 +1044,16 @@ included in the list, hui-select-brace-modes."
(save-excursion
(goto-char pos)
(if (and (= (following-char) ?#)
- ;; Must be at the first non-whitespace character in the line.
- (= (point) (save-excursion (hui-select-back-to-indentation))))
- (progn
- ;; Skip past continuation lines that end with a backslash.
- (while (and (looking-at ".*\\\\\\s-*$")
- (zerop (forward-line 1))))
- (forward-line 1)
- ;; Include one trailing blank line, if any.
- (if (looking-at "^[ \t\n\r]*$") (forward-line 1))
- (hui-select-set-region pos (point)))))))
+ ;; Must be at the first non-whitespace character in the line.
+ (= (point) (save-excursion
(hui-select-back-to-indentation))))
+ (progn
+ ;; Skip past continuation lines that end with a backslash.
+ (while (and (looking-at ".*\\\\\\s-*$")
+ (zerop (forward-line 1))))
+ (forward-line 1)
+ ;; Include one trailing blank line, if any.
+ (if (looking-at "^[ \t\n\r]*$") (forward-line 1))
+ (hui-select-set-region pos (point)))))))
;; Allow punctuation marks not followed by white-space to include
;; the previous and subsequent sexpression. Useful in contexts such as
@@ -1060,18 +1064,18 @@ included in the list, hui-select-brace-modes."
(hui-select-preprocessor-def pos)
(hui-select-brace-def-or-declaration pos) ;; Might be on a C++
destructor ~.
(save-excursion
- (setq hui-select-previous 'punctuation)
- (goto-char (min (1+ pos) (point-max)))
- (cond ((and (char-after pos) (= ?\ (char-syntax (char-after pos))))
- (hui-select-set-region pos (1+ pos)))
- ((and (char-before pos) (= ?\ (char-syntax (char-before pos))))
- (hui-select-set-region (1- pos) pos))
- (t (goto-char pos)
- (condition-case ()
- (hui-select-set-region
- (save-excursion (backward-sexp) (point))
- (progn (forward-sexp) (point)))
- (error nil)))))))
+ (setq hui-select-previous 'punctuation)
+ (goto-char (min (1+ pos) (point-max)))
+ (cond ((and (char-after pos) (= ?\ (char-syntax (char-after pos))))
+ (hui-select-set-region pos (1+ pos)))
+ ((and (char-before pos) (= ?\ (char-syntax (char-before
pos))))
+ (hui-select-set-region (1- pos) pos))
+ (t (goto-char pos)
+ (condition-case ()
+ (hui-select-set-region
+ (save-excursion (backward-sexp) (point))
+ (progn (forward-sexp) (point)))
+ (error nil)))))))
(defun hui-select-comment (pos)
"Return rest of line from POS to newline."
@@ -1079,70 +1083,70 @@ included in the list, hui-select-brace-modes."
(save-excursion
(goto-char pos)
(let ((start-regexp (if (stringp comment-start)
- (regexp-quote comment-start)))
- (end-regexp (if (stringp comment-end)
- (regexp-quote comment-end)))
- bolp)
+ (regexp-quote comment-start)))
+ (end-regexp (if (stringp comment-end)
+ (regexp-quote comment-end)))
+ bolp)
(cond
;; Beginning of a comment
((and (stringp comment-start)
- (or (looking-at start-regexp)
- (save-excursion
- (and (skip-chars-backward comment-start)
- (looking-at start-regexp)))))
- (skip-chars-backward " \t")
- (setq bolp (bolp)
- pos (point))
- (if (equal comment-end "")
- (progn (end-of-line)
- (hui-select-set-region pos (point)))
- (if (stringp comment-end)
- ;; Skip over nested comments.
- (let ((count 0)
- (regexp (concat start-regexp "\\|" end-regexp)))
- (catch 'done
- (while (re-search-forward regexp nil t)
- (if (string-equal (match-string 0) comment-start)
- (setq count (1+ count))
- ;; End comment
- (setq count (1- count))
- (if (= count 0)
- (progn
- (if (looking-at "[ \t]*[\n\r]")
- ;; Don't include final newline unless the
- ;; comment is first thing on its line.
- (goto-char (if bolp (match-end 0)
- (1- (match-end 0)))))
- (throw 'done (hui-select-set-region
- pos (point))))))))))))
+ (or (looking-at start-regexp)
+ (save-excursion
+ (and (skip-chars-backward comment-start)
+ (looking-at start-regexp)))))
+ (skip-chars-backward " \t")
+ (setq bolp (bolp)
+ pos (point))
+ (if (equal comment-end "")
+ (progn (end-of-line)
+ (hui-select-set-region pos (point)))
+ (if (stringp comment-end)
+ ;; Skip over nested comments.
+ (let ((count 0)
+ (regexp (concat start-regexp "\\|" end-regexp)))
+ (catch 'done
+ (while (re-search-forward regexp nil t)
+ (if (string-equal (match-string 0) comment-start)
+ (setq count (1+ count))
+ ;; End comment
+ (setq count (1- count))
+ (if (= count 0)
+ (progn
+ (if (looking-at "[ \t]*[\n\r]")
+ ;; Don't include final newline
unless the
+ ;; comment is first thing on
its line.
+ (goto-char (if bolp (match-end
0)
+ (1- (match-end
0)))))
+ (throw 'done (hui-select-set-region
+ pos
(point))))))))))))
;; End of a comment
((and (stringp comment-end)
- (not (string-equal comment-end ""))
- (or (looking-at end-regexp)
- (and (skip-chars-backward comment-end)
- (looking-at end-regexp))))
- (goto-char (match-end 0))
- (if (looking-at "[ \t]*[\n\r]")
- (goto-char (match-end 0)))
- (setq pos (point))
- (skip-chars-forward " \t")
- ;; Skip over nested comments.
- (let ((count 0)
- (regexp (concat start-regexp "\\|" end-regexp)))
- (catch 'done
- (while (re-search-backward regexp nil t)
- (if (string-equal (match-string 0) comment-end)
- (setq count (1+ count))
- ;; Begin comment
- (setq count (1- count))
- (if (= count 0)
- (progn
- (skip-chars-backward " \t")
- ;; Don't include final newline unless the comment is
- ;; first thing on its line.
- (if (bolp) nil (setq pos (1- pos)))
- (throw 'done (hui-select-set-region
- (point) pos)))))))))))))
+ (not (string-equal comment-end ""))
+ (or (looking-at end-regexp)
+ (and (skip-chars-backward comment-end)
+ (looking-at end-regexp))))
+ (goto-char (match-end 0))
+ (if (looking-at "[ \t]*[\n\r]")
+ (goto-char (match-end 0)))
+ (setq pos (point))
+ (skip-chars-forward " \t")
+ ;; Skip over nested comments.
+ (let ((count 0)
+ (regexp (concat start-regexp "\\|" end-regexp)))
+ (catch 'done
+ (while (re-search-backward regexp nil t)
+ (if (string-equal (match-string 0) comment-end)
+ (setq count (1+ count))
+ ;; Begin comment
+ (setq count (1- count))
+ (if (= count 0)
+ (progn
+ (skip-chars-backward " \t")
+ ;; Don't include final newline unless the comment
is
+ ;; first thing on its line.
+ (if (bolp) nil (setq pos (1- pos)))
+ (throw 'done (hui-select-set-region
+ (point) pos)))))))))))))
;;;
;;; Textual selections
@@ -1153,12 +1157,12 @@ included in the list, hui-select-brace-modes."
(or (hui-select-brace-def-or-declaration pos)
(hui-select-indent-def pos)
(progn (setq hui-select-previous 'word)
- (save-excursion
- (goto-char pos)
- (forward-word 1)
- (let ((end (point)))
- (forward-word -1)
- (hui-select-set-region (point) end))))))
+ (save-excursion
+ (goto-char pos)
+ (forward-word 1)
+ (let ((end (point)))
+ (forward-word -1)
+ (hui-select-set-region (point) end))))))
(defun hui-select-string (pos)
"Return (start . end) of string at POS or nil. Pos include delimiters.
@@ -1167,19 +1171,19 @@ Delimiters may be single, double or open and close
quotes."
(save-excursion
(goto-char pos)
(if (and (memq major-mode hui-select-markup-modes)
- (/= (following-char) ?\")
- (save-excursion
- (and (re-search-backward "[<>]" nil t)
- (= (following-char) ?>))))
- (progn (setq hui-select-previous 'text)
- (search-backward ">" nil t)
- (hui-select-set-region
- (1+ (point))
- (progn (if (search-forward "<" nil 'end)
- (1- (point))
- (point)))))
+ (/= (following-char) ?\")
+ (save-excursion
+ (and (re-search-backward "[<>]" nil t)
+ (= (following-char) ?>))))
+ (progn (setq hui-select-previous 'text)
+ (search-backward ">" nil t)
+ (hui-select-set-region
+ (1+ (point))
+ (progn (if (search-forward "<" nil 'end)
+ (1- (point))
+ (point)))))
(or (hui-select-string-p) (hui-select-string-p "'" "'")
- (hui-select-string-p "`" "'")))))
+ (hui-select-string-p "`" "'")))))
(defun hui-select-sentence (pos)
"Return (start . end) of the sentence at POS."
@@ -1187,8 +1191,8 @@ Delimiters may be single, double or open and close
quotes."
(save-excursion
(goto-char pos)
(condition-case ()
- (hui-select-set-region (progn (backward-sentence) (point))
- (progn (forward-sentence) (point)))
+ (hui-select-set-region (progn (backward-sentence) (point))
+ (progn (forward-sentence) (point)))
(error nil))))
(defun hui-select-whitespace (pos)
@@ -1199,114 +1203,115 @@ the line. Then return all of it."
(save-excursion
(goto-char pos)
(if (= (following-char) ?\^L)
- (hui-select-page pos)
+ (hui-select-page pos)
(let ((end (progn (skip-chars-forward " \t") (point)))
- (start (progn (skip-chars-backward " \t") (point))))
- (if (looking-at "[ \t]")
- (if (or (bolp) (= (1+ start) end))
- (hui-select-set-region start end)
- (hui-select-set-region (1+ start) end)))))))
+ (start (progn (skip-chars-backward " \t") (point))))
+ (if (looking-at "[ \t]")
+ (if (or (bolp) (= (1+ start) end))
+ (hui-select-set-region start end)
+ (hui-select-set-region (1+ start) end)))))))
(defun hui-select-markup-pair (pos)
- "Return (start . end) of region between the opening and closing of an HTML
or SGML tag pair, one of which is at POS.
+ "Return (start . end) of region between the opening and closing of an HTML,
XML or SGML tag pair, one of which is at POS.
The major mode for each language that uses such tags must be included in the
list, hui-select-markup-modes."
(when (memq major-mode hui-select-markup-modes)
(setq hui-select-previous 'markup-pair)
(let ((pos-with-space)
- ;; Assume case of tag names is irrelevant.
- (case-fold-search t)
- (result)
- start-regexp
- end-regexp
- bolp
- opoint)
+ ;; Assume case of tag names is irrelevant.
+ (case-fold-search t)
+ (result)
+ start-regexp
+ end-regexp
+ bolp
+ opoint)
(save-excursion
- (catch 'done
- (goto-char pos)
- (cond
- ;; Beginning of a tag pair
- ((looking-at "<[^/][^<> \t\n\r]*")
- (setq start-regexp (regexp-quote (match-string 0))
- end-regexp (concat "</" (substring start-regexp 1)))
- (setq pos (point))
- (skip-chars-backward " \t")
- (setq bolp (bolp)
- pos-with-space (point))
- ;; Skip over nested tags.
- (let ((count 0)
- (regexp (concat start-regexp "\\|" end-regexp)))
- (while (and (>= count 0)
- (re-search-forward regexp nil t))
- (if (/= (char-after (1+ (match-beginning 0))) ?/)
- ;; Start tag
- (setq count (1+ count))
- ;; Move past end tag terminator
- (setq opoint (point))
- (if (or (not (re-search-forward "[<>]" nil t))
- (= (preceding-char) ?<))
- (progn (setq result opoint)
- (throw 'done nil)))
- (setq count (1- count))
- (if (= count 0)
- (progn
- (if (looking-at "[ \t]*[\n\r]")
- ;; Don't include final newline unless the
- ;; start tag was the first thing on its line.
- (if bolp
- (progn (goto-char (match-end 0))
- ;; Include leading space since the
- ;; start and end tags begin and end
- ;; lines.
- (setq pos pos-with-space))
- (goto-char (1- (match-end 0)))))
- (setq result (hui-select-set-region pos (point)))
- (throw 'done nil)))))))
- ;;
- ;; End of a tag pair
- ((or (looking-at "</[^\> \t\n\r]+")
- (and (skip-chars-backward "\<")
- (looking-at "</[^\> \t\n\r]+")))
- (goto-char (match-end 0))
- (setq end-regexp (regexp-quote (match-string 0))
- start-regexp (concat "\<" (substring end-regexp 2)))
- (setq opoint (point))
- (if (or (not (re-search-forward "[<>]" nil t))
- (= (preceding-char) ?<))
- (progn (setq result opoint)
- (throw 'done nil)))
- (setq pos (point))
- (if (looking-at "[ \t]*[\n\r]")
- (setq pos-with-space (match-end 0)))
- ;; Skip over nested tags.
- (let ((count 0)
- (regexp (concat start-regexp "\\|" end-regexp)))
- (while (and (>= count 0)
- (re-search-backward regexp nil t))
- (if (= (char-after (1+ (point))) ?/)
- ;; End tag
- (setq count (1+ count))
- ;; Start tag
- (setq count (1- count))
- (if (= count 0)
- (progn
- (if pos-with-space
- ;; Newline found after original end tag.
- (progn
- (skip-chars-backward " \t")
- (if (bolp)
- ;; Don't include final newline unless the
- ;; start tag is the first thing on its line.
- (setq pos pos-with-space)
- (setq pos (1- pos-with-space))
- ;; Don't include non-leading space.
- (skip-chars-forward " \t"))))
- (setq result (hui-select-set-region (point) pos))
- (throw 'done nil))))))))))
+ (setq result
+ (catch 'done
+ (goto-char pos)
+ (cond
+ ;; Beginning of a tag pair
+ ((looking-at "<[^/][^<> \t\n\r]*")
+ (setq start-regexp (regexp-quote (match-string 0))
+ end-regexp (concat "</" (substring
start-regexp 1)))
+ (setq pos (point))
+ (skip-chars-backward " \t")
+ (setq bolp (bolp)
+ pos-with-space (point))
+ ;; Skip over nested tags.
+ (let ((count 0)
+ (regexp (concat start-regexp "\\|" end-regexp)))
+ (while (and (>= count 0)
+ (re-search-forward regexp nil t))
+ (if (/= (char-after (1+ (match-beginning 0))) ?/)
+ ;; Start tag
+ (setq count (1+ count))
+ ;; Move past end tag terminator
+ (setq opoint (point))
+ (when (or (not (re-search-forward "[<>]" nil t))
+ (= (preceding-char) ?<))
+ (throw 'done opoint))
+ (setq count (1- count))
+ (when (= count 0)
+ (cond ((eobp)
+ (if bolp
+ ;; Include leading space
since the
+ ;; start and end tags
begin and end
+ ;; lines.
+ (setq pos pos-with-space)
+ (goto-char (1- (point)))))
+ ((looking-at "[ \t]*[\n\r]")
+ ;; Don't include final newline
unless the
+ ;; start tag was the first thing
on its line.
+ (if bolp
+ (progn (goto-char
(match-end 0))
+ ;; Include leading
space since the
+ ;; start and end
tags begin and end
+ ;; lines.
+ (setq pos
pos-with-space))
+ (goto-char (1- (match-end 0))))))
+ (throw 'done (hui-select-set-region pos
(point))))))))
+ ;;
+ ;; End of a tag pair
+ ((or (looking-at "</[^\> \t\n\r]+")
+ (and (skip-chars-backward "\<")
+ (looking-at "</[^\> \t\n\r]+")))
+ (goto-char (match-end 0))
+ (setq end-regexp (regexp-quote (match-string 0))
+ start-regexp (concat "\<" (substring
end-regexp 2))
+ opoint (point))
+ (when (or (not (re-search-forward "[<>]" nil t))
+ (= (preceding-char) ?<))
+ (throw 'done opoint))
+ (setq pos (point))
+ (when (looking-at "[ \t]*[\n\r]")
+ (setq pos-with-space (match-end 0)))
+ ;; Skip over nested tags.
+ (let ((count 0)
+ (regexp (concat start-regexp "\\|" end-regexp)))
+ (while (and (>= count 0)
+ (re-search-backward regexp nil t))
+ (if (= (char-after (1+ (point))) ?/)
+ ;; End tag
+ (setq count (1+ count))
+ ;; Start tag
+ (setq count (1- count))
+ (when (= count 0)
+ (when pos-with-space
+ ;; Newline found after original end tag.
+ (skip-chars-backward " \t")
+ (if (bolp)
+ ;; Don't include final newline
unless the
+ ;; start tag is the first thing
on its line.
+ (setq pos pos-with-space)
+ (setq pos (1- pos-with-space))
+ ;; Don't include non-leading
space.
+ (skip-chars-forward " \t")))
+ (throw 'done (hui-select-set-region
(point) pos)))))))))))
(if (integerp result)
- (progn (goto-char result)
- (error "(hui-select-markup-pair): Add a terminator character
for this end tag"))
- result))))
+ (progn (goto-char result)
+ (error "(hui-select-markup-pair): Add a terminator
character for this end tag"))
+ result))))
;;;
;;; Document selections
@@ -1318,7 +1323,7 @@ list, hui-select-markup-modes."
(save-excursion
(goto-char pos)
(let* ((start (progn (beginning-of-line 1) (point)))
- (end (progn (forward-line 1) (point))))
+ (end (progn (forward-line 1) (point))))
(hui-select-set-region start end))))
(defun hui-select-paragraph (pos)
@@ -1328,7 +1333,7 @@ list, hui-select-markup-modes."
(goto-char pos)
(if (looking-at paragraph-start) (forward-paragraph))
(hui-select-set-region (progn (backward-paragraph) (point))
- (progn (forward-paragraph) (point)))))
+ (progn (forward-paragraph) (point)))))
(defun hui-select-page (pos)
"Return (start . end) of the page preceding POS."
@@ -1336,7 +1341,7 @@ list, hui-select-markup-modes."
(save-excursion
(goto-char pos)
(hui-select-set-region (progn (backward-page) (point))
- (progn (forward-page) (point)))))
+ (progn (forward-page) (point)))))
(defun hui-select-buffer (pos)
"Return (start . end) of the buffer at POS."
diff --git a/hui.el b/hui.el
index 6fc4f7d..3756750 100644
--- a/hui.el
+++ b/hui.el
@@ -337,8 +337,8 @@ Signals an error when no such button is found."
(find-file-noselect gbut:file) "gbut-modify")
(hbut:label-to-key
(hargs:read-match "Global button to modify: "
- (mapcar 'list (gbut:label-list))
- nil t nil 'ebut)))))
+ (mapcar #'list (gbut:label-list))
+ nil t nil 'gbut)))))
(let ((lbl (hbut:key-to-label lbl-key))
(src-dir default-directory)
(but-buf (find-file-noselect gbut:file))
@@ -381,24 +381,22 @@ Signals an error when no such button is found."
(ibut:at-p))
(hui:ibut-message t)))))))
+(defun hui:gbut-rename (label)
+ "Interactively rename a Hyperbole global button with LABEL.
+When in the global button buffer, the default is the button at point."
+ (interactive (list (save-excursion
+ (hui:buf-writable-err
+ (find-file-noselect gbut:file) "gbut-rename")
+ (hbut:label-to-key
+ (hargs:read-match "Global button to rename: "
+ (mapcar #'list (gbut:label-list))
+ nil t nil 'gbut)))))
+ (hbut:rename (gbut:to label)))
+
(defun hui:hbut-act (&optional but)
"Execute action for optional Hyperbole button symbol BUT in current buffer.
-Default is the current button."
- (interactive
- (let ((but (hbut:at-p)) (lst))
- (list
- (cond (but)
- ((setq lst (nconc (ebut:alist) (ibut:alist)))
- (hbut:get (hbut:label-to-key
- (hargs:read-match "Button to execute: " lst nil t
- (hbut:label-p 'as-label) 'hbut))))
- (t (hypb:error "(hbut-act): No labeled buttons in buffer"))))))
- (cond ((and (called-interactively-p 'interactive) (null but))
- (hypb:error "(hbut-act): No current button to activate"))
- ((not (hbut:is-p but))
- (hypb:error "(hbut-act): Button is invalid; it has no attributes"))
- (t (or but (setq but 'hbut:current))
- (hui:but-flash) (hbut:act but))))
+The default is the current button."
+ (hui:hbut-operate #'hbut:act "execute" but))
(defun hui:hbut-current-act ()
"Activate Hyperbole button at point or signal an error if there is no such
button."
@@ -466,6 +464,35 @@ Also has side effect of moving point to start of default
label, if any."
(progn (goto-char start)
(buffer-substring start end))))
+(defun hui:hbut-operate (operation operation-str &optional but)
+ "Execute OPERATION (a function) described by OPERATION-STR action on a
Hyperbole button.
+Either the button at point is used or if none, then one is prompted
+for with completion of all labeled buttons within the current buffer."
+ (unless (or but (setq but (hbut:at-p)))
+ (let (lst)
+ (cond ((setq lst (nconc (ebut:alist) (ibut:alist)))
+ (setq but (hbut:get (hbut:label-to-key
+ (hargs:read-match (format "Button
to %s: " operation-str)
+ lst nil t
+
(hbut:label-p 'as-label) 'hbut)))))
+ (t (hypb:error "(hbut-operate): No labeled buttons in
buffer")))))
+ (cond ((and (called-interactively-p 'interactive) (null but))
+ (hypb:error "(hbut-operate): No current button to operate upon"))
+ ((not (hbut:is-p but))
+ (hypb:error "(hbut-operate): Button is invalid; it has no
attributes"))
+ (t (or but (setq but 'hbut:current))
+ (hui:but-flash) (funcall operation but))))
+
+(defun hui:hbut-rename ()
+ "Interactively rename a Hyperbole button from the current buffer.
+The default is the button at point."
+ (cond ((ebut:at-p)
+ (call-interactively #'hui:ebut-rename))
+ ((ibut:at-p)
+ (call-interactively #'hui:ibut-rename))
+ (t
+ (hui:hbut-operate #'hbut:rename "rename"))))
+
(defun hui:hbut-report (&optional arg)
"Pretty prints attributes of current button, using optional prefix ARG.
See 'hbut:report'."
diff --git a/hvar.el b/hvar.el
index 9fe7e85..dd104b2 100644
--- a/hvar.el
+++ b/hvar.el
@@ -27,15 +27,15 @@
"Add to HOOK (a symbol ending with -hook) HOOK-FUNCTION and then call
HOOK-FUNCTION in every buffer with the matching major mode based on HOOK's
name."
(add-hook hook hook-function)
(let* ((hook-name (symbol-name hook))
- (mode (if (string-match "-hooks?\\'" hook-name)
- (intern-soft (substring hook-name 0 (match-beginning 0))))))
- (if mode (var:run-hook-in-matching-buffers mode hook-function))))
+ (mode (when (string-match "-hooks?\\'" hook-name)
+ (intern (substring hook-name 0 (match-beginning 0))))))
+ (when mode (var:run-hook-in-matching-buffers mode hook-function))))
(defun var:append-all ()
"Add back all hook values previously added by var:append in this Emacs
session.
The ones that were removed by var:remove-all at some point."
(mapc (lambda (elt) (var:append (car elt) (cdr elt)))
- var::append-list)
+ var::append-list)
var::append-list)
;;;###autoload
@@ -44,36 +44,36 @@ The ones that were removed by var:remove-all at some point."
If VAR-SYMBOL is unbound, it is set to LIST-TO-ADD.
Use to append to hook variables. Store all values for later removal.
Do nothing when `inhibit-hyperbole-messaging' is non-nil."
- (if (not (symbolp var-symbol))
- (error "(var:append): First argument, `%s', must be a symbol (not a
string)" var-symbol))
- (if (or (null list-to-add) (not (listp list-to-add)))
- (error "(var:append): Second argument, `%s', must be a non-empty list"
list-to-add))
+ (unless (symbolp var-symbol)
+ (error "(var:append): First argument, `%s', must be a symbol (not a
string)" var-symbol))
+ (unless (and list-to-add (listp list-to-add))
+ (error "(var:append): Second argument, `%s', must be a non-empty list"
list-to-add))
(unless inhibit-hyperbole-messaging
(let ((val) result)
(setq result
- (if (and (boundp var-symbol)
- (setq val (symbol-value var-symbol))
- (or (if (symbolp val)
- (setq val (cons val nil)))
- (listp val)))
- (progn (if (eq (car val) 'lambda)
- (setq val (list val)))
- (set var-symbol (set:union val list-to-add)))
- (set var-symbol list-to-add)))
+ (if (and (boundp var-symbol)
+ (setq val (symbol-value var-symbol))
+ (or (when (symbolp val)
+ (setq val (cons val nil)))
+ (listp val)))
+ (progn (when (eq (car val) 'lambda)
+ (setq val (list val)))
+ (set var-symbol (set:union val list-to-add)))
+ (set var-symbol list-to-add)))
(add-to-list 'var::append-list (cons var-symbol result))
(symbol-value var-symbol))))
(defun var:remove (var-symbol list-to-remove)
"Remove from VAR-SYMBOL the functions in LIST-TO-REMOVE.
Use to remove from hook variables."
- (if (not (symbolp var-symbol))
- (error "(var:remove): First argument, `%s', must be a symbol (not a
string)" var-symbol))
- (if (or (null list-to-remove) (not (listp list-to-remove)))
- (error "(var:remove): Second argument, `%s', must be a non-empty list"
list-to-remove))
- (if (eq (car list-to-remove) 'lambda)
- (setq list-to-remove (list list-to-remove)))
+ (unless (symbolp var-symbol)
+ (error "(var:remove): First argument, `%s', must be a symbol (not a
string)" var-symbol))
+ (unless (and list-to-remove (listp list-to-remove))
+ (error "(var:remove): Second argument, `%s', must be a non-empty list"
list-to-remove))
+ (when (eq (car list-to-remove) 'lambda)
+ (setq list-to-remove (list list-to-remove)))
(mapc (lambda (func) (remove-hook var-symbol func))
- list-to-remove)
+ list-to-remove)
(setq var::append-list (delete (cons var-symbol list-to-remove)
var::append-list))
(symbol-value var-symbol))
@@ -81,16 +81,16 @@ Use to remove from hook variables."
"Remove all hook values added by var:append in this Emacs session from their
associated hook variables.
Keeps a copy of these values for future re-use."
(mapc (lambda (elt) (var:remove (car elt) (cdr elt)))
- var::append-list)
+ var::append-list)
var::append-list)
(defun var:run-hook-in-matching-buffers (mode hook-function)
"For a given major MODE (a symbol) call HOOK-FUNCTION in all existing
buffers with that major mode.
This is used after a hook is changed to affect buffers that existed before the
change was made."
(mapc (lambda (buf) (with-current-buffer buf (funcall hook-function)))
- (delq nil (mapcar (lambda (buf) (if (eq (buffer-local-value 'major-mode
buf) mode)
- buf))
- (buffer-list)))))
+ (delq nil (mapcar (lambda (buf) (when (eq (buffer-local-value
'major-mode buf) mode)
+ buf))
+ (buffer-list)))))
;;; ************************************************************************
;;; Private variables
diff --git a/hversion.el b/hversion.el
index c699daa..56a364a 100644
--- a/hversion.el
+++ b/hversion.el
@@ -5,7 +5,7 @@
;;
;; Orig-Date: 1-Jan-94
;;
-;; Copyright (C) 1994-2019 Free Software Foundation, Inc.
+;; Copyright (C) 1994-2020 Free Software Foundation, Inc.
;; See the "HY-COPY" file for license information.
;;
;; This file is part of GNU Hyperbole.
@@ -23,7 +23,7 @@
;;; Public variables
;;; ************************************************************************
-(defconst hyperb:version "7.0.7" "GNU Hyperbole revision number.")
+(defconst hyperb:version "7.0.8" "GNU Hyperbole revision number.")
;;;###autoload
(defvar hyperb:microsoft-os-p
diff --git a/hyperbole-banner.png b/hyperbole-banner.png
index f0d8abd..d033b1d 100644
Binary files a/hyperbole-banner.png and b/hyperbole-banner.png differ
diff --git a/hyperbole.el b/hyperbole.el
index 1b705e0..b8a2a90 100644
--- a/hyperbole.el
+++ b/hyperbole.el
@@ -5,8 +5,8 @@
;; Author: Bob Weiner
;; Maintainer: Bob Weiner <rsw@gnu.org>, Mats Lidell <matsl@gnu.org>
;; Created: 06-Oct-92 at 11:52:51
-;; Released: 27-Aug-19
-;; Version: 7.0.7
+;; Released: 19-Jan-20
+;; Version: 7.0.8
;; Keywords: comm, convenience, files, frames, hypermedia, languages,
mail, matching, mouse, multimedia, outlines, tools, wp
;; Package: hyperbole
;; Package-Requires: ((emacs "24.4"))
diff --git a/kotl/kfill.el b/kotl/kfill.el
index 03ea0c8..ab5f682 100644
--- a/kotl/kfill.el
+++ b/kotl/kfill.el
@@ -66,8 +66,8 @@ that `fill-paragraph' works correctly in various contexts.")
(defconst kfill:hanging-expression
(cons 'or
(delq nil (mapcar (lambda (pattern-type)
- (if (eq (cdr pattern-type) 'kfill:hanging-list)
- (list 'looking-at (car pattern-type))))
+ (when (eq (cdr pattern-type) 'kfill:hanging-list)
+ (list 'looking-at (car pattern-type))))
kfill:prefix-table)))
"Conditional expression used to test for hanging indented lists.")
@@ -110,7 +110,7 @@ number of lines that could not be moved, otherwise 0."
"Fill paragraph at or after point when in kotl-mode. Prefix ARG means
justify as well."
(interactive (progn
(barf-if-buffer-read-only)
- (list (if current-prefix-arg 'full) nil)))
+ (list (when current-prefix-arg 'full) nil)))
;; This may be called from `fill-region-as-paragraph' in "filladapt.el"
;; which narrows the region to the current paragraph. A side-effect is
;; that the cell identifier and indent information needed by this function
@@ -118,23 +118,23 @@ number of lines that could not be moved, otherwise 0."
;; buffer here. Don't rewiden past the paragraph of interest or any
;; following blank line may be removed by the filling routines.
(save-restriction
- (if (eq major-mode 'kotl-mode)
- (narrow-to-region 1 (point-max)))
+ (when (eq major-mode 'kotl-mode)
+ (narrow-to-region 1 (point-max)))
;; Emacs expects a specific symbol here.
- (if (and arg (not (symbolp arg))) (setq arg 'full))
+ (when (and arg (not (symbolp arg))) (setq arg 'full))
(or skip-prefix-remove (kfill:remove-paragraph-prefix))
(catch 'done
- (if (null fill-prefix)
- (let ((paragraph-ignore-fill-prefix nil)
- ;; Need this or Emacs ignores fill-prefix when
- ;; inside a comment.
- (comment-multi-line t)
- (fill-paragraph-handle-comment t)
- (paragraph-start paragraph-start)
- (paragraph-separate paragraph-separate)
- fill-prefix)
- (if (kfill:adapt t)
- (throw 'done (fill-paragraph arg)))))
+ (unless fill-prefix
+ (let ((paragraph-ignore-fill-prefix nil)
+ ;; Need this or Emacs ignores fill-prefix when
+ ;; inside a comment.
+ (comment-multi-line t)
+ (fill-paragraph-handle-comment t)
+ (paragraph-start paragraph-start)
+ (paragraph-separate paragraph-separate)
+ fill-prefix)
+ (when (kfill:adapt t)
+ (throw 'done (fill-paragraph arg)))))
;; Kfill:adapt failed or fill-prefix is set, so do a basic
;; paragraph fill as adapted from par-align.el.
(kfill:fallback-fill-paragraph arg skip-prefix-remove))))
@@ -150,11 +150,10 @@ fill prefix at the beginning of each line."
(interactive)
(setq prior-fill-prefix fill-prefix)
(let ((left-margin-pos (save-excursion (move-to-left-margin) (point))))
- (if (> (point) left-margin-pos)
- (setq fill-prefix (if turn-off
- nil
- (buffer-substring left-margin-pos (point))))
- (setq fill-prefix nil)))
+ (setq fill-prefix
+ (when (> (point) left-margin-pos)
+ (unless turn-off
+ (buffer-substring left-margin-pos (point))))))
(when (equal prior-fill-prefix "")
(setq prior-fill-prefix nil))
(when (equal fill-prefix "")
@@ -186,8 +185,8 @@ fill prefix at the beginning of each line."
(defun kfill:c++-comment (paragraph)
(setq fill-prefix (buffer-substring (match-beginning 0) (match-end 0)))
- (if paragraph
- (setq paragraph-separate "^[^ \t/]")))
+ (when paragraph
+ (setq paragraph-separate "^[^ \t/]")))
(defun kfill:fallback-fill-paragraph (justify-flag &optional leave-prefix)
(save-excursion
@@ -224,34 +223,33 @@ fill prefix at the beginning of each line."
(defun kfill:hanging-list (paragraph)
(let (prefix match beg end)
(setq prefix (make-string (- (match-end 0) (match-beginning 0)) ?\ ))
- (if paragraph
- (progn
- (setq match (buffer-substring (match-beginning 0) (match-end 0)))
- (if (string-match "^ +$" match)
- (save-excursion
- (while (and (not (bobp)) (looking-at prefix))
- (kfill:forward-line -1))
-
- (cond ((eval kfill:hanging-expression)
- ;; Point is in front of a hanging list.
- (setq beg (point)))
- (t (setq beg (progn (kfill:forward-line 1) (point))))))
- (setq beg (point)))
+ (when paragraph
+ (setq match (buffer-substring (match-beginning 0) (match-end 0)))
+ (if (string-match "^ +$" match)
(save-excursion
- (kfill:forward-line)
- (while (and (looking-at prefix)
- (not (equal (char-after (match-end 0)) ?\ )))
- (kfill:forward-line))
- (setq end (point)))
- (narrow-to-region beg end)))
+ (while (and (not (bobp)) (looking-at prefix))
+ (kfill:forward-line -1))
+
+ (cond ((eval kfill:hanging-expression)
+ ;; Point is in front of a hanging list.
+ (setq beg (point)))
+ (t (setq beg (progn (kfill:forward-line 1) (point))))))
+ (setq beg (point)))
+ (save-excursion
+ (kfill:forward-line)
+ (while (and (looking-at prefix)
+ (not (equal (char-after (match-end 0)) ?\ )))
+ (kfill:forward-line))
+ (setq end (point)))
+ (narrow-to-region beg end))
(setq fill-prefix prefix)))
(defun kfill:lisp-comment (paragraph)
(setq fill-prefix (buffer-substring (match-beginning 0) (match-end 0)))
- (if paragraph
- (setq paragraph-separate
- (concat "^" fill-prefix " *;\\|^"
- (kfill:negate-string fill-prefix)))))
+ (when paragraph
+ (setq paragraph-separate
+ (concat "^" fill-prefix " *;\\|^"
+ (kfill:negate-string fill-prefix)))))
(defun kfill:negate-string (string)
(let ((len (length string))
@@ -270,23 +268,23 @@ fill prefix at the beginning of each line."
(apply 'concat (nreverse string-list))))
(defun kfill:normal (paragraph)
- (if paragraph
- (setq paragraph-separate
- (concat paragraph-separate "\\|^[ \t/#%?!~*+-]"))))
+ (when paragraph
+ (setq paragraph-separate
+ (concat paragraph-separate "\\|^[ \t/#%?!~*+-]"))))
(defun kfill:normal-included-text (paragraph)
(setq fill-prefix (buffer-substring (match-beginning 0) (match-end 0)))
- (if paragraph
- (setq paragraph-separate
- (concat "^" fill-prefix " *>\\|^"
- (kfill:negate-string fill-prefix)))))
+ (when paragraph
+ (setq paragraph-separate
+ (concat "^" fill-prefix " *>\\|^"
+ (kfill:negate-string fill-prefix)))))
(defun kfill:postscript-comment (paragraph)
(setq fill-prefix (buffer-substring (match-beginning 0) (match-end 0)))
- (if paragraph
- (setq paragraph-separate
- (concat "^" fill-prefix " *%\\|^"
- (kfill:negate-string fill-prefix)))))
+ (when paragraph
+ (setq paragraph-separate
+ (concat "^" fill-prefix " *%\\|^"
+ (kfill:negate-string fill-prefix)))))
(defun kfill:remove-paragraph-prefix (&optional indent-str)
"Remove fill prefix from current paragraph."
@@ -313,46 +311,46 @@ fill prefix at the beginning of each line."
Optional SUFFIX non-nil means replace at ends of lines, default is beginnings.
Optional arguments START and END specify the replace region, default is the
current region."
- (if fill-str-prev
- (progn (if start
- (let ((s (min start end)))
- (setq end (max start end)
- start s))
- (setq start (region-beginning)
- end (region-end)))
- (if (not fill-str) (setq fill-str ""))
- (save-excursion
- (save-restriction
- (narrow-to-region start end)
- (goto-char (point-min))
- (let ((prefix
- (concat
- (if suffix nil "^")
- "[ \t]*"
- (regexp-quote
- ;; Get non-whitespace separated fill-str-prev
- (substring
- fill-str-prev
- (or (string-match "[^ \t]" fill-str-prev) 0)
- (if (string-match
- "[ \t]*\\(.*[^ \t]\\)[ \t]*$"
- fill-str-prev)
- (match-end 1))))
- "[ \t]*"
- (if suffix "$"))))
- (while (re-search-forward prefix nil t)
- (replace-match fill-str nil t))))))))
+ (when fill-str-prev
+ (if start
+ (let ((s (min start end)))
+ (setq end (max start end)
+ start s))
+ (setq start (region-beginning)
+ end (region-end)))
+ (unless fill-str (setq fill-str ""))
+ (save-excursion
+ (save-restriction
+ (narrow-to-region start end)
+ (goto-char (point-min))
+ (let ((prefix
+ (concat
+ (unless suffix "^")
+ "[ \t]*"
+ (regexp-quote
+ ;; Get non-whitespace separated fill-str-prev
+ (substring
+ fill-str-prev
+ (or (string-match "[^ \t]" fill-str-prev) 0)
+ (when (string-match
+ "[ \t]*\\(.*[^ \t]\\)[ \t]*$"
+ fill-str-prev)
+ (match-end 1))))
+ "[ \t]*"
+ (when suffix "$"))))
+ (while (re-search-forward prefix nil t)
+ (replace-match fill-str nil t)))))))
(defun kfill:sh-comment (paragraph)
(setq fill-prefix (buffer-substring (match-beginning 0) (match-end 0)))
- (if paragraph
+ (when paragraph
(setq paragraph-separate
(concat "^" fill-prefix " *#\\|^"
(kfill:negate-string fill-prefix)))))
(defun kfill:supercite-included-text (paragraph)
(setq fill-prefix (buffer-substring (match-beginning 0) (match-end 0)))
- (if paragraph
+ (when paragraph
(setq paragraph-separate
(concat "^" (kfill:negate-string fill-prefix)))))
diff --git a/man/hyperbole.html b/man/hyperbole.html
index a317a46..aec4361 100644
--- a/man/hyperbole.html
+++ b/man/hyperbole.html
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for GNU Hyperbole
-(Edition 7.0.7, Published October 2, 2019).
+(Edition 7.0.8, Published January 19, 2020).
Copyright (C) 1989-2019 Free Software Foundation, Inc.
@@ -20,7 +20,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details in the file,
"COPYING", within the Hyperbole package directory. -->
-<!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
+<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>GNU Hyperbole Manual</title>
@@ -38,23 +38,14 @@ See the GNU General Public License for more details in the
file,
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
-blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
-blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
-div.smalldisplay {margin-left: 3.2em}
-div.smallexample {margin-left: 3.2em}
-div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
-pre.smalldisplay {font-family: inherit; font-size: smaller}
-pre.smallexample {font-size: smaller}
-pre.smallformat {font-family: inherit; font-size: smaller}
-pre.smalllisp {font-size: smaller}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
@@ -83,251 +74,249 @@ ul.no-bullet {list-style: none}
-<a name="SEC_Overview"></a>
+<span id="SEC_Overview"></span>
<h2 class="shortcontents-heading">Short Table of Contents</h2>
<div class="shortcontents">
<ul class="no-bullet">
-<li><a name="stoc-GNU-Hyperbole" href="#toc-GNU-Hyperbole">GNU
Hyperbole</a></li>
-<li><a name="stoc-Introduction-1" href="#toc-Introduction-1">1
Introduction</a></li>
-<li><a name="stoc-Smart-Keys-1" href="#toc-Smart-Keys-1">2 Smart Keys</a></li>
-<li><a name="stoc-Buttons-1" href="#toc-Buttons-1">3 Buttons</a></li>
-<li><a name="stoc-Menus-1" href="#toc-Menus-1">4 Menus</a></li>
-<li><a name="stoc-HyControl-1" href="#toc-HyControl-1">5 HyControl</a></li>
-<li><a name="stoc-Koutliner-1" href="#toc-Koutliner-1">6 Koutliner</a></li>
-<li><a name="stoc-HyRolo-1" href="#toc-HyRolo-1">7 HyRolo</a></li>
-<li><a name="stoc-Window-Configurations-1"
href="#toc-Window-Configurations-1">8 Window Configurations</a></li>
-<li><a name="stoc-Developing-with-Hyperbole-1"
href="#toc-Developing-with-Hyperbole-1">9 Developing with Hyperbole</a></li>
-<li><a name="stoc-Glossary-1" href="#toc-Glossary-1">Appendix A
Glossary</a></li>
-<li><a name="stoc-Setup-1" href="#toc-Setup-1">Appendix B Setup</a></li>
-<li><a name="stoc-Global-Key-Bindings-1"
href="#toc-Global-Key-Bindings-1">Appendix C Global Key Bindings</a></li>
-<li><a name="stoc-Koutliner-Keys-1" href="#toc-Koutliner-Keys-1">Appendix D
Koutliner Keys</a></li>
-<li><a name="stoc-Smart-Key-Reference-1"
href="#toc-Smart-Key-Reference-1">Appendix E Smart Key Reference</a></li>
-<li><a name="stoc-Suggestion-or-Bug-Reporting-1"
href="#toc-Suggestion-or-Bug-Reporting-1">Appendix F Suggestion or Bug
Reporting</a></li>
-<li><a name="stoc-Questions-and-Answers-1"
href="#toc-Questions-and-Answers-1">Appendix G Questions and Answers</a></li>
-<li><a name="stoc-Future-Work-1" href="#toc-Future-Work-1">Appendix H Future
Work</a></li>
-<li><a name="stoc-References-1" href="#toc-References-1">Appendix I
References</a></li>
-<li><a name="stoc-Key-Index-1" href="#toc-Key-Index-1">Key Index</a></li>
-<li><a name="stoc-Function_002c-Variable-and-File-Index"
href="#toc-Function_002c-Variable-and-File-Index">Function, Variable and File
Index</a></li>
-<li><a name="stoc-Concept-Index-1" href="#toc-Concept-Index-1">Concept
Index</a></li>
+<li><a id="stoc-GNU-Hyperbole" href="#toc-GNU-Hyperbole">GNU Hyperbole</a></li>
+<li><a id="stoc-Introduction-1" href="#toc-Introduction-1">1
Introduction</a></li>
+<li><a id="stoc-Smart-Keys-1" href="#toc-Smart-Keys-1">2 Smart Keys</a></li>
+<li><a id="stoc-Buttons-1" href="#toc-Buttons-1">3 Buttons</a></li>
+<li><a id="stoc-Menus-1" href="#toc-Menus-1">4 Menus</a></li>
+<li><a id="stoc-HyControl-1" href="#toc-HyControl-1">5 HyControl</a></li>
+<li><a id="stoc-Koutliner-1" href="#toc-Koutliner-1">6 Koutliner</a></li>
+<li><a id="stoc-HyRolo-1" href="#toc-HyRolo-1">7 HyRolo</a></li>
+<li><a id="stoc-Window-Configurations-1" href="#toc-Window-Configurations-1">8
Window Configurations</a></li>
+<li><a id="stoc-Developing-with-Hyperbole-1"
href="#toc-Developing-with-Hyperbole-1">9 Developing with Hyperbole</a></li>
+<li><a id="stoc-Glossary-1" href="#toc-Glossary-1">Appendix A Glossary</a></li>
+<li><a id="stoc-Setup-1" href="#toc-Setup-1">Appendix B Setup</a></li>
+<li><a id="stoc-Global-Key-Bindings-1"
href="#toc-Global-Key-Bindings-1">Appendix C Global Key Bindings</a></li>
+<li><a id="stoc-Koutliner-Keys-1" href="#toc-Koutliner-Keys-1">Appendix D
Koutliner Keys</a></li>
+<li><a id="stoc-Smart-Key-Reference-1"
href="#toc-Smart-Key-Reference-1">Appendix E Smart Key Reference</a></li>
+<li><a id="stoc-Suggestion-or-Bug-Reporting-1"
href="#toc-Suggestion-or-Bug-Reporting-1">Appendix F Suggestion or Bug
Reporting</a></li>
+<li><a id="stoc-Questions-and-Answers-1"
href="#toc-Questions-and-Answers-1">Appendix G Questions and Answers</a></li>
+<li><a id="stoc-Future-Work-1" href="#toc-Future-Work-1">Appendix H Future
Work</a></li>
+<li><a id="stoc-References-1" href="#toc-References-1">Appendix I
References</a></li>
+<li><a id="stoc-Key-Index-1" href="#toc-Key-Index-1" rel="index">Key
Index</a></li>
+<li><a id="stoc-Function_002c-Variable-and-File-Index"
href="#toc-Function_002c-Variable-and-File-Index" rel="index">Function,
Variable and File Index</a></li>
+<li><a id="stoc-Concept-Index-1" href="#toc-Concept-Index-1"
rel="index">Concept Index</a></li>
</ul>
</div>
-<a name="SEC_Contents"></a>
+<span id="SEC_Contents"></span>
<h2 class="contents-heading">Table of Contents</h2>
<div class="contents">
<ul class="no-bullet">
-<li><a name="toc-GNU-Hyperbole" href="#Top">GNU Hyperbole</a></li>
-<li><a name="toc-Introduction-1" href="#Introduction">1 Introduction</a>
+<li><a id="toc-GNU-Hyperbole" href="#Top">GNU Hyperbole</a></li>
+<li><a id="toc-Introduction-1" href="#Introduction">1 Introduction</a>
<ul class="no-bullet">
- <li><a name="toc-Manual-Overview-1" href="#Manual-Overview">1.1 Manual
Overview</a></li>
- <li><a name="toc-Motivation-1" href="#Motivation">1.2 Motivation</a></li>
- <li><a name="toc-Hyperbole-Overview-1" href="#Hyperbole-Overview">1.3
Hyperbole Overview</a></li>
- <li><a name="toc-Mail-Lists-1" href="#Mail-Lists">1.4 Mail Lists</a></li>
+ <li><a id="toc-Manual-Overview-1" href="#Manual-Overview">1.1 Manual
Overview</a></li>
+ <li><a id="toc-Motivation-1" href="#Motivation">1.2 Motivation</a></li>
+ <li><a id="toc-Hyperbole-Overview-1" href="#Hyperbole-Overview">1.3
Hyperbole Overview</a></li>
+ <li><a id="toc-Mail-Lists-1" href="#Mail-Lists">1.4 Mail Lists</a></li>
</ul></li>
-<li><a name="toc-Smart-Keys-1" href="#Smart-Keys">2 Smart Keys</a>
+<li><a id="toc-Smart-Keys-1" href="#Smart-Keys">2 Smart Keys</a>
<ul class="no-bullet">
- <li><a name="toc-Smart-Key-Bindings-1" href="#Smart-Key-Bindings">2.1 Smart
Key Bindings</a></li>
- <li><a name="toc-Smart-Key-Operations-1" href="#Smart-Key-Operations">2.2
Smart Key Operations</a></li>
- <li><a name="toc-Smart-Key-Argument-Selection-1"
href="#Smart-Key-Argument-Selection">2.3 Smart Key Argument Selection</a></li>
- <li><a name="toc-Smart-Key-Debugging-1" href="#Smart-Key-Debugging">2.4
Smart Key Debugging</a></li>
- <li><a name="toc-Smart-Key-Thing-Selection-1"
href="#Smart-Key-Thing-Selection">2.5 Smart Key Thing Selection</a></li>
- <li><a name="toc-Smart-Mouse-Key-Modeline-Clicks-1"
href="#Smart-Mouse-Key-Modeline-Clicks">2.6 Smart Mouse Key Modeline
Clicks</a></li>
- <li><a name="toc-Smart-Mouse-Key-Drags-1" href="#Smart-Mouse-Key-Drags">2.7
Smart Mouse Key Drags</a>
+ <li><a id="toc-Smart-Key-Bindings-1" href="#Smart-Key-Bindings">2.1 Smart
Key Bindings</a></li>
+ <li><a id="toc-Smart-Key-Operations-1" href="#Smart-Key-Operations">2.2
Smart Key Operations</a></li>
+ <li><a id="toc-Smart-Key-Argument-Selection-1"
href="#Smart-Key-Argument-Selection">2.3 Smart Key Argument Selection</a></li>
+ <li><a id="toc-Smart-Key-Debugging-1" href="#Smart-Key-Debugging">2.4 Smart
Key Debugging</a></li>
+ <li><a id="toc-Smart-Key-Thing-Selection-1"
href="#Smart-Key-Thing-Selection">2.5 Smart Key Thing Selection</a></li>
+ <li><a id="toc-Smart-Mouse-Key-Modeline-Clicks-1"
href="#Smart-Mouse-Key-Modeline-Clicks">2.6 Smart Mouse Key Modeline
Clicks</a></li>
+ <li><a id="toc-Smart-Mouse-Key-Drags-1" href="#Smart-Mouse-Key-Drags">2.7
Smart Mouse Key Drags</a>
<ul class="no-bullet">
- <li><a name="toc-Creating-and-Deleting-Windows-1"
href="#Creating-and-Deleting-Windows">2.7.1 Creating and Deleting
Windows</a></li>
- <li><a name="toc-Saving-and-Restoring-Window-Configurations-1"
href="#Saving-and-Restoring-Window-Configurations">2.7.2 Saving and Restoring
Window Configurations</a></li>
- <li><a name="toc-Resizing-Windows-1" href="#Resizing-Windows">2.7.3
Resizing Windows</a></li>
- <li><a name="toc-Dragging-Buffers_002c-Windows-and-Items"
href="#Dragging-Buffers">2.7.4 Dragging Buffers, Windows and Items</a>
+ <li><a id="toc-Creating-and-Deleting-Windows-1"
href="#Creating-and-Deleting-Windows">2.7.1 Creating and Deleting
Windows</a></li>
+ <li><a id="toc-Saving-and-Restoring-Window-Configurations-1"
href="#Saving-and-Restoring-Window-Configurations">2.7.2 Saving and Restoring
Window Configurations</a></li>
+ <li><a id="toc-Resizing-Windows-1" href="#Resizing-Windows">2.7.3 Resizing
Windows</a></li>
+ <li><a id="toc-Dragging-Buffers_002c-Windows-and-Items"
href="#Dragging-Buffers">2.7.4 Dragging Buffers, Windows and Items</a>
<ul class="no-bullet">
- <li><a name="toc-Swapping-Buffers-1" href="#Swapping-Buffers">2.7.4.1
Swapping Buffers</a></li>
- <li><a name="toc-Displaying-Buffers-1"
href="#Displaying-Buffers">2.7.4.2 Displaying Buffers</a></li>
- <li><a name="toc-Cloning-Windows-1" href="#Cloning-Windows">2.7.4.3
Cloning Windows</a></li>
- <li><a name="toc-Displaying-File-and-Buffer-Items-1"
href="#Displaying-File-and-Buffer-Items">2.7.4.4 Displaying File and Buffer
Items</a></li>
- <li><a name="toc-Keyboard-Drags-1" href="#Keyboard-Drags">2.7.4.5
Keyboard Drags</a></li>
+ <li><a id="toc-Swapping-Buffers-1" href="#Swapping-Buffers">2.7.4.1
Swapping Buffers</a></li>
+ <li><a id="toc-Displaying-Buffers-1" href="#Displaying-Buffers">2.7.4.2
Displaying Buffers</a></li>
+ <li><a id="toc-Cloning-Windows-1" href="#Cloning-Windows">2.7.4.3
Cloning Windows</a></li>
+ <li><a id="toc-Displaying-File-and-Buffer-Items-1"
href="#Displaying-File-and-Buffer-Items">2.7.4.4 Displaying File and Buffer
Items</a></li>
+ <li><a id="toc-Keyboard-Drags-1" href="#Keyboard-Drags">2.7.4.5 Keyboard
Drags</a></li>
</ul></li>
</ul></li>
</ul></li>
-<li><a name="toc-Buttons-1" href="#Buttons">3 Buttons</a>
+<li><a id="toc-Buttons-1" href="#Buttons">3 Buttons</a>
<ul class="no-bullet">
- <li><a name="toc-Explicit-Buttons-1" href="#Explicit-Buttons">3.1 Explicit
Buttons</a></li>
- <li><a name="toc-Global-Buttons-1" href="#Global-Buttons">3.2 Global
Buttons</a></li>
- <li><a name="toc-Implicit-Buttons-1" href="#Implicit-Buttons">3.3 Implicit
Buttons</a>
+ <li><a id="toc-Explicit-Buttons-1" href="#Explicit-Buttons">3.1 Explicit
Buttons</a></li>
+ <li><a id="toc-Global-Buttons-1" href="#Global-Buttons">3.2 Global
Buttons</a></li>
+ <li><a id="toc-Implicit-Buttons-1" href="#Implicit-Buttons">3.3 Implicit
Buttons</a>
<ul class="no-bullet">
- <li><a name="toc-Implicit-Button-Types-1"
href="#Implicit-Button-Types">3.3.1 Implicit Button Types</a></li>
- <li><a name="toc-Action-Buttons-1" href="#Action-Buttons">3.3.2 Action
Buttons</a></li>
+ <li><a id="toc-Implicit-Button-Types-1"
href="#Implicit-Button-Types">3.3.1 Implicit Button Types</a></li>
+ <li><a id="toc-Action-Buttons-1" href="#Action-Buttons">3.3.2 Action
Buttons</a></li>
</ul></li>
- <li><a name="toc-Button-Files-1" href="#Button-Files">3.4 Button
Files</a></li>
- <li><a name="toc-Action-Types-1" href="#Action-Types">3.5 Action
Types</a></li>
- <li><a name="toc-Button-Type-Precedence-1"
href="#Button-Type-Precedence">3.6 Button Type Precedence</a></li>
- <li><a name="toc-Utilizing-Explicit-Buttons-1"
href="#Utilizing-Explicit-Buttons">3.7 Utilizing Explicit Buttons</a>
+ <li><a id="toc-Button-Files-1" href="#Button-Files">3.4 Button Files</a></li>
+ <li><a id="toc-Action-Types-1" href="#Action-Types">3.5 Action Types</a></li>
+ <li><a id="toc-Button-Type-Precedence-1" href="#Button-Type-Precedence">3.6
Button Type Precedence</a></li>
+ <li><a id="toc-Utilizing-Explicit-Buttons-1"
href="#Utilizing-Explicit-Buttons">3.7 Utilizing Explicit Buttons</a>
<ul class="no-bullet">
- <li><a name="toc-Creation-1" href="#Creation">3.7.1 Creation</a>
+ <li><a id="toc-Creation-1" href="#Creation">3.7.1 Creation</a>
<ul class="no-bullet">
- <li><a name="toc-Creation-Via-Action-Key-Drags"
href="#By-Dragging">3.7.1.1 Creation Via Action Key Drags</a></li>
- <li><a name="toc-Creation-Via-Menus" href="#By-Menu">3.7.1.2 Creation
Via Menus</a></li>
+ <li><a id="toc-Creation-Via-Action-Key-Drags"
href="#By-Dragging">3.7.1.1 Creation Via Action Key Drags</a></li>
+ <li><a id="toc-Creation-Via-Menus" href="#By-Menu">3.7.1.2 Creation Via
Menus</a></li>
</ul></li>
- <li><a name="toc-Renaming-1" href="#Renaming">3.7.2 Renaming</a></li>
- <li><a name="toc-Deletion-1" href="#Deletion">3.7.3 Deletion</a></li>
- <li><a name="toc-Modification-1" href="#Modification">3.7.4
Modification</a></li>
- <li><a name="toc-Searching-and-Summarizing-1"
href="#Searching-and-Summarizing">3.7.5 Searching and Summarizing</a></li>
- <li><a name="toc-Buttons-in-Mail-1" href="#Buttons-in-Mail">3.7.6 Buttons
in Mail</a></li>
- <li><a name="toc-Buttons-in-News-1" href="#Buttons-in-News">3.7.7 Buttons
in News</a></li>
+ <li><a id="toc-Renaming-1" href="#Renaming">3.7.2 Renaming</a></li>
+ <li><a id="toc-Deletion-1" href="#Deletion">3.7.3 Deletion</a></li>
+ <li><a id="toc-Modification-1" href="#Modification">3.7.4
Modification</a></li>
+ <li><a id="toc-Searching-and-Summarizing-1"
href="#Searching-and-Summarizing">3.7.5 Searching and Summarizing</a></li>
+ <li><a id="toc-Buttons-in-Mail-1" href="#Buttons-in-Mail">3.7.6 Buttons in
Mail</a></li>
+ <li><a id="toc-Buttons-in-News-1" href="#Buttons-in-News">3.7.7 Buttons in
News</a></li>
</ul></li>
</ul></li>
-<li><a name="toc-Menus-1" href="#Menus">4 Menus</a></li>
-<li><a name="toc-HyControl-1" href="#HyControl">5 HyControl</a></li>
-<li><a name="toc-Koutliner-1" href="#Koutliner">6 Koutliner</a>
+<li><a id="toc-Menus-1" href="#Menus">4 Menus</a></li>
+<li><a id="toc-HyControl-1" href="#HyControl">5 HyControl</a></li>
+<li><a id="toc-Koutliner-1" href="#Koutliner">6 Koutliner</a>
<ul class="no-bullet">
- <li><a name="toc-Menu-Commands-1" href="#Menu-Commands">6.1 Menu
Commands</a></li>
- <li><a name="toc-Creating-Outlines-1" href="#Creating-Outlines">6.2 Creating
Outlines</a></li>
- <li><a name="toc-Autonumbering-1" href="#Autonumbering">6.3
Autonumbering</a></li>
- <li><a name="toc-Idstamps-1" href="#Idstamps">6.4 Idstamps</a></li>
- <li><a name="toc-Editing-1" href="#Editing">6.5 Editing</a>
+ <li><a id="toc-Menu-Commands-1" href="#Menu-Commands">6.1 Menu
Commands</a></li>
+ <li><a id="toc-Creating-Outlines-1" href="#Creating-Outlines">6.2 Creating
Outlines</a></li>
+ <li><a id="toc-Autonumbering-1" href="#Autonumbering">6.3
Autonumbering</a></li>
+ <li><a id="toc-Idstamps-1" href="#Idstamps">6.4 Idstamps</a></li>
+ <li><a id="toc-Editing-1" href="#Editing">6.5 Editing</a>
<ul class="no-bullet">
- <li><a name="toc-Adding-and-Killing-1" href="#Adding-and-Killing">6.5.1
Adding and Killing</a></li>
- <li><a name="toc-Relocating-and-Copying-1"
href="#Relocating-and-Copying">6.5.2 Relocating and Copying</a></li>
- <li><a name="toc-Moving-Around-1" href="#Moving-Around">6.5.3 Moving
Around</a></li>
- <li><a name="toc-Filling-1" href="#Filling">6.5.4 Filling</a></li>
- <li><a name="toc-Transposing-1" href="#Transposing">6.5.5
Transposing</a></li>
- <li><a name="toc-Splitting-and-Appending-1"
href="#Splitting-and-Appending">6.5.6 Splitting and Appending</a></li>
- <li><a name="toc-Inserting-and-Importing-1"
href="#Inserting-and-Importing">6.5.7 Inserting and Importing</a></li>
- <li><a name="toc-Exporting-1" href="#Exporting">6.5.8 Exporting</a></li>
+ <li><a id="toc-Adding-and-Killing-1" href="#Adding-and-Killing">6.5.1
Adding and Killing</a></li>
+ <li><a id="toc-Relocating-and-Copying-1"
href="#Relocating-and-Copying">6.5.2 Relocating and Copying</a></li>
+ <li><a id="toc-Moving-Around-1" href="#Moving-Around">6.5.3 Moving
Around</a></li>
+ <li><a id="toc-Filling-1" href="#Filling">6.5.4 Filling</a></li>
+ <li><a id="toc-Transposing-1" href="#Transposing">6.5.5
Transposing</a></li>
+ <li><a id="toc-Splitting-and-Appending-1"
href="#Splitting-and-Appending">6.5.6 Splitting and Appending</a></li>
+ <li><a id="toc-Inserting-and-Importing-1"
href="#Inserting-and-Importing">6.5.7 Inserting and Importing</a></li>
+ <li><a id="toc-Exporting-1" href="#Exporting">6.5.8 Exporting</a></li>
</ul></li>
- <li><a name="toc-Viewing-1" href="#Viewing">6.6 Viewing</a>
+ <li><a id="toc-Viewing-1" href="#Viewing">6.6 Viewing</a>
<ul class="no-bullet">
- <li><a name="toc-Hiding-and-Showing-1" href="#Hiding-and-Showing">6.6.1
Hiding and Showing</a></li>
- <li><a name="toc-View-Specs-1" href="#View-Specs">6.6.2 View Specs</a></li>
+ <li><a id="toc-Hiding-and-Showing-1" href="#Hiding-and-Showing">6.6.1
Hiding and Showing</a></li>
+ <li><a id="toc-View-Specs-1" href="#View-Specs">6.6.2 View Specs</a></li>
</ul></li>
- <li><a name="toc-Links-1" href="#Links">6.7 Links</a></li>
- <li><a name="toc-Cell-Attributes-1" href="#Cell-Attributes">6.8 Cell
Attributes</a></li>
- <li><a name="toc-Koutliner-History-1" href="#Koutliner-History">6.9
Koutliner History</a></li>
+ <li><a id="toc-Links-1" href="#Links">6.7 Links</a></li>
+ <li><a id="toc-Cell-Attributes-1" href="#Cell-Attributes">6.8 Cell
Attributes</a></li>
+ <li><a id="toc-Koutliner-History-1" href="#Koutliner-History">6.9 Koutliner
History</a></li>
</ul></li>
-<li><a name="toc-HyRolo-1" href="#HyRolo">7 HyRolo</a>
+<li><a id="toc-HyRolo-1" href="#HyRolo">7 HyRolo</a>
<ul class="no-bullet">
- <li><a name="toc-HyRolo-Concepts-1" href="#HyRolo-Concepts">7.1 HyRolo
Concepts</a></li>
- <li><a name="toc-Rolo-Menu" href="#HyRolo-Menu">7.2 Rolo Menu</a></li>
- <li><a name="toc-HyRolo-Searching-1" href="#HyRolo-Searching">7.3 HyRolo
Searching</a></li>
- <li><a name="toc-HyRolo-Keys-1" href="#HyRolo-Keys">7.4 HyRolo Keys</a></li>
- <li><a name="toc-HyRolo-Settings-1" href="#HyRolo-Settings">7.5 HyRolo
Settings</a></li>
+ <li><a id="toc-HyRolo-Concepts-1" href="#HyRolo-Concepts">7.1 HyRolo
Concepts</a></li>
+ <li><a id="toc-Rolo-Menu" href="#HyRolo-Menu">7.2 Rolo Menu</a></li>
+ <li><a id="toc-HyRolo-Searching-1" href="#HyRolo-Searching">7.3 HyRolo
Searching</a></li>
+ <li><a id="toc-HyRolo-Keys-1" href="#HyRolo-Keys">7.4 HyRolo Keys</a></li>
+ <li><a id="toc-HyRolo-Settings-1" href="#HyRolo-Settings">7.5 HyRolo
Settings</a></li>
</ul></li>
-<li><a name="toc-Window-Configurations-1" href="#Window-Configurations">8
Window Configurations</a></li>
-<li><a name="toc-Developing-with-Hyperbole-1"
href="#Developing-with-Hyperbole">9 Developing with Hyperbole</a>
+<li><a id="toc-Window-Configurations-1" href="#Window-Configurations">8 Window
Configurations</a></li>
+<li><a id="toc-Developing-with-Hyperbole-1"
href="#Developing-with-Hyperbole">9 Developing with Hyperbole</a>
<ul class="no-bullet">
- <li><a name="toc-Hook-Variables-1" href="#Hook-Variables">9.1 Hook
Variables</a></li>
- <li><a name="toc-Creating-Types-1" href="#Creating-Types">9.2 Creating
Types</a>
+ <li><a id="toc-Hook-Variables-1" href="#Hook-Variables">9.1 Hook
Variables</a></li>
+ <li><a id="toc-Creating-Types-1" href="#Creating-Types">9.2 Creating
Types</a>
<ul class="no-bullet">
- <li><a name="toc-Action-Type-Creation-1"
href="#Action-Type-Creation">9.2.1 Action Type Creation</a></li>
- <li><a name="toc-Implicit-Button-Type-Creation-1"
href="#Implicit-Button-Type-Creation">9.2.2 Implicit Button Type
Creation</a></li>
+ <li><a id="toc-Action-Type-Creation-1" href="#Action-Type-Creation">9.2.1
Action Type Creation</a></li>
+ <li><a id="toc-Implicit-Button-Type-Creation-1"
href="#Implicit-Button-Type-Creation">9.2.2 Implicit Button Type
Creation</a></li>
</ul></li>
- <li><a name="toc-Explicit-Button-Technicalities-1"
href="#Explicit-Button-Technicalities">9.3 Explicit Button Technicalities</a>
+ <li><a id="toc-Explicit-Button-Technicalities-1"
href="#Explicit-Button-Technicalities">9.3 Explicit Button Technicalities</a>
<ul class="no-bullet">
- <li><a name="toc-Button-Label-Normalization-1"
href="#Button-Label-Normalization">9.3.1 Button Label Normalization</a></li>
- <li><a name="toc-Operational-and-Storage-Formats-1"
href="#Operational-and-Storage-Formats">9.3.2 Operational and Storage
Formats</a></li>
- <li><a name="toc-Programmatic-Button-Creation-1"
href="#Programmatic-Button-Creation">9.3.3 Programmatic Button Creation</a></li>
+ <li><a id="toc-Button-Label-Normalization-1"
href="#Button-Label-Normalization">9.3.1 Button Label Normalization</a></li>
+ <li><a id="toc-Operational-and-Storage-Formats-1"
href="#Operational-and-Storage-Formats">9.3.2 Operational and Storage
Formats</a></li>
+ <li><a id="toc-Programmatic-Button-Creation-1"
href="#Programmatic-Button-Creation">9.3.3 Programmatic Button Creation</a></li>
</ul></li>
- <li><a name="toc-Encapsulating-Systems-1" href="#Encapsulating-Systems">9.4
Encapsulating Systems</a></li>
- <li><a name="toc-Embedding-Hyperbole-1" href="#Embedding-Hyperbole">9.5
Embedding Hyperbole</a></li>
+ <li><a id="toc-Encapsulating-Systems-1" href="#Encapsulating-Systems">9.4
Encapsulating Systems</a></li>
+ <li><a id="toc-Embedding-Hyperbole-1" href="#Embedding-Hyperbole">9.5
Embedding Hyperbole</a></li>
</ul></li>
-<li><a name="toc-Glossary-1" href="#Glossary">Appendix A Glossary</a></li>
-<li><a name="toc-Setup-1" href="#Setup">Appendix B Setup</a>
+<li><a id="toc-Glossary-1" href="#Glossary">Appendix A Glossary</a></li>
+<li><a id="toc-Setup-1" href="#Setup">Appendix B Setup</a>
<ul class="no-bullet">
- <li><a name="toc-Installation-1" href="#Installation">B.1
Installation</a></li>
- <li><a name="toc-Invocation-1" href="#Invocation">B.2 Invocation</a></li>
- <li><a name="toc-Customization-1" href="#Customization">B.3 Customization</a>
+ <li><a id="toc-Installation-1" href="#Installation">B.1 Installation</a></li>
+ <li><a id="toc-Invocation-1" href="#Invocation">B.2 Invocation</a></li>
+ <li><a id="toc-Customization-1" href="#Customization">B.3 Customization</a>
<ul class="no-bullet">
- <li><a name="toc-Referent-Display-1" href="#Referent-Display">B.3.1
Referent Display</a></li>
- <li><a name="toc-Internal-Viewers-1" href="#Internal-Viewers">B.3.2
Internal Viewers</a></li>
- <li><a name="toc-External-Viewers-1" href="#External-Viewers">B.3.3
External Viewers</a></li>
- <li><a name="toc-Link-Variable-Substitution-1"
href="#Link-Variable-Substitution">B.3.4 Link Variable Substitution</a></li>
- <li><a name="toc-Web-Search-Engines-1" href="#Web-Search-Engines">B.3.5
Web Search Engines</a></li>
- <li><a name="toc-Using-URLs-with-Find_002dFile-1"
href="#Using-URLs-with-Find_002dFile">B.3.6 Using URLs with Find-File</a></li>
- <li><a name="toc-Invisible-Text-Searches-1"
href="#Invisible-Text-Searches">B.3.7 Invisible Text Searches</a></li>
- <li><a name="toc-Configuring-Button-Colors" href="#Button-Colors">B.3.8
Configuring Button Colors</a></li>
+ <li><a id="toc-Referent-Display-1" href="#Referent-Display">B.3.1 Referent
Display</a></li>
+ <li><a id="toc-Internal-Viewers-1" href="#Internal-Viewers">B.3.2 Internal
Viewers</a></li>
+ <li><a id="toc-External-Viewers-1" href="#External-Viewers">B.3.3 External
Viewers</a></li>
+ <li><a id="toc-Link-Variable-Substitution-1"
href="#Link-Variable-Substitution">B.3.4 Link Variable Substitution</a></li>
+ <li><a id="toc-Web-Search-Engines-1" href="#Web-Search-Engines">B.3.5 Web
Search Engines</a></li>
+ <li><a id="toc-Using-URLs-with-Find_002dFile-1"
href="#Using-URLs-with-Find_002dFile">B.3.6 Using URLs with Find-File</a></li>
+ <li><a id="toc-Invisible-Text-Searches-1"
href="#Invisible-Text-Searches">B.3.7 Invisible Text Searches</a></li>
+ <li><a id="toc-Configuring-Button-Colors" href="#Button-Colors">B.3.8
Configuring Button Colors</a></li>
</ul></li>
</ul></li>
-<li><a name="toc-Global-Key-Bindings-1" href="#Global-Key-Bindings">Appendix C
Global Key Bindings</a></li>
-<li><a name="toc-Koutliner-Keys-1" href="#Koutliner-Keys">Appendix D Koutliner
Keys</a></li>
-<li><a name="toc-Smart-Key-Reference-1" href="#Smart-Key-Reference">Appendix E
Smart Key Reference</a>
+<li><a id="toc-Global-Key-Bindings-1" href="#Global-Key-Bindings">Appendix C
Global Key Bindings</a></li>
+<li><a id="toc-Koutliner-Keys-1" href="#Koutliner-Keys">Appendix D Koutliner
Keys</a></li>
+<li><a id="toc-Smart-Key-Reference-1" href="#Smart-Key-Reference">Appendix E
Smart Key Reference</a>
<ul class="no-bullet">
- <li><a name="toc-Smart-Mouse-Keys-1" href="#Smart-Mouse-Keys">E.1 Smart
Mouse Keys</a>
+ <li><a id="toc-Smart-Mouse-Keys-1" href="#Smart-Mouse-Keys">E.1 Smart Mouse
Keys</a>
<ul class="no-bullet">
- <li><a name="toc-Minibuffer-Menu-Activation-1"
href="#Minibuffer-Menu-Activation">E.1.1 Minibuffer Menu Activation</a></li>
- <li><a name="toc-Thing-Selection-1" href="#Thing-Selection">E.1.2 Thing
Selection</a></li>
- <li><a name="toc-Side_002dby_002dSide-Window-Resizing-1"
href="#Side_002dby_002dSide-Window-Resizing">E.1.3 Side-by-Side Window
Resizing</a></li>
- <li><a name="toc-Modeline-Clicks-and-Drags-1"
href="#Modeline-Clicks-and-Drags">E.1.4 Modeline Clicks and Drags</a></li>
- <li><a name="toc-Smart-Mouse-Drags-between-Windows-1"
href="#Smart-Mouse-Drags-between-Windows">E.1.5 Smart Mouse Drags between
Windows</a></li>
- <li><a name="toc-Smart-Mouse-Drags-within-a-Window-1"
href="#Smart-Mouse-Drags-within-a-Window">E.1.6 Smart Mouse Drags within a
Window</a></li>
- <li><a name="toc-Smart-Mouse-Drags-outside-a-Window-1"
href="#Smart-Mouse-Drags-outside-a-Window">E.1.7 Smart Mouse Drags outside a
Window</a></li>
+ <li><a id="toc-Minibuffer-Menu-Activation-1"
href="#Minibuffer-Menu-Activation">E.1.1 Minibuffer Menu Activation</a></li>
+ <li><a id="toc-Thing-Selection-1" href="#Thing-Selection">E.1.2 Thing
Selection</a></li>
+ <li><a id="toc-Side_002dby_002dSide-Window-Resizing-1"
href="#Side_002dby_002dSide-Window-Resizing">E.1.3 Side-by-Side Window
Resizing</a></li>
+ <li><a id="toc-Modeline-Clicks-and-Drags-1"
href="#Modeline-Clicks-and-Drags">E.1.4 Modeline Clicks and Drags</a></li>
+ <li><a id="toc-Smart-Mouse-Drags-between-Windows-1"
href="#Smart-Mouse-Drags-between-Windows">E.1.5 Smart Mouse Drags between
Windows</a></li>
+ <li><a id="toc-Smart-Mouse-Drags-within-a-Window-1"
href="#Smart-Mouse-Drags-within-a-Window">E.1.6 Smart Mouse Drags within a
Window</a></li>
+ <li><a id="toc-Smart-Mouse-Drags-outside-a-Window-1"
href="#Smart-Mouse-Drags-outside-a-Window">E.1.7 Smart Mouse Drags outside a
Window</a></li>
</ul></li>
- <li><a name="toc-Smart-Keyboard-Keys-1" href="#Smart-Keyboard-Keys">E.2
Smart Keyboard Keys</a>
+ <li><a id="toc-Smart-Keyboard-Keys-1" href="#Smart-Keyboard-Keys">E.2 Smart
Keyboard Keys</a>
<ul class="no-bullet">
- <li><a name="toc-Smart-Key-_002d-Company-Mode-1"
href="#Smart-Key-_002d-Company-Mode">E.2.1 Smart Key - Company Mode</a></li>
- <li><a name="toc-Smart-Key-_002d-Treemacs-1"
href="#Smart-Key-_002d-Treemacs">E.2.2 Smart Key - Treemacs</a></li>
- <li><a name="toc-Smart-Key-_002d-Emacs-Pushbuttons-1"
href="#Smart-Key-_002d-Emacs-Pushbuttons">E.2.3 Smart Key - Emacs
Pushbuttons</a></li>
- <li><a name="toc-Smart-Key-_002d-Argument-Completion-1"
href="#Smart-Key-_002d-Argument-Completion">E.2.4 Smart Key - Argument
Completion</a></li>
- <li><a name="toc-Smart-Key-_002d-ID-Edit-Mode-1"
href="#Smart-Key-_002d-ID-Edit-Mode">E.2.5 Smart Key - ID Edit Mode</a></li>
- <li><a
name="toc-Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029-1"
href="#Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029">E.2.6 Smart
Key - Emacs Cross-references (Xrefs)</a></li>
- <li><a name="toc-Smart-Key-_002d-Smart-Scrolling-1"
href="#Smart-Key-_002d-Smart-Scrolling">E.2.7 Smart Key - Smart
Scrolling</a></li>
- <li><a name="toc-Smart-Key-_002d-Smart-Menus-1"
href="#Smart-Key-_002d-Smart-Menus">E.2.8 Smart Key - Smart Menus</a></li>
- <li><a name="toc-Smart-Key-_002d-Dired-Mode-1"
href="#Smart-Key-_002d-Dired-Mode">E.2.9 Smart Key - Dired Mode</a></li>
- <li><a name="toc-Smart-Key-_002d-Hyperbole-Buttons-1"
href="#Smart-Key-_002d-Hyperbole-Buttons">E.2.10 Smart Key - Hyperbole
Buttons</a></li>
- <li><a name="toc-Smart-Key-_002d-View-Mode-1"
href="#Smart-Key-_002d-View-Mode">E.2.11 Smart Key - View Mode</a></li>
- <li><a name="toc-Smart-Key-_002d-Delimited-Things-1"
href="#Smart-Key-_002d-Delimited-Things">E.2.12 Smart Key - Delimited
Things</a></li>
- <li><a name="toc-Smart-Key-_002d-The-Koutliner-1"
href="#Smart-Key-_002d-The-Koutliner">E.2.13 Smart Key - The Koutliner</a></li>
- <li><a name="toc-Smart-Key-_002d-RDB-Mode-1"
href="#Smart-Key-_002d-RDB-Mode">E.2.14 Smart Key - RDB Mode</a></li>
- <li><a name="toc-Smart-Key-_002d-Help-Buffers-1"
href="#Smart-Key-_002d-Help-Buffers">E.2.15 Smart Key - Help Buffers</a></li>
- <li><a name="toc-Smart-Key-_002d-Pages-Directory-Mode-1"
href="#Smart-Key-_002d-Pages-Directory-Mode">E.2.16 Smart Key - Pages Directory
Mode</a></li>
- <li><a name="toc-Smart-Key-_002d-Python-Source-Code-1"
href="#Smart-Key-_002d-Python-Source-Code">E.2.17 Smart Key - Python Source
Code</a></li>
- <li><a name="toc-Smart-Key-_002d-Identifier-Menu-Mode-1"
href="#Smart-Key-_002d-Identifier-Menu-Mode">E.2.18 Smart Key - Identifier Menu
Mode</a></li>
- <li><a name="toc-Smart-Key-_002d-C-Source-Code-1"
href="#Smart-Key-_002d-C-Source-Code">E.2.19 Smart Key - C Source Code</a></li>
- <li><a name="toc-Smart-Key-_002d-C_002b_002b-Source-Code-1"
href="#Smart-Key-_002d-C_002b_002b-Source-Code">E.2.20 Smart Key - C++ Source
Code</a></li>
- <li><a name="toc-Smart-Key-_002d-Assembly-Source-Code-1"
href="#Smart-Key-_002d-Assembly-Source-Code">E.2.21 Smart Key - Assembly Source
Code</a></li>
- <li><a name="toc-Smart-Key-_002d-Lisp-Source-Code-1"
href="#Smart-Key-_002d-Lisp-Source-Code">E.2.22 Smart Key - Lisp Source
Code</a></li>
- <li><a name="toc-Smart-Key-_002d-Java-Source-Code-1"
href="#Smart-Key-_002d-Java-Source-Code">E.2.23 Smart Key - Java Source
Code</a></li>
- <li><a name="toc-Smart-Key-_002d-JavaScript-Source-Code-1"
href="#Smart-Key-_002d-JavaScript-Source-Code">E.2.24 Smart Key - JavaScript
Source Code</a></li>
- <li><a name="toc-Smart-Key-_002d-Objective_002dC-Source-Code-1"
href="#Smart-Key-_002d-Objective_002dC-Source-Code">E.2.25 Smart Key -
Objective-C Source Code</a></li>
- <li><a name="toc-Smart-Key-_002d-Fortran-Source-Code-1"
href="#Smart-Key-_002d-Fortran-Source-Code">E.2.26 Smart Key - Fortran Source
Code</a></li>
- <li><a name="toc-Smart-Key-_002d-Occurrence-Matches-1"
href="#Smart-Key-_002d-Occurrence-Matches">E.2.27 Smart Key - Occurrence
Matches</a></li>
- <li><a name="toc-Smart-Key-_002d-Calendar-Mode-1"
href="#Smart-Key-_002d-Calendar-Mode">E.2.28 Smart Key - Calendar Mode</a></li>
- <li><a name="toc-Smart-Key-_002d-Man-Page-Apropos-1"
href="#Smart-Key-_002d-Man-Page-Apropos">E.2.29 Smart Key - Man Page
Apropos</a></li>
- <li><a name="toc-Smart-Key-_002d-Emacs-Outline-Mode-1"
href="#Smart-Key-_002d-Emacs-Outline-Mode">E.2.30 Smart Key - Emacs Outline
Mode</a></li>
- <li><a name="toc-Smart-Key-_002d-Info-Manuals-1"
href="#Smart-Key-_002d-Info-Manuals">E.2.31 Smart Key - Info Manuals</a></li>
- <li><a name="toc-Smart-Key-_002d-Email-Composers-1"
href="#Smart-Key-_002d-Email-Composers">E.2.32 Smart Key - Email
Composers</a></li>
- <li><a name="toc-Smart-Key-_002d-GNUS-Newsreader-1"
href="#Smart-Key-_002d-GNUS-Newsreader">E.2.33 Smart Key - GNUS
Newsreader</a></li>
- <li><a name="toc-Smart-Key-_002d-Buffer-Menus-1"
href="#Smart-Key-_002d-Buffer-Menus">E.2.34 Smart Key - Buffer Menus</a></li>
- <li><a name="toc-Smart-Key-_002d-Tar-File-Mode-1"
href="#Smart-Key-_002d-Tar-File-Mode">E.2.35 Smart Key - Tar File Mode</a></li>
- <li><a name="toc-Smart-Key-_002d-Man-Pages-1"
href="#Smart-Key-_002d-Man-Pages">E.2.36 Smart Key - Man Pages</a></li>
- <li><a name="toc-Smart-Key-_002d-WWW-URLs-1"
href="#Smart-Key-_002d-WWW-URLs">E.2.37 Smart Key - WWW URLs</a></li>
- <li><a name="toc-Smart-Key-_002d-HyRolo-Match-Buffers-1"
href="#Smart-Key-_002d-HyRolo-Match-Buffers">E.2.38 Smart Key - HyRolo Match
Buffers</a></li>
- <li><a name="toc-Smart-Key-_002d-Image-Thumbnails-1"
href="#Smart-Key-_002d-Image-Thumbnails">E.2.39 Smart Key - Image
Thumbnails</a></li>
- <li><a name="toc-Smart-Key-_002d-Gomoku-Game-1"
href="#Smart-Key-_002d-Gomoku-Game">E.2.40 Smart Key - Gomoku Game</a></li>
- <li><a name="toc-Smart-Key-_002d-The-OO_002dBrowser-1"
href="#Smart-Key-_002d-The-OO_002dBrowser">E.2.41 Smart Key - The
OO-Browser</a></li>
- <li><a name="toc-Smart-Key-_002d-Default-Context-1"
href="#Smart-Key-_002d-Default-Context">E.2.42 Smart Key - Default
Context</a></li>
+ <li><a id="toc-Smart-Key-_002d-Company-Mode-1"
href="#Smart-Key-_002d-Company-Mode">E.2.1 Smart Key - Company Mode</a></li>
+ <li><a id="toc-Smart-Key-_002d-Treemacs-1"
href="#Smart-Key-_002d-Treemacs">E.2.2 Smart Key - Treemacs</a></li>
+ <li><a id="toc-Smart-Key-_002d-Emacs-Pushbuttons-1"
href="#Smart-Key-_002d-Emacs-Pushbuttons">E.2.3 Smart Key - Emacs
Pushbuttons</a></li>
+ <li><a id="toc-Smart-Key-_002d-Argument-Completion-1"
href="#Smart-Key-_002d-Argument-Completion">E.2.4 Smart Key - Argument
Completion</a></li>
+ <li><a id="toc-Smart-Key-_002d-ID-Edit-Mode-1"
href="#Smart-Key-_002d-ID-Edit-Mode">E.2.5 Smart Key - ID Edit Mode</a></li>
+ <li><a
id="toc-Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029-1"
href="#Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029">E.2.6 Smart
Key - Emacs Cross-references (Xrefs)</a></li>
+ <li><a id="toc-Smart-Key-_002d-Smart-Scrolling-1"
href="#Smart-Key-_002d-Smart-Scrolling">E.2.7 Smart Key - Smart
Scrolling</a></li>
+ <li><a id="toc-Smart-Key-_002d-Smart-Menus-1"
href="#Smart-Key-_002d-Smart-Menus">E.2.8 Smart Key - Smart Menus</a></li>
+ <li><a id="toc-Smart-Key-_002d-Dired-Mode-1"
href="#Smart-Key-_002d-Dired-Mode">E.2.9 Smart Key - Dired Mode</a></li>
+ <li><a id="toc-Smart-Key-_002d-Hyperbole-Buttons-1"
href="#Smart-Key-_002d-Hyperbole-Buttons">E.2.10 Smart Key - Hyperbole
Buttons</a></li>
+ <li><a id="toc-Smart-Key-_002d-View-Mode-1"
href="#Smart-Key-_002d-View-Mode">E.2.11 Smart Key - View Mode</a></li>
+ <li><a id="toc-Smart-Key-_002d-Delimited-Things-1"
href="#Smart-Key-_002d-Delimited-Things">E.2.12 Smart Key - Delimited
Things</a></li>
+ <li><a id="toc-Smart-Key-_002d-The-Koutliner-1"
href="#Smart-Key-_002d-The-Koutliner">E.2.13 Smart Key - The Koutliner</a></li>
+ <li><a id="toc-Smart-Key-_002d-RDB-Mode-1"
href="#Smart-Key-_002d-RDB-Mode">E.2.14 Smart Key - RDB Mode</a></li>
+ <li><a id="toc-Smart-Key-_002d-Help-Buffers-1"
href="#Smart-Key-_002d-Help-Buffers">E.2.15 Smart Key - Help Buffers</a></li>
+ <li><a id="toc-Smart-Key-_002d-Pages-Directory-Mode-1"
href="#Smart-Key-_002d-Pages-Directory-Mode">E.2.16 Smart Key - Pages Directory
Mode</a></li>
+ <li><a id="toc-Smart-Key-_002d-Python-Source-Code-1"
href="#Smart-Key-_002d-Python-Source-Code">E.2.17 Smart Key - Python Source
Code</a></li>
+ <li><a id="toc-Smart-Key-_002d-Identifier-Menu-Mode-1"
href="#Smart-Key-_002d-Identifier-Menu-Mode">E.2.18 Smart Key - Identifier Menu
Mode</a></li>
+ <li><a id="toc-Smart-Key-_002d-C-Source-Code-1"
href="#Smart-Key-_002d-C-Source-Code">E.2.19 Smart Key - C Source Code</a></li>
+ <li><a id="toc-Smart-Key-_002d-C_002b_002b-Source-Code-1"
href="#Smart-Key-_002d-C_002b_002b-Source-Code">E.2.20 Smart Key - C++ Source
Code</a></li>
+ <li><a id="toc-Smart-Key-_002d-Assembly-Source-Code-1"
href="#Smart-Key-_002d-Assembly-Source-Code">E.2.21 Smart Key - Assembly Source
Code</a></li>
+ <li><a id="toc-Smart-Key-_002d-Lisp-Source-Code-1"
href="#Smart-Key-_002d-Lisp-Source-Code">E.2.22 Smart Key - Lisp Source
Code</a></li>
+ <li><a id="toc-Smart-Key-_002d-Java-Source-Code-1"
href="#Smart-Key-_002d-Java-Source-Code">E.2.23 Smart Key - Java Source
Code</a></li>
+ <li><a id="toc-Smart-Key-_002d-JavaScript-Source-Code-1"
href="#Smart-Key-_002d-JavaScript-Source-Code">E.2.24 Smart Key - JavaScript
Source Code</a></li>
+ <li><a id="toc-Smart-Key-_002d-Objective_002dC-Source-Code-1"
href="#Smart-Key-_002d-Objective_002dC-Source-Code">E.2.25 Smart Key -
Objective-C Source Code</a></li>
+ <li><a id="toc-Smart-Key-_002d-Fortran-Source-Code-1"
href="#Smart-Key-_002d-Fortran-Source-Code">E.2.26 Smart Key - Fortran Source
Code</a></li>
+ <li><a id="toc-Smart-Key-_002d-Occurrence-Matches-1"
href="#Smart-Key-_002d-Occurrence-Matches">E.2.27 Smart Key - Occurrence
Matches</a></li>
+ <li><a id="toc-Smart-Key-_002d-Calendar-Mode-1"
href="#Smart-Key-_002d-Calendar-Mode">E.2.28 Smart Key - Calendar Mode</a></li>
+ <li><a id="toc-Smart-Key-_002d-Man-Page-Apropos-1"
href="#Smart-Key-_002d-Man-Page-Apropos">E.2.29 Smart Key - Man Page
Apropos</a></li>
+ <li><a id="toc-Smart-Key-_002d-Emacs-Outline-Mode-1"
href="#Smart-Key-_002d-Emacs-Outline-Mode">E.2.30 Smart Key - Emacs Outline
Mode</a></li>
+ <li><a id="toc-Smart-Key-_002d-Info-Manuals-1"
href="#Smart-Key-_002d-Info-Manuals">E.2.31 Smart Key - Info Manuals</a></li>
+ <li><a id="toc-Smart-Key-_002d-Email-Composers-1"
href="#Smart-Key-_002d-Email-Composers">E.2.32 Smart Key - Email
Composers</a></li>
+ <li><a id="toc-Smart-Key-_002d-GNUS-Newsreader-1"
href="#Smart-Key-_002d-GNUS-Newsreader">E.2.33 Smart Key - GNUS
Newsreader</a></li>
+ <li><a id="toc-Smart-Key-_002d-Buffer-Menus-1"
href="#Smart-Key-_002d-Buffer-Menus">E.2.34 Smart Key - Buffer Menus</a></li>
+ <li><a id="toc-Smart-Key-_002d-Tar-File-Mode-1"
href="#Smart-Key-_002d-Tar-File-Mode">E.2.35 Smart Key - Tar File Mode</a></li>
+ <li><a id="toc-Smart-Key-_002d-Man-Pages-1"
href="#Smart-Key-_002d-Man-Pages">E.2.36 Smart Key - Man Pages</a></li>
+ <li><a id="toc-Smart-Key-_002d-WWW-URLs-1"
href="#Smart-Key-_002d-WWW-URLs">E.2.37 Smart Key - WWW URLs</a></li>
+ <li><a id="toc-Smart-Key-_002d-HyRolo-Match-Buffers-1"
href="#Smart-Key-_002d-HyRolo-Match-Buffers">E.2.38 Smart Key - HyRolo Match
Buffers</a></li>
+ <li><a id="toc-Smart-Key-_002d-Image-Thumbnails-1"
href="#Smart-Key-_002d-Image-Thumbnails">E.2.39 Smart Key - Image
Thumbnails</a></li>
+ <li><a id="toc-Smart-Key-_002d-Gomoku-Game-1"
href="#Smart-Key-_002d-Gomoku-Game">E.2.40 Smart Key - Gomoku Game</a></li>
+ <li><a id="toc-Smart-Key-_002d-The-OO_002dBrowser-1"
href="#Smart-Key-_002d-The-OO_002dBrowser">E.2.41 Smart Key - The
OO-Browser</a></li>
+ <li><a id="toc-Smart-Key-_002d-Default-Context-1"
href="#Smart-Key-_002d-Default-Context">E.2.42 Smart Key - Default
Context</a></li>
</ul></li>
</ul></li>
-<li><a name="toc-Suggestion-or-Bug-Reporting-1"
href="#Suggestion-or-Bug-Reporting">Appendix F Suggestion or Bug
Reporting</a></li>
-<li><a name="toc-Questions-and-Answers-1"
href="#Questions-and-Answers">Appendix G Questions and Answers</a></li>
-<li><a name="toc-Future-Work-1" href="#Future-Work">Appendix H Future
Work</a></li>
-<li><a name="toc-References-1" href="#References">Appendix I
References</a></li>
-<li><a name="toc-Key-Index-1" href="#Key-Index">Key Index</a></li>
-<li><a name="toc-Function_002c-Variable-and-File-Index"
href="#Function">Function, Variable and File Index</a></li>
-<li><a name="toc-Concept-Index-1" href="#Concept-Index">Concept Index</a></li>
+<li><a id="toc-Suggestion-or-Bug-Reporting-1"
href="#Suggestion-or-Bug-Reporting">Appendix F Suggestion or Bug
Reporting</a></li>
+<li><a id="toc-Questions-and-Answers-1" href="#Questions-and-Answers">Appendix
G Questions and Answers</a></li>
+<li><a id="toc-Future-Work-1" href="#Future-Work">Appendix H Future
Work</a></li>
+<li><a id="toc-References-1" href="#References">Appendix I References</a></li>
+<li><a id="toc-Key-Index-1" href="#Key-Index" rel="index">Key Index</a></li>
+<li><a id="toc-Function_002c-Variable-and-File-Index" href="#Function"
rel="index">Function, Variable and File Index</a></li>
+<li><a id="toc-Concept-Index-1" href="#Concept-Index" rel="index">Concept
Index</a></li>
</ul>
</div>
-<a name="Top"></a>
-<div class="header">
+<span id="Top"></span><div class="header">
<p>
Next: <a href="#Introduction" accesskey="n" rel="next">Introduction</a>,
Previous: <a href="dir.html#Top" accesskey="p" rel="prev">(dir)</a>, Up: <a
href="dir.html#Top" accesskey="u" rel="up">(dir)</a> [<a
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="GNU-Hyperbole"></a>
-<h2 class="unnumbered">GNU Hyperbole</h2>
+<span id="GNU-Hyperbole"></span><h2 class="unnumbered">GNU Hyperbole</h2>
<CENTER><H1>GNU Hyperbole</H1></CENTER>
@@ -348,8 +337,8 @@ WITHOUT ANY WARRANTY, without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</P>
<PRE>
-Edition 7.0.7
-Printed October 2, 2019.
+Edition 7.0.8
+Printed January 19, 2020.
Published by the Free Software Foundation, Inc.
Author: Bob Weiner
@@ -366,9 +355,9 @@ Printed October 2, 2019.
</div><br>
-<a name="index-credits"></a>
-<a name="index-Hyperbole_002c-obtaining"></a>
-<a name="index-anonymous-ftp"></a>
+<span id="index-credits"></span>
+<span id="index-Hyperbole_002c-obtaining"></span>
+<span id="index-anonymous-ftp"></span>
<p>GNU Hyperbole was designed and written by Bob Weiner.
See <a href="#Setup">Setup</a>, for information on how to obtain and to install
Hyperbole.
@@ -400,47 +389,47 @@ a long-time Hyperbole user, who has helped maintain it
throughout the
years. The Koutliner is dedicated to my lovely wife, Kathy.
</p>
<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">• <a href="#Introduction"
accesskey="1">Introduction</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Introduction"
accesskey="1">Introduction</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Smart-Keys"
accesskey="2">Smart Keys</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Smart-Keys"
accesskey="2">Smart Keys</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Buttons"
accesskey="3">Buttons</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Buttons"
accesskey="3">Buttons</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Menus"
accesskey="4">Menus</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Menus"
accesskey="4">Menus</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#HyControl"
accesskey="5">HyControl</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#HyControl"
accesskey="5">HyControl</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Koutliner"
accesskey="6">Koutliner</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Koutliner"
accesskey="6">Koutliner</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#HyRolo"
accesskey="7">HyRolo</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#HyRolo"
accesskey="7">HyRolo</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Window-Configurations"
accesskey="8">Window Configurations</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Window-Configurations"
accesskey="8">Window Configurations</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Developing-with-Hyperbole"
accesskey="9">Developing with Hyperbole</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Developing-with-Hyperbole"
accesskey="9">Developing with Hyperbole</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Glossary">Glossary</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a
href="#Glossary">Glossary</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Setup">Setup</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Setup">Setup</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Global-Key-Bindings">Global
Key Bindings</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Global-Key-Bindings">Global
Key Bindings</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Koutliner-Keys">Koutliner
Keys</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Koutliner-Keys">Koutliner
Keys</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Smart-Key-Reference">Smart
Key Reference</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Smart-Key-Reference">Smart
Key Reference</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Suggestion-or-Bug-Reporting">Suggestion or Bug
Reporting</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Suggestion-or-Bug-Reporting">Suggestion or Bug
Reporting</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Questions-and-Answers">Questions and
Answers</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Questions-and-Answers">Questions and
Answers</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Future-Work">Future
Work</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Future-Work">Future
Work</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#References">References</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a
href="#References">References</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Key-Index">Key
Index</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Key-Index" rel="index">Key
Index</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Function">Function</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Function"
rel="index">Function</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Concept-Index">Concept
Index</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Concept-Index"
rel="index">Concept Index</a></td><td> </td><td align="left"
valign="top">
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
@@ -448,365 +437,363 @@ years. The Koutliner is dedicated to my lovely wife,
Kathy.
Introduction
-</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Manual-Overview">Manual Overview</a>:</td><td> </td><td
align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Manual-Overview">Manual Overview</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Motivation">Motivation</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a
href="#Motivation">Motivation</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Hyperbole-Overview">Hyperbole Overview</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Hyperbole-Overview">Hyperbole Overview</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Mail-Lists">Mail
Lists</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Mail-Lists">Mail
Lists</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
Smart Keys
-</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Smart-Key-Bindings">Smart Key Bindings</a>:</td><td> </td><td
align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Smart-Key-Bindings">Smart Key Bindings</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Smart-Key-Operations">Smart
Key Operations</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Smart-Key-Operations">Smart
Key Operations</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-Argument-Selection">Smart Key Argument
Selection</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-Argument-Selection">Smart Key Argument
Selection</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Smart-Key-Debugging">Smart
Key Debugging</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Smart-Key-Debugging">Smart
Key Debugging</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-Thing-Selection">Smart Key Thing
Selection</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-Thing-Selection">Smart Key Thing
Selection</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Mouse-Key-Modeline-Clicks">Smart Mouse Key Modeline
Clicks</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Mouse-Key-Modeline-Clicks">Smart Mouse Key Modeline
Clicks</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Mouse-Key-Drags">Smart Mouse Key
Drags</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Mouse-Key-Drags">Smart Mouse Key
Drags</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
Smart Mouse Key Drags
-</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Creating-and-Deleting-Windows">Creating and Deleting
Windows</a>:</td><td> </td><td align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Creating-and-Deleting-Windows">Creating and Deleting
Windows</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Saving-and-Restoring-Window-Configurations">Saving and Restoring Window
Configurations</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Saving-and-Restoring-Window-Configurations">Saving and Restoring Window
Configurations</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Resizing-Windows">Resizing
Windows</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Resizing-Windows">Resizing
Windows</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Dragging-Buffers">Dragging
Buffers</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Dragging-Buffers">Dragging
Buffers</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
Dragging Buffers, Windows and Items
-</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Swapping-Buffers">Swapping Buffers</a>:</td><td> </td><td
align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Swapping-Buffers">Swapping Buffers</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Displaying-Buffers">Displaying Buffers</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Displaying-Buffers">Displaying Buffers</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Cloning-Windows">Cloning
Windows</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Cloning-Windows">Cloning
Windows</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Displaying-File-and-Buffer-Items">Displaying File and Buffer
Items</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Displaying-File-and-Buffer-Items">Displaying File and Buffer
Items</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Keyboard-Drags">Keyboard
Drags</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Keyboard-Drags">Keyboard
Drags</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
Buttons
-</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Explicit-Buttons">Explicit Buttons</a>:</td><td> </td><td
align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Explicit-Buttons">Explicit Buttons</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Global-Buttons">Global
Buttons</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Global-Buttons">Global
Buttons</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Implicit-Buttons">Implicit
Buttons</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Implicit-Buttons">Implicit
Buttons</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Button-Files">Button
Files</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Button-Files">Button
Files</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Action-Types">Action
Types</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Action-Types">Action
Types</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Button-Type-Precedence">Button Type
Precedence</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Button-Type-Precedence">Button Type
Precedence</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Utilizing-Explicit-Buttons">Utilizing Explicit
Buttons</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Utilizing-Explicit-Buttons">Utilizing Explicit
Buttons</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
Implicit Buttons
-</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Implicit-Button-Types">Implicit Button
Types</a>:</td><td> </td><td align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Implicit-Button-Types">Implicit Button
Types</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Action-Buttons">Action
Buttons</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Action-Buttons">Action
Buttons</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
Utilizing Explicit Buttons
-</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Creation">Creation</a>:</td><td> </td><td align="left"
valign="top">
+</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Creation">Creation</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Renaming">Renaming</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a
href="#Renaming">Renaming</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Deletion">Deletion</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a
href="#Deletion">Deletion</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Modification">Modification</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Modification">Modification</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Searching-and-Summarizing">Searching and
Summarizing</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Searching-and-Summarizing">Searching and
Summarizing</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Buttons-in-Mail">Buttons in
Mail</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Buttons-in-Mail">Buttons in
Mail</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Buttons-in-News">Buttons in
News</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Buttons-in-News">Buttons in
News</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
Creation
-</pre></th></tr><tr><td align="left" valign="top">• <a
href="#By-Dragging">By Dragging</a>:</td><td> </td><td align="left"
valign="top">Creation Via Action Key Drags
+</pre></th></tr><tr><td align="left" valign="top">• <a
href="#By-Dragging">By Dragging</a></td><td> </td><td align="left"
valign="top">Creation Via Action Key Drags
</td></tr>
-<tr><td align="left" valign="top">• <a href="#By-Menu">By
Menu</a>:</td><td> </td><td align="left" valign="top">Creation Via
Menus
+<tr><td align="left" valign="top">• <a href="#By-Menu">By
Menu</a></td><td> </td><td align="left" valign="top">Creation Via
Menus
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
Koutliner
-</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Menu-Commands">Menu Commands</a>:</td><td> </td><td
align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Menu-Commands">Menu Commands</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Creating-Outlines">Creating
Outlines</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Creating-Outlines">Creating
Outlines</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Autonumbering">Autonumbering</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Autonumbering">Autonumbering</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Idstamps">Idstamps</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a
href="#Idstamps">Idstamps</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Editing">Editing</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a
href="#Editing">Editing</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Viewing">Viewing</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a
href="#Viewing">Viewing</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Links">Links</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Links">Links</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Cell-Attributes">Cell
Attributes</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Cell-Attributes">Cell
Attributes</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Koutliner-History">Koutliner History</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Koutliner-History">Koutliner History</a></td><td> </td><td
align="left" valign="top">
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
Editing
-</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Adding-and-Killing">Adding and Killing</a>:</td><td> </td><td
align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Adding-and-Killing">Adding and Killing</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Relocating-and-Copying">Relocating and
Copying</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Relocating-and-Copying">Relocating and
Copying</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Moving-Around">Moving
Around</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Moving-Around">Moving
Around</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Filling">Filling</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a
href="#Filling">Filling</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Transposing">Transposing</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a
href="#Transposing">Transposing</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Splitting-and-Appending">Splitting and
Appending</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Splitting-and-Appending">Splitting and
Appending</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Inserting-and-Importing">Inserting and
Importing</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Inserting-and-Importing">Inserting and
Importing</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Exporting">Exporting</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a
href="#Exporting">Exporting</a></td><td> </td><td align="left"
valign="top">
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
Viewing
-</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Hiding-and-Showing">Hiding and Showing</a>:</td><td> </td><td
align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Hiding-and-Showing">Hiding and Showing</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#View-Specs">View
Specs</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#View-Specs">View
Specs</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
HyRolo
-</pre></th></tr><tr><td align="left" valign="top">• <a
href="#HyRolo-Concepts">HyRolo Concepts</a>:</td><td> </td><td
align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">• <a
href="#HyRolo-Concepts">HyRolo Concepts</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#HyRolo-Menu">HyRolo
Menu</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#HyRolo-Menu">HyRolo
Menu</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#HyRolo-Searching">HyRolo
Searching</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#HyRolo-Searching">HyRolo
Searching</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#HyRolo-Keys">HyRolo
Keys</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#HyRolo-Keys">HyRolo
Keys</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#HyRolo-Settings">HyRolo
Settings</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#HyRolo-Settings">HyRolo
Settings</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
Developing with Hyperbole
-</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Hook-Variables">Hook Variables</a>:</td><td> </td><td
align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Hook-Variables">Hook Variables</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Creating-Types">Creating
Types</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Creating-Types">Creating
Types</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Explicit-Button-Technicalities">Explicit Button
Technicalities</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Explicit-Button-Technicalities">Explicit Button
Technicalities</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Encapsulating-Systems">Encapsulating
Systems</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Encapsulating-Systems">Encapsulating
Systems</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Embedding-Hyperbole">Embedding
Hyperbole</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Embedding-Hyperbole">Embedding
Hyperbole</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
Creating Types
-</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Action-Type-Creation">Action Type
Creation</a>:</td><td> </td><td align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Action-Type-Creation">Action Type
Creation</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Implicit-Button-Type-Creation">Implicit Button Type
Creation</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Implicit-Button-Type-Creation">Implicit Button Type
Creation</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
Explicit Button Technicalities
-</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Button-Label-Normalization">Button Label
Normalization</a>:</td><td> </td><td align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Button-Label-Normalization">Button Label
Normalization</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Operational-and-Storage-Formats">Operational and Storage
Formats</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Operational-and-Storage-Formats">Operational and Storage
Formats</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Programmatic-Button-Creation">Programmatic Button
Creation</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Programmatic-Button-Creation">Programmatic Button
Creation</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
Setup
-</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Installation">Installation</a>:</td><td> </td><td
align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Installation">Installation</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Invocation">Invocation</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a
href="#Invocation">Invocation</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Customization">Customization</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Customization">Customization</a></td><td> </td><td
align="left" valign="top">
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
Customization
-</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Referent-Display">Referent Display</a>:</td><td> </td><td
align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Referent-Display">Referent Display</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Internal-Viewers">Internal
Viewers</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Internal-Viewers">Internal
Viewers</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#External-Viewers">External
Viewers</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#External-Viewers">External
Viewers</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Link-Variable-Substitution">Link Variable
Substitution</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Link-Variable-Substitution">Link Variable
Substitution</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Web-Search-Engines">Web
Search Engines</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Web-Search-Engines">Web
Search Engines</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Using-URLs-with-Find_002dFile">Using URLs with
Find-File</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Using-URLs-with-Find_002dFile">Using URLs with
Find-File</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Invisible-Text-Searches">Invisible Text
Searches</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Invisible-Text-Searches">Invisible Text
Searches</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Button-Colors">Button
Colors</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Button-Colors">Button
Colors</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
Smart Key Reference
-</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Smart-Mouse-Keys">Smart Mouse Keys</a>:</td><td> </td><td
align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Smart-Mouse-Keys">Smart Mouse Keys</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Smart-Keyboard-Keys">Smart
Keyboard Keys</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Smart-Keyboard-Keys">Smart
Keyboard Keys</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
Smart Mouse Keys
-</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Minibuffer-Menu-Activation">Minibuffer Menu
Activation</a>:</td><td> </td><td align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Minibuffer-Menu-Activation">Minibuffer Menu
Activation</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Thing-Selection">Thing
Selection</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Thing-Selection">Thing
Selection</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Side_002dby_002dSide-Window-Resizing">Side-by-Side Window
Resizing</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Side_002dby_002dSide-Window-Resizing">Side-by-Side Window
Resizing</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Modeline-Clicks-and-Drags">Modeline Clicks and
Drags</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Modeline-Clicks-and-Drags">Modeline Clicks and
Drags</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Mouse-Drags-between-Windows">Smart Mouse Drags between
Windows</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Mouse-Drags-between-Windows">Smart Mouse Drags between
Windows</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Mouse-Drags-within-a-Window">Smart Mouse Drags within a
Window</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Mouse-Drags-within-a-Window">Smart Mouse Drags within a
Window</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Mouse-Drags-outside-a-Window">Smart Mouse Drags outside a
Window</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Mouse-Drags-outside-a-Window">Smart Mouse Drags outside a
Window</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
Smart Keyboard Keys
-</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Company-Mode">Smart Key - Company
Mode</a>:</td><td> </td><td align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Company-Mode">Smart Key - Company
Mode</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Treemacs">Smart Key -
Treemacs</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Treemacs">Smart Key -
Treemacs</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Emacs-Pushbuttons">Smart Key - Emacs
Pushbuttons</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Emacs-Pushbuttons">Smart Key - Emacs
Pushbuttons</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Argument-Completion">Smart Key - Argument
Completion</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Argument-Completion">Smart Key - Argument
Completion</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-ID-Edit-Mode">Smart Key - ID Edit
Mode</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-ID-Edit-Mode">Smart Key - ID Edit
Mode</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029">Smart Key -
Emacs Cross-references (Xrefs)</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029">Smart Key -
Emacs Cross-references (Xrefs)</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Smart-Scrolling">Smart Key - Smart
Scrolling</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Smart-Scrolling">Smart Key - Smart
Scrolling</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Smart-Menus">Smart Key - Smart
Menus</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Smart-Menus">Smart Key - Smart
Menus</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Dired-Mode">Smart Key - Dired
Mode</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Dired-Mode">Smart Key - Dired
Mode</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Hyperbole-Buttons">Smart Key - Hyperbole
Buttons</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Hyperbole-Buttons">Smart Key - Hyperbole
Buttons</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-View-Mode">Smart Key - View
Mode</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-View-Mode">Smart Key - View
Mode</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Delimited-Things">Smart Key - Delimited
Things</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Delimited-Things">Smart Key - Delimited
Things</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-The-Koutliner">Smart Key - The
Koutliner</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-The-Koutliner">Smart Key - The
Koutliner</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-RDB-Mode">Smart Key - RDB
Mode</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-RDB-Mode">Smart Key - RDB
Mode</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Help-Buffers">Smart Key - Help
Buffers</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Help-Buffers">Smart Key - Help
Buffers</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Pages-Directory-Mode">Smart Key - Pages Directory
Mode</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Pages-Directory-Mode">Smart Key - Pages Directory
Mode</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Python-Source-Code">Smart Key - Python Source
Code</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Python-Source-Code">Smart Key - Python Source
Code</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Identifier-Menu-Mode">Smart Key - Identifier Menu Mode
</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Identifier-Menu-Mode">Smart Key - Identifier Menu Mode
</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-C-Source-Code">Smart Key - C Source
Code</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-C-Source-Code">Smart Key - C Source
Code</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-C_002b_002b-Source-Code">Smart Key - C++ Source
Code</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-C_002b_002b-Source-Code">Smart Key - C++ Source
Code</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Assembly-Source-Code">Smart Key - Assembly Source
Code</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Assembly-Source-Code">Smart Key - Assembly Source
Code</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Lisp-Source-Code">Smart Key - Lisp Source
Code</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Lisp-Source-Code">Smart Key - Lisp Source
Code</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Java-Source-Code">Smart Key - Java Source
Code</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Java-Source-Code">Smart Key - Java Source
Code</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-JavaScript-Source-Code">Smart Key - JavaScript Source
Code</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-JavaScript-Source-Code">Smart Key - JavaScript Source
Code</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Objective_002dC-Source-Code">Smart Key - Objective-C
Source Code</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Objective_002dC-Source-Code">Smart Key - Objective-C
Source Code</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Fortran-Source-Code">Smart Key - Fortran Source
Code</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Fortran-Source-Code">Smart Key - Fortran Source
Code</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Occurrence-Matches">Smart Key - Occurrence
Matches</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Occurrence-Matches">Smart Key - Occurrence
Matches</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Calendar-Mode">Smart Key - Calendar
Mode</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Calendar-Mode">Smart Key - Calendar
Mode</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Man-Page-Apropos">Smart Key - Man Page
Apropos</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Man-Page-Apropos">Smart Key - Man Page
Apropos</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Emacs-Outline-Mode">Smart Key - Emacs Outline
Mode</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Emacs-Outline-Mode">Smart Key - Emacs Outline
Mode</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Info-Manuals">Smart Key - Info
Manuals</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Info-Manuals">Smart Key - Info
Manuals</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Email-Composers">Smart Key - Email
Composers</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Email-Composers">Smart Key - Email
Composers</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-GNUS-Newsreader">Smart Key - GNUS
Newsreader</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-GNUS-Newsreader">Smart Key - GNUS
Newsreader</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Buffer-Menus">Smart Key - Buffer
Menus</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Buffer-Menus">Smart Key - Buffer
Menus</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Tar-File-Mode">Smart Key - Tar File
Mode</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Tar-File-Mode">Smart Key - Tar File
Mode</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Man-Pages">Smart Key - Man
Pages</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Man-Pages">Smart Key - Man
Pages</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-WWW-URLs">Smart Key - WWW
URLs</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-WWW-URLs">Smart Key - WWW
URLs</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-HyRolo-Match-Buffers">Smart Key - HyRolo Match
Buffers</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-HyRolo-Match-Buffers">Smart Key - HyRolo Match
Buffers</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Image-Thumbnails">Smart Key - Image
Thumbnails</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Image-Thumbnails">Smart Key - Image
Thumbnails</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Gomoku-Game">Smart Key - Gomoku
Game</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Gomoku-Game">Smart Key - Gomoku
Game</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-The-OO_002dBrowser">Smart Key - The
OO-Browser</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-The-OO_002dBrowser">Smart Key - The
OO-Browser</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Default-Context">Smart Key - Default
Context</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Default-Context">Smart Key - Default
Context</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
</pre></th></tr></table>
<hr>
-<a name="Introduction"></a>
-<div class="header">
+<span id="Introduction"></span><div class="header">
<p>
Next: <a href="#Smart-Keys" accesskey="n" rel="next">Smart Keys</a>, Previous:
<a href="#Top" accesskey="p" rel="prev">Top</a>, Up: <a href="#Top"
accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Introduction-1"></a>
-<h2 class="chapter">1 Introduction</h2>
+<span id="Introduction-1"></span><h2 class="chapter">1 Introduction</h2>
<p>This edition of the GNU Hyperbole Manual is for use with any version
-7.0.7 or greater of GNU Hyperbole. Hyperbole runs atop GNU Emacs 24.3
+7.0.8 or greater of GNU Hyperbole. Hyperbole runs atop GNU Emacs 24.3
or higher. It will trigger an error if your Emacs is older.
</p>
<p>This chapter summarizes the structure of the rest of the manual,
@@ -817,29 +804,27 @@ explains how to subscribe to its mail lists.
braces <kbd>{ }</kbd>, function and variable names use this
<code>typeface</code>.
</p>
<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">• <a href="#Manual-Overview"
accesskey="1">Manual Overview</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Manual-Overview"
accesskey="1">Manual Overview</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Motivation"
accesskey="2">Motivation</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Motivation"
accesskey="2">Motivation</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Hyperbole-Overview"
accesskey="3">Hyperbole Overview</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Hyperbole-Overview"
accesskey="3">Hyperbole Overview</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Mail-Lists"
accesskey="4">Mail Lists</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Mail-Lists"
accesskey="4">Mail Lists</a></td><td> </td><td align="left"
valign="top">
</td></tr>
</table>
<hr>
-<a name="Manual-Overview"></a>
-<div class="header">
+<span id="Manual-Overview"></span><div class="header">
<p>
Next: <a href="#Motivation" accesskey="n" rel="next">Motivation</a>, Previous:
<a href="#Introduction" accesskey="p" rel="prev">Introduction</a>, Up: <a
href="#Introduction" accesskey="u" rel="up">Introduction</a> [<a
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Manual-Overview-1"></a>
-<h3 class="section">1.1 Manual Overview</h3>
+<span id="Manual-Overview-1"></span><h3 class="section">1.1 Manual
Overview</h3>
-<a name="index-file_002c-DEMO"></a>
-<a name="index-Hyperbole-demo"></a>
-<a name="index-demo-file"></a>
-<a name="index-tutorial"></a>
+<span id="index-file_002c-DEMO"></span>
+<span id="index-Hyperbole-demo"></span>
+<span id="index-demo-file"></span>
+<span id="index-tutorial"></span>
<p>This is a reference manual with extensive details about Hyperbole use. If
you prefer a simpler, more interactive introduction to Hyperbole,
the <samp>DEMO</samp> file included in the Hyperbole distribution demonstrates
@@ -906,13 +891,11 @@ comfortable with Lisp.
<p>See <a href="#Future-Work">Future Work</a>, for future directions in
Hyperbole’s evolution.
</p>
<hr>
-<a name="Motivation"></a>
-<div class="header">
+<span id="Motivation"></span><div class="header">
<p>
Next: <a href="#Hyperbole-Overview" accesskey="n" rel="next">Hyperbole
Overview</a>, Previous: <a href="#Manual-Overview" accesskey="p"
rel="prev">Manual Overview</a>, Up: <a href="#Introduction" accesskey="u"
rel="up">Introduction</a> [<a href="#SEC_Contents" title="Table of
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Motivation-1"></a>
-<h3 class="section">1.2 Motivation</h3>
+<span id="Motivation-1"></span><h3 class="section">1.2 Motivation</h3>
<p>Database vendors apply tremendous resources to help solve corporate
information management problems. But the information that people deal
@@ -945,19 +928,17 @@ One system. One language. One manual. One solution.
Learn Hyperbole and
start moving further, faster.
</p>
<hr>
-<a name="Hyperbole-Overview"></a>
-<div class="header">
+<span id="Hyperbole-Overview"></span><div class="header">
<p>
Next: <a href="#Mail-Lists" accesskey="n" rel="next">Mail Lists</a>, Previous:
<a href="#Motivation" accesskey="p" rel="prev">Motivation</a>, Up: <a
href="#Introduction" accesskey="u" rel="up">Introduction</a> [<a
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Hyperbole-Overview-1"></a>
-<h3 class="section">1.3 Hyperbole Overview</h3>
+<span id="Hyperbole-Overview-1"></span><h3 class="section">1.3 Hyperbole
Overview</h3>
-<a name="index-GNU-Hyperbole"></a>
-<a name="index-Hyperbole"></a>
-<a name="index-hypertext"></a>
-<a name="index-Emacs-Lisp"></a>
-<a name="index-Emacs"></a>
+<span id="index-GNU-Hyperbole"></span>
+<span id="index-Hyperbole"></span>
+<span id="index-hypertext"></span>
+<span id="index-Emacs-Lisp"></span>
+<span id="index-Emacs"></span>
<p>GNU Hyperbole (pronounced Ga-new Hi-per-bo-lee), or just Hyperbole, is
an efficient, programmable hypertextual information management
system. It is intended for everyday work on any GNU Emacs platform.
@@ -1031,10 +1012,10 @@ for real-world usage and is well structured).
</p></dd>
</dl>
-<a name="index-C_002dh-h-d-d"></a>
-<a name="index-file_002c-DEMO-1"></a>
-<a name="index-demonstration"></a>
-<a name="index-button-demo"></a>
+<span id="index-C_002dh-h-d-d"></span>
+<span id="index-file_002c-DEMO-1"></span>
+<span id="index-demonstration"></span>
+<span id="index-button-demo"></span>
<p>Hyperbole may be used simply for browsing through documents
pre-configured with Hyperbole buttons, in which case, you can safely
ignore most of the information in this manual. Jump right into the
@@ -1044,22 +1025,22 @@ Hyperbole, see <a href="#Setup">Setup</a>, for
Hyperbole installation and config
information. The demo offers a much less technical introduction to
Hyperbole by supplying good examples of use.
</p>
-<div class="float"><a name="image_003aDemo"></a>
+<div class="float"><span id="image_003aDemo"></span>
<img src="im/demo.png" alt="Hyperbole Minibuffer Menu and Demonstration
Screenshot">
<div class="float-caption"><p><strong>Image 1.1: </strong>Hyperbole Minibuffer
Menu and Demonstration Screenshot</p></div></div><br>
-<a name="index-GNU-Emacs"></a>
-<a name="index-C_002dh-t"></a>
+<span id="index-GNU-Emacs"></span>
+<span id="index-C_002dh-t"></span>
<p>You likely will want to do more than browse with Hyperbole,
e.g. create your own buttons. The standard Hyperbole button editing
user interface is Emacs-based, so a basic familiarity with the Emacs
editing model is useful. The material covered in the Emacs
tutorial, normally bound to <kbd>{C-h t}</kbd>, is more than
-sufficient as background. See <a
href="http://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Glossary">Glossary</a>
in <cite>the GNU Emacs Manual</cite>,
+sufficient as background. See <a
href="https://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Glossary">Glossary</a>
in <cite>the GNU Emacs Manual</cite>,
if some emacs-related terms are unfamiliar to you.
</p>
-<a name="index-Hyperbole-features"></a>
+<span id="index-Hyperbole-features"></span>
<p>A Hyperbole user works with chunks of information that need to be
organized, interlinked, and processed. Such chunks can be hyperbuttons,
address book contacts, items in an outline, or even database query
@@ -1088,7 +1069,7 @@ information organized into trees (hierarchies);
under a Hyperbole user interface (a number of samples are provided).
</li></ul>
-<a name="index-Hyperbole-applications"></a>
+<span id="index-Hyperbole-applications"></span>
<p>Typical Hyperbole applications include:
</p>
<dl compact="compact">
@@ -1129,13 +1110,11 @@ archive entries.
</dl>
<hr>
-<a name="Mail-Lists"></a>
-<div class="header">
+<span id="Mail-Lists"></span><div class="header">
<p>
Previous: <a href="#Hyperbole-Overview" accesskey="p" rel="prev">Hyperbole
Overview</a>, Up: <a href="#Introduction" accesskey="u"
rel="up">Introduction</a> [<a href="#SEC_Contents" title="Table of
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Mail-Lists-1"></a>
-<h3 class="section">1.4 Mail Lists</h3>
+<span id="Mail-Lists-1"></span><h3 class="section">1.4 Mail Lists</h3>
<p>If you use Hyperbole, you may join the mailing list
<hyperbole-users@gnu.org> to discuss Hyperbole with users and
maintainers.
@@ -1144,22 +1123,20 @@ Hyperbole, <bug-hyperbole@gnu.org>. For more
details,
see <a href="#Suggestion-or-Bug-Reporting">Suggestion or Bug Reporting</a>.
</p>
<hr>
-<a name="Smart-Keys"></a>
-<div class="header">
+<span id="Smart-Keys"></span><div class="header">
<p>
Next: <a href="#Buttons" accesskey="n" rel="next">Buttons</a>, Previous: <a
href="#Introduction" accesskey="p" rel="prev">Introduction</a>, Up: <a
href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents"
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index"
title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Smart-Keys-1"></a>
-<h2 class="chapter">2 Smart Keys</h2>
-
-<a name="index-Smart-Key"></a>
-<a name="index-mouse-support"></a>
-<a name="index-Action-Key"></a>
-<a name="index-Assist-Key"></a>
-<a name="index-middle-mouse-key"></a>
-<a name="index-hmouse_002dmiddle_002dflag"></a>
-<a name="index-Action-Key-1"></a>
-<a name="index-Assist-Key-1"></a>
+<span id="Smart-Keys-1"></span><h2 class="chapter">2 Smart Keys</h2>
+
+<span id="index-Smart-Key"></span>
+<span id="index-mouse-support"></span>
+<span id="index-Action-Key"></span>
+<span id="index-Assist-Key"></span>
+<span id="index-middle-mouse-key"></span>
+<span id="index-hmouse_002dmiddle_002dflag"></span>
+<span id="index-Action-Key-1"></span>
+<span id="index-Assist-Key-1"></span>
<p>Hyperbole offers two special <em>Smart Keys</em>, the Action Key and the
Assist Key, that perform an extensive array of context-sensitive
operations across emacs usage. In many popular modes, they allow you
@@ -1170,53 +1147,51 @@ Keys. See <a href="#Smart-Key-Reference">Smart Key
Reference</a>, for complete
behavior in all contexts.
</p>
<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">• <a href="#Smart-Key-Bindings"
accesskey="1">Smart Key Bindings</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Smart-Key-Bindings"
accesskey="1">Smart Key Bindings</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Smart-Key-Operations"
accesskey="2">Smart Key Operations</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Smart-Key-Operations"
accesskey="2">Smart Key Operations</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-Argument-Selection" accesskey="3">Smart Key Argument
Selection</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-Argument-Selection" accesskey="3">Smart Key Argument
Selection</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Smart-Key-Debugging"
accesskey="4">Smart Key Debugging</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Smart-Key-Debugging"
accesskey="4">Smart Key Debugging</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Smart-Key-Thing-Selection"
accesskey="5">Smart Key Thing Selection</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Smart-Key-Thing-Selection"
accesskey="5">Smart Key Thing Selection</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Mouse-Key-Modeline-Clicks" accesskey="6">Smart Mouse Key Modeline
Clicks</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Mouse-Key-Modeline-Clicks" accesskey="6">Smart Mouse Key Modeline
Clicks</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Smart-Mouse-Key-Drags"
accesskey="7">Smart Mouse Key Drags</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Smart-Mouse-Key-Drags"
accesskey="7">Smart Mouse Key Drags</a></td><td> </td><td
align="left" valign="top">
</td></tr>
</table>
<hr>
-<a name="Smart-Key-Bindings"></a>
-<div class="header">
+<span id="Smart-Key-Bindings"></span><div class="header">
<p>
Next: <a href="#Smart-Key-Operations" accesskey="n" rel="next">Smart Key
Operations</a>, Previous: <a href="#Smart-Keys" accesskey="p" rel="prev">Smart
Keys</a>, Up: <a href="#Smart-Keys" accesskey="u" rel="up">Smart Keys</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-Bindings-1"></a>
-<h3 class="section">2.1 Smart Key Bindings</h3>
+<span id="Smart-Key-Bindings-1"></span><h3 class="section">2.1 Smart Key
Bindings</h3>
-<a name="index-C_002du-M_002dRET"></a>
-<a name="index-M_002dRET"></a>
+<span id="index-C_002du-M_002dRET"></span>
+<span id="index-M_002dRET"></span>
<p>From the keyboard, <kbd>{M-<span class="key">RET</span>}</kbd> is the
Action Key and <kbd>{C-u
M-<span class="key">RET</span>}</kbd> is the Assist Key. These keys allow
context-sensitive
operation from any keyboard.
</p>
-<a name="index-shift_002dmiddle-mouse-key"></a>
-<a name="index-shift_002dleft-mouse-key"></a>
-<a name="index-shift_002dright-mouse-key"></a>
-<a name="index-middle-mouse-key-1"></a>
-<a name="index-hmouse_002dmiddle_002dflag-1"></a>
+<span id="index-shift_002dmiddle-mouse-key"></span>
+<span id="index-shift_002dleft-mouse-key"></span>
+<span id="index-shift_002dright-mouse-key"></span>
+<span id="index-middle-mouse-key-1"></span>
+<span id="index-hmouse_002dmiddle_002dflag-1"></span>
<p>From the mouse, the <em>Action Key</em> is bound to your shift-middle
mouse key (or shift-left on a 2-button mouse). The <em>Assist Key</em>
is bound to your shift-right mouse key, assuming Hyperbole is run
under an external window system.
</p>
-<a name="index-hmouse_002dadd_002dunshifted_002dsmart_002dkeys"></a>
-<a name="index-unshifted-mouse-bindings"></a>
-<a name="index-unshifted-mouse-keys"></a>
-<a name="index-mouse-keys_002c-unshifted"></a>
-<a name="index-smart-keys_002c-unshifted"></a>
+<span id="index-hmouse_002dadd_002dunshifted_002dsmart_002dkeys"></span>
+<span id="index-unshifted-mouse-bindings"></span>
+<span id="index-unshifted-mouse-keys"></span>
+<span id="index-mouse-keys_002c-unshifted"></span>
+<span id="index-smart-keys_002c-unshifted"></span>
<p>If you set the variable, <code>hmouse-middle-flag</code>, to
‘<samp>t</samp>’ before
loading Hyperbole, then you may also use the middle mouse key as the Action
Key). If you want both the middle mouse key as the Action Key and the
@@ -1224,14 +1199,14 @@ right mouse key as the Assist Key for ease of use, then
within your
personal <samp>~/.emacs</samp> file, add: <code>(add-hook 'hyperbole-init-hook
'hmouse-add-unshifted-smart-keys)</code> and then restart Emacs.
</p>
-<a name="index-key-binding_002c-smart-keys"></a>
-<a name="index-smart-key-commands"></a>
-<a name="index-smart-key-assignments"></a>
-<a name="index-action_002dkey"></a>
-<a name="index-assist_002dkey"></a>
-<a name="index-action_002dmouse_002dkey"></a>
-<a name="index-assist_002dmouse_002dkey"></a>
-<a name="index-hkey_002deither"></a>
+<span id="index-key-binding_002c-smart-keys"></span>
+<span id="index-smart-key-commands"></span>
+<span id="index-smart-key-assignments"></span>
+<span id="index-action_002dkey"></span>
+<span id="index-assist_002dkey"></span>
+<span id="index-action_002dmouse_002dkey"></span>
+<span id="index-assist_002dmouse_002dkey"></span>
+<span id="index-hkey_002deither"></span>
<p>If you prefer other key assignments, simply bind the commands
<code>action-key</code> and <code>assist-key</code> to keyboard keys.
Hyperbole binds <kbd>{M-<span class="key">RET</span>}</kbd> to the command
<code>hkey-either</code>.
@@ -1246,13 +1221,13 @@ actions with such key bindings.
Mac OS X, the X Window System and MS Windows assuming your emacs program
has been built with support for any of these window systems.
</p>
-<a name="index-file_002c-_002eemacs"></a>
-<a name="index-hyperbole_002dtoggle_002dbindings"></a>
-<a name="index-change-key-bindings"></a>
-<a name="index-toggle-key-bindings"></a>
-<a name="index-key-bindings_002c-toggle"></a>
-<a name="index-disable-Hyperbole"></a>
-<a name="index-C_002dc-h"></a>
+<span id="index-file_002c-_002eemacs"></span>
+<span id="index-hyperbole_002dtoggle_002dbindings"></span>
+<span id="index-change-key-bindings"></span>
+<span id="index-toggle-key-bindings"></span>
+<span id="index-key-bindings_002c-toggle"></span>
+<span id="index-disable-Hyperbole"></span>
+<span id="index-C_002dc-h"></span>
<p>If you ever need to temporarily disable the Hyperbole keyboard and mouse
bindings, use the <code>hyperbole-toggle-bindings</code> command. It switches
between the Hyperbole key bindings and those set prior to loading Hyperbole
@@ -1265,27 +1240,25 @@ file. For example, <code>(add-hook
'hyperbole-init-hook (lambda ()
</p>
<hr>
-<a name="Smart-Key-Operations"></a>
-<div class="header">
+<span id="Smart-Key-Operations"></span><div class="header">
<p>
Next: <a href="#Smart-Key-Argument-Selection" accesskey="n" rel="next">Smart
Key Argument Selection</a>, Previous: <a href="#Smart-Key-Bindings"
accesskey="p" rel="prev">Smart Key Bindings</a>, Up: <a href="#Smart-Keys"
accesskey="u" rel="up">Smart Keys</a> [<a href="#SEC_Contents"
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index"
title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-Operations-1"></a>
-<h3 class="section">2.2 Smart Key Operations</h3>
+<span id="Smart-Key-Operations-1"></span><h3 class="section">2.2 Smart Key
Operations</h3>
-<a name="index-button-activation"></a>
-<a name="index-activation"></a>
-<a name="index-button-help"></a>
-<a name="index-help_002c-button"></a>
+<span id="index-button-activation"></span>
+<span id="index-activation"></span>
+<span id="index-button-help"></span>
+<span id="index-help_002c-button"></span>
<p>The Action Key generally selects entities, creates links and
activates buttons. The Assist Key generally provides help,
such as reporting on a button’s attributes, or serves a complementary
function to whatever the Action Key does within a context.
</p>
-<a name="index-Smart-Key-operation"></a>
-<a name="index-menu-item_002c-Doc_002fSmartKeys"></a>
-<a name="index-Smart-Key-summary"></a>
-<a name="index-modeline_002c-Smart-Keys"></a>
+<span id="index-Smart-Key-operation"></span>
+<span id="index-menu-item_002c-Doc_002fSmartKeys"></span>
+<span id="index-Smart-Key-summary"></span>
+<span id="index-modeline_002c-Smart-Keys"></span>
<p>The Hyperbole Doc/SmartKeys menu entry, <kbd>{C-h h d s}</kbd>, displays a
summary of what the Smart Keys do in all of their different contexts.
Alternatively, a click of the Assist Mouse Key in the right corner of a
@@ -1435,10 +1408,10 @@ Any other context (defaults) Invalid context error
Invalid context error
<p>See <a href="#Smart-Key-Reference">Smart Key Reference</a>, for extensive
reference documentation on the
Smart Keys.
</p>
-<a name="index-action_002dkey_002ddefault_002dfunction"></a>
-<a name="index-assist_002dkey_002ddefault_002dfunction"></a>
-<a name="index-Smart-Key_002c-default-context"></a>
-<a name="index-default-Smart-Key-context"></a>
+<span id="index-action_002dkey_002ddefault_002dfunction"></span>
+<span id="index-assist_002dkey_002ddefault_002dfunction"></span>
+<span id="index-Smart-Key_002c-default-context"></span>
+<span id="index-default-Smart-Key-context"></span>
<p>Note how the last line in the table explains that the default behavior of
the Smart Keys in an unknown context is to report an error. You can change
these behaviors by setting two variables. See the documentation
@@ -1446,9 +1419,9 @@ for the variables
<code>action-key-default-function</code> and
<code>assist-key-default-function</code> for information on how to customize
the behavior of the Smart Keys within default contexts.
</p>
-<a name="index-Smart-Key-help"></a>
-<a name="index-help_002c-Smart-Key"></a>
-<a name="index-context_002dsensitive-help"></a>
+<span id="index-Smart-Key-help"></span>
+<span id="index-help_002c-Smart-Key"></span>
+<span id="index-context_002dsensitive-help"></span>
<p>When you use a mouse and you want to find out what either of the Smart
Keys does within a context, depress the one you want to check on and
hold it down, then press the other and release as you please. A help
@@ -1457,8 +1430,8 @@ context, if any. A press of either Smart Key at the end
of that
help buffer will restore your display to its configuration prior to
invoking help.
</p>
-<a name="index-C_002dh-A"></a>
-<a name="index-C_002du-C_002dh-A"></a>
+<span id="index-C_002dh-A"></span>
+<span id="index-C_002du-C_002dh-A"></span>
<p>On the keyboard, <kbd>{C-h A}</kbd> displays this same context-sensitive
help for the Action Key while <kbd>{C-u C-h A}</kbd> displays the help for
the Assist Key. Note that <kbd>{C-h a}</kbd> performs a function unrelated
@@ -1466,15 +1439,13 @@ to Hyperbole, so you must press the shift key when you
type
the <tt class="key">A</tt> character.
</p>
<hr>
-<a name="Smart-Key-Argument-Selection"></a>
-<div class="header">
+<span id="Smart-Key-Argument-Selection"></span><div class="header">
<p>
Next: <a href="#Smart-Key-Debugging" accesskey="n" rel="next">Smart Key
Debugging</a>, Previous: <a href="#Smart-Key-Operations" accesskey="p"
rel="prev">Smart Key Operations</a>, Up: <a href="#Smart-Keys" accesskey="u"
rel="up">Smart Keys</a> [<a href="#SEC_Contents" title="Table of
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-Argument-Selection-1"></a>
-<h3 class="section">2.3 Smart Key Argument Selection</h3>
+<span id="Smart-Key-Argument-Selection-1"></span><h3 class="section">2.3 Smart
Key Argument Selection</h3>
-<a name="index-Hyperbole-help"></a>
+<span id="index-Hyperbole-help"></span>
<p>A prime design criterion of Hyperbole’s user interface is that you
should be able to see what an operation will do before using it. The
Assist Key typically shows you what a button or minibuffer menu item
@@ -1483,9 +1454,9 @@ directly selecting an argument value with the Action Key,
to provide
feedback as to whether the correct item has been selected. A second
press/click is necessary before an argument is accepted and processed.
</p>
-<a name="index-argument-entry"></a>
-<a name="index-direct-selection"></a>
-<a name="index-double-click"></a>
+<span id="index-argument-entry"></span>
+<span id="index-direct-selection"></span>
+<span id="index-double-click"></span>
<p>Many Hyperbole commands prompt you for arguments. The standard
Hyperbole user interface has an extensive core of argument types that
it recognizes. Whenever Hyperbole is prompting you for an argument,
@@ -1503,33 +1474,31 @@ in the documentation for the Emacs Lisp
<code>interactive</code> function
are recognized. Experiment a little and you will quickly get used to
this direct selection technique.
</p>
-<a name="index-completion"></a>
+<span id="index-completion"></span>
<p>Wherever possible, standard Emacs completion is offered, as described in
-<a
href="http://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Completion">Completion</a>
in <cite>the GNU Emacs Manual</cite>. Remember to use <kbd>{?}</kbd>
+<a
href="https://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Completion">Completion</a>
in <cite>the GNU Emacs Manual</cite>. Remember to use <kbd>{?}</kbd>
to see what your possibilities for an argument are. Once you have a
list of possible completions on screen, press the Action Key twice on
any item to enter it as the argument.
</p>
<hr>
-<a name="Smart-Key-Debugging"></a>
-<div class="header">
+<span id="Smart-Key-Debugging"></span><div class="header">
<p>
Next: <a href="#Smart-Key-Thing-Selection" accesskey="n" rel="next">Smart Key
Thing Selection</a>, Previous: <a href="#Smart-Key-Argument-Selection"
accesskey="p" rel="prev">Smart Key Argument Selection</a>, Up: <a
href="#Smart-Keys" accesskey="u" rel="up">Smart Keys</a> [<a
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-Debugging-1"></a>
-<h3 class="section">2.4 Smart Key Debugging</h3>
+<span id="Smart-Key-Debugging-1"></span><h3 class="section">2.4 Smart Key
Debugging</h3>
<p>Typically, <kbd>{C-h A}</kbd> and <kbd>{C-u C-h A}</kbd> which show Action
and
Assist Key help for the current context, are sufficient for seeing how
the Smart Keys behave no matter where they are used.
</p>
-<a name="index-C_002dh-h-c-d"></a>
-<a name="index-Smart-Key-debugging"></a>
-<a name="index-menu-item_002c-Cust_002fDebug_002dToggle"></a>
-<a name="index-debugging-Smart-Keys"></a>
-<a name="index-troubleshooting-Smart-Keys"></a>
-<a name="index-Messages-buffer"></a>
-<a name="index-logging-Smart-Key-behavior"></a>
+<span id="index-C_002dh-h-c-d"></span>
+<span id="index-Smart-Key-debugging"></span>
+<span id="index-menu-item_002c-Cust_002fDebug_002dToggle"></span>
+<span id="index-debugging-Smart-Keys"></span>
+<span id="index-troubleshooting-Smart-Keys"></span>
+<span id="index-Messages-buffer"></span>
+<span id="index-logging-Smart-Key-behavior"></span>
<p>However, if a Smart Key ever behaves differently than you think it
should or if you want to test how the Smart Keys respond in a new
context, then the Smart Key debugging flag may be of use. You toggle
@@ -1541,8 +1510,8 @@ exactly what is happening whenever you use a Smart Key.
These
messages are all prefaced with “(HyDebug)” and logged to the
“*Messages*” buffer for later viewing.
</p>
-<a name="index-C_002dh-h-m-c"></a>
-<a name="index-C_002dh-h-m-r"></a>
+<span id="index-C_002dh-h-m-c"></span>
+<span id="index-C_002dh-h-m-r"></span>
<p>If you do find a problem with the Smart Keys and want to report a bug,
use <kbd>{C-h h m r}</kbd> to compose an email message to the bug-hyperbole
list. Hyperbole will automatically include all of the “(HyDebug)”
@@ -1551,22 +1520,20 @@ when you compose an email to the hyperbole-users
mailing list
with <kbd>{C-h h m c}</kbd>, these messages are also included.
</p>
<hr>
-<a name="Smart-Key-Thing-Selection"></a>
-<div class="header">
+<span id="Smart-Key-Thing-Selection"></span><div class="header">
<p>
Next: <a href="#Smart-Mouse-Key-Modeline-Clicks" accesskey="n"
rel="next">Smart Mouse Key Modeline Clicks</a>, Previous: <a
href="#Smart-Key-Debugging" accesskey="p" rel="prev">Smart Key Debugging</a>,
Up: <a href="#Smart-Keys" accesskey="u" rel="up">Smart Keys</a> [<a
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-Thing-Selection-1"></a>
-<h3 class="section">2.5 Smart Key Thing Selection</h3>
-
-<a name="index-sexp-selection"></a>
-<a name="index-code-block-selection"></a>
-<a name="index-selection"></a>
-<a name="index-smart-selection"></a>
-<a name="index-smart-marking"></a>
-<a name="index-region-selection"></a>
-<a name="index-things"></a>
-<a name="index-delimited-things"></a>
+<span id="Smart-Key-Thing-Selection-1"></span><h3 class="section">2.5 Smart
Key Thing Selection</h3>
+
+<span id="index-sexp-selection"></span>
+<span id="index-code-block-selection"></span>
+<span id="index-selection"></span>
+<span id="index-smart-selection"></span>
+<span id="index-smart-marking"></span>
+<span id="index-region-selection"></span>
+<span id="index-things"></span>
+<span id="index-delimited-things"></span>
<p>Hyperbole has some radically cool ways to select regions of structured text
or source code and to copy or move them between buffers with a single mouse
drag or two key presses. A great deal of smarts are built-in so that it
@@ -1581,23 +1548,24 @@ matching tag pairs in HTML and SGML modes.
<em>Delimited things</em> are
those things that contain a selectable delimiter such as an opening
parenthesis.
</p>
-<a name="index-HTML-tag-pair"></a>
-<a name="index-SGML-tag-pair"></a>
+<span id="index-HTML-tag-pair"></span>
+<span id="index-SGML-tag-pair"></span>
+<span id="index-XML-tag-pair"></span>
<p>The best way to mark a delimited thing is to move your cursor to the
-starting delimiter of the thing and then press the Action Key. Typically,
-you will see the thing highlight. You can then operate upon it as you
-would any Emacs region. In many cases, you can do the same thing upon
-the closing delimiter, but this is not as reliable. An Action Key
-press on the start of an HTML or SGML tag pair marks the entire region
-span of the pair. If you use the Assist Key instead, it will mark and
-kill (delete) the thing.
-</p>
-<a name="index-drag_002c-with-region"></a>
-<a name="index-kill-region"></a>
-<a name="index-yank-region"></a>
-<a name="index-cut-region"></a>
-<a name="index-copy-region"></a>
-<a name="index-paste-region"></a>
+starting delimiter of the thing and then press the Action Key.
+Typically, you will see the thing highlight. You can then operate
+upon it as you would any Emacs region. In many cases, you can do the
+same thing upon the closing delimiter, but this is not as reliable.
+An Action Key press on the start of an HTML, XML, or SGML tag pair
+marks the entire region span of the pair. If you use the Assist Key
+instead, it will mark and kill (delete) the thing.
+</p>
+<span id="index-drag_002c-with-region"></span>
+<span id="index-kill-region"></span>
+<span id="index-yank-region"></span>
+<span id="index-cut-region"></span>
+<span id="index-copy-region"></span>
+<span id="index-paste-region"></span>
<p>Even better are Smart Mouse Key thing drags which let you copy or move
delimited things in one operation without having to select a region. To
copy, simply drag with the Action Key from a thing’s opening delimiter
@@ -1610,9 +1578,9 @@ work.
</p>
<p>Hyperbole also binds two convenience keys for working with things.
</p>
-<a name="index-C_002dc-RET"></a>
-<a name="index-hui_002dselect_002dthing"></a>
-<a name="index-hui_002dselect_002dthing_002dwith_002dmouse"></a>
+<span id="index-C_002dc-RET"></span>
+<span id="index-hui_002dselect_002dthing"></span>
+<span id="index-hui_002dselect_002dthing_002dwith_002dmouse"></span>
<p>The first such key is <kbd>{C-c <span class="key">RET</span>}</kbd>
<code>hui-select-thing</code> which
selects bigger and bigger syntactic regions with each successive use.
Double or triple clicks of the Selection Key (left mouse key) do the same
@@ -1628,23 +1596,22 @@ the same or lesser indentation). Use <kbd>{C-g}</kbd>
to unmark the region when
done. Use, <code>hui-select-thing-with-mouse</code> if you want to bind this
to
a different mouse key to use single clicks instead of double clicks.
</p>
-<a name="index-C_002dc-_002e"></a>
-<a name="index-hui_002dselect_002dgoto_002dmatching_002dtag"></a>
-<p>The second convenience key is bound only in HTML/web mode. <kbd>{C-c
-.}</kbd> <code>hui-select-goto-matching-tag</code> jumps between the opening
and
-closing tag of a pair. It moves point to the start of the tag paired
-with the closest tag that point is within or which it precedes. A
-second press moves point to the matching tag of the pair, allowing you
-to quickly jump back and forth between opening and closing tags.
+<span id="index-C_002dc-_002e"></span>
+<span id="index-hui_002dselect_002dgoto_002dmatching_002dtag"></span>
+<p>The second convenience key is bound in HTML/XML/SGML/web
+modes. <kbd>{C-c .}</kbd> <code>hui-select-goto-matching-tag</code> jumps
between
+the opening and closing tag of a pair. It moves point to the start of
+the tag paired with the closest tag that point is within or which it
+precedes. A second press moves point to the matching tag of the pair,
+allowing you to quickly jump back and forth between opening and
+closing tags.
</p>
<hr>
-<a name="Smart-Mouse-Key-Modeline-Clicks"></a>
-<div class="header">
+<span id="Smart-Mouse-Key-Modeline-Clicks"></span><div class="header">
<p>
Next: <a href="#Smart-Mouse-Key-Drags" accesskey="n" rel="next">Smart Mouse
Key Drags</a>, Previous: <a href="#Smart-Key-Thing-Selection" accesskey="p"
rel="prev">Smart Key Thing Selection</a>, Up: <a href="#Smart-Keys"
accesskey="u" rel="up">Smart Keys</a> [<a href="#SEC_Contents"
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index"
title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Smart-Mouse-Key-Modeline-Clicks-1"></a>
-<h3 class="section">2.6 Smart Mouse Key Modeline Clicks</h3>
+<span id="Smart-Mouse-Key-Modeline-Clicks-1"></span><h3 class="section">2.6
Smart Mouse Key Modeline Clicks</h3>
<p>Smart Mouse Key clicks on a window’s modeline offer many powerful
browsing
features, including directory editing (dired), user manual browsing, and
@@ -1654,18 +1621,18 @@ modeline actions are discussed herein.
<ul>
<li> Leftmost Character
-<a name="index-bury-buffer"></a>
-<a name="index-unbury-buffer"></a>
-<a name="index-modeline_002c-bury-buffer"></a>
-<a name="index-modeline_002c-unbury-buffer"></a>
-<a name="index-modeline_002c-leftmost-character"></a>
+<span id="index-bury-buffer"></span>
+<span id="index-unbury-buffer"></span>
+<span id="index-modeline_002c-bury-buffer"></span>
+<span id="index-modeline_002c-unbury-buffer"></span>
+<span id="index-modeline_002c-leftmost-character"></span>
<p>Action Key clicks on the first (usually blank) character of the
modeline bury the current buffer in the buffer list and display the
next buffer in the list. Assist Key clicks do the reverse and unbury
the bottom buffer.
</p>
-<a name="index-modeline_002c-next-buffer"></a>
-<a name="index-modeline_002c-prev-buffer"></a>
+<span id="index-modeline_002c-next-buffer"></span>
+<span id="index-modeline_002c-prev-buffer"></span>
<p>A similar effect can be achieved with the standard Emacs mouse 1 (left) and
3 (right) buttons on the Buffer ID element of modeline to cycle through
previous and next buffers, respectively. This may be easier to use since
@@ -1673,13 +1640,13 @@ you can click anywhere on the buffer identifier.
</p>
</li><li> Buffer ID Element
-<a name="index-dired"></a>
-<a name="index-directory-editor"></a>
-<a name="index-dired_002djump"></a>
-<a name="index-modeline_002c-dired"></a>
-<a name="index-buffer-id"></a>
-<a name="index-modeline_002c-buffer-id"></a>
-<a name="index-dragging-items_002c-dired"></a>
+<span id="index-dired"></span>
+<span id="index-directory-editor"></span>
+<span id="index-dired_002djump"></span>
+<span id="index-modeline_002c-dired"></span>
+<span id="index-buffer-id"></span>
+<span id="index-modeline_002c-buffer-id"></span>
+<span id="index-dragging-items_002c-dired"></span>
<p>On the left part of the modeline is the buffer identification,
generally the name of the buffer in use. An Action Key click on that
switches the window to edit the buffer’s directory using dired.
@@ -1693,8 +1660,8 @@ path (the part to the left of the click point), starts
another dired
session on the ancestor directory. Click at the end of this line or
on the last line to end the dired session (bury its buffer).
</p>
-<a name="index-Treemacs"></a>
-<a name="index-file-viewer_002c-Treemacs"></a>
+<span id="index-Treemacs"></span>
+<span id="index-file-viewer_002c-Treemacs"></span>
<p>If you use the Treemacs file viewer Emacs package, you can configure
Hyperbole
to use this instead of Dired when you click on a modeline buffer id.
</p>
@@ -1705,11 +1672,11 @@ to Hyperbole’s default, use the value,
<code>dired-jump</code>.
</p>
</li><li> Large Blank Area
-<a name="index-buffer-menu"></a>
-<a name="index-modeline_002c-buffer-menu"></a>
-<a name="index-jump-menu"></a>
-<a name="index-modeline_002c-jump-menu"></a>
-<a name="index-dragging-items_002c-buffer-menu"></a>
+<span id="index-buffer-menu"></span>
+<span id="index-modeline_002c-buffer-menu"></span>
+<span id="index-jump-menu"></span>
+<span id="index-modeline_002c-jump-menu"></span>
+<span id="index-dragging-items_002c-buffer-menu"></span>
<p>An Action Mouse Key click in a blank area of a window modeline (away
from left and right edges) toggles between displaying and hiding a
list of all buffers. Once displayed, an Action Key click on a buffer
@@ -1732,9 +1699,9 @@ wonder how you lived without it before.
</p>
</li><li> Right Corner
-<a name="index-Info-browser"></a>
-<a name="index-modeline-click-and-drag"></a>
-<a name="index-modeline_002c-Info-Browser"></a>
+<span id="index-Info-browser"></span>
+<span id="index-modeline-click-and-drag"></span>
+<span id="index-modeline_002c-Info-Browser"></span>
<p>A click of the Action Mouse Key in the right corner of a window
modeline (within the rightmost 3 characters) displays or hides the
GNU Info Manual Browser, giving you quick point and click access to
@@ -1745,13 +1712,13 @@ Smart Key summary, as noted earlier.
</p>
</li><li> Customizable Variables
-<a name="index-action_002dkey_002dmodeline_002dfunction"></a>
-<a name="index-assist_002dkey_002dmodeline_002dfunction"></a>
-<a name="index-action_002dkey_002dmodeline"></a>
-<a name="index-assist_002dkey_002dmodeline"></a>
-<a name="index-hmouse_002dcontext_002dmenu"></a>
-<a name="index-hmouse_002dcontext_002dibuffer_002dmenu"></a>
-<a name="index-ibuffer-menu"></a>
+<span id="index-action_002dkey_002dmodeline_002dfunction"></span>
+<span id="index-assist_002dkey_002dmodeline_002dfunction"></span>
+<span id="index-action_002dkey_002dmodeline"></span>
+<span id="index-assist_002dkey_002dmodeline"></span>
+<span id="index-hmouse_002dcontext_002dmenu"></span>
+<span id="index-hmouse_002dcontext_002dibuffer_002dmenu"></span>
+<span id="index-ibuffer-menu"></span>
<p>Hyperbole modeline mouse click actions are controlled by the two functions,
<code>action-key-modeline</code> and <code>assist-key-modeline</code>. If you
know
a little Emacs Lisp you can change these to do whatever you like. When a
@@ -1766,8 +1733,8 @@ use that with the following in your Emacs initialization
file:
To set it back to the default use:
<code>(setq action-key-modeline-function #'hmouse-context-menu)</code>.
</p>
-<a name="index-hui_002dmenu_002dscreen_002dcommands"></a>
-<a name="index-modeline_002c-screen-command-menu"></a>
+<span id="index-hui_002dmenu_002dscreen_002dcommands"></span>
+<span id="index-modeline_002c-screen-command-menu"></span>
<p>The default <code>assist-key-modeline-function</code> is to pop up a menu of
convenient screen commands that lets you select buffers grouped by
major mode, use HyControl, or jump to specific windows, window
@@ -1779,46 +1746,42 @@ Change the value to your desired command. Then press
<tt class="key">RET</tt>.
</p></li></ul>
<hr>
-<a name="Smart-Mouse-Key-Drags"></a>
-<div class="header">
+<span id="Smart-Mouse-Key-Drags"></span><div class="header">
<p>
Previous: <a href="#Smart-Mouse-Key-Modeline-Clicks" accesskey="p"
rel="prev">Smart Mouse Key Modeline Clicks</a>, Up: <a href="#Smart-Keys"
accesskey="u" rel="up">Smart Keys</a> [<a href="#SEC_Contents"
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index"
title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Smart-Mouse-Key-Drags-1"></a>
-<h3 class="section">2.7 Smart Mouse Key Drags</h3>
+<span id="Smart-Mouse-Key-Drags-1"></span><h3 class="section">2.7 Smart Mouse
Key Drags</h3>
-<a name="index-smart-mouse-key-drag"></a>
-<a name="index-Action-Mouse-Key-drag"></a>
-<a name="index-Assist-Mouse-Key-drag"></a>
-<a name="index-drag_002c-Smart-Mouse-Key"></a>
+<span id="index-smart-mouse-key-drag"></span>
+<span id="index-Action-Mouse-Key-drag"></span>
+<span id="index-Assist-Mouse-Key-drag"></span>
+<span id="index-drag_002c-Smart-Mouse-Key"></span>
<p>As mentioned in the section on Thing Selection, Hyperbole Smart Mouse Key
drag actions can be quite useful. This section summarizes other drag
contexts and actions; for complete documentation, see <a
href="#Smart-Mouse-Keys">Smart Mouse Keys</a>.
</p>
<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">• <a
href="#Creating-and-Deleting-Windows" accesskey="1">Creating and Deleting
Windows</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Creating-and-Deleting-Windows" accesskey="1">Creating and Deleting
Windows</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Saving-and-Restoring-Window-Configurations" accesskey="2">Saving and
Restoring Window Configurations</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a
href="#Saving-and-Restoring-Window-Configurations" accesskey="2">Saving and
Restoring Window Configurations</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Resizing-Windows"
accesskey="3">Resizing Windows</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Resizing-Windows"
accesskey="3">Resizing Windows</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Dragging-Buffers"
accesskey="4">Dragging Buffers</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Dragging-Buffers"
accesskey="4">Dragging Buffers</a></td><td> </td><td align="left"
valign="top">
</td></tr>
</table>
<hr>
-<a name="Creating-and-Deleting-Windows"></a>
-<div class="header">
+<span id="Creating-and-Deleting-Windows"></span><div class="header">
<p>
Next: <a href="#Saving-and-Restoring-Window-Configurations" accesskey="n"
rel="next">Saving and Restoring Window Configurations</a>, Previous: <a
href="#Smart-Mouse-Key-Drags" accesskey="p" rel="prev">Smart Mouse Key
Drags</a>, Up: <a href="#Smart-Mouse-Key-Drags" accesskey="u" rel="up">Smart
Mouse Key Drags</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Creating-and-Deleting-Windows-1"></a>
-<h4 class="subsection">2.7.1 Creating and Deleting Windows</h4>
+<span id="Creating-and-Deleting-Windows-1"></span><h4 class="subsection">2.7.1
Creating and Deleting Windows</h4>
-<a name="index-drag_002c-horizontal"></a>
-<a name="index-horizontal-drag"></a>
-<a name="index-drag_002c-vertical"></a>
-<a name="index-vertical-drag"></a>
+<span id="index-drag_002c-horizontal"></span>
+<span id="index-horizontal-drag"></span>
+<span id="index-drag_002c-vertical"></span>
+<span id="index-vertical-drag"></span>
<p>Horizontal and vertical drags of the Smart Mouse Keys are used to split and
delete Emacs windows.
</p>
@@ -1829,26 +1792,24 @@ vertical drag in either direction splits the current
window into two
side-by-side windows. A horizontal or vertical drag of the Assist Mouse
Key within a single window, deletes that window.
</p>
-<a name="index-C_002dx-_002b"></a>
-<a name="index-rebalance-windows"></a>
-<a name="index-windows_002c-rebalance"></a>
+<span id="index-C_002dx-_002b"></span>
+<span id="index-rebalance-windows"></span>
+<span id="index-windows_002c-rebalance"></span>
<p>If you split windows many times and then delete a number of the windows,
you’ll be left with windows of differing heights. Use <kbd>{C-x
+}</kbd> to
re-balance the sizes of the remaining windows, so they are fairly even.
</p>
<hr>
-<a name="Saving-and-Restoring-Window-Configurations"></a>
-<div class="header">
+<span id="Saving-and-Restoring-Window-Configurations"></span><div
class="header">
<p>
Next: <a href="#Resizing-Windows" accesskey="n" rel="next">Resizing
Windows</a>, Previous: <a href="#Creating-and-Deleting-Windows" accesskey="p"
rel="prev">Creating and Deleting Windows</a>, Up: <a
href="#Smart-Mouse-Key-Drags" accesskey="u" rel="up">Smart Mouse Key Drags</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Saving-and-Restoring-Window-Configurations-1"></a>
-<h4 class="subsection">2.7.2 Saving and Restoring Window Configurations</h4>
+<span id="Saving-and-Restoring-Window-Configurations-1"></span><h4
class="subsection">2.7.2 Saving and Restoring Window Configurations</h4>
-<a name="index-window-configuration-drag"></a>
-<a name="index-drag_002c-window-configuration"></a>
-<a name="index-drag_002c-diagonal"></a>
-<a name="index-diagonal-drag"></a>
+<span id="index-window-configuration-drag"></span>
+<span id="index-drag_002c-window-configuration"></span>
+<span id="index-drag_002c-diagonal"></span>
+<span id="index-diagonal-drag"></span>
<p>A window configuration consists of the set of windows within a single Emacs
frame. This includes their locations, buffers, and the scrolled positions of
their buffers.
@@ -1857,23 +1818,21 @@ their buffers.
diagonal mouse drags within a single window. A diagonal drag in any
direction of the Action Key saves the current window configuration to a
ring of window configurations, just like the Emacs text kill ring.
-(See <a
href="http://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Kill-Ring">Kill
Ring</a> in <cite>the Emacs Manual</cite>). Each diagonal drag in any
+(See <a
href="https://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Kill-Ring">Kill
Ring</a> in <cite>the Emacs Manual</cite>). Each diagonal drag in any
direction of the Assist Key restores a prior saved window configuration
from the ring. Window configurations are restored in reverse order of the
way they were saved. Since a ring is circular, after the oldest element is
restored, the newest element will again be restored and so on.
</p>
<hr>
-<a name="Resizing-Windows"></a>
-<div class="header">
+<span id="Resizing-Windows"></span><div class="header">
<p>
Next: <a href="#Dragging-Buffers" accesskey="n" rel="next">Dragging
Buffers</a>, Previous: <a href="#Saving-and-Restoring-Window-Configurations"
accesskey="p" rel="prev">Saving and Restoring Window Configurations</a>, Up: <a
href="#Smart-Mouse-Key-Drags" accesskey="u" rel="up">Smart Mouse Key Drags</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Resizing-Windows-1"></a>
-<h4 class="subsection">2.7.3 Resizing Windows</h4>
+<span id="Resizing-Windows-1"></span><h4 class="subsection">2.7.3 Resizing
Windows</h4>
-<a name="index-resizing-windows"></a>
-<a name="index-drag_002c-resize-window"></a>
+<span id="index-resizing-windows"></span>
+<span id="index-drag_002c-resize-window"></span>
<p>Emacs windows may be resized by dragging their window separators (modelines
or vertical side lines) within a frame. Simply depress either Smart Mouse
Key on a modeline or near a window side, hold it down while you drag to a
@@ -1889,44 +1848,40 @@ them for resizing windows as well.
resize the frame to move the bottom of that window up.
</p>
<hr>
-<a name="Dragging-Buffers"></a>
-<div class="header">
+<span id="Dragging-Buffers"></span><div class="header">
<p>
Previous: <a href="#Resizing-Windows" accesskey="p" rel="prev">Resizing
Windows</a>, Up: <a href="#Smart-Mouse-Key-Drags" accesskey="u" rel="up">Smart
Mouse Key Drags</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Dragging-Buffers_002c-Windows-and-Items"></a>
-<h4 class="subsection">2.7.4 Dragging Buffers, Windows and Items</h4>
+<span id="Dragging-Buffers_002c-Windows-and-Items"></span><h4
class="subsection">2.7.4 Dragging Buffers, Windows and Items</h4>
<p>Smart Mouse Key drags let you display buffers and windows however you want
them. Dired and buffer-menu items may also be displayed in specific
locations with drags. Below we explore these drag actions.
</p>
<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">• <a href="#Swapping-Buffers"
accesskey="1">Swapping Buffers</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Swapping-Buffers"
accesskey="1">Swapping Buffers</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Displaying-Buffers"
accesskey="2">Displaying Buffers</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Displaying-Buffers"
accesskey="2">Displaying Buffers</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Cloning-Windows"
accesskey="3">Cloning Windows</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Cloning-Windows"
accesskey="3">Cloning Windows</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Displaying-File-and-Buffer-Items" accesskey="4">Displaying File and
Buffer Items</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Displaying-File-and-Buffer-Items" accesskey="4">Displaying File and
Buffer Items</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Keyboard-Drags"
accesskey="5">Keyboard Drags</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Keyboard-Drags"
accesskey="5">Keyboard Drags</a></td><td> </td><td align="left"
valign="top">
</td></tr>
</table>
<hr>
-<a name="Swapping-Buffers"></a>
-<div class="header">
+<span id="Swapping-Buffers"></span><div class="header">
<p>
Next: <a href="#Displaying-Buffers" accesskey="n" rel="next">Displaying
Buffers</a>, Previous: <a href="#Dragging-Buffers" accesskey="p"
rel="prev">Dragging Buffers</a>, Up: <a href="#Dragging-Buffers" accesskey="u"
rel="up">Dragging Buffers</a> [<a href="#SEC_Contents" title="Table of
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Swapping-Buffers-1"></a>
-<h4 class="subsubsection">2.7.4.1 Swapping Buffers</h4>
+<span id="Swapping-Buffers-1"></span><h4 class="subsubsection">2.7.4.1
Swapping Buffers</h4>
-<a name="index-swap-buffers"></a>
-<a name="index-window_002c-swap-buffer"></a>
-<a name="index-buffer_002c-swap"></a>
-<a name="index-drag_002c-buffer-swap"></a>
+<span id="index-swap-buffers"></span>
+<span id="index-window_002c-swap-buffer"></span>
+<span id="index-buffer_002c-swap"></span>
+<span id="index-drag_002c-buffer-swap"></span>
<p>Swapping buffer locations is quick and easy with Hyperbole. Simply drag
from one window to another with the Assist Key (not the Action Key). This
works across frames as well.
@@ -1937,17 +1892,15 @@ involving the tilde key to swap the buffers and quit
from the Hyperbole
minibuffer menu: <kbd>{C-h h s w ~ q}</kbd>.
</p>
<hr>
-<a name="Displaying-Buffers"></a>
-<div class="header">
+<span id="Displaying-Buffers"></span><div class="header">
<p>
Next: <a href="#Cloning-Windows" accesskey="n" rel="next">Cloning Windows</a>,
Previous: <a href="#Swapping-Buffers" accesskey="p" rel="prev">Swapping
Buffers</a>, Up: <a href="#Dragging-Buffers" accesskey="u" rel="up">Dragging
Buffers</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Displaying-Buffers-1"></a>
-<h4 class="subsubsection">2.7.4.2 Displaying Buffers</h4>
+<span id="Displaying-Buffers-1"></span><h4 class="subsubsection">2.7.4.2
Displaying Buffers</h4>
-<a name="index-buffer_002c-copy"></a>
-<a name="index-copy-buffer"></a>
-<a name="index-drag_002c-copy-buffer"></a>
+<span id="index-buffer_002c-copy"></span>
+<span id="index-copy-buffer"></span>
+<span id="index-drag_002c-copy-buffer"></span>
<p>What if you want to display the same buffer in another window and not swap
buffers? Depress the Action Mouse Key in the open area of the modeline of
the source window and drag to the text area of the destination window.
@@ -1958,17 +1911,15 @@ buffer stays onscreen), just drag to a window’s
modeline; that window will
split before the buffer is displayed.
</p>
<hr>
-<a name="Cloning-Windows"></a>
-<div class="header">
+<span id="Cloning-Windows"></span><div class="header">
<p>
Next: <a href="#Displaying-File-and-Buffer-Items" accesskey="n"
rel="next">Displaying File and Buffer Items</a>, Previous: <a
href="#Displaying-Buffers" accesskey="p" rel="prev">Displaying Buffers</a>, Up:
<a href="#Dragging-Buffers" accesskey="u" rel="up">Dragging Buffers</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Cloning-Windows-1"></a>
-<h4 class="subsubsection">2.7.4.3 Cloning Windows</h4>
+<span id="Cloning-Windows-1"></span><h4 class="subsubsection">2.7.4.3 Cloning
Windows</h4>
-<a name="index-clone-window"></a>
-<a name="index-window_002c-clone"></a>
-<a name="index-drag_002c-clone-window"></a>
+<span id="index-clone-window"></span>
+<span id="index-window_002c-clone"></span>
+<span id="index-drag_002c-clone-window"></span>
<p>To clone a window with its buffer to a new frame, simply drag the Action
Mouse
Key from the window to outside of Emacs and release the key. A new frame will
be created, selected and sized according to the original window. Do the same
@@ -1976,20 +1927,18 @@ thing with the Assist Mouse Key and the original window
will be deleted as well,
unless it is the only window in that frame.
</p>
<hr>
-<a name="Displaying-File-and-Buffer-Items"></a>
-<div class="header">
+<span id="Displaying-File-and-Buffer-Items"></span><div class="header">
<p>
Next: <a href="#Keyboard-Drags" accesskey="n" rel="next">Keyboard Drags</a>,
Previous: <a href="#Cloning-Windows" accesskey="p" rel="prev">Cloning
Windows</a>, Up: <a href="#Dragging-Buffers" accesskey="u" rel="up">Dragging
Buffers</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Displaying-File-and-Buffer-Items-1"></a>
-<h4 class="subsubsection">2.7.4.4 Displaying File and Buffer Items</h4>
+<span id="Displaying-File-and-Buffer-Items-1"></span><h4
class="subsubsection">2.7.4.4 Displaying File and Buffer Items</h4>
-<a name="index-dired-item-drag"></a>
-<a name="index-buffer-menu-item-drag"></a>
-<a name="index-Treemacs-item-drag"></a>
-<a name="index-drag_002c-dired-item"></a>
-<a name="index-drag_002c-buffer-menu-item"></a>
-<a name="index-drag_002c-Treemacs-item"></a>
+<span id="index-dired-item-drag"></span>
+<span id="index-buffer-menu-item-drag"></span>
+<span id="index-Treemacs-item-drag"></span>
+<span id="index-drag_002c-dired-item"></span>
+<span id="index-drag_002c-buffer-menu-item"></span>
+<span id="index-drag_002c-Treemacs-item"></span>
<p>You can also drag items to other windows with the Action Key in Dired,
Buffer Menu, Ibuffer and Treemacs listing buffers, rather than the
buffers themselves. Drag with the Action Mouse Key and the selected
@@ -2007,21 +1956,19 @@ made. An Assist Key Drag will move the the item list
buffer to the
destination (swapping buffers), just as it does with other buffers.
</p>
<hr>
-<a name="Keyboard-Drags"></a>
-<div class="header">
+<span id="Keyboard-Drags"></span><div class="header">
<p>
Previous: <a href="#Displaying-File-and-Buffer-Items" accesskey="p"
rel="prev">Displaying File and Buffer Items</a>, Up: <a
href="#Dragging-Buffers" accesskey="u" rel="up">Dragging Buffers</a> [<a
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Keyboard-Drags-1"></a>
-<h4 class="subsubsection">2.7.4.5 Keyboard Drags</h4>
+<span id="Keyboard-Drags-1"></span><h4 class="subsubsection">2.7.4.5 Keyboard
Drags</h4>
-<a name="index-M_002do"></a>
-<a name="index-C_002du-M_002do"></a>
-<a name="index-C_002dx-o"></a>
-<a name="index-hkey_002doperate"></a>
-<a name="index-drag-emulation"></a>
-<a name="index-emulation_002c-drag"></a>
-<a name="index-keyboard-drags"></a>
+<span id="index-M_002do"></span>
+<span id="index-C_002du-M_002do"></span>
+<span id="index-C_002dx-o"></span>
+<span id="index-hkey_002doperate"></span>
+<span id="index-drag-emulation"></span>
+<span id="index-emulation_002c-drag"></span>
+<span id="index-keyboard-drags"></span>
<p>If you run Emacs under a window system and there is no prior key binding
on <kbd>{M-o}</kbd> when you load Hyperbole, then many Action Key drags can be
emulated from the keyboard. To do so, press <kbd>{M-o}</kbd>, the
@@ -2032,12 +1979,12 @@ Action Key. <kbd>{C-u M-o}</kbd> emulates drags of the
Assist Key.
This will not work when Hyperbole is run from a dumb terminal Emacs
session since drag actions are not supported without a window system.
</p>
-<a name="index-ace_002dwindow-1"></a>
-<a name="index-hkey_002dace_002dwindow_002dsetup"></a>
-<a name="index-ace_002dwindow"></a>
-<a name="index-window-by-letter"></a>
-<a name="index-jump-to-window-by-letter"></a>
-<a name="index-keyboard_002c-jump-to-window"></a>
+<span id="index-ace_002dwindow-1"></span>
+<span id="index-hkey_002dace_002dwindow_002dsetup"></span>
+<span id="index-ace_002dwindow"></span>
+<span id="index-window-by-letter"></span>
+<span id="index-jump-to-window-by-letter"></span>
+<span id="index-keyboard_002c-jump-to-window"></span>
<p>For even faster keyboard-based display of items and drag emulations,
use the Emacs package <code>ace-window</code>
(see <a
href="https://elpa.gnu.org/packages/ace-window.html">https://elpa.gnu.org/packages/ace-window.html</a>).
@@ -2057,20 +2004,20 @@ the drags performed by <code>hkey-operate</code>). If
you already have a key bo
for <code>ace-window</code>, then just ensure it is initialized by calling
<code>(hkey-ace-window-setup)</code> without a key argument.
</p>
-<a name="index-link-creation-from-keyboard"></a>
-<a name="index-keyboard-link-creation"></a>
-<a name="index-M_002do-i-_003cwindow_002did_003e"></a>
-<a name="index-M_002do-m-_003cwindow_002did_003e"></a>
-<a name="index-M_002do-r-_003cwindow_002did_003e"></a>
-<a name="index-M_002do-t-_003cwindow_002did_003e"></a>
-<a name="index-drag-item"></a>
-<a name="index-replace-window-buffer"></a>
-<a name="index-swap-window-buffers"></a>
-<a name="index-throw-item"></a>
-<a name="index-buffer-replace"></a>
-<a name="index-buffers-swap"></a>
-<a name="index-item-drag"></a>
-<a name="index-item-throw"></a>
+<span id="index-link-creation-from-keyboard"></span>
+<span id="index-keyboard-link-creation"></span>
+<span id="index-M_002do-i-_003cwindow_002did_003e"></span>
+<span id="index-M_002do-m-_003cwindow_002did_003e"></span>
+<span id="index-M_002do-r-_003cwindow_002did_003e"></span>
+<span id="index-M_002do-t-_003cwindow_002did_003e"></span>
+<span id="index-drag-item"></span>
+<span id="index-replace-window-buffer"></span>
+<span id="index-swap-window-buffers"></span>
+<span id="index-throw-item"></span>
+<span id="index-buffer-replace"></span>
+<span id="index-buffers-swap"></span>
+<span id="index-item-drag"></span>
+<span id="index-item-throw"></span>
<p>After setup, the leftmost character or two of each window’s modeline
will show
the ID to type to use that window as the drag destination. Then whenever point
is on an item you want displayed in another window, use <kbd>{M-o i
@@ -2111,15 +2058,13 @@ trigger an error
<hr>
-<a name="Buttons"></a>
-<div class="header">
+<span id="Buttons"></span><div class="header">
<p>
Next: <a href="#Menus" accesskey="n" rel="next">Menus</a>, Previous: <a
href="#Smart-Keys" accesskey="p" rel="prev">Smart Keys</a>, Up: <a href="#Top"
accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Buttons-1"></a>
-<h2 class="chapter">3 Buttons</h2>
+<span id="Buttons-1"></span><h2 class="chapter">3 Buttons</h2>
-<a name="index-button"></a>
+<span id="index-button"></span>
<p>This chapter explains use of Hyperbole <em>buttons</em>. There are several
kinds of Hyperbole buttons: buttons that are created one at a time and
stored in files (<em>explicit buttons</em>); buttons that can be
@@ -2131,13 +2076,13 @@ of buttons (<em>implicit buttons</em>).
created, modified, moved or deleted. Each button performs a specific
action, such as linking to a file or executing a shell command.
</p>
-<a name="index-button_002c-explicit"></a>
-<a name="index-button_002c-global"></a>
-<a name="index-button_002c-implicit"></a>
-<a name="index-button-category"></a>
-<a name="index-explicit-button"></a>
-<a name="index-global-button"></a>
-<a name="index-implicit-button"></a>
+<span id="index-button_002c-explicit"></span>
+<span id="index-button_002c-global"></span>
+<span id="index-button_002c-implicit"></span>
+<span id="index-button-category"></span>
+<span id="index-explicit-button"></span>
+<span id="index-global-button"></span>
+<span id="index-implicit-button"></span>
<p>There are three categories of Hyperbole buttons:
</p><dl compact="compact">
<dt><em>explicit buttons</em></dt>
@@ -2176,7 +2121,7 @@ Implicit a matching context direct selection
other tools
</pre></div>
-<a name="index-terminal-use"></a>
+<span id="index-terminal-use"></span>
<p>A click on a Hyperbole button may activate it or describe its actions,
depending on which mouse key is used. Buttons may also be activated from a
keyboard. (In fact, many Hyperbole operations, including menu usage, may
@@ -2186,37 +2131,35 @@ also a key that shows you how a button will behave
before you activate
it, see <a href="#Smart-Key-Operations">Smart Key Operations</a>.
</p>
<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">• <a href="#Explicit-Buttons"
accesskey="1">Explicit Buttons</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Explicit-Buttons"
accesskey="1">Explicit Buttons</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Global-Buttons"
accesskey="2">Global Buttons</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Global-Buttons"
accesskey="2">Global Buttons</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Implicit-Buttons"
accesskey="3">Implicit Buttons</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Implicit-Buttons"
accesskey="3">Implicit Buttons</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Button-Files"
accesskey="4">Button Files</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Button-Files"
accesskey="4">Button Files</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Action-Types"
accesskey="5">Action Types</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Action-Types"
accesskey="5">Action Types</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Button-Type-Precedence"
accesskey="6">Button Type Precedence</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Button-Type-Precedence"
accesskey="6">Button Type Precedence</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Utilizing-Explicit-Buttons"
accesskey="7">Utilizing Explicit Buttons</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Utilizing-Explicit-Buttons"
accesskey="7">Utilizing Explicit Buttons</a></td><td> </td><td
align="left" valign="top">
</td></tr>
</table>
<hr>
-<a name="Explicit-Buttons"></a>
-<div class="header">
+<span id="Explicit-Buttons"></span><div class="header">
<p>
Next: <a href="#Global-Buttons" accesskey="n" rel="next">Global Buttons</a>,
Previous: <a href="#Buttons" accesskey="p" rel="prev">Buttons</a>, Up: <a
href="#Buttons" accesskey="u" rel="up">Buttons</a> [<a
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Explicit-Buttons-1"></a>
-<h3 class="section">3.1 Explicit Buttons</h3>
+<span id="Explicit-Buttons-1"></span><h3 class="section">3.1 Explicit
Buttons</h3>
-<a name="index-explicit-button-1"></a>
-<a name="index-button_002c-explicit-1"></a>
-<a name="index-button-label"></a>
-<a name="index-button-name"></a>
-<a name="index-label_002c-button"></a>
-<a name="index-name_002c-button"></a>
+<span id="index-explicit-button-1"></span>
+<span id="index-button_002c-explicit-1"></span>
+<span id="index-button-label"></span>
+<span id="index-button-name"></span>
+<span id="index-label_002c-button"></span>
+<span id="index-name_002c-button"></span>
<p>Hyperbole creates and manages <em>explicit buttons</em> which perform
specific actions when activated (typically through a button press).
They look like this ‘<samp><(fake button)></samp>’. They
are quickly
@@ -2232,8 +2175,8 @@ code files, simply place buttons within comments.
Buttons that you
use for quick navigation to websites or other things you do often
should be added to your personal button file. See <a
href="#Button-Files">Button Files</a>.
</p>
-<a name="index-button_002c-moving"></a>
-<a name="index-moving-buttons"></a>
+<span id="index-button_002c-moving"></span>
+<span id="index-moving-buttons"></span>
<p>Explicit buttons may be freely moved about within the buffer in which
they are created. (No present support exists for moving buttons between
buffers; support the Hyperbole project if you would like to help make
@@ -2244,8 +2187,8 @@ to a new location if you need another copy of it.
<p>For details on how to create, activate, delete or modify explicit
buttons, see <a href="#Utilizing-Explicit-Buttons">Utilizing Explicit
Buttons</a>.
</p>
-<a name="index-link-button"></a>
-<a name="index-referent"></a>
+<span id="index-link-button"></span>
+<span id="index-referent"></span>
<p>Each explicit button is assigned an action type that determines the actions
it performs. <em>Link action types</em> connect buttons to particular types
of <em>referents</em>, the targets of their links. Link action type names all
@@ -2253,16 +2196,16 @@ begin with <code>link-</code>. Link action button
referents are displayed when
such buttons are activated with a press or a click. See <a
href="#Action-Types">Action Types</a>,
for a list of standard action types including link types.
</p>
-<a name="index-linking_002c-in_002dplace"></a>
-<a name="index-Hyperbole-data-model"></a>
+<span id="index-linking_002c-in_002dplace"></span>
+<span id="index-Hyperbole-data-model"></span>
<p>Hyperbole does not manage referent data; this is left to the
applications that generate the data. This means that Hyperbole
provides in-place linking and does not require reformatting data to
integrate it with Hyperbole.
</p>
-<a name="index-button-data"></a>
-<a name="index-button-attribute"></a>
-<a name="index-file_002c-_002ehypb"></a>
+<span id="index-button-data"></span>
+<span id="index-button-attribute"></span>
+<span id="index-file_002c-_002ehypb"></span>
<p>Hyperbole stores the <em>button data</em> that gives an explicit button its
behavior, separately from the button label, in a file named
<samp>.hypb</samp> (<samp>_hypb</samp> under MS Windows) within the same
directory
@@ -2274,18 +2217,16 @@ asking for help on a button.
</p>
<hr>
-<a name="Global-Buttons"></a>
-<div class="header">
+<span id="Global-Buttons"></span><div class="header">
<p>
Next: <a href="#Implicit-Buttons" accesskey="n" rel="next">Implicit
Buttons</a>, Previous: <a href="#Explicit-Buttons" accesskey="p"
rel="prev">Explicit Buttons</a>, Up: <a href="#Buttons" accesskey="u"
rel="up">Buttons</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Global-Buttons-1"></a>
-<h3 class="section">3.2 Global Buttons</h3>
+<span id="Global-Buttons-1"></span><h3 class="section">3.2 Global Buttons</h3>
-<a name="index-global-button-1"></a>
-<a name="index-button_002c-global-1"></a>
-<a name="index-button-label-1"></a>
-<a name="index-label_002c-button-1"></a>
+<span id="index-global-button-1"></span>
+<span id="index-button_002c-global-1"></span>
+<span id="index-button-label-1"></span>
+<span id="index-label_002c-button-1"></span>
<p>Access to explicit buttons depends upon the information on your screen
since they are embedded within particular buffers. Sometimes it is
useful to activate buttons without regard to the information with which
@@ -2300,9 +2241,9 @@ macro that you use frequently? Create an
<code>exec-kbd-macro</code> button
with an easy to type name and then you can activate it whenever the need
arises.
</p>
-<a name="index-C_002dh-h-g"></a>
-<a name="index-menu_002c-Gbut"></a>
-<a name="index-menu_002c-Global_002dButton"></a>
+<span id="index-C_002dh-h-g"></span>
+<span id="index-menu_002c-Gbut"></span>
+<span id="index-menu_002c-Global_002dButton"></span>
<p>Global buttons are managed with the Hyperbole Gbut/ menu accessed with
<kbd>{C-h h g}</kbd>. The Create item, <kbd>{C-h h g c}</kbd>, prompts for a
global button name, an action type, and the action’s associated
@@ -2314,25 +2255,23 @@ the button’s name and its action will be executed.
personal button file, see <a href="#Button-Files">Button Files</a>. You can
always go into that
file and activate, edit or annotate these buttons with comments.
</p>
-<a name="index-bookmarks"></a>
+<span id="index-bookmarks"></span>
<p>Emacs has a built-in feature similar to Global Buttons called Bookmarks.
Bookmarks store places in files or link to URLs, so they are more limited
than Hyperbole’s global buttons and cannot utilize all of
Hyperbole’s
-capabilities for performing actions. See <a
href="http://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Bookmarks">Bookmarks</a>
in <cite>the Emacs
+capabilities for performing actions. See <a
href="https://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Bookmarks">Bookmarks</a>
in <cite>the Emacs
Manual</cite>, for details on bookmarks.
</p>
<hr>
-<a name="Implicit-Buttons"></a>
-<div class="header">
+<span id="Implicit-Buttons"></span><div class="header">
<p>
Next: <a href="#Button-Files" accesskey="n" rel="next">Button Files</a>,
Previous: <a href="#Global-Buttons" accesskey="p" rel="prev">Global
Buttons</a>, Up: <a href="#Buttons" accesskey="u" rel="up">Buttons</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Implicit-Buttons-1"></a>
-<h3 class="section">3.3 Implicit Buttons</h3>
+<span id="Implicit-Buttons-1"></span><h3 class="section">3.3 Implicit
Buttons</h3>
-<a name="index-button_002c-implicit-1"></a>
-<a name="index-implicit-button-1"></a>
-<a name="index-link_002dto_002dfile"></a>
+<span id="index-button_002c-implicit-1"></span>
+<span id="index-implicit-button-1"></span>
+<span id="index-link_002dto_002dfile"></span>
<p><em>Implicit buttons</em> are virtual buttons recognized within the
natural structure of a document. For example, a web URL button that
displays its link or an email address button that starts a mail
@@ -2351,12 +2290,12 @@ typically in another window. An explicit button could
do the same
thing but has to be created manually, rather than recognized as part
of the buffer text.
</p>
-<a name="index-file_002c-hibtypes_002eel"></a>
-<a name="index-context"></a>
-<a name="index-boolean-expressions"></a>
-<a name="index-activating-implicit-button"></a>
-<a name="index-menu-item_002c-Ibut_002fAct"></a>
-<a name="index-C_002dh-h-i-a"></a>
+<span id="index-file_002c-hibtypes_002eel"></span>
+<span id="index-context"></span>
+<span id="index-boolean-expressions"></span>
+<span id="index-activating-implicit-button"></span>
+<span id="index-menu-item_002c-Ibut_002fAct"></span>
+<span id="index-C_002dh-h-i-a"></span>
<p>Unlike explicit buttons, implicit buttons have no individual button
data other than their text and optional labels. You use implicit
button types which include boolean expressions (predicates) that match
@@ -2372,9 +2311,9 @@ current point.
The Hyperbole Smart Keys offer additional extensive context-sensitive
point-and-click type behavior beyond implicit button types. See <a
href="#Smart-Key-Operations">Smart Key Operations</a>.
</p>
-<a name="index-implicit-button-labels"></a>
-<a name="index-labeling-implicit-buttons"></a>
-<a name="index-naming-implicit-buttons"></a>
+<span id="index-implicit-button-labels"></span>
+<span id="index-labeling-implicit-buttons"></span>
+<span id="index-naming-implicit-buttons"></span>
<p>Individual implicit buttons may be labeled/named, allowing activation
by name or use as a link target by other buttons. Here is a pathname
button with a label of ’My Emacs Files’:
@@ -2390,23 +2329,21 @@ on the text of an implicit button, <kbd>{C-h h i
l}</kbd> will label it. Or
you may simply type the label and delimiters manually.
</p>
<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">• <a href="#Implicit-Button-Types"
accesskey="1">Implicit Button Types</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Implicit-Button-Types"
accesskey="1">Implicit Button Types</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Action-Buttons"
accesskey="2">Action Buttons</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Action-Buttons"
accesskey="2">Action Buttons</a></td><td> </td><td align="left"
valign="top">
</td></tr>
</table>
<hr>
-<a name="Implicit-Button-Types"></a>
-<div class="header">
+<span id="Implicit-Button-Types"></span><div class="header">
<p>
Next: <a href="#Action-Buttons" accesskey="n" rel="next">Action Buttons</a>,
Previous: <a href="#Implicit-Buttons" accesskey="p" rel="prev">Implicit
Buttons</a>, Up: <a href="#Implicit-Buttons" accesskey="u" rel="up">Implicit
Buttons</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Implicit-Button-Types-1"></a>
-<h4 class="subsection">3.3.1 Implicit Button Types</h4>
+<span id="Implicit-Button-Types-1"></span><h4 class="subsection">3.3.1
Implicit Button Types</h4>
-<a name="index-ibtypes_002c-list-of"></a>
-<a name="index-implicit-button-types"></a>
+<span id="index-ibtypes_002c-list-of"></span>
+<span id="index-implicit-button-types"></span>
<p>Below is a list of standard implicit button types in the order in which
Hyperbole tries to match to the types when looking for an implicit
button; <kbd>{C-h h i t <span class="key">RET</span>}</kbd> provides similar
information. See
@@ -2415,9 +2352,9 @@ implicit button types (they are listed in increasing
order of priority).
</p>
<dl compact="compact">
<dd>
-<a name="index-ibtypes-doc_002did"></a>
-<a name="index-online-library"></a>
-<a name="index-document-identifier"></a>
+<span id="index-ibtypes-doc_002did"></span>
+<span id="index-online-library"></span>
+<span id="index-document-identifier"></span>
</dd>
<dt><code>doc-id</code></dt>
<dd><p>Display a document from a local document library given its id. Ids
must be
@@ -2427,15 +2364,15 @@ not installed by default. You must manually configure
it and load it from
the file, <samp><code>${hyperb:dir}</code>/hib-doc-id.el</samp>). See the
commentary
at the top of that file for more information.
</p>
-<a name="index-ibtypes-completion"></a>
-<a name="index-completion-1"></a>
+<span id="index-ibtypes-completion"></span>
+<span id="index-completion-1"></span>
</dd>
<dt><code>completion</code></dt>
<dd><p>Insert the completion at point (from a completions buffer) into the
minibuffer or the other window.
</p>
-<a name="index-ibtypes-hyp_002dsource"></a>
-<a name="index-Hyperbole-report"></a>
+<span id="index-ibtypes-hyp_002dsource"></span>
+<span id="index-Hyperbole-report"></span>
</dd>
<dt><code>hyp-source</code></dt>
<dd><p>Turn source location entries following an ‘@loc>’ line
in Hyperbole
@@ -2445,8 +2382,8 @@ explicit buttons in the <samp>DEMO</samp> file and each
button in that report
buffer behaves the same as the corresponding button in the original
<samp>DEMO</samp> file.
</p>
-<a name="index-ibtypes-hyp_002daddress"></a>
-<a name="index-Hyperbole-mail-list"></a>
+<span id="index-ibtypes-hyp_002daddress"></span>
+<span id="index-Hyperbole-mail-list"></span>
</dd>
<dt><code>hyp-address</code></dt>
<dd><p>Within a mail or Usenet news composer window, make a Hyperbole
@@ -2457,8 +2394,8 @@ for <code>actypes::hyp-config</code>. For example, an
Action Mouse Key
click on <hyperbole-users@gnu.org> in a mail composer window would
activate this implicit button type.
</p>
-<a name="index-ibtypes-Info_002dnode"></a>
-<a name="index-Info-node"></a>
+<span id="index-ibtypes-Info_002dnode"></span>
+<span id="index-Info-node"></span>
</dd>
<dt><code>Info-node</code></dt>
<dd><p>Make a "(filename)nodename" button display the associated
Info node.
@@ -2466,13 +2403,13 @@ Also make a "(filename)itemname" button
display the associated Info
index item. Examples are "(hyperbole)Implicit Buttons" and
“(hyperbole)C-c /”.
</p>
-<a name="index-ibtypes-www_002durl"></a>
-<a name="index-URL"></a>
-<a name="index-World_002dwide-Web"></a>
-<a name="index-WWW"></a>
-<a name="index-Action-Key_002c-web-browsing"></a>
-<a name="index-Action-Key_002c-web-browsing-1"></a>
-<a name="index-browse_002durl_002dbrowser_002dfunction"></a>
+<span id="index-ibtypes-www_002durl"></span>
+<span id="index-URL"></span>
+<span id="index-World_002dwide-Web"></span>
+<span id="index-WWW"></span>
+<span id="index-Action-Key_002c-web-browsing"></span>
+<span id="index-Action-Key_002c-web-browsing-1"></span>
+<span id="index-browse_002durl_002dbrowser_002dfunction"></span>
</dd>
<dt><code>www-url</code></dt>
<dd><p>When not in an Emacs web browser buffer, follow any non-ftp URL (link)
at point.
@@ -2480,18 +2417,18 @@ The variable, <code>browse-url-browser-function</code>,
may be used to customize
which URL browser is called. Terse URLs which lack a protocol prefix,
like www.gnu.org, are also recognized.
</p>
-<a name="index-ibtypes-gnus_002dpush_002dbutton"></a>
-<a name="index-GNUS-push_002dbuttons"></a>
-<a name="index-hiding-signatures"></a>
-<a name="index-signatures_002c-hiding"></a>
+<span id="index-ibtypes-gnus_002dpush_002dbutton"></span>
+<span id="index-GNUS-push_002dbuttons"></span>
+<span id="index-hiding-signatures"></span>
+<span id="index-signatures_002c-hiding"></span>
</dd>
<dt><code>gnus-push-button</code></dt>
<dd><p>Activate GNUS-specific article push-buttons, e.g. for hiding
signatures. GNUS
is a news and mail reader.
</p>
-<a name="index-ibtypes-texinfo_002dref"></a>
-<a name="index-Texinfo-cross_002dreference"></a>
-<a name="index-cross_002dreference_002c-Texinfo"></a>
+<span id="index-ibtypes-texinfo_002dref"></span>
+<span id="index-Texinfo-cross_002dreference"></span>
+<span id="index-cross_002dreference_002c-Texinfo"></span>
</dd>
<dt><code>texinfo-ref</code></dt>
<dd><p>Display Texinfo, Info node or help associated with Texinfo node, menu
item,
@@ -2504,10 +2441,10 @@ is shown.
<p>For @code, @findex, @var and @vindex references, the associated
documentation string is displayed.
</p>
-<a name="index-ibtypes-mail_002daddress"></a>
-<a name="index-e_002dmail-address"></a>
-<a name="index-rolo-address"></a>
-<a name="index-address"></a>
+<span id="index-ibtypes-mail_002daddress"></span>
+<span id="index-e_002dmail-address"></span>
+<span id="index-rolo-address"></span>
+<span id="index-address"></span>
</dd>
<dt><code>mail-address</code></dt>
<dd><p>If on an e-mail address in a specific buffer type, compose mail to that
@@ -2515,40 +2452,40 @@ address in another window. Applies to the rolo match
buffer, any buffer
attached to a file in <code>hyrolo-file-list</code>, or any buffer
with <samp>mail</samp> or <samp>rolo</samp> (case-insensitive) within its name.
</p>
-<a name="index-ibtypes-patch_002dmsg"></a>
-<a name="index-patch-output"></a>
+<span id="index-ibtypes-patch_002dmsg"></span>
+<span id="index-patch-output"></span>
</dd>
<dt><code>patch-msg</code></dt>
<dd><p>Jump to the source code associated with output from the
‘<samp>patch</samp>’
program. Patch applies diffs to source code.
</p>
-<a name="index-ibtypes-elisp_002dcompiler_002dmsg"></a>
-<a name="index-byte-compiler-error"></a>
-<a name="index-Emacs-Lisp-compiler-error"></a>
-<a name="index-compiler-error"></a>
+<span id="index-ibtypes-elisp_002dcompiler_002dmsg"></span>
+<span id="index-byte-compiler-error"></span>
+<span id="index-Emacs-Lisp-compiler-error"></span>
+<span id="index-compiler-error"></span>
</dd>
<dt><code>elisp-compiler-msg</code></dt>
<dd><p>Jump to the source code for a definition associated with an Emacs
Lisp byte-compiler error message. Works when activated anywhere
within an error line.
</p>
-<a name="index-ibtypes-debugger_002dsource"></a>
-<a name="index-gdb"></a>
-<a name="index-dbx"></a>
-<a name="index-xdb"></a>
-<a name="index-stack-frame"></a>
-<a name="index-breakpoint"></a>
-<a name="index-source-line"></a>
+<span id="index-ibtypes-debugger_002dsource"></span>
+<span id="index-gdb"></span>
+<span id="index-dbx"></span>
+<span id="index-xdb"></span>
+<span id="index-stack-frame"></span>
+<span id="index-breakpoint"></span>
+<span id="index-source-line"></span>
</dd>
<dt><code>debugger-source</code></dt>
<dd><p>Jump to the source line associated with a debugger stack frame or
breakpoint line. This works with gdb, dbx, and xdb. Such lines are
recognized in any buffer.
</p>
-<a name="index-ibtypes-ripgrep_002dmsg"></a>
-<a name="index-grep"></a>
-<a name="index-ripgrep"></a>
-<a name="index-match-lines"></a>
+<span id="index-ibtypes-ripgrep_002dmsg"></span>
+<span id="index-grep"></span>
+<span id="index-ripgrep"></span>
+<span id="index-match-lines"></span>
</dd>
<dt><code>ripgrep-msg</code></dt>
<dd><p>Jump to line associated with a ripgrep (rg) line numbered msg.
@@ -2556,9 +2493,9 @@ Ripgrep outputs each pathname once followed by all
matching lines in
that pathname. Messages are recognized in any buffer (other than a
helm completion buffer).
</p>
-<a name="index-ibtypes-ipython_002dstack_002dframe"></a>
-<a name="index-ipython"></a>
-<a name="index-stack-frame-1"></a>
+<span id="index-ibtypes-ipython_002dstack_002dframe"></span>
+<span id="index-ipython"></span>
+<span id="index-stack-frame-1"></span>
</dd>
<dt><code>ipython-stack-frame</code></dt>
<dd><p>Jump to line associated with an ipython stack frame line numbered msg.
@@ -2566,19 +2503,19 @@ ipython outputs each pathname once followed by all
matching lines in that
pathname. Messages are recognized in any buffer (other than a helm completion
buffer).
</p>
-<a name="index-ibtypes-grep_002dmsg"></a>
-<a name="index-grep-1"></a>
-<a name="index-compiler-error-1"></a>
-<a name="index-match-lines-1"></a>
+<span id="index-ibtypes-grep_002dmsg"></span>
+<span id="index-grep-1"></span>
+<span id="index-compiler-error-1"></span>
+<span id="index-match-lines-1"></span>
</dd>
<dt><code>grep-msg</code></dt>
<dd><p>Jump to a line associated with a grep or compilation error message.
Messages are recognized in any buffer.
</p>
-<a name="index-ibtypes-ilink"></a>
-<a name="index-implicit-button-link"></a>
-<a name="index-link-to-implicit-button"></a>
-<a name="index-ilink"></a>
+<span id="index-ibtypes-ilink"></span>
+<span id="index-implicit-button-link"></span>
+<span id="index-link-to-implicit-button"></span>
+<span id="index-ilink"></span>
</dd>
<dt><code>link-to-ibut <ilink></code></dt>
<dd><p>At point, activate a link to an implicit button within the current
buffer.
@@ -2589,10 +2526,10 @@ where button_file_path is given only when the link is
to another file,
e.g. <ilink: my series of keys: ${hyperb:dir}/HYPB>.
</p>
-<a name="index-ibtypes-glink"></a>
-<a name="index-global-button-link"></a>
-<a name="index-link-to-global-button"></a>
-<a name="index-glink"></a>
+<span id="index-ibtypes-glink"></span>
+<span id="index-global-button-link"></span>
+<span id="index-link-to-global-button"></span>
+<span id="index-glink"></span>
</dd>
<dt><code>link-to-gbut <glink></code></dt>
<dd><p>At point, activate a link to a global button.
@@ -2600,10 +2537,10 @@ Execulte the global button’s action in the
context of the current buffer.
</p>
<p>Recognizes the format ’<glink:’ button_label
’>’, e.g. <glink: open todos>.
</p>
-<a name="index-ibtypes-elink"></a>
-<a name="index-explicit-button-link"></a>
-<a name="index-link-to-explicit-button"></a>
-<a name="index-elink"></a>
+<span id="index-ibtypes-elink"></span>
+<span id="index-explicit-button-link"></span>
+<span id="index-link-to-explicit-button"></span>
+<span id="index-elink"></span>
</dd>
<dt><code>link-to-ebut <elink></code></dt>
<dd><p>At point, activate a link to an explicit button within the current
buffer.
@@ -2613,31 +2550,31 @@ Execute The explicit button’s action in the
context of the current buffer.
where : button_file_path is given only when the link is to another file,
e.g. <elink: project-list: ~/projs>."
</p>
-<a name="index-ibtypes-klink"></a>
-<a name="index-klink"></a>
-<a name="index-koutline-link"></a>
-<a name="index-kcell-link"></a>
+<span id="index-ibtypes-klink"></span>
+<span id="index-klink"></span>
+<span id="index-koutline-link"></span>
+<span id="index-kcell-link"></span>
</dd>
<dt><code>klink</code></dt>
<dd><p>Follow a link delimited by <> to a koutline cell.
See the documentation for <code>actypes::link-to-kotl</code> for valid link
specifiers.
</p>
-<a name="index-ibtypes-man_002dapropos"></a>
-<a name="index-UNIX-manual"></a>
-<a name="index-man-pages"></a>
-<a name="index-man-apropos"></a>
+<span id="index-ibtypes-man_002dapropos"></span>
+<span id="index-UNIX-manual"></span>
+<span id="index-man-pages"></span>
+<span id="index-man-apropos"></span>
</dd>
<dt><code>man-apropos</code></dt>
<dd><p>Make man apropos entries (from ‘<samp>man -k</samp>’)
display associated man pages
when selected.
</p>
-<a name="index-ibtypes-rfc"></a>
-<a name="index-Internet-RFC"></a>
-<a name="index-Request-For-Comment"></a>
-<a name="index-RFC"></a>
-<a name="index-remote-file"></a>
-<a name="index-ftp"></a>
+<span id="index-ibtypes-rfc"></span>
+<span id="index-Internet-RFC"></span>
+<span id="index-Request-For-Comment"></span>
+<span id="index-RFC"></span>
+<span id="index-remote-file"></span>
+<span id="index-ftp"></span>
</dd>
<dt><code>rfc</code></dt>
<dd><p>Retrieve and display an Internet rfc referenced at point. The
@@ -2646,9 +2583,9 @@ following formats are recognized: RFC822, rfc-822, and
RFC 822. The
retrieve RFCs. Requires the Emacs builtin Tramp library for ftp file
retrievals.
</p>
-<a name="index-ibtypes-kbd_002dkey"></a>
-<a name="index-key-sequence"></a>
-<a name="index-sequence-of-keys"></a>
+<span id="index-ibtypes-kbd_002dkey"></span>
+<span id="index-key-sequence"></span>
+<span id="index-sequence-of-keys"></span>
</dd>
<dt><code>kbd-key</code></dt>
<dd><p>Execute a key series (series of key sequences) found around point,
@@ -2664,9 +2601,9 @@ will not be recognized.
</li><li> or a valid key sequence together with its interactive arguments.
</li></ul>
-<a name="index-ibtypes-dir_002dsummary"></a>
-<a name="index-file_002c-MANIFEST"></a>
-<a name="index-file_002c-DIR"></a>
+<span id="index-ibtypes-dir_002dsummary"></span>
+<span id="index-file_002c-MANIFEST"></span>
+<span id="index-file_002c-DIR"></span>
</dd>
<dt><code>dir-summary</code></dt>
<dd><p>Detect filename buttons in files named "MANIFEST" or
"DIR". Display selected
@@ -2674,9 +2611,9 @@ files. Each filename must be at the beginning of the
line and must be
followed by one or more spaces and then another non-space, non-parenthesis,
non-brace character.
</p>
-<a name="index-ibtypes-text_002dtoc"></a>
-<a name="index-table-of-contents"></a>
-<a name="index-toc-implicit-button-type"></a>
+<span id="index-ibtypes-text_002dtoc"></span>
+<span id="index-table-of-contents"></span>
+<span id="index-toc-implicit-button-type"></span>
</dd>
<dt><code>text-toc</code></dt>
<dd><p>Jump to the text file section referenced by a table of contents entry
@@ -2688,10 +2625,10 @@ followed by one or more asterisk characters. Each line
which begins a
new file section must start with one or more asterisk characters at the
very beginning of the line.
</p>
-<a name="index-ibtypes-cscope"></a>
-<a name="index-C_002fC_002b_002b-call-trees"></a>
-<a name="index-C_002fC_002b_002b-cross_002dreference"></a>
-<a name="index-Cscope"></a>
+<span id="index-ibtypes-cscope"></span>
+<span id="index-C_002fC_002b_002b-call-trees"></span>
+<span id="index-C_002fC_002b_002b-cross_002dreference"></span>
+<span id="index-Cscope"></span>
</dd>
<dt><code>cscope</code></dt>
<dd><p>Jump to a C/C++ source line associated with a Cscope C analyzer output
line.
@@ -2700,65 +2637,65 @@ must be loaded and the open source cscope program
available from
http://cscope.sf.net must be installed for this button type to do
anything.
</p>
-<a name="index-ibtypes-etags"></a>
-<a name="index-etags-entry"></a>
-<a name="index-TAGS-file"></a>
-<a name="index-tag"></a>
+<span id="index-ibtypes-etags"></span>
+<span id="index-etags-entry"></span>
+<span id="index-TAGS-file"></span>
+<span id="index-tag"></span>
</dd>
<dt><code>etags</code></dt>
<dd><p>Jump to the source line associated with an etags file entry in a TAGS
buffer.
If on a tag entry line, jump to the source line for the tag. If on a
pathname line or line preceding it, jump to the associated file.
</p>
-<a name="index-ibtypes-ctags"></a>
-<a name="index-ctags-entry"></a>
-<a name="index-tags-file"></a>
+<span id="index-ibtypes-ctags"></span>
+<span id="index-ctags-entry"></span>
+<span id="index-tags-file"></span>
</dd>
<dt><code>ctags</code></dt>
<dd><p>Jump to the source line associated with a ctags file entry in any
buffer.
Ctags files are used by old editors like vi to lookup identifiers.
Emacs uses the newer, more flexible Etags format.
</p>
-<a name="index-ibtypes-id_002dcflow"></a>
-<a name="index-C-call-tree"></a>
-<a name="index-call-tree_002c-C"></a>
-<a name="index-C-flow-graph"></a>
+<span id="index-ibtypes-id_002dcflow"></span>
+<span id="index-C-call-tree"></span>
+<span id="index-call-tree_002c-C"></span>
+<span id="index-C-flow-graph"></span>
</dd>
<dt><code>id-cflow</code></dt>
<dd><p>Expand or collapse C call trees and jump to code definitions.
Requires cross-reference tables built by the external <code>cxref</code>
program.
</p>
-<a name="index-ibtypes-rfc_002dtoc"></a>
-<a name="index-Internet-RFC-1"></a>
-<a name="index-Request-For-Comment-1"></a>
-<a name="index-RFC-1"></a>
-<a name="index-table-of-contents-1"></a>
+<span id="index-ibtypes-rfc_002dtoc"></span>
+<span id="index-Internet-RFC-1"></span>
+<span id="index-Request-For-Comment-1"></span>
+<span id="index-RFC-1"></span>
+<span id="index-table-of-contents-1"></span>
</dd>
<dt><code>rfc-toc</code></dt>
<dd><p>Summarize contents of an Internet rfc from anywhere within an rfc
buffer.
Each line of the summary may be selected to jump to the associated section.
</p>
-<a name="index-ibtypes-actions"></a>
-<a name="index-action-implicit-button"></a>
-<a name="index-functon-call-implicit-button"></a>
-<a name="index-variable-display-implicit-button"></a>
+<span id="index-ibtypes-actions"></span>
+<span id="index-action-implicit-button"></span>
+<span id="index-functon-call-implicit-button"></span>
+<span id="index-variable-display-implicit-button"></span>
</dd>
<dt><code>action</code></dt>
<dd><p>Execute an angle bracket delimited Hyperbole action, Elisp function
call or
display of an Elisp variable and its value.
</p>
-<a name="index-ibtypes-markdown_002dinternal_002dlink"></a>
-<a name="index-markdown-link"></a>
+<span id="index-ibtypes-markdown_002dinternal_002dlink"></span>
+<span id="index-markdown-link"></span>
</dd>
<dt><code>markdown-internal-link</code></dt>
<dd><p>Display any in-file Markdown link referent. Pathnames and urls are
handled elsewhere.
</p>
-<a name="index-ibtypes-git_002dreference"></a>
-<a name="index-git-reference"></a>
-<a name="index-version-control"></a>
-<a name="index-hibtypes_002dgit_002ddefault_002dproject"></a>
+<span id="index-ibtypes-git_002dreference"></span>
+<span id="index-git-reference"></span>
+<span id="index-version-control"></span>
+<span id="index-hibtypes_002dgit_002ddefault_002dproject"></span>
</dd>
<dt><code>git-reference</code></dt>
<dd><p>Display the git entity associated with REFERENCE and optional PROJECT.
@@ -2787,23 +2724,23 @@ See <samp>DEMO#Git (Local) References</samp> for
examples.
</p></dd>
</dl>
-<a name="index-hibtypes_002dgit_002ddefault_002dproject-1"></a>
+<span id="index-hibtypes_002dgit_002ddefault_002dproject-1"></span>
<p>If given, PROJECT overrides any project value in REFERENCE. If no PROJECT
value is provided, it defaults to the value of
<code>hibtypes-git-default-project</code>.
</p>
-<a name="index-ibtypes-git_002dcommit_002dreference"></a>
-<a name="index-git-commit-reference"></a>
-<a name="index-version-control-1"></a>
+<span id="index-ibtypes-git_002dcommit_002dreference"></span>
+<span id="index-git-commit-reference"></span>
+<span id="index-version-control-1"></span>
</dd>
<dt><code>git-commit-reference</code></dt>
<dd><p>Display the diff for a git commit reference, e.g. commit a55e21,
typically
produced by git log.
</p>
-<a name="index-ibtypes-github_002dreference"></a>
-<a name="index-github-reference"></a>
-<a name="index-version-control-2"></a>
-<a name="index-hibtypes_002dgithub_002ddefault_002dproject"></a>
-<a name="index-hibtypes_002dgithub_002ddefault_002duser"></a>
+<span id="index-ibtypes-github_002dreference"></span>
+<span id="index-github-reference"></span>
+<span id="index-version-control-2"></span>
+<span id="index-hibtypes_002dgithub_002ddefault_002dproject"></span>
+<span id="index-hibtypes_002dgithub_002ddefault_002duser"></span>
</dd>
<dt><code>github-reference</code></dt>
<dd><p>Display the Github entity associated with REFERENCE and optional USER
and PROJECT.
@@ -2836,17 +2773,17 @@ See <samp>../DEMO#Github (Remote) References</samp> for
examples.
</p></dd>
</dl>
-<a name="index-hibtypes_002dgithub_002ddefault_002duser-1"></a>
+<span id="index-hibtypes_002dgithub_002ddefault_002duser-1"></span>
<p>USER defaults to the value of <code>hibtypes-github-default-user</code>.
If given, PROJECT overrides any project value in REFERENCE. If no
PROJECT value is provided, it defaults to the value of
<code>hibtypes-github-default-project</code>.
</p>
-<a name="index-ibtypes-gitlab_002dreference"></a>
-<a name="index-gitlab-reference"></a>
-<a name="index-version-control-3"></a>
-<a name="index-hibtypes_002dgitlab_002ddefault_002dproject"></a>
-<a name="index-hibtypes_002dgitlab_002ddefault_002duser"></a>
+<span id="index-ibtypes-gitlab_002dreference"></span>
+<span id="index-gitlab-reference"></span>
+<span id="index-version-control-3"></span>
+<span id="index-hibtypes_002dgitlab_002ddefault_002dproject"></span>
+<span id="index-hibtypes_002dgitlab_002ddefault_002duser"></span>
</dd>
<dt><code>gitlab-reference</code></dt>
<dd><p>Display the Gitlab entity associated with REFERENCE and optional USER
and PROJECT.
@@ -2881,18 +2818,18 @@ or
</p></dd>
</dl>
-<a name="index-hibtypes_002dgitlab_002ddefault_002duser-1"></a>
+<span id="index-hibtypes_002dgitlab_002ddefault_002duser-1"></span>
<p>USER defaults to the value of <code>hibtypes-gitlab-default-user</code>.
If given, PROJECT overrides any project value in REFERENCE. If no
PROJECT value is provided, it defaults to the value of
<code>hibtypes-gitlab-default-project</code>.
</p>
-<a name="index-ibtypes-social_002dreference"></a>
-<a name="index-hashtag"></a>
-<a name="index-username"></a>
-<a name="index-social-media"></a>
-<a name="index-social-reference"></a>
-<a name="index-hibtypes_002dsocial_002ddefault_002dservice"></a>
+<span id="index-ibtypes-social_002dreference"></span>
+<span id="index-hashtag"></span>
+<span id="index-username"></span>
+<span id="index-social-media"></span>
+<span id="index-social-reference"></span>
+<span id="index-hibtypes_002dsocial_002ddefault_002dservice"></span>
</dd>
<dt><code>social-reference</code></dt>
<dd><p>Display the web page associated with a social media hashtag or
@@ -2912,9 +2849,9 @@ value of <code>hibtypes-social-default-service</code>
(default value of
“twitter”) when not given, so #hashtag would be the same as
twitter#hashtag.
</p>
-<a name="index-ibtypes-debbugs_002dgnu_002dmode"></a>
-<a name="index-bug-tracking"></a>
-<a name="index-issue-tracking"></a>
+<span id="index-ibtypes-debbugs_002dgnu_002dmode"></span>
+<span id="index-bug-tracking"></span>
+<span id="index-issue-tracking"></span>
</dd>
<dt><code>debbugs-gnu-mode</code></dt>
<dd><p>Debbugs is a client-server issue tracker used by GNU free software
@@ -2926,7 +2863,7 @@ displays the discussion of the selected issue; an Assist
Key press
pretty prints the status of the issue to a window below the listing
window.
</p>
-<a name="index-ibtypes-debbugs_002dgnu_002dquery"></a>
+<span id="index-ibtypes-debbugs_002dgnu_002dquery"></span>
</dd>
<dt><code>debbugs-gnu-query</code></dt>
<dd><p>Debbugs queries may be issued by activating this implicit button type.
@@ -2936,20 +2873,20 @@ single id number, it displays the original message
submission for that
id and allows browsing of the followup discussion. The following
buffer text formats are accepted (with point prior to any attribute):
</p>
-<div class="smallexample">
-<pre class="smallexample">bug#id-number, bug# id-number, bug #id-number or bug
id-number
+<div class="example">
+<pre class="example">bug#id-number, bug# id-number, bug #id-number or bug
id-number
bug?attr1=val1&attr2=val2&attr3=val3
bug#id-number?attr1=val1&attr2=val2&attr3=val3
</pre></div>
-<a name="index-file_002c-hib_002ddebbugs_002eel"></a>
+<span id="index-file_002c-hib_002ddebbugs_002eel"></span>
<p>Note that <em>issue</em> or <em>debbugs</em> may also be used in place
of <em>bug</em>. See the documentation at the top of
the <samp>hib-debbugs.el</samp> file for detailed query format information.
</p>
-<a name="index-ibtypes-annot_002dbib"></a>
-<a name="index-bibliography"></a>
-<a name="index-reference"></a>
+<span id="index-ibtypes-annot_002dbib"></span>
+<span id="index-bibliography"></span>
+<span id="index-reference"></span>
</dd>
<dt><code>annot-bib</code></dt>
<dd><p>Display annotated bibliography entries defined within the same buffer
@@ -2958,10 +2895,10 @@ begin with a word constituent character, and must not
be in buffers
whose names begin with a ‘ ’ or ‘*’ character.
</p>
-<a name="index-ibtypes-function_002din_002dbuffer"></a>
-<a name="index-file_002c-func_002dmenu_002eel"></a>
-<a name="index-function-menu"></a>
-<a name="index-func_002dmenu"></a>
+<span id="index-ibtypes-function_002din_002dbuffer"></span>
+<span id="index-file_002c-func_002dmenu_002eel"></span>
+<span id="index-function-menu"></span>
+<span id="index-func_002dmenu"></span>
</dd>
<dt><code>function-in-buffer</code></dt>
<dd><p>Return the function name defined within this buffer that point is
@@ -2969,34 +2906,45 @@ within or after, else ‘<samp>nil</samp>’.
This triggers only when t
func-menu library has been loaded and the current major mode is one
handled by func-menu.
</p>
-<a name="index-link_002c-pathname-line-and-column"></a>
-<a name="index-line-and-column"></a>
-<a name="index-pathname_002c-line-and-column"></a>
-<a name="index-ibtypes-pathname_002dline_002dand_002dcolumn"></a>
+<span id="index-link_002c-pathname-line-and-column"></span>
+<span id="index-line-and-column"></span>
+<span id="index-pathname_002c-line-and-column"></span>
+<span id="index-ibtypes-pathname_002dline_002dand_002dcolumn"></span>
</dd>
<dt><code>pathname-line-and-column</code></dt>
<dd><p>Make a valid pathname:line-num[:column-num] pattern display the path
at line-num and optional column-num. Also works for remote pathnames.
-</p>
-<a name="index-ibtypes-pathname"></a>
-<a name="index-hpath_003aat_002dp"></a>
-<a name="index-hpath_003afind"></a>
-<a name="index-hpath_003asuffixes"></a>
-<a name="index-Tramp"></a>
-<a name="index-ftp-1"></a>
-<a name="index-pathname"></a>
-<a name="index-remote-path"></a>
-<a name="index-filename"></a>
-<a name="index-link_002c-pathname"></a>
+May also contain hash-style link references with the following format:
+<samp><path>[#<link-anchor>]:<line-num>[:<column-num>]</samp>.
+</p>
+
+<span id="index-ibtypes-pathname"></span>
+<span id="index-hpath_003aat_002dp"></span>
+<span id="index-hpath_003afind"></span>
+<span id="index-hpath_003asuffixes"></span>
+<span id="index-Tramp"></span>
+<span id="index-ftp-1"></span>
+<span id="index-pathname"></span>
+<span id="index-remote-path"></span>
+<span id="index-filename"></span>
+<span id="index-link_002c-pathname"></span>
+<span id="index-environment-variables"></span>
+<span id="index-Emacs-Lisp-variables"></span>
+<span id="index-Lisp-variables"></span>
</dd>
<dt><code>pathname</code></dt>
<dd><p>Make a valid pathname display the path entry. Also works for
delimited and non-delimited remote pathnames, Texinfo @file{}
-entries, and hash-style link references to HTML, Markdown or Emacs
-outline headings, and MSWindows paths (see <samp>${hyperb:dir}/DEMO#POSIX
-and MSWindows Paths</samp> for details). Emacs Lisp library files
-(filenames without any directory component that end in .el and .elc)
-are looked up using the <code>load-path</code> directory list.
+entries, and hash-style link references to HTML, XML, SGML, Markdown
+or Emacs outline headings, shell script comments, and MSWindows paths
+(see <samp>${hyperb:dir}/DEMO#POSIX and MSWindows Paths</samp> for
+details). Emacs Lisp library files (filenames without any directory
+component that end in .el and .elc) are located using
+the <code>load-path</code> directory list.
+</p>
+<p>The pathname may contain references to Emacs Lisp variables or shell
+environment variables using the syntax, \"${variable-name}\".
+See <a href="#Link-Variable-Substitution">Link Variable Substitution</a>, for
how this handled.
</p>
<p>See the function documentation for <code>hpath:at-p</code> for possible
delimiters. See the variable documentation for <code>hpath:suffixes</code> for
@@ -3004,16 +2952,16 @@ suffixes that are added to or removed from the pathname
when searching
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-org_002dmode"></a>
-<a name="index-Org-mode"></a>
-<a name="index-radio-target"></a>
-<a name="index-code-block"></a>
-<a name="index-links"></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>
+<span id="index-ibtypes-org_002dmode"></span>
+<span id="index-org_002dmode"></span>
+<span id="index-Org-mode"></span>
+<span id="index-radio-target"></span>
+<span id="index-code-block"></span>
+<span id="index-links"></span>
+<span id="index-C_002dc-C_002dc"></span>
+<span id="index-M_002dRET-1"></span>
+<span id="index-org_002dctrl_002dc_002dctrl_002dc"></span>
+<span id="index-org_002dmeta_002dreturn"></span>
</dd>
<dt><code>org-mode</code></dt>
<dd><p>For users of Emacs Org mode, Hyperbole does quite a few things.
@@ -3042,16 +2990,14 @@ the Org mode standard binding of <kbd>{M-<span
class="key">RET</span>}</kbd>, <c
</dl>
<hr>
-<a name="Action-Buttons"></a>
-<div class="header">
+<span id="Action-Buttons"></span><div class="header">
<p>
Previous: <a href="#Implicit-Button-Types" accesskey="p" rel="prev">Implicit
Button Types</a>, Up: <a href="#Implicit-Buttons" accesskey="u"
rel="up">Implicit Buttons</a> [<a href="#SEC_Contents" title="Table of
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Action-Buttons-1"></a>
-<h4 class="subsection">3.3.2 Action Buttons</h4>
+<span id="Action-Buttons-1"></span><h4 class="subsection">3.3.2 Action
Buttons</h4>
-<a name="index-action-button"></a>
-<a name="index-implicit-action-button"></a>
+<span id="index-action-button"></span>
+<span id="index-implicit-action-button"></span>
<p>Explicit buttons all use the same syntax and store their action data
in a file separate from the button source file. Implicit buttons have
no external data but use a unique syntax per implicit button type to
@@ -3124,15 +3070,13 @@ name with: <kbd>{C-h h g a}</kbd>.
</p>
<hr>
-<a name="Button-Files"></a>
-<div class="header">
+<span id="Button-Files"></span><div class="header">
<p>
Next: <a href="#Action-Types" accesskey="n" rel="next">Action Types</a>,
Previous: <a href="#Implicit-Buttons" accesskey="p" rel="prev">Implicit
Buttons</a>, Up: <a href="#Buttons" accesskey="u" rel="up">Buttons</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Button-Files-1"></a>
-<h3 class="section">3.4 Button Files</h3>
+<span id="Button-Files-1"></span><h3 class="section">3.4 Button Files</h3>
-<a name="index-button-files"></a>
+<span id="index-button-files"></span>
<p>It is often convenient to create files filled with buttons as a means
of navigating distributed information pools or for other purposes.
These files can also serve as useful roadmaps that guide a user
@@ -3140,17 +3084,17 @@ through both unfamiliar and highly familiar information
spaces. Files
that are created specifically for this purpose are
called <em>Hyperbole button files</em>.
</p>
-<a name="index-hbmap_003afilename"></a>
-<a name="index-button-file_002c-personal"></a>
-<a name="index-button-file_002c-directory"></a>
+<span id="index-hbmap_003afilename"></span>
+<span id="index-button-file_002c-personal"></span>
+<span id="index-button-file_002c-directory"></span>
<p>The Hyperbole menu system provides quick access to two types of these
button files: personal and directory-specific, through the ButFile menu.
(The variable, <code>hbmap:filename</code>, contains the base name of these
button files. Its standard value is <samp>HYPB</samp>.)
</p>
-<a name="index-dir_002c-_007e_002f_002ehyperb"></a>
-<a name="index-hbmap_003adir_002duser"></a>
-<a name="index-global-button-2"></a>
+<span id="index-dir_002c-_007e_002f_002ehyperb"></span>
+<span id="index-hbmap_003adir_002duser"></span>
+<span id="index-global-button-2"></span>
<p>A personal button file may serve as a user’s own roadmap to frequently
used resources, like a personal home page. Selection of the
ButFile/PersonalFile menu item, <kbd>{C-h h b p}</kbd>, displays this file for
@@ -3175,18 +3119,16 @@ files at the top of your personal button file and do so
for your colleagues.
This provides a flexible means of connecting to such resources.
</p>
<hr>
-<a name="Action-Types"></a>
-<div class="header">
+<span id="Action-Types"></span><div class="header">
<p>
Next: <a href="#Button-Type-Precedence" accesskey="n" rel="next">Button Type
Precedence</a>, Previous: <a href="#Button-Files" accesskey="p"
rel="prev">Button Files</a>, Up: <a href="#Buttons" accesskey="u"
rel="up">Buttons</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Action-Types-1"></a>
-<h3 class="section">3.5 Action Types</h3>
+<span id="Action-Types-1"></span><h3 class="section">3.5 Action Types</h3>
-<a name="index-action-type"></a>
-<a name="index-argument_002c-use"></a>
-<a name="index-action"></a>
-<a name="index-button-action"></a>
+<span id="index-action-type"></span>
+<span id="index-argument_002c-use"></span>
+<span id="index-action"></span>
+<span id="index-button-action"></span>
<p><em>Action types</em> are special functions that specify Hyperbole button
behaviors. Each action type may be used by any category of button:
global, explicit, or implicit. The arguments needed by an action type
@@ -3199,35 +3141,35 @@ the desired result. This body is called the button
<em>action</em>.
you need know is the set of action types that you can work with when
creating explicit or global buttons.
</p>
-<a name="index-actypes_002c-list-of"></a>
+<span id="index-actypes_002c-list-of"></span>
<p>The standard action types included with Hyperbole in alphabetical order
are:
</p>
<dl compact="compact">
-<dd><a name="index-actypes-annot_002dbib"></a>
+<dd><span id="index-actypes-annot_002dbib"></span>
</dd>
<dt><code>annot-bib</code></dt>
<dd><p>Follow an internal reference KEY within an annotated bibliography,
delimiters = [ ].
</p>
-<a name="index-actypes-completion"></a>
+<span id="index-actypes-completion"></span>
</dd>
<dt><code>completion</code></dt>
<dd><p>Insert a completion at point into the minibuffer or a buffer.
Unless point is at the end of buffer or if a completion has already been
inserted, in which case, delete the completions window.
</p>
-<a name="index-actypes-display_002dvariable"></a>
+<span id="index-actypes-display_002dvariable"></span>
</dd>
<dt><code>display-variable-value</code></dt>
<dd><p>Display a message showing the given variable name and its value.
</p>
-<a name="index-actypes-eval_002delisp"></a>
+<span id="index-actypes-eval_002delisp"></span>
</dd>
<dt><code>eval-elisp</code></dt>
<dd><p>Evaluate a Lisp expression LISP-EXPR for its side-effects and return
any non-nil value.
</p>
-<a name="index-actypes-exec_002dkbd_002dmacro"></a>
+<span id="index-actypes-exec_002dkbd_002dmacro"></span>
</dd>
<dt><code>exec-kbd-macro</code></dt>
<dd><p>Execute a KBD-MACRO REPEAT-COUNT times. KBD-MACRO may be a string of
@@ -3235,7 +3177,7 @@ editor command characters, a function symbol or nil to
use the last
defined keyboard macro. Optional REPEAT-COUNT nil means execute once,
zero means repeat until error.
</p>
-<a name="index-actypes-exec_002dshell_002dcmd"></a>
+<span id="index-actypes-exec_002dshell_002dcmd"></span>
</dd>
<dt><code>exec-shell-cmd</code></dt>
<dd><p>Execute a SHELL-CMD string asynchronously. Optional non-nil second
@@ -3243,84 +3185,93 @@ argument INTERNAL-CMD inhibits display of the shell
command line
executed. Optional non-nil third argument KILL-PREV means kill the last
output to the shell buffer before executing SHELL-CMD.
</p>
-<a name="index-actypes-exec_002dwindow_002dcmd"></a>
+<span id="index-actypes-exec_002dwindow_002dcmd"></span>
</dd>
<dt><code>exec-window-cmd</code></dt>
<dd><p>Asynchronously execute an external window-based SHELL-CMD string.
</p>
-<a name="index-actypes-function_002din_002dbuffer"></a>
+<span id="index-actypes-function_002din_002dbuffer"></span>
</dd>
<dt><code>function-in-buffer</code></dt>
<dd><p>Display the definition of function NAME found at POS in the current
buffer.
</p>
-<a name="index-actypes-hyp_002dconfig"></a>
+<span id="index-actypes-hyp_002dconfig"></span>
</dd>
<dt><code>hyp-config</code></dt>
<dd><p>Insert Hyperbole configuration and debugging information at the end
of the current buffer or within optional OUT-BUF.
</p>
-<a name="index-actypes-hyp_002drequest"></a>
+<span id="index-actypes-hyp_002drequest"></span>
</dd>
<dt><code>hyp-request</code></dt>
<dd><p>Insert help for composing a Hyperbole support/discussion message into
the current buffer or the optional OUT-BUF.
</p>
-<a name="index-actypes-hyp_002dsource"></a>
+<span id="index-actypes-hyp_002dsource"></span>
</dd>
<dt><code>hyp-source</code></dt>
<dd><p>Display a buffer or file from a line beginning with
<code>hbut:source-prefix</code>.
</p>
-<a name="index-actypes-kbd_002dkey"></a>
+<span id="index-actypes-kbd_002dkey"></span>
</dd>
<dt><code>kbd-key</code></dt>
<dd><p>Execute the function binding for KEY-SEQUENCE, delimited by {}.
Return ‘<samp>t</samp>’ if a KEY-SEQUENCE has a binding, else
‘<samp>nil</samp>’.
</p>
-<a name="index-link-action-types"></a>
-<a name="index-actypes-link_002dto_002dbuffer_002dtmp"></a>
+<span id="index-link-action-types"></span>
+<span id="index-actypes-link_002dto_002dbookmark"></span>
+</dd>
+<dt><code>link-to-bookmark</code></dt>
+<dd><p>Display an Emacs BOOKMARK.
+When creating the button, if in Bookmark Menu mode, use the bookmark
+nearest point as the default. Otherwise, utilize the most recently used
+bookmark in the current file (bookmark-current-bookmark) as the default,
+if any.
+</p>
+<span id="index-actypes-link_002dto_002dbuffer_002dtmp"></span>
</dd>
<dt><code>link-to-buffer-tmp</code></dt>
<dd><p>Display a BUFFER. This type of link is for use in a single editor
session.
Use <code>link-to-file</code> instead for a permanent link.
</p>
-<a name="index-actypes-link_002dto_002ddirectory"></a>
+<span id="index-actypes-link_002dto_002ddirectory"></span>
</dd>
<dt><code>link-to-directory</code></dt>
<dd><p>Display a DIRECTORY in Dired mode.
</p>
-<a name="index-actypes-link_002dto_002ddoc"></a>
+<span id="index-actypes-link_002dto_002ddoc"></span>
</dd>
<dt><code>link-to-doc</code></dt>
<dd><p>Display an online version of a document given by DOC-ID. If the online
version of a document is not found in <code>doc-id-indices</code>, signal an
error.
</p>
-<a name="index-actypes-link_002dto_002debut"></a>
+<span id="index-actypes-link_002dto_002debut"></span>
</dd>
<dt><code>link-to-ebut</code></dt>
<dd><p>Perform an action given by an explicit button, specified by KEY and
KEY-FILE.
</p>
-<a name="index-actypes-link_002dto_002delisp_002ddoc"></a>
+<span id="index-actypes-link_002dto_002delisp_002ddoc"></span>
</dd>
<dt><code>link-to-elisp-doc</code></dt>
<dd><p>Display the documentation for FUNC-SYMBOL.
</p>
-<a name="index-actypes-link_002dto_002dfile"></a>
+<span id="index-actypes-link_002dto_002dfile"></span>
</dd>
<dt><code>link-to-file</code></dt>
<dd><p>Display a file given by PATH scrolled to optional POINT. If POINT is
given,
display the buffer with POINT at the top of the window.
</p>
-<a name="index-actypes-link_002dto_002dfile_002dline"></a>
+<span id="index-actypes-link_002dto_002dfile_002dline"></span>
</dd>
<dt><code>link-to-file-line</code></dt>
<dd><p>Display a file given by PATH scrolled to LINE-NUM.
</p>
-<a name="index-actypes-link_002dto_002dgbut"></a>
+<span id="index-actypes-link_002dto_002dgbut"></span>
</dd>
<dt><code>link-to-gbut</code></dt>
<dd><p>Perform an action given by an existing global button, specified by KEY.
</p>
-<a name="index-actypes-link_002dto_002dInfo_002dindex_002ditem"></a>
+<span id="index-actypes-link_002dto_002dInfo_002dindex_002ditem"></span>
</dd>
<dt><code>link-to-Info-index-item</code></dt>
<dd><p>Display an Info index ITEM cross-reference.
@@ -3328,7 +3279,7 @@ ITEM must be a string of the form (filename)item-name.
During
button creation, completion for both filename and item-name is
available. Filename may be given without the .info suffix."
</p>
-<a name="index-actypes-link_002dto_002dInfo_002dnode"></a>
+<span id="index-actypes-link_002dto_002dInfo_002dnode"></span>
</dd>
<dt><code>link-to-Info-node</code></dt>
<dd><p>Display an Info NODE. NODE must be a string of the form
@@ -3336,13 +3287,13 @@ available. Filename may be given without the .info
suffix."
filename and nodename is available. Filename may be given without the
.info suffix.
</p>
-<a name="index-actypes-link_002dto_002dibut"></a>
+<span id="index-actypes-link_002dto_002dibut"></span>
</dd>
<dt><code>link-to-ibut</code></dt>
<dd><p>Perform an action given by an implicit button, specified by KEY,
optional KEY-FILE and POINT.
</p>
-<a name="index-actypes-link_002dto_002dkcell"></a>
-<a name="index-kcell_003aref_002dto_002did"></a>
+<span id="index-actypes-link_002dto_002dkcell"></span>
+<span id="index-kcell_003aref_002dto_002did"></span>
</dd>
<dt><code>link-to-kcell</code></dt>
<dd><p>Display a Hyperbole outline cell, given by FILE and CELL-REF, at the
@@ -3352,7 +3303,7 @@ valid CELL-REF formats.
<p>If FILE is ‘<samp>nil</samp>’, use the current buffer. If
CELL-REF is
‘<samp>nil</samp>’, show the first cell in the view.
</p>
-<a name="index-actypes-link_002dto_002dkotl"></a>
+<span id="index-actypes-link_002dto_002dkotl"></span>
</dd>
<dt><code>link-to-kotl</code></dt>
<dd><p>Display at the top of a window the referent pointed to by LINK.
@@ -3366,14 +3317,14 @@ LINK may be of any of the following forms, with or
without delimiters:
<p>See the documentation for <code>(kcell:ref-to-id)</code> for valid cell-ref
formats.
</p>
-<a name="index-actypes-link_002dto_002dmail"></a>
+<span id="index-actypes-link_002dto_002dmail"></span>
</dd>
<dt><code>link-to-mail</code></dt>
<dd><p>Display a mail message with MAIL-MSG-ID from optional MAIL-FILE. See
the documentation for the variable <code>hmail:init-function</code> for
information on how to specify the mail reader to use.
</p>
-<a name="index-actypes-link_002dto_002dregexp_002dmatch"></a>
+<span id="index-actypes-link_002dto_002dregexp_002dmatch"></span>
</dd>
<dt><code>link-to-regexp-match</code></dt>
<dd><p>Find REGEXP’s Nth occurrence in SOURCE and display the location
at the
@@ -3381,13 +3332,13 @@ top of the selected window. SOURCE is a pathname
unless optional
BUFFER-P is non-nil, then SOURCE must be a buffer name or buffer.
Return ‘<samp>t</samp>’ if found, signal an error if not.
</p>
-<a name="index-actypes-link_002dto_002drfc"></a>
+<span id="index-actypes-link_002dto_002drfc"></span>
</dd>
<dt><code>link-to-rfc</code></dt>
<dd><p>Retrieve and display an Internet rfc given by RFC-NUM. RFC-NUM may be
a string or an integer.
</p>
-<a name="index-actypes-link_002dto_002dstring_002dmatch"></a>
+<span id="index-actypes-link_002dto_002dstring_002dmatch"></span>
</dd>
<dt><code>link-to-string-match</code></dt>
<dd><p>Find STRING’s Nth occurrence in SOURCE and display the location
at the
@@ -3395,29 +3346,29 @@ top of the selected window. SOURCE is a pathname
unless optional
BUFFER-P is non-nil, then SOURCE must be a buffer name or buffer.
Return ‘<samp>t</samp>’ if found, ‘<samp>nil</samp>’
if not.
</p>
-<a name="index-actypes-link_002dto_002dtexinfo_002dnode"></a>
+<span id="index-actypes-link_002dto_002dtexinfo_002dnode"></span>
</dd>
<dt><code>link-to-texinfo-node</code></dt>
<dd><p>Display the Texinfo node with NODENAME (a string) from the current
buffer.
</p>
-<a name="index-actypes-link_002dto_002dweb_002dsearch"></a>
-<a name="index-link_002c-web-search"></a>
-<a name="index-web-search-link"></a>
+<span id="index-actypes-link_002dto_002dweb_002dsearch"></span>
+<span id="index-link_002c-web-search"></span>
+<span id="index-web-search-link"></span>
</dd>
<dt><code>link-to-web-search</code></dt>
<dd><p>Search web SERVICE-NAME for SEARCH-TERM. Uses
<code>hyperbole-web-search-alist</code>
to match each service to its search url. Uses
<code>hyperbole-web-search-browser-function</code>
and the <code>browse-url</code> package to display search results.
</p>
-<a name="index-actypes-man_002dshow"></a>
-<a name="index-hpath_003adisplay_002dwhere"></a>
-<a name="index-man-page"></a>
+<span id="index-actypes-man_002dshow"></span>
+<span id="index-hpath_003adisplay_002dwhere"></span>
+<span id="index-man-page"></span>
</dd>
<dt><code>man-show</code></dt>
<dd><p>Display a man page on TOPIC, which may be of the form
‘<samp><command>(<section></samp>’).
Use <code>hpath:display-where</code> setting to control where the man page is
displayed.
</p>
-<a name="index-actypes-rfc_002dtoc"></a>
+<span id="index-actypes-rfc_002dtoc"></span>
</dd>
<dt><code>rfc-toc</code></dt>
<dd><p>Compute and display a summary of an Internet rfc in BUF-NAME. Assume
@@ -3425,18 +3376,18 @@ point has already been moved to the start of the region
to summarize.
Optional OPOINT is the point to return to in BUF-NAME after displaying
the summary.
</p>
-<a name="index-actypes-text_002dtoc"></a>
-<a name="index-table-of-contents-2"></a>
-<a name="index-toc-action-type"></a>
+<span id="index-actypes-text_002dtoc"></span>
+<span id="index-table-of-contents-2"></span>
+<span id="index-toc-action-type"></span>
</dd>
<dt><code>text-toc</code></dt>
<dd><p>Jump to the text file SECTION referenced by a table of contents entry
at point.
</p>
-<a name="index-actypes-www_002durl"></a>
-<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-1"></a>
+<span id="index-actypes-www_002durl"></span>
+<span id="index-URL-1"></span>
+<span id="index-World_002dwide-Web-1"></span>
+<span id="index-WWW-1"></span>
+<span id="index-browse_002durl_002dbrowser_002dfunction-1"></span>
</dd>
<dt><code>www-url</code></dt>
<dd><p>Follow a link given by a URL. The variable,
@@ -3448,8 +3399,8 @@ See its documentation string for details.
</dl>
-<a name="index-action-1"></a>
-<a name="index-hui_003aebut_002dprompt_002dfor_002daction"></a>
+<span id="index-action-1"></span>
+<span id="index-hui_003aebut_002dprompt_002dfor_002daction"></span>
<p>Action types create a convenient way of specifying button behavior
without the need to know how to program. Expert users who are familiar
with Emacs Lisp, however, may find that they often want to tailor button
@@ -3462,24 +3413,22 @@ entered for the action. An action may be any Lisp form
that Emacs
Lisp can evaluate.
</p>
<hr>
-<a name="Button-Type-Precedence"></a>
-<div class="header">
+<span id="Button-Type-Precedence"></span><div class="header">
<p>
Next: <a href="#Utilizing-Explicit-Buttons" accesskey="n" rel="next">Utilizing
Explicit Buttons</a>, Previous: <a href="#Action-Types" accesskey="p"
rel="prev">Action Types</a>, Up: <a href="#Buttons" accesskey="u"
rel="up">Buttons</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Button-Type-Precedence-1"></a>
-<h3 class="section">3.6 Button Type Precedence</h3>
+<span id="Button-Type-Precedence-1"></span><h3 class="section">3.6 Button Type
Precedence</h3>
-<a name="index-button-precedence"></a>
-<a name="index-precedence_002c-buttons"></a>
-<a name="index-button-label-overlap"></a>
+<span id="index-button-precedence"></span>
+<span id="index-precedence_002c-buttons"></span>
+<span id="index-button-label-overlap"></span>
<p>Explicit buttons always take precedence over implicit buttons. Thus, if
a button selection is made which falls within both an explicit and
implicit button, only the explicit button will be selected. Explicit
button labels are not allowed to overlap; Hyperbole’s behavior in such
cases is undefined.
</p>
-<a name="index-ibtype_002c-evaluation-order"></a>
+<span id="index-ibtype_002c-evaluation-order"></span>
<p>If there is no explicit button at point during a selection request,
then each implicit button type predicate is tested in turn until one
returns non-nil or all are exhausted. Since two implicit button types
@@ -3492,7 +3441,7 @@ to keep this order in mind when defining new implicit
button types.
By making match predicates as specific as possible, one can minimize
any overlapping implicit button domains.
</p>
-<a name="index-type-redefinition"></a>
+<span id="index-type-redefinition"></span>
<p>Once a type name is defined, its precedence relative to other types
remains the same even if its body is redefined, as long as its name is
not changed. This allows incremental modifications to types without
@@ -3500,13 +3449,11 @@ any worry of altering their precedences. See <a
href="#Creating-Types">Creating
information on how to develop or modify types.
</p>
<hr>
-<a name="Utilizing-Explicit-Buttons"></a>
-<div class="header">
+<span id="Utilizing-Explicit-Buttons"></span><div class="header">
<p>
Previous: <a href="#Button-Type-Precedence" accesskey="p" rel="prev">Button
Type Precedence</a>, Up: <a href="#Buttons" accesskey="u" rel="up">Buttons</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Utilizing-Explicit-Buttons-1"></a>
-<h3 class="section">3.7 Utilizing Explicit Buttons</h3>
+<span id="Utilizing-Explicit-Buttons-1"></span><h3 class="section">3.7
Utilizing Explicit Buttons</h3>
<p>Explicit buttons are a fundamental building block for creating personal
or organizational hypertext networks with Hyperbole. This section
@@ -3514,30 +3461,28 @@ summarizes the user-level operations available for
managing these
buttons.
</p>
<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">• <a href="#Creation"
accesskey="1">Creation</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Creation"
accesskey="1">Creation</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Renaming"
accesskey="2">Renaming</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Renaming"
accesskey="2">Renaming</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Deletion"
accesskey="3">Deletion</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Deletion"
accesskey="3">Deletion</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Modification"
accesskey="4">Modification</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Modification"
accesskey="4">Modification</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Searching-and-Summarizing"
accesskey="5">Searching and Summarizing</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Searching-and-Summarizing"
accesskey="5">Searching and Summarizing</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Buttons-in-Mail"
accesskey="6">Buttons in Mail</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Buttons-in-Mail"
accesskey="6">Buttons in Mail</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Buttons-in-News"
accesskey="7">Buttons in News</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Buttons-in-News"
accesskey="7">Buttons in News</a></td><td> </td><td align="left"
valign="top">
</td></tr>
</table>
<hr>
-<a name="Creation"></a>
-<div class="header">
+<span id="Creation"></span><div class="header">
<p>
Next: <a href="#Renaming" accesskey="n" rel="next">Renaming</a>, Previous: <a
href="#Utilizing-Explicit-Buttons" accesskey="p" rel="prev">Utilizing Explicit
Buttons</a>, Up: <a href="#Utilizing-Explicit-Buttons" accesskey="u"
rel="up">Utilizing Explicit Buttons</a> [<a href="#SEC_Contents"
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index"
title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Creation-1"></a>
-<h4 class="subsection">3.7.1 Creation</h4>
+<span id="Creation-1"></span><h4 class="subsection">3.7.1 Creation</h4>
<p>Creating explicit buttons is fun and easy. You can always try them
out immediately after creating them or can utilize the Assist Key to
@@ -3546,30 +3491,28 @@ dragging between windows with the Action Mouse Key or
by using the
Hyperbole menus.
</p>
<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">• <a href="#By-Dragging"
accesskey="1">By Dragging</a>:</td><td> </td><td align="left"
valign="top">Creation Via Action Key Drags
+<tr><td align="left" valign="top">• <a href="#By-Dragging"
accesskey="1">By Dragging</a></td><td> </td><td align="left"
valign="top">Creation Via Action Key Drags
</td></tr>
-<tr><td align="left" valign="top">• <a href="#By-Menu" accesskey="2">By
Menu</a>:</td><td> </td><td align="left" valign="top">Creation Via
Menus
+<tr><td align="left" valign="top">• <a href="#By-Menu" accesskey="2">By
Menu</a></td><td> </td><td align="left" valign="top">Creation Via
Menus
</td></tr>
</table>
<hr>
-<a name="By-Dragging"></a>
-<div class="header">
+<span id="By-Dragging"></span><div class="header">
<p>
Next: <a href="#By-Menu" accesskey="n" rel="next">By Menu</a>, Previous: <a
href="#Creation" accesskey="p" rel="prev">Creation</a>, Up: <a href="#Creation"
accesskey="u" rel="up">Creation</a> [<a href="#SEC_Contents"
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index"
title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Creation-Via-Action-Key-Drags"></a>
-<h4 class="subsubsection">3.7.1.1 Creation Via Action Key Drags</h4>
-
-<a name="index-explicit-button-creation"></a>
-<a name="index-button-creation"></a>
-<a name="index-creating-buttons"></a>
-<a name="index-link-creation"></a>
-<a name="index-creating-links"></a>
-<a name="index-direct-link-creation"></a>
-<a name="index-mouse-drag_002c-link-creation"></a>
-<a name="index-drag"></a>
-<a name="index-Action-Key-drag"></a>
+<span id="Creation-Via-Action-Key-Drags"></span><h4
class="subsubsection">3.7.1.1 Creation Via Action Key Drags</h4>
+
+<span id="index-explicit-button-creation"></span>
+<span id="index-button-creation"></span>
+<span id="index-creating-buttons"></span>
+<span id="index-link-creation"></span>
+<span id="index-creating-links"></span>
+<span id="index-direct-link-creation"></span>
+<span id="index-mouse-drag_002c-link-creation"></span>
+<span id="index-drag"></span>
+<span id="index-Action-Key-drag"></span>
<p>The most efficient way to create an explicit link button interactively
is to use the Action Mouse Key to drag from a non-read-only button
source window to a window showing its desired link referent. More
@@ -3620,13 +3563,11 @@ Buffer without File link-to-buffer-tmp
<hr>
-<a name="By-Menu"></a>
-<div class="header">
+<span id="By-Menu"></span><div class="header">
<p>
Previous: <a href="#By-Dragging" accesskey="p" rel="prev">By Dragging</a>, Up:
<a href="#Creation" accesskey="u" rel="up">Creation</a> [<a
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Creation-Via-Menus"></a>
-<h4 class="subsubsection">3.7.1.2 Creation Via Menus</h4>
+<span id="Creation-Via-Menus"></span><h4 class="subsubsection">3.7.1.2
Creation Via Menus</h4>
<p>You may instead use the Hyperbole menus to create explicit buttons.
First, mark a short region of text in any fashion allowed by Emacs
@@ -3647,8 +3588,8 @@ prompt you for an action type for the button. Use the
<kbd>{?}</kbd>
completion list key to see the available types. The type selected
determines any following values for which you are prompted.
</p>
-<a name="index-button-instance"></a>
-<a name="index-instance-number"></a>
+<span id="index-button-instance"></span>
+<span id="index-instance-number"></span>
<p>If a previous button with the same label exists in the same buffer,
Hyperbole will add an <em>instance number</em> to the label when it adds
the delimiters so that the name is unique. Thus, you don’t have to
@@ -3658,7 +3599,7 @@ label again and delimit it yourself or copy and paste the
button with
its delimiters. Hyperbole will interpret all occurrences of the same
delimited label within a buffer as the same button.
</p>
-<a name="index-link_002c-creation"></a>
+<span id="index-link_002c-creation"></span>
<p>If you create link buttons using the Hyperbole menus, the best
technique is to place on screen both the source buffer for the button
and the buffer to which it will link. Mark the region of text to use
@@ -3668,16 +3609,14 @@ the direct selection techniques mentioned in <a
href="#Smart-Key-Argument-Select
</p>
<hr>
-<a name="Renaming"></a>
-<div class="header">
+<span id="Renaming"></span><div class="header">
<p>
Next: <a href="#Deletion" accesskey="n" rel="next">Deletion</a>, Previous: <a
href="#Creation" accesskey="p" rel="prev">Creation</a>, Up: <a
href="#Utilizing-Explicit-Buttons" accesskey="u" rel="up">Utilizing Explicit
Buttons</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Renaming-1"></a>
-<h4 class="subsection">3.7.2 Renaming</h4>
+<span id="Renaming-1"></span><h4 class="subsection">3.7.2 Renaming</h4>
-<a name="index-explicit-button-renaming"></a>
-<a name="index-button-renaming"></a>
+<span id="index-explicit-button-renaming"></span>
+<span id="index-button-renaming"></span>
<p>Once an explicit button has been created, its label text must be
treated specially. Any inter-word spacing within the label may be
freely changed, as may happen when a paragraph is refilled, but a
@@ -3692,10 +3631,10 @@ prompt for the button label to replace and the label to
replace it
with and then will perform the renaming. All occurrences of the same
button in the buffer will be renamed.
</p>
-<a name="index-file_002c-_002eemacs-1"></a>
-<a name="index-file_002c-hyperbole_002eel"></a>
-<a name="index-C_002dc-C_002dr"></a>
-<a name="index-hui_003aebut_002drename"></a>
+<span id="index-file_002c-_002eemacs-1"></span>
+<span id="index-file_002c-hyperbole_002eel"></span>
+<span id="index-C_002dc-C_002dr"></span>
+<span id="index-hui_003aebut_002drename"></span>
<p>The rename command may be invoked from the Hyperbole menu via
Ebut/Rename. A faster method is to use a key bound to the
<code>hui:ebut-rename</code> command. Hyperbole typically binds this to
@@ -3706,22 +3645,20 @@ file: <code>(global-set-key "\C-c\C-r"
'hui:ebut-rename)</code>.
</p>
<hr>
-<a name="Deletion"></a>
-<div class="header">
+<span id="Deletion"></span><div class="header">
<p>
Next: <a href="#Modification" accesskey="n" rel="next">Modification</a>,
Previous: <a href="#Renaming" accesskey="p" rel="prev">Renaming</a>, Up: <a
href="#Utilizing-Explicit-Buttons" accesskey="u" rel="up">Utilizing Explicit
Buttons</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Deletion-1"></a>
-<h4 class="subsection">3.7.3 Deletion</h4>
+<span id="Deletion-1"></span><h4 class="subsection">3.7.3 Deletion</h4>
-<a name="index-explicit-button-deletion"></a>
-<a name="index-button-deletion"></a>
+<span id="index-explicit-button-deletion"></span>
+<span id="index-button-deletion"></span>
<p>Ebut/Delete works similarly to the Rename command but deletes the
selected button. The button’s delimiters are removed to confirm the
deletion. If the delete command is invoked with a prefix argument, then
both the button label and the delimiters are removed as confirmation.
</p>
-<a name="index-hui_003aebut_002ddelete_002dconfirm_002dp"></a>
+<span id="index-hui_003aebut_002ddelete_002dconfirm_002dp"></span>
<p>Presently there is no way to recover a deleted button; it must
be recreated. Therefore, the <code>hui:ebut-delete-confirm-p</code> variable
is true by default, causing Hyperbole to require confirmation before
@@ -3729,18 +3666,16 @@ interactively deleting explicit buttons. Set it to
‘<samp>nil</samp>&rsqu
prefer no confirmation.
</p>
<hr>
-<a name="Modification"></a>
-<div class="header">
+<span id="Modification"></span><div class="header">
<p>
Next: <a href="#Searching-and-Summarizing" accesskey="n" rel="next">Searching
and Summarizing</a>, Previous: <a href="#Deletion" accesskey="p"
rel="prev">Deletion</a>, Up: <a href="#Utilizing-Explicit-Buttons"
accesskey="u" rel="up">Utilizing Explicit Buttons</a> [<a
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Modification-1"></a>
-<h4 class="subsection">3.7.4 Modification</h4>
+<span id="Modification-1"></span><h4 class="subsection">3.7.4 Modification</h4>
-<a name="index-explicit-button-modification"></a>
-<a name="index-button-modification"></a>
-<a name="index-Smart-Mouse-Key-drag"></a>
-<a name="index-button-attributes"></a>
+<span id="index-explicit-button-modification"></span>
+<span id="index-button-modification"></span>
+<span id="index-Smart-Mouse-Key-drag"></span>
+<span id="index-button-attributes"></span>
<p>Ebut/Modify prompts you with each of the elements from the button’s
attributes list and allows you to modify each in turn. Ebut/Edit does
the exact same thing and is there for people who prefer that term.
@@ -3752,17 +3687,15 @@ button with a mouse drag. Remember that drags may also
be emulated from
the keyboard. See <a href="#Creation">Creation</a>.
</p>
<hr>
-<a name="Searching-and-Summarizing"></a>
-<div class="header">
+<span id="Searching-and-Summarizing"></span><div class="header">
<p>
Next: <a href="#Buttons-in-Mail" accesskey="n" rel="next">Buttons in Mail</a>,
Previous: <a href="#Modification" accesskey="p" rel="prev">Modification</a>,
Up: <a href="#Utilizing-Explicit-Buttons" accesskey="u" rel="up">Utilizing
Explicit Buttons</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Searching-and-Summarizing-1"></a>
-<h4 class="subsection">3.7.5 Searching and Summarizing</h4>
+<span id="Searching-and-Summarizing-1"></span><h4 class="subsection">3.7.5
Searching and Summarizing</h4>
-<a name="index-explicit-button-summary"></a>
-<a name="index-button-summary"></a>
-<a name="index-button-help-1"></a>
+<span id="index-explicit-button-summary"></span>
+<span id="index-button-summary"></span>
+<span id="index-button-help-1"></span>
<p>The Ebut/Help menu may be used to summarize either a single explicit
button or all such buttons within a buffer. The buttons summarized may
then be activated directly from the summary.
@@ -3773,8 +3706,8 @@ the button at point. Ebut/Help/OrderedButs summarizes
the buttons in
alphabetical order. All of these summary commands eliminate duplicate
occurrences of buttons from their help displays.
</p>
-<a name="index-explicit-button-searching"></a>
-<a name="index-button-searching"></a>
+<span id="index-explicit-button-searching"></span>
+<span id="index-button-searching"></span>
<p>Ebut/Search prompts for a search pattern and searches across all the
locations in which you have previously created explicit buttons. It
asks you whether to match to any part of a button label or to whole
@@ -3790,17 +3723,15 @@ buttons created by others or for searching on
particular button
attributes.
</p>
<hr>
-<a name="Buttons-in-Mail"></a>
-<div class="header">
+<span id="Buttons-in-Mail"></span><div class="header">
<p>
Next: <a href="#Buttons-in-News" accesskey="n" rel="next">Buttons in News</a>,
Previous: <a href="#Searching-and-Summarizing" accesskey="p"
rel="prev">Searching and Summarizing</a>, Up: <a
href="#Utilizing-Explicit-Buttons" accesskey="u" rel="up">Utilizing Explicit
Buttons</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Buttons-in-Mail-1"></a>
-<h4 class="subsection">3.7.6 Buttons in Mail</h4>
+<span id="Buttons-in-Mail-1"></span><h4 class="subsection">3.7.6 Buttons in
Mail</h4>
-<a name="index-C_002dx-m"></a>
-<a name="index-mail"></a>
-<a name="index-menu-item_002c-Cust_002fMsg_002dToggle_002dEbuts"></a>
+<span id="index-C_002dx-m"></span>
+<span id="index-mail"></span>
+<span id="index-menu-item_002c-Cust_002fMsg_002dToggle_002dEbuts"></span>
<p>Hyperbole supports embedding buttons within electronic mail messages
composed in Emacs. An enhanced mail reader may then be used to
activate the buttons within messages just like any other buttons.
@@ -3808,30 +3739,30 @@ Because this involves complex changes to mail support
functions, this
feature is disabled by default. Use the Cust/Msg-Toggle-Ebuts
minibuffer menu item to enable it.
</p>
-<a name="index-button-mailing"></a>
-<a name="index-button-posting"></a>
-<a name="index-mailing-buttons"></a>
-<a name="index-posting-buttons"></a>
-<a name="index-mail-reader"></a>
-<a name="index-mailer-initialization"></a>
-<a name="index-Rmail"></a>
-<a name="index-VM"></a>
-<a name="index-MH_002de"></a>
-<a name="index-Gnus"></a>
-<a name="index-USENET"></a>
-<a name="index-news"></a>
-<a name="index-file_002c-hmail_002eel"></a>
-<p>Hyperbole supports the following mail readers: Rmail (see <a
href="http://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Rmail">Reading
+<span id="index-button-mailing"></span>
+<span id="index-button-posting"></span>
+<span id="index-mailing-buttons"></span>
+<span id="index-posting-buttons"></span>
+<span id="index-mail-reader"></span>
+<span id="index-mailer-initialization"></span>
+<span id="index-Rmail"></span>
+<span id="index-VM"></span>
+<span id="index-MH_002de"></span>
+<span id="index-Gnus"></span>
+<span id="index-USENET"></span>
+<span id="index-news"></span>
+<span id="index-file_002c-hmail_002eel"></span>
+<p>Hyperbole supports the following mail readers: Rmail (see <a
href="https://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Rmail">Reading
Mail with Rmail</a> in <cite>the GNU Emacs Manual</cite>), VM (see <a
href="vm.html#Introduction">Introduction</a> in <cite>the VM Manual</cite>) and
MH-e. Button inclusion and activation within USENET news
articles is also supported in the same fashion via the Gnus news reader if
-available at your site (see <a
href="http://www.gnu.org/software/emacs/manual/html_mono/gnus.html#Top">The
Gnus Newsreader</a> in <cite>the Gnus
+available at your site (see <a
href="https://www.gnu.org/software/emacs/manual/html_mono/gnus.html#Top">The
Gnus Newsreader</a> in <cite>the Gnus
Manual</cite>). (The <samp>hmail.el</samp> file defines a generalized
interface that can
be used to hook in other mail or news readers if the necessary interface
functions are written.)
</p>
-<a name="index-mail_002dyank_002doriginal"></a>
-<a name="index-C_002dc-C_002dy"></a>
-<a name="index-mail-inclusion"></a>
+<span id="index-mail_002dyank_002doriginal"></span>
+<span id="index-C_002dc-C_002dy"></span>
+<span id="index-mail-inclusion"></span>
<p>All explicit buttons to be mailed must be created within the outgoing
message buffer. There is no present support for including text from
other buffers or files which contain explicit buttons, except for the
@@ -3859,9 +3790,9 @@ to a non-Hyperbole user. The user will simply see the
text
of the message followed by a series of lines of button data at its end.
Hyperbole mail users never see this data in its raw form.
</p>
-<a name="index-smail_003acomment"></a>
-<a name="index-mail-comment"></a>
-<a name="index-Hyperbole-mail-comment"></a>
+<span id="index-smail_003acomment"></span>
+<span id="index-mail-comment"></span>
+<span id="index-Hyperbole-mail-comment"></span>
<p>In order to alert readers of your mail messages that you can handle
Hyperbole mail buttons, you can set the variable, <code>smail:comment</code>,
to an expression that automatically inserts a comment into each
@@ -3883,11 +3814,11 @@ Hyperbole.
<pre class="example">Comments: GNU Hyperbole mail buttons accepted, vX.X.X.
</pre></div>
-<a name="index-file_002c-_002eemacs-2"></a>
+<span id="index-file_002c-_002eemacs-2"></span>
<p>where the X’s indicate your Hyperbole version number. You can cut
this out of particular messages before you send them when need be.
</p>
-<a name="index-actype_002c-link_002dto_002dmail"></a>
+<span id="index-actype_002c-link_002dto_002dmail"></span>
<p>A final mail-related facility provided by Hyperbole is the ability to
save a pointer to a received mail message by creating an explicit button
with a <code>link-to-mail</code> action type. When prompted for the mail
@@ -3897,21 +3828,19 @@ described in <a
href="#Smart-Key-Argument-Selection">Smart Key Argument Selectio
</p>
<hr>
-<a name="Buttons-in-News"></a>
-<div class="header">
+<span id="Buttons-in-News"></span><div class="header">
<p>
Previous: <a href="#Buttons-in-Mail" accesskey="p" rel="prev">Buttons in
Mail</a>, Up: <a href="#Utilizing-Explicit-Buttons" accesskey="u"
rel="up">Utilizing Explicit Buttons</a> [<a href="#SEC_Contents"
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index"
title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Buttons-in-News-1"></a>
-<h4 class="subsection">3.7.7 Buttons in News</h4>
+<span id="Buttons-in-News-1"></span><h4 class="subsection">3.7.7 Buttons in
News</h4>
-<a name="index-button-posting-1"></a>
-<a name="index-news-reader_002fposter"></a>
-<a name="index-posting-news"></a>
-<a name="index-Gnus-1"></a>
-<a name="index-USENET-1"></a>
-<a name="index-file_002c-hyperbole_002eel-1"></a>
-<a name="index-menu-item_002c-Cust_002fMsg_002dToggle_002dEbuts-1"></a>
+<span id="index-button-posting-1"></span>
+<span id="index-news-reader_002fposter"></span>
+<span id="index-posting-news"></span>
+<span id="index-Gnus-1"></span>
+<span id="index-USENET-1"></span>
+<span id="index-file_002c-hyperbole_002eel-1"></span>
+<span id="index-menu-item_002c-Cust_002fMsg_002dToggle_002dEbuts-1"></span>
<p>Explicit buttons may be embedded within outgoing USENET news articles
and may be activated from within the Gnus news reader. Because this
involves complex changes to news support functions, this feature is
@@ -3936,7 +3865,7 @@ therefore limit distribution of such messages. For
example, if most
people at your site read news with Gnus and use Hyperbole, it would be
reasonable to embed buttons in postings to local newsgroups.
</p>
-<a name="index-news-comment"></a>
+<span id="index-news-comment"></span>
<p>In order to alert readers of your postings that they may send you
personal replies with embedded Hyperbole buttons, the system inserts
into news postings the same comment that is included within mail
@@ -3946,22 +3875,20 @@ explanation of how to turn this feature on.
<hr>
-<a name="Menus"></a>
-<div class="header">
+<span id="Menus"></span><div class="header">
<p>
Next: <a href="#HyControl" accesskey="n" rel="next">HyControl</a>, Previous:
<a href="#Buttons" accesskey="p" rel="prev">Buttons</a>, Up: <a href="#Top"
accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Menus-1"></a>
-<h2 class="chapter">4 Menus</h2>
-
-<a name="index-Emacs-1"></a>
-<a name="index-Hyperbole-menubar-menu"></a>
-<a name="index-Hyperbole-pulldown-menu"></a>
-<a name="index-menu-use"></a>
-<a name="index-pulldown-menu"></a>
-<a name="index-menubar_002c-Hyperbole-menu"></a>
-<a name="index-menu-item_002c-Remove_002dThis_002dMenu"></a>
-<a name="index-removing-Hyperbole-menu"></a>
+<span id="Menus-1"></span><h2 class="chapter">4 Menus</h2>
+
+<span id="index-Emacs-1"></span>
+<span id="index-Hyperbole-menubar-menu"></span>
+<span id="index-Hyperbole-pulldown-menu"></span>
+<span id="index-menu-use"></span>
+<span id="index-pulldown-menu"></span>
+<span id="index-menubar_002c-Hyperbole-menu"></span>
+<span id="index-menu-item_002c-Remove_002dThis_002dMenu"></span>
+<span id="index-removing-Hyperbole-menu"></span>
<p>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
@@ -3970,25 +3897,25 @@ 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.
</p>
-<div class="float"><a name="image_003aHyperbole-Menu"></a>
+<div class="float"><span id="image_003aHyperbole-Menu"></span>
<img src="im/menu-hyperbole.png" alt="Hyperbole Menu">
<div class="float-caption"><p><strong>Image 4.1: </strong>Hyperbole Menubar
Menu</p></div></div>
-<div class="float"><a name="image_003aFind-Menu"></a>
+<div class="float"><span id="image_003aFind-Menu"></span>
<img src="im/menu-find.png" alt="Find Menu">
<div class="float-caption"><p><strong>Image 4.2: </strong>Find Menubar
Menu</p></div></div><br>
-<a name="index-hyperbole_002dpopup_002dmenu"></a>
-<a name="index-popup-menu"></a>
-<a name="index-hyperbole-popup-menu"></a>
+<span id="index-hyperbole_002dpopup_002dmenu"></span>
+<span id="index-popup-menu"></span>
+<span id="index-hyperbole-popup-menu"></span>
<p>The Hyperbole popup menu, <code>hyperbole-popup-menu</code>, 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 <a href="#Smart-Key-_002d-Default-Context">Smart Key - Default
Context</a>, for details.
</p>
-<a name="index-minibuffer-menus"></a>
+<span id="index-minibuffer-menus"></span>
<p>The rest of this section discusses only the
specialized <em>minibuffer menus</em> which appear in the minibuffer
window and work with all emacs versions on all display devices.
@@ -3997,31 +3924,31 @@ 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.
</p>
-<a name="index-C_002dh-h"></a>
-<a name="index-minibuffer-menu"></a>
-<a name="index-file_002c-hyperbole_002eel-2"></a>
-<a name="index-invoking-Hyperbole"></a>
-<a name="index-starting-Hyperbole"></a>
-<a name="index-Hyperbole_002c-starting"></a>
-<a name="index-Hyperbole-main-menu"></a>
+<span id="index-C_002dh-h"></span>
+<span id="index-minibuffer-menu"></span>
+<span id="index-file_002c-hyperbole_002eel-2"></span>
+<span id="index-invoking-Hyperbole"></span>
+<span id="index-starting-Hyperbole"></span>
+<span id="index-Hyperbole_002c-starting"></span>
+<span id="index-Hyperbole-main-menu"></span>
<p>The top-level Hyperbole minibuffer menu is invoked from a key given in your
<samp>hyperbole.el</samp> file (by default, <kbd>{C-h h}</kbd>) or with a click
of the Action Mouse Key in the minibuffer when it is inactive. It should
look like this:
</p>
-<div class="smallexample">
-<pre class="smallexample">Hy> Act Butfile/ Cust/ Doc/ Ebut/ Find/ Gbut/
Hist Ibut/ Kotl/ Msg/ Rolo/ Screen/ Win/
+<div class="example">
+<pre class="example">Hy> Act Butfile/ Cust/ Doc/ Ebut/ Find/ Gbut/ Hist
Ibut/ Kotl/ Msg/ Rolo/ Screen/ Win/
</pre></div>
-<a name="index-submenus"></a>
-<a name="index-menu-help"></a>
-<a name="index-help_002c-menu-items"></a>
-<a name="index-menu-item-selection"></a>
-<a name="index-selection_002c-menu-items"></a>
-<a name="index-TAB"></a>
-<a name="index-M_002df"></a>
-<a name="index-Shift_002d"></a>
-<a name="index-M_002db"></a>
+<span id="index-submenus"></span>
+<span id="index-menu-help"></span>
+<span id="index-help_002c-menu-items"></span>
+<span id="index-menu-item-selection"></span>
+<span id="index-selection_002c-menu-items"></span>
+<span id="index-TAB"></span>
+<span id="index-M_002df"></span>
+<span id="index-Shift_002d"></span>
+<span id="index-M_002db"></span>
<p>All menu items are selected via the first character of their names (letter
case does not matter), with presses of the Action Key or by using
{<tt class="key">TAB</tt>} or <kbd>{M-f}</kbd> to move forward an item,
<kbd>{Shift-<span class="key">TAB</span>}</kbd>
@@ -4030,12 +3957,12 @@ current item. 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.
</p>
-<a name="index-C_002dt"></a>
-<a name="index-q"></a>
-<a name="index-C_002dg"></a>
-<a name="index-menu_002c-top_002dlevel"></a>
-<a name="index-top_002dlevel-menu"></a>
-<a name="index-menu-prefix"></a>
+<span id="index-C_002dt"></span>
+<span id="index-q"></span>
+<span id="index-C_002dg"></span>
+<span id="index-menu_002c-top_002dlevel"></span>
+<span id="index-top_002dlevel-menu"></span>
+<span id="index-menu-prefix"></span>
<p>While a menu is active, to re-activate the top-level Hyperbole menu,
use <kbd>{C-t}</kbd> or press the Action Key while on the menu prefix
(before the ‘<samp>></samp>’ character). This allows you to
browse the
@@ -4047,18 +3974,18 @@ are at a menu prompt or any other Hyperbole prompt.
<p>The top-level Hyperbole minibuffer menu items serve the following purposes:
</p>
<dl compact="compact">
-<dd><a name="index-menu-item_002c-Act"></a>
-<a name="index-menu-item_002c-Activate_002dButton_002dat_002dPoint"></a>
+<dd><span id="index-menu-item_002c-Act"></span>
+<span id="index-menu-item_002c-Activate_002dButton_002dat_002dPoint"></span>
</dd>
<dt><strong>Act</strong></dt>
<dd><p>Activation of any button at point. If there is no button at
point, it prompts for the label of an explicit button within the
current buffer to activate.
</p>
-<a name="index-menu_002c-Button_002dFile"></a>
-<a name="index-menu_002c-Butfile"></a>
-<a name="index-button-file_002c-HYPB"></a>
-<a name="index-file_002c-HYPB"></a>
+<span id="index-menu_002c-Button_002dFile"></span>
+<span id="index-menu_002c-Butfile"></span>
+<span id="index-button-file_002c-HYPB"></span>
+<span id="index-file_002c-HYPB"></span>
</dd>
<dt><strong>Butfile/</strong></dt>
<dd><p>Easy access to a directory-specific or personal file of buttons.
@@ -4066,10 +3993,10 @@ current buffer to activate.
<samp>~/.hyperb/HYPB</samp> is the personal file of global buttons.
These are good places to begin experimenting with button creation.
</p>
-<a name="index-menu_002c-Customize"></a>
-<a name="index-menu_002c-Cust"></a>
-<a name="index-customize"></a>
-<a name="index-option-settings"></a>
+<span id="index-menu_002c-Customize"></span>
+<span id="index-menu_002c-Cust"></span>
+<span id="index-customize"></span>
+<span id="index-option-settings"></span>
</dd>
<dt><strong>Cust/</strong></dt>
<dd><p>Hyperbole option customization. This includes whether ftp and www
@@ -4080,9 +4007,9 @@ entries, and whether to use proportional or windowful
scrolling when a
Smart Key is pressed at the end of a line.
See <a href="#Customization">Customization</a>.
</p>
-<a name="index-menu_002c-KeyBindings"></a>
-<a name="index-key-binding_002c-menu"></a>
-<a name="index-mouse-bindings"></a>
+<span id="index-menu_002c-KeyBindings"></span>
+<span id="index-key-binding_002c-menu"></span>
+<span id="index-mouse-bindings"></span>
<p>The ‘<samp>KeyBindings/</samp>’ submenu allows individual
changes to each
keyboard key that Hyperbole binds for its commands, notably the Action
Key. See <a href="#Smart-Key-Bindings">Smart Key Bindings</a>, for more
information.
@@ -4091,17 +4018,17 @@ Key. See <a href="#Smart-Key-Bindings">Smart Key
Bindings</a>, for more informa
global key bindings, how to temporarily disable them and how to manage
its overriding of local bindings that hide global Hyperbole keys.
</p>
-<a name="index-menu_002c-Explicit_002dButton"></a>
-<a name="index-menu_002c-EBut"></a>
+<span id="index-menu_002c-Explicit_002dButton"></span>
+<span id="index-menu_002c-EBut"></span>
</dd>
<dt><strong>Ebut/</strong></dt>
<dd><p>All explicit button commands. The window-system-based Hyperbole
menu includes an activation menu item for each explicit button found
in the current buffer.
</p>
-<a name="index-menu_002c-Documentation"></a>
-<a name="index-menu_002c-Doc"></a>
-<a name="index-menu_002c-Types"></a>
+<span id="index-menu_002c-Documentation"></span>
+<span id="index-menu_002c-Doc"></span>
+<span id="index-menu_002c-Types"></span>
</dd>
<dt><strong>Doc/</strong></dt>
<dd><p>Hyperbole documentation quick access. This menu contains an About item
@@ -4109,10 +4036,10 @@ which describes Hyperbole and a Demo item which
demonstrates a number of
interactive Hyperbole features. It also contains the Types/ submenu for
documentation on Hyperbole implicit button and action types.
</p>
-<a name="index-Find"></a>
-<a name="index-Grep"></a>
-<a name="index-menu_002c-Find"></a>
-<a name="index-search"></a>
+<span id="index-Find"></span>
+<span id="index-Grep"></span>
+<span id="index-menu_002c-Find"></span>
+<span id="index-search"></span>
</dd>
<dt><strong>Find/</strong></dt>
<dd><p>Buffer and file line finding commands and web searching. This menu
@@ -4125,19 +4052,19 @@ access to popular web search engines.
</p>
<p>Below are each of the commands on the Find menu.
</p>
-<a name="index-match-lines-2"></a>
-<a name="index-remove-lines"></a>
-<a name="index-save-lines"></a>
-<a name="index-locate-files"></a>
-<a name="index-grep-files"></a>
-<a name="index-menu-item_002c-GrepFile"></a>
-<a name="index-menu-item_002c-LocateFiles"></a>
-<a name="index-menu-item_002c-MatchFileBuffers"></a>
-<a name="index-menu-item_002c-OccurHere"></a>
-<a name="index-menu-item_002c-RemoveLines"></a>
-<a name="index-menu-item_002c-SaveLines"></a>
-<a name="index-hypb_003argrep_002dcommand"></a>
-<a name="index-locate_002dcommand"></a>
+<span id="index-match-lines-2"></span>
+<span id="index-remove-lines"></span>
+<span id="index-save-lines"></span>
+<span id="index-locate-files"></span>
+<span id="index-grep-files"></span>
+<span id="index-menu-item_002c-GrepFile"></span>
+<span id="index-menu-item_002c-LocateFiles"></span>
+<span id="index-menu-item_002c-MatchFileBuffers"></span>
+<span id="index-menu-item_002c-OccurHere"></span>
+<span id="index-menu-item_002c-RemoveLines"></span>
+<span id="index-menu-item_002c-SaveLines"></span>
+<span id="index-hypb_003argrep_002dcommand"></span>
+<span id="index-locate_002dcommand"></span>
<ul>
<li> GrepFiles - Show numbered line matches for a regexp in all
non-backup, non-auto-save files below the current directory.
@@ -4161,12 +4088,12 @@ access to popular web search engines.
</li><li> RemoveLines - Following point, remove all lines that match
regexp.
</li><li> SaveLines - Following point, keep only lines that match
regexp.
-<a name="index-menu_002c-Find_002fWeb"></a>
-<a name="index-menu_002c-Web"></a>
-<a name="index-searching-the-web"></a>
-<a name="index-web-search"></a>
-<a name="index-C_002dc-_002f"></a>
-<a name="index-hyperbole_002dweb_002dsearch_002dbrowser_002dfunction"></a>
+<span id="index-menu_002c-Find_002fWeb"></span>
+<span id="index-menu_002c-Web"></span>
+<span id="index-searching-the-web"></span>
+<span id="index-web-search"></span>
+<span id="index-C_002dc-_002f"></span>
+<span id="index-hyperbole_002dweb_002dsearch_002dbrowser_002dfunction"></span>
</li><li> Web/ - Select a search engine and term and search with
them.
Hyperbole binds the key <kbd>{C-c /}</kbd> for quick
@@ -4180,60 +4107,60 @@ access to popular web search engines.
<p>The Find/Web menu looks like this:
</p>
-<div class="smallexample">
-<pre class="smallexample">Web> Amazon Bing Dictionary Elisp Facebook
Google Hub(git)
+<div class="example">
+<pre class="example">Web> Amazon Bing Dictionary Elisp Facebook Google
Hub(git)
Images Maps RFCs StackOverflow Twitter Wikipedia Youtube
</pre></div>
</li></ul>
-<a name="index-menu_002c-Global_002dButton-1"></a>
-<a name="index-menu_002c-Gbut-1"></a>
+<span id="index-menu_002c-Global_002dButton-1"></span>
+<span id="index-menu_002c-Gbut-1"></span>
</dd>
<dt><strong>Gbut/</strong></dt>
<dd><p>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.
-<a name="index-menu-item_002c-Back_002dto_002dPrior_002dLocation"></a>
-<a name="index-menu-item_002c-Hist"></a>
-<a name="index-history"></a>
+<span id="index-menu-item_002c-Back_002dto_002dPrior_002dLocation"></span>
+<span id="index-menu-item_002c-Hist"></span>
+<span id="index-history"></span>
</p></dd>
<dt><strong>Hist</strong></dt>
<dd><p>Return to previous positions in the button traversal history.
</p>
-<a name="index-menu_002c-Implicit_002dButton"></a>
-<a name="index-menu_002c-Ibut"></a>
+<span id="index-menu_002c-Implicit_002dButton"></span>
+<span id="index-menu_002c-Ibut"></span>
</dd>
<dt><strong>Ibut/</strong></dt>
<dd><p>All implicit button commands.
</p>
-<a name="index-menu_002c-Mail_002dLists"></a>
-<a name="index-menu_002c-Msg"></a>
+<span id="index-menu_002c-Mail_002dLists"></span>
+<span id="index-menu_002c-Msg"></span>
</dd>
<dt><strong>Msg/</strong></dt>
<dd><p>Hyperbole-specific email messaging commands. Use this to send mail to
a Hyperbole discussion mailing list.
</p>
-<a name="index-menu_002c-Outliner"></a>
-<a name="index-menu_002c-Koutline"></a>
-<a name="index-menu_002c-Kotl"></a>
+<span id="index-menu_002c-Outliner"></span>
+<span id="index-menu_002c-Koutline"></span>
+<span id="index-menu_002c-Kotl"></span>
</dd>
<dt><strong>Kotl/</strong></dt>
<dd><p>Autonumbered, structured outliner commands with per-node hyperlink
anchors.
See <a href="#Koutliner">Koutliner</a>.
</p>
-<a name="index-menu_002c-Rolo"></a>
+<span id="index-menu_002c-Rolo"></span>
</dd>
<dt><strong>Rolo/</strong></dt>
<dd><p>Hierarchical, multi-file contact manager lookup and edit commands.
See <a href="#HyRolo">HyRolo</a>.
</p>
-<a name="index-menu_002c-Screen"></a>
+<span id="index-menu_002c-Screen"></span>
</dd>
<dt><strong>Screen/</strong></dt>
<dd><p>Window, frame and buffer display control commands. See <a
href="#HyControl">HyControl</a>.
</p>
-<a name="index-menu_002c-Window_002dConfigurations"></a>
-<a name="index-menu_002c-WinConfig"></a>
+<span id="index-menu_002c-Window_002dConfigurations"></span>
+<span id="index-menu_002c-WinConfig"></span>
</dd>
<dt><strong>Win/</strong></dt>
<dd><p>Window configuration management commands, such as adding and restoring
@@ -4243,21 +4170,19 @@ window configurations by name. See <a
href="#Window-Configurations">Window Conf
</dl>
<hr>
-<a name="HyControl"></a>
-<div class="header">
+<span id="HyControl"></span><div class="header">
<p>
Next: <a href="#Koutliner" accesskey="n" rel="next">Koutliner</a>, Previous:
<a href="#Menus" accesskey="p" rel="prev">Menus</a>, Up: <a href="#Top"
accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="HyControl-1"></a>
-<h2 class="chapter">5 HyControl</h2>
+<span id="HyControl-1"></span><h2 class="chapter">5 HyControl</h2>
-<a name="index-windows-control"></a>
-<a name="index-frames-control"></a>
-<a name="index-HyControl"></a>
-<a name="index-invoking-HyControl"></a>
-<a name="index-starting-HyControl"></a>
-<a name="index-screen"></a>
-<a name="index-display"></a>
+<span id="index-windows-control"></span>
+<span id="index-frames-control"></span>
+<span id="index-HyControl"></span>
+<span id="index-invoking-HyControl"></span>
+<span id="index-starting-HyControl"></span>
+<span id="index-screen"></span>
+<span id="index-display"></span>
<p>Hyperbole includes the fastest, easiest-to-use Emacs window and frame
management system available, HyControl, found under the Hyperbole
Screen menu. If you use a lot of Emacs windows or frames (typically,
@@ -4268,14 +4193,14 @@ down to the pixel-level if desired. You adjust the
location, size and
display elements of your windows and frames until they look as you like
and then simply quit HyControl and go back to work.
</p>
-<a name="index-C_002dc-_005c"></a>
-<a name="index-screen_002c-C_002dc-_005c"></a>
-<a name="index-C_002dh-h-s-w"></a>
-<a name="index-screen_002c-C_002dh-h-s-w"></a>
-<a name="index-C_002dh-h-s-f"></a>
-<a name="index-screen_002c-C_002dh-h-s-f"></a>
-<a name="index-menu-item_002c-WindowsControl"></a>
-<a name="index-menu-item_002c-FramesControl"></a>
+<span id="index-C_002dc-_005c"></span>
+<span id="index-screen_002c-C_002dc-_005c"></span>
+<span id="index-C_002dh-h-s-w"></span>
+<span id="index-screen_002c-C_002dh-h-s-w"></span>
+<span id="index-C_002dh-h-s-f"></span>
+<span id="index-screen_002c-C_002dh-h-s-f"></span>
+<span id="index-menu-item_002c-WindowsControl"></span>
+<span id="index-menu-item_002c-FramesControl"></span>
<p>Hyperbole binds the key <kbd>{C-c \}</kbd> for quick access to
HyControl’s
window control menu, if it was not already bound prior to Hyperbole’s
initialization; otherwise, the Screen/WindowsControl minibuffer menu
@@ -4283,10 +4208,10 @@ item, <kbd>{C-h h s w}</kbd>, will do the same thing.
To start HyControl
with the frames menu instead, use Screen/FramesControl, <kbd>{C-h h s
f}</kbd>.
</p>
-<a name="index-submodes"></a>
-<a name="index-screen_002c-t"></a>
-<a name="index-screen_002c-q"></a>
-<a name="index-screen_002c-Q"></a>
+<span id="index-submodes"></span>
+<span id="index-screen_002c-t"></span>
+<span id="index-screen_002c-q"></span>
+<span id="index-screen_002c-Q"></span>
<p>Once in HyControl, your minibuffer window at the bottom of the
selected frame will display a summary of keys you may use to adjust
your windows until you press <kbd>{q}</kbd> or <kbd>{Q}</kbd> to quit from
@@ -4294,8 +4219,8 @@ HyControl. The key, <kbd>{t}</kbd>, will always toggle
between controlling
frames and windows, the <em>submodes</em> of HyControl, with the upper
left of the minibuffer prompt showing which type of control is active.
</p>
-<a name="index-numeric-argument"></a>
-<a name="index-multiplier"></a>
+<span id="index-numeric-argument"></span>
+<span id="index-multiplier"></span>
<p>A number of commands take a single numeric argument, e.g. movement and
sizing, which you can enter by typing a period to clear the argument,
followed by any positive number up to 1000. You may also use
@@ -4309,32 +4234,32 @@ and frame submodes.
</p>
<dl compact="compact">
<dd>
-<a name="index-HyControl-help"></a>
-<a name="index-HyControl_002c-see-screen"></a>
-<a name="index-screen_002c-_003f"></a>
-<a name="index-_003f"></a>
+<span id="index-HyControl-help"></span>
+<span id="index-HyControl_002c-see-screen"></span>
+<span id="index-screen_002c-_003f"></span>
+<span id="index-_003f"></span>
</dd>
<dt><kbd>{?}</kbd></dt>
<dd><p>Toggle whether HyControl displays key binding help in the minibuffer.
</p>
-<a name="index-HyControl_002c-see-screen-1"></a>
-<a name="index-screen_002c-_002e"></a>
-<a name="index-_002e"></a>
+<span id="index-HyControl_002c-see-screen-1"></span>
+<span id="index-screen_002c-_002e"></span>
+<span id="index-_002e"></span>
</dd>
<dt><kbd>{.}</kbd></dt>
<dd><p>Clear the prefix argument to a value of 0.
</p>
-<a name="index-screen_002c-0_002d9"></a>
-<a name="index-0_002d9"></a>
+<span id="index-screen_002c-0_002d9"></span>
+<span id="index-0_002d9"></span>
</dd>
<dt><kbd>{0-9}</kbd></dt>
<dd><p>Multiply the prefix argument by 10 and add the digit pressed.
</p>
-<a name="index-windows-grid"></a>
-<a name="index-grid-of-windows"></a>
-<a name="index-HyControl-windows-grid"></a>
-<a name="index-screen_002c-_0040"></a>
-<a name="index-_0040"></a>
+<span id="index-windows-grid"></span>
+<span id="index-grid-of-windows"></span>
+<span id="index-HyControl-windows-grid"></span>
+<span id="index-screen_002c-_0040"></span>
+<span id="index-_0040"></span>
</dd>
<dt><kbd>{@}</kbd></dt>
<dd>
@@ -4343,7 +4268,7 @@ the prefix argument or via a prompted input. Left digit
of the argument is
the number of grid rows and the right digit is the number of grid columns
to display.
</p>
-<div class="float"><a name="image_003a2x3_002dWindows_002dGrid"></a>
+<div class="float"><span id="image_003a2x3_002dWindows_002dGrid"></span>
<img src="im/wgrid-2x3.png" alt="2x3 Windows Grid">
<div class="float-caption"><p><strong>Image 5.1: </strong>2x3 Windows
Grid</p></div></div><br>
@@ -4354,7 +4279,7 @@ should be displayed first in the grid windows, then
prompt for the grid size.
<p>Otherwise, prompt for the grid size if the prefix argument is an invalid
size.
</p>
-<a name="index-hycontrol_002ddisplay_002dbuffer_002dpredicate_002dlist"></a>
+<span
id="index-hycontrol_002ddisplay_002dbuffer_002dpredicate_002dlist"></span>
<p>With a current buffer in Dired, Buffer Menu or IBuffer mode that
contains marked items, the buffers associated with those items are
displayed first in the grid (unless the prefix argument is 0).
@@ -4376,10 +4301,10 @@ following commands from using the often large grid size
argument.
repeatedly prompt you for a grid size and then display it. When you
are done, simply press <kbd>{<span class="key">RET</span>}</kbd> to exit.
</p>
-<a name="index-frame-resize"></a>
-<a name="index-hycontrol_002dframe_002dwidths"></a>
-<a name="index-screen_002c-a"></a>
-<a name="index-a"></a>
+<span id="index-frame-resize"></span>
+<span id="index-hycontrol_002dframe_002dwidths"></span>
+<span id="index-screen_002c-a"></span>
+<span id="index-a"></span>
</dd>
<dt><kbd>{a}</kbd></dt>
<dd><p>Cycle through common width adjustments of a frame, such as 25% and
@@ -4387,82 +4312,82 @@ are done, simply press <kbd>{<span
class="key">RET</span>}</kbd> to exit.
<code>hycontrol-frame-widths</code> and typically go from widest to
narrowest.
</p>
-<a name="index-hycontrol_002dframe_002dheights"></a>
-<a name="index-screen_002c-A"></a>
-<a name="index-A"></a>
+<span id="index-hycontrol_002dframe_002dheights"></span>
+<span id="index-screen_002c-A"></span>
+<span id="index-A"></span>
</dd>
<dt><kbd>{A}</kbd></dt>
<dd><p>Cycle through common height adjustments of a frame, such as 33.3% and
75%. Heights are given in screen percentages by the list
<code>hycontrol-frame-heights</code> and typically go from tallest to shortest.
</p>
-<a name="index-screen_002c-h"></a>
-<a name="index-h"></a>
+<span id="index-screen_002c-h"></span>
+<span id="index-h"></span>
</dd>
<dt><kbd>{h}</kbd></dt>
<dd><p>Increase height by argument lines (line height determined by buffer
character height).
</p>
-<a name="index-screen_002c-s"></a>
-<a name="index-s"></a>
+<span id="index-screen_002c-s"></span>
+<span id="index-s"></span>
</dd>
<dt><kbd>{s}</kbd></dt>
<dd><p>Shorten height by argument lines.
</p>
-<a name="index-screen_002c-w"></a>
-<a name="index-w"></a>
+<span id="index-screen_002c-w"></span>
+<span id="index-w"></span>
</dd>
<dt><kbd>{w}</kbd></dt>
<dd><p>Widen by argument characters.
</p>
-<a name="index-screen_002c-n"></a>
-<a name="index-n"></a>
+<span id="index-screen_002c-n"></span>
+<span id="index-n"></span>
</dd>
<dt><kbd>{n}</kbd></dt>
<dd><p>Narrow by argument characters.
</p>
-<a name="index-screen_002c-_0025"></a>
-<a name="index-_0025"></a>
+<span id="index-screen_002c-_0025"></span>
+<span id="index-_0025"></span>
</dd>
<dt><kbd>{%}</kbd></dt>
<dd><p>In FRAMES mode, resize frame’s height and width to about argument
percent
of the screen size.
</p>
-<a name="index-screen_002c-H"></a>
-<a name="index-H"></a>
+<span id="index-screen_002c-H"></span>
+<span id="index-H"></span>
</dd>
<dt><kbd>{H}</kbd></dt>
<dd><p>In FRAMES mode, resize frame’s height to about argument percent
of the
screen size.
</p>
-<a name="index-screen_002c-W"></a>
-<a name="index-W"></a>
+<span id="index-screen_002c-W"></span>
+<span id="index-W"></span>
</dd>
<dt><kbd>{W}</kbd></dt>
<dd><p>In FRAMES mode, resize frame’s width to about argument percent of
the
screen size.
</p>
-<a name="index-screen_002c-up"></a>
-<a name="index-screen_002c-down"></a>
-<a name="index-screen_002c-left"></a>
-<a name="index-screen_002c-right"></a>
-<a name="index-up"></a>
+<span id="index-screen_002c-up"></span>
+<span id="index-screen_002c-down"></span>
+<span id="index-screen_002c-left"></span>
+<span id="index-screen_002c-right"></span>
+<span id="index-up"></span>
</dd>
<dt><kbd>{up}</kbd></dt>
-<dd><a name="index-down"></a>
+<dd><span id="index-down"></span>
</dd>
<dt><kbd>{down}</kbd></dt>
-<dd><a name="index-left"></a>
+<dd><span id="index-left"></span>
</dd>
<dt><kbd>{left}</kbd></dt>
-<dd><a name="index-right"></a>
+<dd><span id="index-right"></span>
</dd>
<dt><kbd>{right}</kbd></dt>
<dd><p>Move frame in the specified direction by argument pixels.
</p>
-<a name="index-frame-relocate"></a>
-<a name="index-screen_002c-c"></a>
-<a name="index-c"></a>
+<span id="index-frame-relocate"></span>
+<span id="index-screen_002c-c"></span>
+<span id="index-c"></span>
</dd>
<dt><kbd>{c}</kbd></dt>
<dd><p>With each press, cycle the selected frame’s position clockwise
through
@@ -4470,47 +4395,47 @@ the middle of edges and corners of the screen. With an
argument of 0,
reset the cycle position to the upper left corner. Respects the pixel
edge offsets returned by <code>hycontrol-get-screen-offsets</code>.
</p>
-<a name="index-delete-frame"></a>
-<a name="index-frame_002c-delete"></a>
-<a name="index-screen_002c-d"></a>
-<a name="index-d"></a>
+<span id="index-delete-frame"></span>
+<span id="index-frame_002c-delete"></span>
+<span id="index-screen_002c-d"></span>
+<span id="index-d"></span>
</dd>
<dt><kbd>{d}</kbd></dt>
<dd><p>Delete selected window or frame based on mode.
-<a name="index-screen_002c-D"></a>
-<a name="index-D"></a>
+<span id="index-screen_002c-D"></span>
+<span id="index-D"></span>
</p></dd>
<dt><kbd>{D}</kbd></dt>
<dd><p>Prompt for confirmation and then delete non-selected windows or frames
based on mode.
</p>
-<a name="index-frame_002c-lower"></a>
-<a name="index-lower-frame"></a>
-<a name="index-screen_002c-l"></a>
-<a name="index-l"></a>
+<span id="index-frame_002c-lower"></span>
+<span id="index-lower-frame"></span>
+<span id="index-screen_002c-l"></span>
+<span id="index-l"></span>
</dd>
<dt><kbd>{l}</kbd></dt>
<dd><p>In FRAMES mode, lower the selected frame below all other Emacs session
frames.
</p>
-<a name="index-frame_002c-other"></a>
-<a name="index-other-frame"></a>
-<a name="index-other-window"></a>
-<a name="index-window_002c-other"></a>
-<a name="index-screen_002c-o"></a>
-<a name="index-o"></a>
+<span id="index-frame_002c-other"></span>
+<span id="index-other-frame"></span>
+<span id="index-other-window"></span>
+<span id="index-window_002c-other"></span>
+<span id="index-screen_002c-o"></span>
+<span id="index-o"></span>
</dd>
<dt><kbd>{o}</kbd></dt>
<dd><p>Select the next window in the window list, across all visible frames.
-<a name="index-screen_002c-O"></a>
-<a name="index-O"></a>
+<span id="index-screen_002c-O"></span>
+<span id="index-O"></span>
</p></dd>
<dt><kbd>{O}</kbd></dt>
<dd><p>Select the next visible frame.
</p>
-<a name="index-keypad"></a>
-<a name="index-numeric-keypad"></a>
-<a name="index-screen_002c-keypad-number"></a>
-<a name="index-keypad-number"></a>
+<span id="index-keypad"></span>
+<span id="index-numeric-keypad"></span>
+<span id="index-screen_002c-keypad-number"></span>
+<span id="index-keypad-number"></span>
</dd>
<dt><kbd>{keypad number}</kbd></dt>
<dd><p>In FRAMES mode, move the frame directly to the screen edge position
given
@@ -4519,89 +4444,89 @@ bottom right corner and 8 moves it to the middle of the
top edge.
Keypad numeric keys do not adjust the argument. Respects the pixel edge
offsets returned by <code>hycontrol-get-screen-offsets</code>.
</p>
-<a name="index-virtual-numeric-keypad"></a>
-<a name="index-screen_002c-p"></a>
-<a name="index-p"></a>
+<span id="index-virtual-numeric-keypad"></span>
+<span id="index-screen_002c-p"></span>
+<span id="index-p"></span>
</dd>
<dt><kbd>{p}</kbd></dt>
<dd><p>Display a virtual numeric keypad for emulating a keypad on keyboards
without one.
Each digit key operates just as a numeric keypad key would.
</p>
-<a name="index-frame_002c-raise"></a>
-<a name="index-raise-frame"></a>
-<a name="index-screen_002c-r"></a>
-<a name="index-r"></a>
+<span id="index-frame_002c-raise"></span>
+<span id="index-raise-frame"></span>
+<span id="index-screen_002c-r"></span>
+<span id="index-r"></span>
</dd>
<dt><kbd>{r}</kbd></dt>
<dd><p>In FRAMES mode, raise the selected frame above all other Emacs session
frames.
</p>
-<a name="index-window_002c-make"></a>
-<a name="index-make-window"></a>
-<a name="index-hycontrol_002dframe_002doffset"></a>
-<a name="index-screen_002c-_005b"></a>
-<a name="index-_005b"></a>
+<span id="index-window_002c-make"></span>
+<span id="index-make-window"></span>
+<span id="index-hycontrol_002dframe_002doffset"></span>
+<span id="index-screen_002c-_005b"></span>
+<span id="index-_005b"></span>
</dd>
<dt><kbd>{[}</kbd></dt>
<dd><p>Create a new atop window or frame depending on mode. If a frame, it is
sized to the same size as the selected window and offset from the
selected frame by the pixel amounts given by
<code>hycontrol-frame-offset</code>.
-<a name="index-screen_002c-_005d"></a>
-<a name="index-_005d"></a>
+<span id="index-screen_002c-_005d"></span>
+<span id="index-_005d"></span>
</p></dd>
<dt><kbd>{]}</kbd></dt>
<dd><p>Create a new sideways window or frame depending on mode.
</p>
-<a name="index-frame-configuration"></a>
-<a name="index-window-configuration"></a>
-<a name="index-screen_002c-_0028"></a>
-<a name="index-_0028"></a>
+<span id="index-frame-configuration"></span>
+<span id="index-window-configuration"></span>
+<span id="index-screen_002c-_0028"></span>
+<span id="index-_0028"></span>
</dd>
<dt><kbd>{(}</kbd></dt>
<dd><p>Save the current window or frame configuration based on mode. Whenever,
HyControl is invoked, the current window and frame configurations are
saved automatically. So use this command only if you have changed the
configuration and wish to save it temporarily.
-<a name="index-screen_002c-_0029"></a>
-<a name="index-_0029"></a>
+<span id="index-screen_002c-_0029"></span>
+<span id="index-_0029"></span>
</p></dd>
<dt><kbd>{)}</kbd></dt>
<dd><p>After confirmation, restore the last saved window or frame configuration
based on mode.
</p>
-<a name="index-window_002c-clone-1"></a>
-<a name="index-clone-window-1"></a>
-<a name="index-hycontrol_002dkeep_002dwindow_002dflag"></a>
-<a name="index-screen_002c-f"></a>
-<a name="index-f"></a>
+<span id="index-window_002c-clone-1"></span>
+<span id="index-clone-window-1"></span>
+<span id="index-hycontrol_002dkeep_002dwindow_002dflag"></span>
+<span id="index-screen_002c-f"></span>
+<span id="index-f"></span>
</dd>
<dt><kbd>{f}</kbd></dt>
<dd><p>Clone the selected window to a new similarly sized frame.
-<a name="index-screen_002c-F"></a>
-<a name="index-F"></a>
+<span id="index-screen_002c-F"></span>
+<span id="index-F"></span>
</p></dd>
<dt><kbd>{F}</kbd></dt>
<dd><p>Clone the selected window to a new similarly sized frame. Delete the
original window unless there is only one window in the source frame or
if <code>hycontrol-keep-window-flag</code> is non-nil.
</p>
-<a name="index-frame_002c-to-edge"></a>
-<a name="index-frame_002c-percentage-resize"></a>
-<a name="index-resize-frame-percentage"></a>
-<a name="index-screen_002c-i"></a>
-<a name="index-screen_002c-j"></a>
-<a name="index-screen_002c-k"></a>
-<a name="index-screen_002c-m"></a>
-<a name="index-i"></a>
+<span id="index-frame_002c-to-edge"></span>
+<span id="index-frame_002c-percentage-resize"></span>
+<span id="index-resize-frame-percentage"></span>
+<span id="index-screen_002c-i"></span>
+<span id="index-screen_002c-j"></span>
+<span id="index-screen_002c-k"></span>
+<span id="index-screen_002c-m"></span>
+<span id="index-i"></span>
</dd>
<dt><kbd>{i}</kbd></dt>
-<dd><a name="index-j"></a>
+<dd><span id="index-j"></span>
</dd>
<dt><kbd>{j}</kbd></dt>
-<dd><a name="index-k"></a>
+<dd><span id="index-k"></span>
</dd>
<dt><kbd>{k}</kbd></dt>
-<dd><a name="index-m"></a>
+<dd><span id="index-m"></span>
</dd>
<dt><kbd>{m}</kbd></dt>
<dd><p>Expand the selected frame to the respective screen edge based on U.S.
@@ -4611,22 +4536,22 @@ of the screen (50% by default if ARG is 1 or nil) but
keep it at the screen
edge. Respects the pixel edge offsets returned by
<code>hycontrol-get-screen-offsets</code>.
</p>
-<a name="index-balance-windows"></a>
-<a name="index-windows_002c-balance"></a>
-<a name="index-equalize-windows"></a>
-<a name="index-windows_002c-equalize"></a>
-<a name="index-screen_002c-_003d"></a>
-<a name="index-_003d"></a>
+<span id="index-balance-windows"></span>
+<span id="index-windows_002c-balance"></span>
+<span id="index-equalize-windows"></span>
+<span id="index-windows_002c-equalize"></span>
+<span id="index-screen_002c-_003d"></span>
+<span id="index-_003d"></span>
</dd>
<dt><kbd>{=}</kbd></dt>
<dd><p>After confirmation, in WINDOWS mode, make the current frame’s
windows
approximately the same size. In FRAMES mode, make all visible frames
the size of the selected frame.
</p>
-<a name="index-shrink-window"></a>
-<a name="index-window_002c-shrink"></a>
-<a name="index-screen_002c-_002d"></a>
-<a name="index-_002d"></a>
+<span id="index-shrink-window"></span>
+<span id="index-window_002c-shrink"></span>
+<span id="index-screen_002c-_002d"></span>
+<span id="index-_002d"></span>
</dd>
<dt><kbd>{-}</kbd></dt>
<dd><p>In WINDOWS mode, shrink window to its smallest possible number of lines
@@ -4634,62 +4559,62 @@ to display the entire buffer, if possible. Otherwise
or if the window
is already displaying all of its lines, shrink it to about one line,
if possible.
</p>
-<a name="index-frame_002c-shrink"></a>
-<a name="index-shrink-frame"></a>
+<span id="index-frame_002c-shrink"></span>
+<span id="index-shrink-frame"></span>
<p>In FRAMES mode, make the frame as small as possible while still
displaying it.
</p>
-<a name="index-window_002c-maximize"></a>
-<a name="index-maximize-window"></a>
-<a name="index-frame_002c-maximize"></a>
-<a name="index-maximize-frame"></a>
-<a name="index-screen_002c-_002b"></a>
-<a name="index-_002b"></a>
+<span id="index-window_002c-maximize"></span>
+<span id="index-maximize-window"></span>
+<span id="index-frame_002c-maximize"></span>
+<span id="index-maximize-frame"></span>
+<span id="index-screen_002c-_002b"></span>
+<span id="index-_002b"></span>
</dd>
<dt><kbd>{+}</kbd></dt>
<dd><p>Make the window or frame (based on mode) as large as possible. In
FRAMES
mode, a second press of this key restores its size to whatever it was prior
to the first use of this command.
</p>
-<a name="index-burying"></a>
-<a name="index-unburying"></a>
-<a name="index-buffer_002c-bury"></a>
-<a name="index-buffer_002c-unbury"></a>
-<a name="index-screen_002c-b"></a>
-<a name="index-b"></a>
+<span id="index-burying"></span>
+<span id="index-unburying"></span>
+<span id="index-buffer_002c-bury"></span>
+<span id="index-buffer_002c-unbury"></span>
+<span id="index-screen_002c-b"></span>
+<span id="index-b"></span>
</dd>
<dt><kbd>{b}</kbd></dt>
<dd><p>Bury the selected buffer within the buffer list, displaying the next
buffer.
-<a name="index-screen_002c-u"></a>
-<a name="index-u"></a>
+<span id="index-screen_002c-u"></span>
+<span id="index-u"></span>
</p></dd>
<dt><kbd>{u}</kbd></dt>
<dd><p>Unbury the bottom buffer in the buffer list and display it in the
selected window.
</p>
-<a name="index-swapping"></a>
-<a name="index-buffer_002c-swap-1"></a>
-<a name="index-screen_002c-_007e"></a>
-<a name="index-_007e"></a>
+<span id="index-swapping"></span>
+<span id="index-buffer_002c-swap-1"></span>
+<span id="index-screen_002c-_007e"></span>
+<span id="index-_007e"></span>
</dd>
<dt><kbd>{~}</kbd></dt>
<dd><p>Swap two buffers between the selected window or frame and one other.
In WINDOWS mode, there must be precisely two windows in the selected
frame. In FRAMES mode, the second frame must have a single window.
</p>
-<a name="index-zooming"></a>
-<a name="index-window_002c-zoom"></a>
-<a name="index-frame_002c-zoom"></a>
-<a name="index-zoom_002dfrm_002eel"></a>
-<a name="index-screen_002c-Z"></a>
-<a name="index-Z"></a>
+<span id="index-zooming"></span>
+<span id="index-window_002c-zoom"></span>
+<span id="index-frame_002c-zoom"></span>
+<span id="index-zoom_002dfrm_002eel"></span>
+<span id="index-screen_002c-Z"></span>
+<span id="index-Z"></span>
</dd>
<dt><kbd>{Z}</kbd></dt>
<dd><p>Zoom in selected window or frame text based on mode, increasing default
face size.
-<a name="index-screen_002c-z"></a>
-<a name="index-z"></a>
+<span id="index-screen_002c-z"></span>
+<span id="index-z"></span>
</p></dd>
<dt><kbd>{z}</kbd></dt>
<dd><p>Zoom out selected window or frame text based on mode, increasing default
@@ -4700,21 +4625,21 @@ sizes by which to zoom.
<p>FRAMES mode zooming requires the separately available
<samp>zoom-frm.el</samp> library. WINDOWS zooming works without this library.
</p>
-<a name="index-HyControl-switch-modes"></a>
-<a name="index-HyControl-toggle-modes"></a>
-<a name="index-toggle-HyControl-mode"></a>
-<a name="index-screen_002c-t-1"></a>
-<a name="index-t"></a>
+<span id="index-HyControl-switch-modes"></span>
+<span id="index-HyControl-toggle-modes"></span>
+<span id="index-toggle-HyControl-mode"></span>
+<span id="index-screen_002c-t-1"></span>
+<span id="index-t"></span>
</dd>
<dt><kbd>{t}</kbd></dt>
<dd><p>Toggle between WINDOWS and FRAMES submodes.
</p>
-<a name="index-HyControl-quit"></a>
-<a name="index-HyControl-exit"></a>
-<a name="index-quit-HyControl"></a>
-<a name="index-exit-HyControl"></a>
-<a name="index-screen_002c-q-1"></a>
-<a name="index-q-1"></a>
+<span id="index-HyControl-quit"></span>
+<span id="index-HyControl-exit"></span>
+<span id="index-quit-HyControl"></span>
+<span id="index-exit-HyControl"></span>
+<span id="index-screen_002c-q-1"></span>
+<span id="index-q-1"></span>
</dd>
<dt><kbd>{q}</kbd></dt>
<dd><p>Quit from HyControl mode and restore normal key bindings.
@@ -4726,18 +4651,18 @@ sizes by which to zoom.
settings. You may ignore it if you are not familiar with Emacs
variables and functions or with customized Emacs.
</p>
-<a name="index-HyControl-edge-placement"></a>
-<a name="index-HyControl-corner-placement"></a>
+<span id="index-HyControl-edge-placement"></span>
+<span id="index-HyControl-corner-placement"></span>
<p>HyControl allows placement of frames at screen edges and corners with the
frame cycle command, <kbd>{c}</kbd>, and direct placement using the layout of
the
numeric keypad keys, if available, or the <kbd>p</kbd> virtual keypad key
otherwise. (Note that a screen may span multiple physical monitors).
</p>
-<a name="index-HyControl-screen-edge-offsets"></a>
-<a name="index-screen_002c-edge-offsets"></a>
-<a name="index-hycontrol_002dscreen_002doffset_002dalist"></a>
-<a name="index-hycontrol_002dset_002dscreen_002doffsets"></a>
-<a name="index-hycontrol_002dget_002dscreen_002doffsets"></a>
+<span id="index-HyControl-screen-edge-offsets"></span>
+<span id="index-screen_002c-edge-offsets"></span>
+<span id="index-hycontrol_002dscreen_002doffset_002dalist"></span>
+<span id="index-hycontrol_002dset_002dscreen_002doffsets"></span>
+<span id="index-hycontrol_002dget_002dscreen_002doffsets"></span>
<p>To prevent widgets and toolbars at the corners of the screen from
being obscured, HyControl can offset each frame from each screen edge
by a fixed number of pixels. These offsets are specified by the
@@ -4748,17 +4673,17 @@ values. <code>hycontrol-get-screen-offsets</code>
returns the list of offsets
in clockwise order starting from the top edge. Both functions display a
minibuffer message with the current offsets when called interactively.
</p>
-<a name="index-hycontrol_002dframe_002doffset-1"></a>
-<a name="index-frame_002c-make"></a>
-<a name="index-make-frame"></a>
+<span id="index-hycontrol_002dframe_002doffset-1"></span>
+<span id="index-frame_002c-make"></span>
+<span id="index-make-frame"></span>
<p>When HyControl creates a new frame, it automatically sizes it to the
same size as the previously selected frame and offsets it from that
frame by the (X . Y) number of pixels given in the variable,
<code>hycontrol-frame-offset</code>.
</p>
-<a name="index-file_002c-hycontrol_002eel"></a>
-<a name="index-hycontrol_002denable_002dframes_002dmode"></a>
-<a name="index-hycontrol_002denable_002d_002dwindows_002dmode"></a>
+<span id="index-file_002c-hycontrol_002eel"></span>
+<span id="index-hycontrol_002denable_002dframes_002dmode"></span>
+<span id="index-hycontrol_002denable_002d_002dwindows_002dmode"></span>
<p>The source code for the HyControl system is in <samp>hycontrol.el</samp>
within your Hyperbole source directory, given by <code>hyperb:dir</code>.
HyControl uses standard Emacs keymaps, so any keys can be rebound.
@@ -4771,20 +4696,18 @@ press that key, the other command can be reached by
pressing <kbd>{t}</kbd>.
</p>
<hr>
-<a name="Koutliner"></a>
-<div class="header">
+<span id="Koutliner"></span><div class="header">
<p>
Next: <a href="#HyRolo" accesskey="n" rel="next">HyRolo</a>, Previous: <a
href="#HyControl" accesskey="p" rel="prev">HyControl</a>, Up: <a href="#Top"
accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Koutliner-1"></a>
-<h2 class="chapter">6 Koutliner</h2>
+<span id="Koutliner-1"></span><h2 class="chapter">6 Koutliner</h2>
-<a name="index-outliner"></a>
-<a name="index-autonumber"></a>
-<a name="index-relative-autonumber"></a>
-<a name="index-permanent-identifier"></a>
-<a name="index-idstamp"></a>
-<a name="index-hyperlink-anchor"></a>
+<span id="index-outliner"></span>
+<span id="index-autonumber"></span>
+<span id="index-relative-autonumber"></span>
+<span id="index-permanent-identifier"></span>
+<span id="index-idstamp"></span>
+<span id="index-hyperlink-anchor"></span>
<p>The Hyperbole outliner, the Koutliner (pronounced Kay-outliner),
produces structured, autonumbered documents composed of hierarchies of
cells. Each <em>cell</em> has two identifiers, a
@@ -4797,9 +4720,9 @@ See <a href="#Autonumbering">Autonumbering</a>.
<p>Cells also store their time of creation and the user who created the
cell. User-defined attributes may also be added to cells. See <a
href="#Cell-Attributes">Cell Attributes</a>.
</p>
-<a name="index-file_002c-EXAMPLE_002ekotl"></a>
-<a name="index-menu_002c-Outline_002fExample"></a>
-<a name="index-C_002dh-h-k-e"></a>
+<span id="index-file_002c-EXAMPLE_002ekotl"></span>
+<span id="index-menu_002c-Outline_002fExample"></span>
+<span id="index-C_002dh-h-k-e"></span>
<p>This chapter expands on the information given in the
<samp>EXAMPLE.kotl</samp>
file included with Hyperbole. Use <kbd>{C-h h k e}</kbd> to display that
file, as pictured on the following page. It is an actual outline file
@@ -4810,60 +4733,58 @@ when you invoke this command.
<p>See <a href="#Koutliner-Keys">Koutliner Keys</a>, for a full summary of the
key bindings and
commands available in the Koutliner.
</p>
-<div class="float"><a name="image_003aKoutliner"></a>
+<div class="float"><span id="image_003aKoutliner"></span>
<img src="im/koutliner.png" alt="Koutliner Screenshot">
<div class="float-caption"><p><strong>Image 6.1: </strong>Koutliner
Screenshot</p></div></div><br>
<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">• <a href="#Menu-Commands"
accesskey="1">Menu Commands</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Menu-Commands"
accesskey="1">Menu Commands</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Creating-Outlines"
accesskey="2">Creating Outlines</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Creating-Outlines"
accesskey="2">Creating Outlines</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Autonumbering"
accesskey="3">Autonumbering</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Autonumbering"
accesskey="3">Autonumbering</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Idstamps"
accesskey="4">Idstamps</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Idstamps"
accesskey="4">Idstamps</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Editing"
accesskey="5">Editing</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Editing"
accesskey="5">Editing</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Viewing"
accesskey="6">Viewing</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Viewing"
accesskey="6">Viewing</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Links"
accesskey="7">Links</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Links"
accesskey="7">Links</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Cell-Attributes"
accesskey="8">Cell Attributes</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Cell-Attributes"
accesskey="8">Cell Attributes</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Koutliner-History"
accesskey="9">Koutliner History</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Koutliner-History"
accesskey="9">Koutliner History</a></td><td> </td><td align="left"
valign="top">
</td></tr>
</table>
<hr>
-<a name="Menu-Commands"></a>
-<div class="header">
+<span id="Menu-Commands"></span><div class="header">
<p>
Next: <a href="#Creating-Outlines" accesskey="n" rel="next">Creating
Outlines</a>, Previous: <a href="#Koutliner" accesskey="p"
rel="prev">Koutliner</a>, Up: <a href="#Koutliner" accesskey="u"
rel="up">Koutliner</a> [<a href="#SEC_Contents" title="Table of
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Menu-Commands-1"></a>
-<h3 class="section">6.1 Menu Commands</h3>
+<span id="Menu-Commands-1"></span><h3 class="section">6.1 Menu Commands</h3>
<p>The Kotl/ menu entry on the Hyperbole minibuffer menu provides access to
a number of major Koutliner commands:
</p>
-<a name="index-outliner-commands"></a>
-<a name="index-Koutliner-commands"></a>
-<a name="index-Koutliner-menu"></a>
-<a name="index-menu_002c-Koutliner"></a>
-<a name="index-kotl_002dmode_003ashow_002dall"></a>
-<a name="index-kvspec_003atoggle_002dblank_002dlines"></a>
-<a name="index-kfile_003afind"></a>
-<a name="index-kotl_002dmode_003ahide_002dsublevels"></a>
-<a name="index-kotl_002dmode_003ahide_002dtree"></a>
-<a name="index-kotl_002dmode_003akill_002dtree"></a>
-<a name="index-klink_003acreate"></a>
-<a name="index-kotl_002dmode_003aoverview"></a>
-<a name="index-kotl_002dmode_003ashow_002dtree"></a>
-<a name="index-kotl_002dmode_003atop_002dcells"></a>
-<a name="index-kvspec_003aactivate"></a>
+<span id="index-outliner-commands"></span>
+<span id="index-Koutliner-commands"></span>
+<span id="index-Koutliner-menu"></span>
+<span id="index-menu_002c-Koutliner"></span>
+<span id="index-kotl_002dmode_003ashow_002dall"></span>
+<span id="index-kvspec_003atoggle_002dblank_002dlines"></span>
+<span id="index-kfile_003afind"></span>
+<span id="index-kotl_002dmode_003ahide_002dsublevels"></span>
+<span id="index-kotl_002dmode_003ahide_002dtree"></span>
+<span id="index-kotl_002dmode_003akill_002dtree"></span>
+<span id="index-klink_003acreate"></span>
+<span id="index-kotl_002dmode_003aoverview"></span>
+<span id="index-kotl_002dmode_003ashow_002dtree"></span>
+<span id="index-kotl_002dmode_003atop_002dcells"></span>
+<span id="index-kvspec_003aactivate"></span>
<div class="example">
<pre class="example">Menu Item Command Description
====================================================================
@@ -4883,40 +4804,38 @@ Vspec kvspec:activate Set a view
specification
====================================================================
</pre></div>
-<a name="index-C_002dmouse_002d3"></a>
-<a name="index-popup-menu_002c-Koutliner"></a>
-<a name="index-menubar-menu_002c-Koutliner"></a>
+<span id="index-C_002dmouse_002d3"></span>
+<span id="index-popup-menu_002c-Koutliner"></span>
+<span id="index-menubar-menu_002c-Koutliner"></span>
<p>The popup and menubar Koutline menu, as displayed here, offers a more
complete set of the Koutliner commands. <kbd>{C-mouse-3}</kbd> pops up the
mode-specific menu in Emacs. Experiment with the menu or
read the following sections explaining commands.
</p>
-<div class="float"><a name="image_003aKoutline-Menu"></a>
+<div class="float"><span id="image_003aKoutline-Menu"></span>
<img src="im/menu-koutline.png" alt="Koutline Menu">
<div class="float-caption"><p><strong>Image 6.2: </strong>Koutline
Menu</p></div></div><br>
<hr>
-<a name="Creating-Outlines"></a>
-<div class="header">
+<span id="Creating-Outlines"></span><div class="header">
<p>
Next: <a href="#Autonumbering" accesskey="n" rel="next">Autonumbering</a>,
Previous: <a href="#Menu-Commands" accesskey="p" rel="prev">Menu Commands</a>,
Up: <a href="#Koutliner" accesskey="u" rel="up">Koutliner</a> [<a
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Creating-Outlines-1"></a>
-<h3 class="section">6.2 Creating Outlines</h3>
+<span id="Creating-Outlines-1"></span><h3 class="section">6.2 Creating
Outlines</h3>
-<a name="index-outline-file-suffix"></a>
-<a name="index-outline_002c-creating"></a>
-<a name="index-file_002c-_002ekotl-suffix"></a>
+<span id="index-outline-file-suffix"></span>
+<span id="index-outline_002c-creating"></span>
+<span id="index-file_002c-_002ekotl-suffix"></span>
<p>In addition to the Kotl/Create menu item, you can create and experiment
with outline files simply by finding a file, <kbd>{C-x C-f}</kbd>, with a
<samp>.kotl</samp> suffix. <samp>.kot</samp> will also work for users
impaired by
operating systems with 3-character suffix limitations.
</p>
-<a name="index-root-cell"></a>
-<a name="index-top_002dlevel-cell"></a>
-<a name="index-cell_002c-top_002dlevel"></a>
-<a name="index-cell_002c-idstamp-0"></a>
+<span id="index-root-cell"></span>
+<span id="index-top_002dlevel-cell"></span>
+<span id="index-cell_002c-top_002dlevel"></span>
+<span id="index-cell_002c-idstamp-0"></span>
<p>When a new koutline is created, an invisible root cell is added. Its
permanent and relative ids are both 0, and it is considered to be at
level 0 in the outline. All visible cells in the outline are at level 1
@@ -4934,16 +4853,14 @@ structure of the outline changes.
</p>
<hr>
-<a name="Autonumbering"></a>
-<div class="header">
+<span id="Autonumbering"></span><div class="header">
<p>
Next: <a href="#Idstamps" accesskey="n" rel="next">Idstamps</a>, Previous: <a
href="#Creating-Outlines" accesskey="p" rel="prev">Creating Outlines</a>, Up:
<a href="#Koutliner" accesskey="u" rel="up">Koutliner</a> [<a
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Autonumbering-1"></a>
-<h3 class="section">6.3 Autonumbering</h3>
+<span id="Autonumbering-1"></span><h3 class="section">6.3 Autonumbering</h3>
-<a name="index-autonumber-1"></a>
-<a name="index-relative-identifier"></a>
+<span id="index-autonumber-1"></span>
+<span id="index-relative-identifier"></span>
<p>See <a href="#Adding-and-Killing">Adding and Killing</a>, for information
on how to add new cells to or
remove cells from a koutline. As you do this, or as you promote or
demote cells within the outline, the labels preceding the contents of
@@ -4951,16 +4868,16 @@ each cell automatically update to reflect the new
structure. These
labels are also known as <em>autonumbers</em> and as <em>relative ids</em>
because they change as the structure changes.
</p>
-<a name="index-outline-structure"></a>
+<span id="index-outline-structure"></span>
<p>The outline structure is shown by these labels and by the indentation of
each outline level. Normally, each deeper level is indented another
three characters, to reflect the nesting.
</p>
-<a name="index-label-type_002c-alpha"></a>
-<a name="index-label-type_002c-legal"></a>
-<a name="index-alpha-labels"></a>
-<a name="index-legal-labels"></a>
-<a name="index-outline_002c-label-type"></a>
+<span id="index-label-type_002c-alpha"></span>
+<span id="index-label-type_002c-legal"></span>
+<span id="index-alpha-labels"></span>
+<span id="index-legal-labels"></span>
+<span id="index-outline_002c-label-type"></span>
<p>The default autonumbers are called <em>alphanumeric labels</em> because
they alternate between using numbers and letters to distinguish each
successive level. Each alphanumeric label uniquely identifies a cell’s
@@ -4978,18 +4895,18 @@ to read aloud than equivalent legal ones. They also
simplify
distinguishing between even and odd level labels because of the
alternating character set.
</p>
-<a name="index-koutliner_002c-C_002dc-C_002dl"></a>
-<a name="index-label-type_002c-changing"></a>
+<span id="index-koutliner_002c-C_002dc-C_002dl"></span>
+<span id="index-label-type_002c-changing"></span>
<p>You can change the labeling scheme used in a particular outline with
the command <kbd>{C-c C-l}</kbd>. A <kbd>{?}</kbd> will show all of the
labeling options. The default, alpha labels, legal labels, and
permanent idstamps (permanent cell ids) are all available.
</p>
-<a name="index-label-separator_002c-changing"></a>
-<a name="index-cell_002c-label-separator"></a>
-<a name="index-outline_002c-label-separator"></a>
-<a name="index-koutliner_002c-C_002dc-M_002dl"></a>
-<a name="index-koutliner_002c-C_002du-C_002dc-M_002dl"></a>
+<span id="index-label-separator_002c-changing"></span>
+<span id="index-cell_002c-label-separator"></span>
+<span id="index-outline_002c-label-separator"></span>
+<span id="index-koutliner_002c-C_002dc-M_002dl"></span>
+<span id="index-koutliner_002c-C_002du-C_002dc-M_002dl"></span>
<p>A cell label is normally followed by a period and a space, called the
<em>label separator</em>, prior to the start of the cell contents. You can
change the separator for the current outline with <kbd>{C-c M-l}</kbd>.
@@ -4999,46 +4916,44 @@ For example, use the value " " (two spaces)
to get eliminate the
trailing period after each cell label. The separator must be at least
two characters long but may be longer.
</p>
-<a name="index-file_002c-_002eemacs-3"></a>
-<a name="index-initialization-file"></a>
+<span id="index-file_002c-_002eemacs-3"></span>
+<span id="index-initialization-file"></span>
<p>If you find a separator that you prefer for all outlines, change the
separator setting permanently by adding the following line to your Emacs
initialization file, <samp>~/.emacs</samp>, substituting for
‘your-separator’:
</p>
-<a name="index-label-separator_002c-default"></a>
-<a name="index-kview_003adefault_002dlabel_002dseparator"></a>
+<span id="index-label-separator_002c-default"></span>
+<span id="index-kview_003adefault_002dlabel_002dseparator"></span>
<div class="lisp">
<pre class="lisp">(setq kview:default-label-separator
"your-separator")
</pre></div>
<hr>
-<a name="Idstamps"></a>
-<div class="header">
+<span id="Idstamps"></span><div class="header">
<p>
Next: <a href="#Editing" accesskey="n" rel="next">Editing</a>, Previous: <a
href="#Autonumbering" accesskey="p" rel="prev">Autonumbering</a>, Up: <a
href="#Koutliner" accesskey="u" rel="up">Koutliner</a> [<a
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Idstamps-1"></a>
-<h3 class="section">6.4 Idstamps</h3>
+<span id="Idstamps-1"></span><h3 class="section">6.4 Idstamps</h3>
-<a name="index-permanent-identifier-1"></a>
-<a name="index-idstamp-1"></a>
+<span id="index-permanent-identifier-1"></span>
+<span id="index-idstamp-1"></span>
<p>Idstamps (permanent ids) are associated with each cell. They maintain
hyperlinks as cells are reordered within a koutline. See <a
href="#Links">Links</a>.
Idstamps may be displayed in place of the outline level relative ids.
Use <kbd>{C-c C-l id <span class="key">RET</span>}</kbd>.
</p>
-<a name="index-idstamp-counter"></a>
+<span id="index-idstamp-counter"></span>
<p>An idstamp counter for each outline starts at 0 and is incremented by
one each time a cell is added to the outline. This idstamp stays with
the cell no matter where it is moved within the outline. If the cell is
deleted, its idstamp is not reused.
</p>
-<a name="index-root-cell-1"></a>
-<a name="index-top_002dlevel-cell-1"></a>
-<a name="index-cell_002c-top_002dlevel-1"></a>
-<a name="index-cell_002c-idstamp-0-1"></a>
-<a name="index-idstamp-0"></a>
+<span id="index-root-cell-1"></span>
+<span id="index-top_002dlevel-cell-1"></span>
+<span id="index-cell_002c-top_002dlevel-1"></span>
+<span id="index-cell_002c-idstamp-0-1"></span>
+<span id="index-idstamp-0"></span>
<p>The 0 idstamp is always assigned to the root node of the entire outline.
This node is never visible within the outline, but is used so that the
outline may be treated as a single tree when needed. Idstamps always
@@ -5046,13 +4961,11 @@ begin with a 0, as in 012, to distinguish them from
relative ids.
</p>
<hr>
-<a name="Editing"></a>
-<div class="header">
+<span id="Editing"></span><div class="header">
<p>
Next: <a href="#Viewing" accesskey="n" rel="next">Viewing</a>, Previous: <a
href="#Idstamps" accesskey="p" rel="prev">Idstamps</a>, Up: <a
href="#Koutliner" accesskey="u" rel="up">Koutliner</a> [<a
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Editing-1"></a>
-<h3 class="section">6.5 Editing</h3>
+<span id="Editing-1"></span><h3 class="section">6.5 Editing</h3>
<p>Text editing within the Koutliner works just as it does for other
buffers, except when you need to deal with the structural components of
@@ -5067,45 +4980,43 @@ since the Koutliner uses differently named commands
made to act
like the regular editing commands. Koutliner commands, however, account
for the structure and indentation in koutlines.
</p>
-<a name="index-cell_002c-selection"></a>
+<span id="index-cell_002c-selection"></span>
<p>You may use the mouse to select parts of the contents of a single cell
for editing. But don’t drag across cell boundaries and then edit the
selected region, since that will destroy the outline structure.
</p>
<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">• <a href="#Adding-and-Killing"
accesskey="1">Adding and Killing</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Adding-and-Killing"
accesskey="1">Adding and Killing</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Relocating-and-Copying"
accesskey="2">Relocating and Copying</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Relocating-and-Copying"
accesskey="2">Relocating and Copying</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Moving-Around"
accesskey="3">Moving Around</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Moving-Around"
accesskey="3">Moving Around</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Filling"
accesskey="4">Filling</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Filling"
accesskey="4">Filling</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Transposing"
accesskey="5">Transposing</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Transposing"
accesskey="5">Transposing</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Splitting-and-Appending"
accesskey="6">Splitting and Appending</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Splitting-and-Appending"
accesskey="6">Splitting and Appending</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Inserting-and-Importing"
accesskey="7">Inserting and Importing</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Inserting-and-Importing"
accesskey="7">Inserting and Importing</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Exporting"
accesskey="8">Exporting</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Exporting"
accesskey="8">Exporting</a></td><td> </td><td align="left"
valign="top">
</td></tr>
</table>
<hr>
-<a name="Adding-and-Killing"></a>
-<div class="header">
+<span id="Adding-and-Killing"></span><div class="header">
<p>
Next: <a href="#Relocating-and-Copying" accesskey="n" rel="next">Relocating
and Copying</a>, Previous: <a href="#Editing" accesskey="p"
rel="prev">Editing</a>, Up: <a href="#Editing" accesskey="u"
rel="up">Editing</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Adding-and-Killing-1"></a>
-<h4 class="subsection">6.5.1 Adding and Killing</h4>
+<span id="Adding-and-Killing-1"></span><h4 class="subsection">6.5.1 Adding and
Killing</h4>
-<a name="index-koutliner_002c-C_002dj"></a>
-<a name="index-koutliner_002c-C_002du-c_002dj"></a>
-<a name="index-koutliner_002c-C_002dc-a"></a>
-<a name="index-koutliner_002c-C_002dc-p"></a>
-<a name="index-cell_002c-adding"></a>
-<a name="index-cell_002c-creating"></a>
+<span id="index-koutliner_002c-C_002dj"></span>
+<span id="index-koutliner_002c-C_002du-c_002dj"></span>
+<span id="index-koutliner_002c-C_002dc-a"></span>
+<span id="index-koutliner_002c-C_002dc-p"></span>
+<span id="index-cell_002c-adding"></span>
+<span id="index-cell_002c-creating"></span>
<p><kbd>{C-j}</kbd> adds a new cell as a successor sibling of the
current cell, that is, the next cell at the same level as the current
cell. If you enter a positive number as a prefix argument, that number
@@ -5114,13 +5025,13 @@ handled specially. It adds a single cell as a child of
the current cell.
<kbd>{C-c a}</kbd> does the same thing. <kbd>{C-c p}</kbd> adds the cell as
the successor of the current cell’s parent.
</p>
-<a name="index-koutliner_002c-C_002dc-C_002dk"></a>
-<a name="index-koutliner_002c-C_002dc-k"></a>
-<a name="index-koutliner_002c-C_002du-C_002dc-k"></a>
-<a name="index-koutliner_002c-C_002dy"></a>
-<a name="index-cell_002c-killing"></a>
-<a name="index-cell_002c-yanking-contents"></a>
-<a name="index-tree_002c-killing"></a>
+<span id="index-koutliner_002c-C_002dc-C_002dk"></span>
+<span id="index-koutliner_002c-C_002dc-k"></span>
+<span id="index-koutliner_002c-C_002du-C_002dc-k"></span>
+<span id="index-koutliner_002c-C_002dy"></span>
+<span id="index-cell_002c-killing"></span>
+<span id="index-cell_002c-yanking-contents"></span>
+<span id="index-tree_002c-killing"></span>
<p><kbd>{C-c C-k}</kbd> kills the current cell and its entire subtree.
<kbd>{C-c k}</kbd> kills the contents of a cell from point through the end
of the cell; it does not remove the cell itself. <kbd>{C-u C-c k}</kbd>
@@ -5130,26 +5041,24 @@ buffer with <kbd>{C-y}</kbd>.
</p>
<hr>
-<a name="Relocating-and-Copying"></a>
-<div class="header">
+<span id="Relocating-and-Copying"></span><div class="header">
<p>
Next: <a href="#Moving-Around" accesskey="n" rel="next">Moving Around</a>,
Previous: <a href="#Adding-and-Killing" accesskey="p" rel="prev">Adding and
Killing</a>, Up: <a href="#Editing" accesskey="u" rel="up">Editing</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Relocating-and-Copying-1"></a>
-<h4 class="subsection">6.5.2 Relocating and Copying</h4>
+<span id="Relocating-and-Copying-1"></span><h4 class="subsection">6.5.2
Relocating and Copying</h4>
-<a name="index-promotion"></a>
-<a name="index-demotion"></a>
-<a name="index-tree_002c-promoting"></a>
-<a name="index-tree_002c-demoting"></a>
+<span id="index-promotion"></span>
+<span id="index-demotion"></span>
+<span id="index-tree_002c-promoting"></span>
+<span id="index-tree_002c-demoting"></span>
<p><em>Demotion</em> is the act of moving a tree down one or more levels in the
outline. The new tree will become either the successor or the first
child of the cell which precedes it in the outline. <em>Promotion</em> is
the inverse operation. Note that trees (cells and their entire
substructure) are promoted and demoted, not individual cells.
</p>
-<a name="index-koutliner_002c-TAB"></a>
-<a name="index-koutliner_002c-M_002dTAB"></a>
+<span id="index-koutliner_002c-TAB"></span>
+<span id="index-koutliner_002c-M_002dTAB"></span>
<p>Trees may be demoted or promoted by pressing <tt class="key">TAB</tt> or
<kbd>{M-<span class="key">TAB</span>}</kbd> (or <kbd>{<span
class="key">SHIFT</span>-<span class="key">TAB</span>}</kbd>) respectively, as
in
most outliners today. <kbd>{M-0 <span class="key">TAB</span>}</kbd> and
<kbd>{M-0 M-<span class="key">TAB</span>}</kbd>
@@ -5161,11 +5070,11 @@ outline may not support movement of the tree by the
number of levels
requested, however, in which case the maximal possible adjustment is
made.
</p>
-<a name="index-koutliner_002c-M_002d1-TAB"></a>
-<a name="index-inserting-tabs"></a>
-<a name="index-tabs_002c-inserting"></a>
-<a name="index-kotl_002dmode_003aindent_002dtabs_002dmode"></a>
-<a name="index-Koutliner_002c-toggle-tab-behavior"></a>
+<span id="index-koutliner_002c-M_002d1-TAB"></span>
+<span id="index-inserting-tabs"></span>
+<span id="index-tabs_002c-inserting"></span>
+<span id="index-kotl_002dmode_003aindent_002dtabs_002dmode"></span>
+<span id="index-Koutliner_002c-toggle-tab-behavior"></span>
<p><kbd>{M-1 <span class="key">TAB</span>}</kbd> behaves specially. It
toggles the function of
<tt class="key">TAB</tt> and <kbd>{M-<span class="key">TAB</span>}</kbd> so
that they insert a tab
and remove the previous character, respectively. This is useful when
@@ -5176,10 +5085,10 @@ Set the variable,
<code>kotl-mode:indent-tabs-mode</code>, to
Use <kbd>{M-1 <span class="key">TAB</span>}</kbd> to toggle the <tt
class="key">TAB</tt> and
<kbd>{M-<span class="key">TAB</span>}</kbd> keys back to promoting and
demoting trees.
</p>
-<a name="index-tree_002c-copying"></a>
-<a name="index-tree_002c-moving"></a>
-<a name="index-Action-Key_002c-cell-argument"></a>
-<a name="index-koutliner_002c-Action-Key_002c-cell-argument"></a>
+<span id="index-tree_002c-copying"></span>
+<span id="index-tree_002c-moving"></span>
+<span id="index-Action-Key_002c-cell-argument"></span>
+<span id="index-koutliner_002c-Action-Key_002c-cell-argument"></span>
<p>For maximum flexibility in rearranging outlines, there are commands that
move or copy entire trees. Each of these commands prompts for the label
of the root cell to move or copy and for a second cell which specifies
@@ -5194,45 +5103,45 @@ arguments changes each command’s behavior from
insertion at the sibling
level to insertion at the child level.
</p>
<dl compact="compact">
-<dd><a name="index-C_002dc-c"></a>
+<dd><span id="index-C_002dc-c"></span>
</dd>
<dt><kbd>{C-c c}</kbd></dt>
<dd><p>Copy <tree> to be the successor of <cell>.
-<a name="index-C_002du-C_002dc-c"></a>
+<span id="index-C_002du-C_002dc-c"></span>
</p></dd>
<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-1"></a>
+<span id="index-C_002dc-C_002dc-1"></span>
</dd>
<dt><kbd>{C-c C-c}</kbd></dt>
<dd><p>Copy <tree> to be the predecessor of <cell>.
-<a name="index-C_002du-C_002dc-C_002dc"></a>
+<span id="index-C_002du-C_002dc-C_002dc"></span>
</p></dd>
<dt><kbd>{C-u C-c C-c}</kbd></dt>
<dd><p>Copy <tree> to be the first child of the parent of <cell>.
</p>
-<a name="index-C_002dc-m"></a>
+<span id="index-C_002dc-m"></span>
</dd>
<dt><kbd>{C-c m}</kbd></dt>
<dd><p>Move <tree> to be the successor of <cell>.
-<a name="index-C_002du-C_002dc-m"></a>
+<span id="index-C_002du-C_002dc-m"></span>
</p></dd>
<dt><kbd>{C-u C-c m}</kbd></dt>
<dd><p>Move <tree> to follow as the first child of <cell>.
</p>
-<a name="index-C_002dc-C_002dm"></a>
+<span id="index-C_002dc-C_002dm"></span>
</dd>
<dt><kbd>{C-c C-m}</kbd></dt>
<dd><p>Move <tree> to precede <cell>.
-<a name="index-C_002du-C_002dc-C_002dm"></a>
+<span id="index-C_002du-C_002dc-C_002dm"></span>
</p></dd>
<dt><kbd>{C-u C-c C-m}</kbd></dt>
<dd><p>Move <tree> to be the first child of the parent of <cell>.
</p></dd>
</dl>
-<a name="index-mouse_002c-moving-trees"></a>
+<span id="index-mouse_002c-moving-trees"></span>
<p>If you have mouse support under Hyperbole, you can move entire trees
with mouse clicks. Click the Assist Key within the indentation to the
left of a cell and you will be prompted for a tree to move. Double
@@ -5244,95 +5153,93 @@ it to follow as a sucessor.
right now, so don’t try to to move trees across different outline files.
You can, however, copy an outline tree to a non-outline buffer with:
</p>
-<a name="index-tree_002c-exporting"></a>
-<a name="index-outline_002c-exporting"></a>
-<a name="index-tree_002c-mailing"></a>
-<a name="index-outline_002c-mailing"></a>
-<a name="index-exporting-an-outline"></a>
-<a name="index-mailing-an-outline"></a>
+<span id="index-tree_002c-exporting"></span>
+<span id="index-outline_002c-exporting"></span>
+<span id="index-tree_002c-mailing"></span>
+<span id="index-outline_002c-mailing"></span>
+<span id="index-exporting-an-outline"></span>
+<span id="index-mailing-an-outline"></span>
<dl compact="compact">
-<dd><a name="index-C_002dc-M_002dc"></a>
+<dd><span id="index-C_002dc-M_002dc"></span>
</dd>
<dt><kbd>{C-c M-c}</kbd></dt>
<dd><p>Copy a <tree> to a non-koutline buffer.
-<a name="index-C_002dc-_0040"></a>
+<span id="index-C_002dc-_0040"></span>
</p></dd>
<dt><kbd>{C-c @ }</kbd></dt>
<dd><p>Copy a <tree> to an outgoing mail message.
</p></dd>
</dl>
-<a name="index-outline_002c-importing"></a>
-<a name="index-copying"></a>
+<span id="index-outline_002c-importing"></span>
+<span id="index-copying"></span>
<p>You may also import cells into the current koutline from another
koutline with the <kbd>{M-x kimport:text <span class="key">RET</span>}</kbd>
command.
See <a href="#Inserting-and-Importing">Inserting and Importing</a>.
</p>
<hr>
-<a name="Moving-Around"></a>
-<div class="header">
+<span id="Moving-Around"></span><div class="header">
<p>
Next: <a href="#Filling" accesskey="n" rel="next">Filling</a>, Previous: <a
href="#Relocating-and-Copying" accesskey="p" rel="prev">Relocating and
Copying</a>, Up: <a href="#Editing" accesskey="u" rel="up">Editing</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Moving-Around-1"></a>
-<h4 class="subsection">6.5.3 Moving Around</h4>
+<span id="Moving-Around-1"></span><h4 class="subsection">6.5.3 Moving
Around</h4>
-<a name="index-outline_002c-motion"></a>
+<span id="index-outline_002c-motion"></span>
<p>In addition to normal emacs movement commands, you can move within a
cell or from one cell or tree to another.
</p>
<dl compact="compact">
-<dd><a name="index-C_002dc-_002c"></a>
+<dd><span id="index-C_002dc-_002c"></span>
</dd>
<dt><kbd>{C-c ,}</kbd></dt>
<dd><p>Move to the beginning of the current cell.
-<a name="index-C_002dc-_002e-1"></a>
+<span id="index-C_002dc-_002e-1"></span>
</p></dd>
<dt><kbd>{C-c .}</kbd></dt>
<dd><p>Move to the end of the current cell.
</p>
-<a name="index-C_002dc-C_002dn"></a>
+<span id="index-C_002dc-C_002dn"></span>
</dd>
<dt><kbd>{C-c C-n}</kbd></dt>
<dd><p>Move to the next visible cell, regardless of level.
-<a name="index-C_002dc-C_002dp"></a>
+<span id="index-C_002dc-C_002dp"></span>
</p></dd>
<dt><kbd>{C-c C-p}</kbd></dt>
<dd><p>Move to the previous visible cell, regardless of level.
</p>
-<a name="index-C_002dc-C_002df"></a>
+<span id="index-C_002dc-C_002df"></span>
</dd>
<dt><kbd>{C-c C-f}</kbd></dt>
<dd><p>Move forward to this cell’s successor, if any.
-<a name="index-C_002dc-C_002db"></a>
+<span id="index-C_002dc-C_002db"></span>
</p></dd>
<dt><kbd>{C-c C-b}</kbd></dt>
<dd><p>Move backward to this cell’s predecessor, if any.
</p>
-<a name="index-C_002dc-C_002dd"></a>
+<span id="index-C_002dc-C_002dd"></span>
</dd>
<dt><kbd>{C-c C-d}</kbd></dt>
<dd><p>Move to the first child of the current cell, if any.
-<a name="index-C_002dc-C_002du"></a>
+<span id="index-C_002dc-C_002du"></span>
</p></dd>
<dt><kbd>{C-c C-u}</kbd></dt>
<dd><p>Move to the parent cell of the current cell, if any.
</p>
-<a name="index-C_002dc-_003c"></a>
+<span id="index-C_002dc-_003c"></span>
</dd>
<dt><kbd>{C-c <}</kbd></dt>
<dd><p>Move to the first sibling at the current level within this tree.
-<a name="index-C_002dc-_003e"></a>
+<span id="index-C_002dc-_003e"></span>
</p></dd>
<dt><kbd>{C-c >}</kbd></dt>
<dd><p>Move to the last sibling at the current level within this tree.
</p>
-<a name="index-C_002dc-_005e"></a>
+<span id="index-C_002dc-_005e"></span>
</dd>
<dt><kbd>{C-c ^}</kbd></dt>
<dd><p>Move to the level 1 root cell of the current tree.
-<a name="index-C_002dc-_0024"></a>
+<span id="index-C_002dc-_0024"></span>
</p></dd>
<dt><kbd>{C-c $}</kbd></dt>
<dd><p>Move to the last cell in the tree rooted at point, regardless of level.
@@ -5341,33 +5248,31 @@ cell or from one cell or tree to another.
<hr>
-<a name="Filling"></a>
-<div class="header">
+<span id="Filling"></span><div class="header">
<p>
Next: <a href="#Transposing" accesskey="n" rel="next">Transposing</a>,
Previous: <a href="#Moving-Around" accesskey="p" rel="prev">Moving Around</a>,
Up: <a href="#Editing" accesskey="u" rel="up">Editing</a> [<a
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Filling-1"></a>
-<h4 class="subsection">6.5.4 Filling</h4>
+<span id="Filling-1"></span><h4 class="subsection">6.5.4 Filling</h4>
-<a name="index-outline_002c-filling"></a>
-<a name="index-filling"></a>
-<a name="index-word-wrap"></a>
+<span id="index-outline_002c-filling"></span>
+<span id="index-filling"></span>
+<span id="index-word-wrap"></span>
<p><em>Filling</em> is the process of distributing words among lines to extend
short lines and to reduce long ones. Commands are provided to fill a
paragraph within a cell or to fill a whole cell, which may have multiple
paragraphs.
</p>
-<a name="index-filling-1"></a>
-<a name="index-cell_002c-filling"></a>
-<a name="index-paragraph_002c-filling"></a>
-<a name="index-tree_002c-filling"></a>
-<a name="index-margin"></a>
-<a name="index-koutliner_002c-M_002dq"></a>
-<a name="index-koutliner_002c-M_002dj"></a>
-<a name="index-koutliner_002c-C_002dc-M_002dq"></a>
-<a name="index-koutliner_002c-C_002dc-M_002dj"></a>
-<a name="index-koutliner_002c-C_002dM_002dq"></a>
-<a name="index-koutliner_002c-C_002dM_002dj"></a>
+<span id="index-filling-1"></span>
+<span id="index-cell_002c-filling"></span>
+<span id="index-paragraph_002c-filling"></span>
+<span id="index-tree_002c-filling"></span>
+<span id="index-margin"></span>
+<span id="index-koutliner_002c-M_002dq"></span>
+<span id="index-koutliner_002c-M_002dj"></span>
+<span id="index-koutliner_002c-C_002dc-M_002dq"></span>
+<span id="index-koutliner_002c-C_002dc-M_002dj"></span>
+<span id="index-koutliner_002c-C_002dM_002dq"></span>
+<span id="index-koutliner_002c-C_002dM_002dj"></span>
<p><kbd>{M-q}</kbd> or <kbd>{M-j}</kbd> refills a paragraph within a
cell so that its lines wrap within the current margin settings.
<kbd>{C-c M-q}</kbd> or <kbd>{C-c M-j}</kbd> refills all paragraphs within a
@@ -5375,10 +5280,10 @@ cell. <kbd>{C-M-q}</kbd> or <kbd>{C-M-j}</kbd> refills
all cells within a tree.
See the GNU Emacs manual for information on how to set the left and
right margins.
</p>
-<a name="index-kotl_002dmode_003arefill_002dflag"></a>
-<a name="index-refilling"></a>
-<a name="index-attribute_002c-no_002dfill"></a>
-<a name="index-cell_002c-no_002dfill-attribute"></a>
+<span id="index-kotl_002dmode_003arefill_002dflag"></span>
+<span id="index-refilling"></span>
+<span id="index-attribute_002c-no_002dfill"></span>
+<span id="index-cell_002c-no_002dfill-attribute"></span>
<p>Set the variable, <code>kotl-mode:refill-flag</code>, to
‘<samp>t</samp>’ if you want
moving, promoting, demoting, exchanging, splitting and appending cells
to also automatically refill each cell. Generally, this is not
@@ -5388,33 +5293,31 @@ will be lost.
</p>
<hr>
-<a name="Transposing"></a>
-<div class="header">
+<span id="Transposing"></span><div class="header">
<p>
Next: <a href="#Splitting-and-Appending" accesskey="n" rel="next">Splitting
and Appending</a>, Previous: <a href="#Filling" accesskey="p"
rel="prev">Filling</a>, Up: <a href="#Editing" accesskey="u"
rel="up">Editing</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Transposing-1"></a>
-<h4 class="subsection">6.5.5 Transposing</h4>
+<span id="Transposing-1"></span><h4 class="subsection">6.5.5 Transposing</h4>
<p>The Koutliner move and copy commands rearrange entire trees. The
following two commands, in contrast, exchange the locations of two
individual cells.
</p>
-<a name="index-koutliner_002c-C_002dc-e"></a>
-<a name="index-cell_002c-transposing"></a>
-<a name="index-cell_002c-exchanging"></a>
-<a name="index-exchanging-cells"></a>
-<a name="index-transposing-cells"></a>
+<span id="index-koutliner_002c-C_002dc-e"></span>
+<span id="index-cell_002c-transposing"></span>
+<span id="index-cell_002c-exchanging"></span>
+<span id="index-exchanging-cells"></span>
+<span id="index-transposing-cells"></span>
<p><kbd>{C-c e}</kbd> prompts for two cell addresses and exchanges the cell
locations.
</p>
-<a name="index-koutliner_002c-C_002dc-t"></a>
+<span id="index-koutliner_002c-C_002dc-t"></span>
<p><kbd>{C-c t}</kbd> does not prompt. It exchanges the current
and immediatly prior cell, regardless of their levels. If there is no
prior cell it exchanges the current and next cell.
</p>
-<a name="index-cell_002c-mark-and-point"></a>
-<a name="index-koutliner_002c-M_002d0-C_002dc-t"></a>
+<span id="index-cell_002c-mark-and-point"></span>
+<span id="index-koutliner_002c-M_002d0-C_002dc-t"></span>
<p><kbd>{M-0 C-c t}</kbd> exchanges the cells in which point and mark fall.
<kbd>{C-c t}</kbd> with a non-zero numeric prefix argument, N, moves
the current tree maximally past the next N visible cells. If there are
@@ -5422,18 +5325,16 @@ fewer visible, it makes the current cell the last cell
in the outline.
</p>
<hr>
-<a name="Splitting-and-Appending"></a>
-<div class="header">
+<span id="Splitting-and-Appending"></span><div class="header">
<p>
Next: <a href="#Inserting-and-Importing" accesskey="n" rel="next">Inserting
and Importing</a>, Previous: <a href="#Transposing" accesskey="p"
rel="prev">Transposing</a>, Up: <a href="#Editing" accesskey="u"
rel="up">Editing</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Splitting-and-Appending-1"></a>
-<h4 class="subsection">6.5.6 Splitting and Appending</h4>
+<span id="Splitting-and-Appending-1"></span><h4 class="subsection">6.5.6
Splitting and Appending</h4>
-<a name="index-splitting-a-cell"></a>
-<a name="index-cell_002c-splitting"></a>
-<a name="index-koutliner_002c-C_002dc-s"></a>
-<a name="index-koutliner_002c-C_002du-C_002dc-s"></a>
+<span id="index-splitting-a-cell"></span>
+<span id="index-cell_002c-splitting"></span>
+<span id="index-koutliner_002c-C_002dc-s"></span>
+<span id="index-koutliner_002c-C_002du-C_002dc-s"></span>
<p>One cell may be split into two adjacent sibling cells with <kbd>{C-c
s}</kbd>. This leaves the cell contents preceding point in the current
cell, minus any trailing whitespace, and moves the contents following
@@ -5444,11 +5345,11 @@ original cell, rather than as its successor.
<p>All cell attributes in the original cell are propagated to the new one,
aside from the creation attributes and idstamp.
</p>
-<a name="index-koutliner_002c-C_002dc-_002b"></a>
-<a name="index-cell_002c-appending"></a>
-<a name="index-appending-to-a-cell"></a>
-<a name="index-attribute_002c-no_002dfill-1"></a>
-<a name="index-cell_002c-no_002dfill-attribute-1"></a>
+<span id="index-koutliner_002c-C_002dc-_002b"></span>
+<span id="index-cell_002c-appending"></span>
+<span id="index-appending-to-a-cell"></span>
+<span id="index-attribute_002c-no_002dfill-1"></span>
+<span id="index-cell_002c-no_002dfill-attribute-1"></span>
<p><kbd>{C-c +}</kbd> appends the contents of a specified cell to the end of
another cell. It has no effect on cell attributes, except that if one
cell has a ‘no-fill’ attribute, which prevents all but user
requested
@@ -5456,39 +5357,37 @@ filling of a cell, then the cell appended to inherits
this property.
This helps maintain any special formatting the appended text may have.
</p>
<hr>
-<a name="Inserting-and-Importing"></a>
-<div class="header">
+<span id="Inserting-and-Importing"></span><div class="header">
<p>
Next: <a href="#Exporting" accesskey="n" rel="next">Exporting</a>, Previous:
<a href="#Splitting-and-Appending" accesskey="p" rel="prev">Splitting and
Appending</a>, Up: <a href="#Editing" accesskey="u" rel="up">Editing</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Inserting-and-Importing-1"></a>
-<h4 class="subsection">6.5.7 Inserting and Importing</h4>
+<span id="Inserting-and-Importing-1"></span><h4 class="subsection">6.5.7
Inserting and Importing</h4>
-<a name="index-outline_002c-inserting-into"></a>
-<a name="index-outline_002c-importing-into"></a>
-<a name="index-importing"></a>
-<a name="index-insertion"></a>
-<a name="index-koutliner_002c-C_002dx-i"></a>
-<a name="index-outline_002c-foreign-file"></a>
+<span id="index-outline_002c-inserting-into"></span>
+<span id="index-outline_002c-importing-into"></span>
+<span id="index-importing"></span>
+<span id="index-insertion"></span>
+<span id="index-koutliner_002c-C_002dx-i"></span>
+<span id="index-outline_002c-foreign-file"></span>
<p>The paragraphs of another buffer or file may be inserted into a koutline
as a set of cells by using the <kbd>{C-x i}</kbd> command. When prompted,
you may use a buffer name or filename from which to insert;
completion is provided for filenames only.
</p>
-<a name="index-koutliner_002c-C_002du-C_002dx-i"></a>
+<span id="index-koutliner_002c-C_002du-C_002dx-i"></span>
<p>The elements from the original buffer are converted into kcells and
inserted as the successors of the current cell. If <kbd>{C-u C-x i}</kbd>
is used, they are instead inserted as the initial children of the current
cell.
</p>
-<a name="index-kimport_003amode_002dalist"></a>
-<a name="index-kimport_003asuffix_002dalist"></a>
-<a name="index-outline_002c-conversion"></a>
-<a name="index-kotl_002dmode"></a>
-<a name="index-outline-mode"></a>
-<a name="index-koutline-mode"></a>
-<a name="index-file_002c-importing"></a>
-<a name="index-importing-a-file"></a>
+<span id="index-kimport_003amode_002dalist"></span>
+<span id="index-kimport_003asuffix_002dalist"></span>
+<span id="index-outline_002c-conversion"></span>
+<span id="index-kotl_002dmode"></span>
+<span id="index-outline-mode"></span>
+<span id="index-koutline-mode"></span>
+<span id="index-file_002c-importing"></span>
+<span id="index-importing-a-file"></span>
<p>For information on mode and suffix-specific conversions performed on
file elements before they are inserted, see the documentation for the
variables, <code>kimport:mode-alist</code> and
<code>kimport:suffix-alist</code>. This
@@ -5496,11 +5395,11 @@ same conversion process applies if you invoke <kbd>{M-x
kotl-mode
<span class="key">RET</span>}</kbd> in a non-koutline buffer or if you perform
a generic file import
as described later in this section.
</p>
-<a name="index-kimport_003ainsert_002dfile_002dcontents"></a>
+<span id="index-kimport_003ainsert_002dfile_002dcontents"></span>
<p>Use <kbd>{M-x kimport:insert-file-contents <span
class="key">RET</span>}</kbd> to insert an
entire file into the current cell following point.
</p>
-<a name="index-kimport_003afile"></a>
+<span id="index-kimport_003afile"></span>
<p>The outliner supports conversion of three types of files into koutline
files. You can import a file into an existing koutline,
following the tree at point, or can create a new koutline from the
@@ -5508,7 +5407,7 @@ imported file contents. <kbd>{M-x kimport:file <span
class="key">RET</span>}</k
importation type based on the buffer or filename suffix of the file to
import.
</p>
-<a name="index-kotl_002dmode-1"></a>
+<span id="index-kotl_002dmode-1"></span>
<p>If you want to convert a buffer from some other mode into a koutline and
then want to save the converted buffer back to its original file,
thereby replacing the original format, use <kbd>{M-x kotl-mode <span
class="key">RET</span>}</kbd>.
@@ -5519,8 +5418,8 @@ this.
the type of importation used on some text. With these commands, your
original file remains intact.
</p>
-<a name="index-kimport_003atext"></a>
-<a name="index-text-file"></a>
+<span id="index-kimport_003atext"></span>
+<span id="index-text-file"></span>
<p>Use <kbd>{M-x kimport:text <span class="key">RET</span>}</kbd> and you will
be prompted for a text
buffer or file to import and the new koutline buffer or file to create
from its text. Each paragraph will be imported as a separate cell, with
@@ -5528,16 +5427,16 @@ all imported cells at the same level, since indentation
of paragraphs is
presently ignored. This same command can be used to import the
contents, attributes and level structure of cells from another koutline.
</p>
-<a name="index-kimport_003astar_002doutline"></a>
-<a name="index-emacs-outline"></a>
-<a name="index-star-outline"></a>
+<span id="index-kimport_003astar_002doutline"></span>
+<span id="index-emacs-outline"></span>
+<span id="index-star-outline"></span>
<p>Star outlines are standard emacs outlines where each entry begins with
one or more asterisk characters. Use <kbd>{M-x kimport:star-outline
<span class="key">RET</span>}</kbd> and you will be prompted for the star
outline buffer or
file to import and the new koutline buffer or file to create.
</p>
-<a name="index-Augment-outline"></a>
-<a name="index-kimport_003aaug_002dpost_002doutline"></a>
+<span id="index-Augment-outline"></span>
+<span id="index-kimport_003aaug_002dpost_002doutline"></span>
<p>(Skip this if you are unfamiliar with the Augment/NLS system originally
created at SRI.) Files exported from the Augment system as text often
have alphanumeric statement identifiers on the right side. You can
@@ -5547,19 +5446,17 @@ prompted for the Augment buffer or file to import and
the koutline to
create.
</p>
<hr>
-<a name="Exporting"></a>
-<div class="header">
+<span id="Exporting"></span><div class="header">
<p>
Previous: <a href="#Inserting-and-Importing" accesskey="p"
rel="prev">Inserting and Importing</a>, Up: <a href="#Editing" accesskey="u"
rel="up">Editing</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Exporting-1"></a>
-<h4 class="subsection">6.5.8 Exporting</h4>
+<span id="Exporting-1"></span><h4 class="subsection">6.5.8 Exporting</h4>
-<a name="index-outline_002c-exporting-from"></a>
-<a name="index-outline_002c-HTML-conversion"></a>
-<a name="index-exporting"></a>
-<a name="index-HTML-conversion"></a>
-<a name="index-kexport_003ahtml"></a>
+<span id="index-outline_002c-exporting-from"></span>
+<span id="index-outline_002c-HTML-conversion"></span>
+<span id="index-exporting"></span>
+<span id="index-HTML-conversion"></span>
+<span id="index-kexport_003ahtml"></span>
<p>Koutlines may be <em>exported</em> to other file formats. Presently, the
only format supported is conversion to HTML for publishing on the
World-Wide Web.
@@ -5572,41 +5469,37 @@ written; the output file will not be displayed.
</p>
<hr>
-<a name="Viewing"></a>
-<div class="header">
+<span id="Viewing"></span><div class="header">
<p>
Next: <a href="#Links" accesskey="n" rel="next">Links</a>, Previous: <a
href="#Editing" accesskey="p" rel="prev">Editing</a>, Up: <a href="#Koutliner"
accesskey="u" rel="up">Koutliner</a> [<a href="#SEC_Contents"
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index"
title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Viewing-1"></a>
-<h3 class="section">6.6 Viewing</h3>
+<span id="Viewing-1"></span><h3 class="section">6.6 Viewing</h3>
-<a name="index-outline_002c-viewing"></a>
-<a name="index-view"></a>
+<span id="index-outline_002c-viewing"></span>
+<span id="index-view"></span>
<p>The Koutliner has very flexible viewing facilities to allow you to
effectively browse and study large amounts of material.
</p>
<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">• <a href="#Hiding-and-Showing"
accesskey="1">Hiding and Showing</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Hiding-and-Showing"
accesskey="1">Hiding and Showing</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#View-Specs"
accesskey="2">View Specs</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#View-Specs"
accesskey="2">View Specs</a></td><td> </td><td align="left"
valign="top">
</td></tr>
</table>
<hr>
-<a name="Hiding-and-Showing"></a>
-<div class="header">
+<span id="Hiding-and-Showing"></span><div class="header">
<p>
Next: <a href="#View-Specs" accesskey="n" rel="next">View Specs</a>, Previous:
<a href="#Viewing" accesskey="p" rel="prev">Viewing</a>, Up: <a href="#Viewing"
accesskey="u" rel="up">Viewing</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Hiding-and-Showing-1"></a>
-<h4 class="subsection">6.6.1 Hiding and Showing</h4>
+<span id="Hiding-and-Showing-1"></span><h4 class="subsection">6.6.1 Hiding and
Showing</h4>
-<a name="index-outline_002c-hiding"></a>
-<a name="index-outline_002c-showing"></a>
-<a name="index-collapsing"></a>
-<a name="index-expanding"></a>
-<a name="index-hiding"></a>
-<a name="index-showing"></a>
+<span id="index-outline_002c-hiding"></span>
+<span id="index-outline_002c-showing"></span>
+<span id="index-collapsing"></span>
+<span id="index-expanding"></span>
+<span id="index-hiding"></span>
+<span id="index-showing"></span>
<p>Individual cells, branches, or particular levels in the outline may be
hidden or shown. These commands work even when an outline buffer is
read-only, e.g. when its file is not checked out of a version control
@@ -5618,65 +5511,65 @@ See <a href="#View-Specs">View Specs</a>.
<p>Here are the major commands for showing and hiding Koutline cells.
</p>
<dl compact="compact">
-<dd><a name="index-hide-tree"></a>
-<a name="index-tree_002c-show"></a>
-<a name="index-C_002dc-C_002dh"></a>
+<dd><span id="index-hide-tree"></span>
+<span id="index-tree_002c-show"></span>
+<span id="index-C_002dc-C_002dh"></span>
</dd>
<dt><kbd>{C-c C-h}</kbd></dt>
<dd><p>Hide (collapse) the tree rooted at point.
-<a name="index-show-tree"></a>
-<a name="index-tree_002c-show-1"></a>
-<a name="index-C_002dc-C_002ds"></a>
+<span id="index-show-tree"></span>
+<span id="index-tree_002c-show-1"></span>
+<span id="index-C_002dc-C_002ds"></span>
</p></dd>
<dt><kbd>{C-c C-s}</kbd></dt>
<dd><p>Show (expand) the tree rooted at point.
</p>
-<a name="index-outline_002c-all-cells"></a>
-<a name="index-cell_002c-show-all"></a>
-<a name="index-C_002dc-C_002da"></a>
+<span id="index-outline_002c-all-cells"></span>
+<span id="index-cell_002c-show-all"></span>
+<span id="index-C_002dc-C_002da"></span>
</dd>
<dt><kbd>{C-c C-a}</kbd></dt>
<dd><p>Show (expand) all of the cells in the outline. With a prefix arg,
also toggle the display of blank lines between cells.
-<a name="index-level"></a>
-<a name="index-cell_002c-show-levels"></a>
-<a name="index-outline_002c-show-levels"></a>
-<a name="index-C_002dx-_0024"></a>
+<span id="index-level"></span>
+<span id="index-cell_002c-show-levels"></span>
+<span id="index-outline_002c-show-levels"></span>
+<span id="index-C_002dx-_0024"></span>
</p></dd>
<dt><kbd>{C-x $}</kbd></dt>
<dd><p>Show all of the cells down to a particular <level>. You are
prompted
for the level or a prefix argument may be given.
</p>
-<a name="index-subtree_002c-hide"></a>
-<a name="index-tree_002c-hide-subtree"></a>
-<a name="index-cell_002c-hide-subtree"></a>
-<a name="index-hide-subtree"></a>
-<a name="index-C_002dM_002dh"></a>
+<span id="index-subtree_002c-hide"></span>
+<span id="index-tree_002c-hide-subtree"></span>
+<span id="index-cell_002c-hide-subtree"></span>
+<span id="index-hide-subtree"></span>
+<span id="index-C_002dM_002dh"></span>
</dd>
<dt><kbd>{C-M-h}</kbd></dt>
<dd><p>Hide the subtree at point, excluding the root cell.
-<a name="index-subtree_002c-show"></a>
-<a name="index-tree_002c-show-subtree"></a>
-<a name="index-cell_002c-show-subtree"></a>
-<a name="index-show-subtree"></a>
-<a name="index-M_002dx-kotl_002dmode_003ashow_002dsubtree"></a>
+<span id="index-subtree_002c-show"></span>
+<span id="index-tree_002c-show-subtree"></span>
+<span id="index-cell_002c-show-subtree"></span>
+<span id="index-show-subtree"></span>
+<span id="index-M_002dx-kotl_002dmode_003ashow_002dsubtree"></span>
</p></dd>
<dt><kbd>{M-x kotl-mode:show-subtree}</kbd></dt>
<dd><p>Show the subtree at point. Use <kbd>{C-c C-s}</kbd> to achieve a
similar
effect; the only difference is that it will additionally expand the root
cell.
</p>
-<a name="index-overview"></a>
-<a name="index-outline_002c-overview"></a>
-<a name="index-C_002dc-C_002do"></a>
+<span id="index-overview"></span>
+<span id="index-outline_002c-overview"></span>
+<span id="index-C_002dc-C_002do"></span>
</dd>
<dt><kbd>{C-c C-o}</kbd></dt>
<dd><p>Show an overview of the outline by showing only the first line of
every cell. With a prefix arg, also toggle the display of blank lines
between cells.
-<a name="index-top_002dlevel-view"></a>
-<a name="index-outline_002c-top_002dlevel"></a>
-<a name="index-C_002dc-C_002dt"></a>
+<span id="index-top_002dlevel-view"></span>
+<span id="index-outline_002c-top_002dlevel"></span>
+<span id="index-C_002dc-C_002dt"></span>
</p></dd>
<dt><kbd>{C-c C-t}</kbd></dt>
<dd><p>Show a top-level view of the outline by hiding all cells but those at
@@ -5686,31 +5579,29 @@ between cells.
</p></dd>
</dl>
-<a name="index-koutliner_002c-Action-Key_002c-hide-or-show-cell"></a>
-<a name="index-Action-Key_002c-hide-or-show-cell"></a>
-<a name="index-cell_002c-collapse"></a>
-<a name="index-cell_002c-expand"></a>
-<a name="index-koutliner_002c-M_002dRET"></a>
+<span id="index-koutliner_002c-Action-Key_002c-hide-or-show-cell"></span>
+<span id="index-Action-Key_002c-hide-or-show-cell"></span>
+<span id="index-cell_002c-collapse"></span>
+<span id="index-cell_002c-expand"></span>
+<span id="index-koutliner_002c-M_002dRET"></span>
<p>A click or a press of the Action Key within a cell’s body, but not on
a
Hyperbole button, toggles between hiding and showing the tree rooted at
point. Try it with either your mouse or with <kbd>{M-<span
class="key">RET</span>}</kbd>.
</p>
<hr>
-<a name="View-Specs"></a>
-<div class="header">
+<span id="View-Specs"></span><div class="header">
<p>
Previous: <a href="#Hiding-and-Showing" accesskey="p" rel="prev">Hiding and
Showing</a>, Up: <a href="#Viewing" accesskey="u" rel="up">Viewing</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="View-Specs-1"></a>
-<h4 class="subsection">6.6.2 View Specs</h4>
+<span id="View-Specs-1"></span><h4 class="subsection">6.6.2 View Specs</h4>
-<a name="index-view-spec"></a>
-<a name="index-modeline_002c-view-spec"></a>
-<a name="index-kvspec_003astring"></a>
-<a name="index-pipe-character"></a>
-<a name="index-_007c"></a>
-<a name="index-_003c_007cviewspec_003e"></a>
+<span id="index-view-spec"></span>
+<span id="index-modeline_002c-view-spec"></span>
+<span id="index-kvspec_003astring"></span>
+<span id="index-pipe-character"></span>
+<span id="index-_007c"></span>
+<span id="index-_003c_007cviewspec_003e"></span>
<p><em>View specifications</em> (view specs, for short) are short codes used
to control the view of a koutline. The view specs in effect for an
outline are always displayed in the modeline of the outline’s window,
@@ -5721,7 +5612,7 @@ visual location. The | (pipe character) is also used in
links that
specify view specs to indicate the start of a view spec sequence.
See <a href="#Links">Links</a>.
</p>
-<a name="index-outline_002c-view-specs"></a>
+<span id="index-outline_002c-view-specs"></span>
<p>The current view spec is saved whenever the outline is saved. The next
time the outline is read in, the same view spec will be applied.
</p>
@@ -5730,101 +5621,99 @@ presently supported and explains how to invoke a view
spec. There is no
user-level means of adding your own view spec characters, so all other
character codes are reserved for future use.
</p>
-<a name="index-koutliner_002c-C_002dc-C_002dv"></a>
-<a name="index-view-spec_002c-setting"></a>
-<a name="index-view-spec_002c-changing"></a>
-<a name="index-changing-the-view-spec"></a>
-<a name="index-setting-the-view-spec"></a>
+<span id="index-koutliner_002c-C_002dc-C_002dv"></span>
+<span id="index-view-spec_002c-setting"></span>
+<span id="index-view-spec_002c-changing"></span>
+<span id="index-changing-the-view-spec"></span>
+<span id="index-setting-the-view-spec"></span>
<p><kbd>{C-c C-v}</kbd> prompts for a new view spec setting in which the
following
codes are valid. Any invalid characters in a view spec are ignored.
Characters are evaluated in an order meant to do the right thing, even
when you use conflicting view spec characters. The standard initial
view spec is <|ben>.
</p>
-<a name="index-view-spec_002c-characters"></a>
+<span id="index-view-spec_002c-characters"></span>
<dl compact="compact">
-<dd><a name="index-view-spec_002c-all-lines-and-levels"></a>
+<dd><span id="index-view-spec_002c-all-lines-and-levels"></span>
</dd>
<dt><kbd>a</kbd></dt>
<dd><p>Show all cell levels and all lines in cells.
</p>
-<a name="index-koutliner_002c-C_002dc-b"></a>
-<a name="index-blank-lines_002c-toggle"></a>
-<a name="index-view-spec_002c-blank-lines"></a>
-<a name="index-koutliner_002c-C_002dc-b-1"></a>
-<a name="index-toggling-blank-lines"></a>
+<span id="index-koutliner_002c-C_002dc-b"></span>
+<span id="index-blank-lines_002c-toggle"></span>
+<span id="index-view-spec_002c-blank-lines"></span>
+<span id="index-koutliner_002c-C_002dc-b-1"></span>
+<span id="index-toggling-blank-lines"></span>
</dd>
<dt><kbd>b</kbd></dt>
<dd><p>Turn on blank lines between cells. Without this character, blank lines
will be turned off. You may also use the <kbd>{C-c b}</kbd> key binding to
toggle blank lines on and off independently of any other view settings.
</p>
-<a name="index-view-spec_002c-lines-per-cell"></a>
-<a name="index-hide-lines"></a>
-<a name="index-collapse-lines"></a>
-<a name="index-cutoff-lines"></a>
+<span id="index-view-spec_002c-lines-per-cell"></span>
+<span id="index-hide-lines"></span>
+<span id="index-collapse-lines"></span>
+<span id="index-cutoff-lines"></span>
</dd>
<dt><kbd>cN</kbd></dt>
<dd><p>Hide any lines greater than N in each cell. 0 means don’t cutoff
any
lines.
</p>
-<a name="index-ellipses"></a>
-<a name="index-view-spec_002c-ellipses"></a>
+<span id="index-ellipses"></span>
+<span id="index-view-spec_002c-ellipses"></span>
</dd>
<dt><kbd>e</kbd></dt>
<dd><p>Show ellipses when some content of a cell or its subtree is hidden.
This cannot be turned off.
</p>
-<a name="index-level-1"></a>
-<a name="index-cell_002c-hiding-levels"></a>
-<a name="index-hide-levels"></a>
-<a name="index-view-spec_002c-show-levels"></a>
+<span id="index-level-1"></span>
+<span id="index-cell_002c-hiding-levels"></span>
+<span id="index-hide-levels"></span>
+<span id="index-view-spec_002c-show-levels"></span>
</dd>
<dt><kbd>lN</kbd></dt>
<dd><p>Hide cells at levels deeper than N. 0 means don’t hide any cells.
</p>
-<a name="index-label-type"></a>
-<a name="index-view-spec_002c-label-type"></a>
-<a name="index-kview_003adefault_002dlabel_002dtype"></a>
-<a name="index-default-label-type"></a>
+<span id="index-label-type"></span>
+<span id="index-view-spec_002c-label-type"></span>
+<span id="index-kview_003adefault_002dlabel_002dtype"></span>
+<span id="index-default-label-type"></span>
</dd>
<dt><kbd>n</kbd></dt>
<dd><p>Turn on the default label type, as given by the variable,
<code>kview:default-label-type</code>. Normally, this is alphanumeric labels.
-<a name="index-label-type_002c-idstamps"></a>
+<span id="index-label-type_002c-idstamps"></span>
</p></dd>
<dt><kbd>n0</kbd></dt>
<dd><p>Display idstamps, e.g. 086.
-<a name="index-label-type_002c-alpha-1"></a>
+<span id="index-label-type_002c-alpha-1"></span>
</p></dd>
<dt><kbd>n1</kbd></dt>
<dd><p>Display alpha labels, e.g. 1d3
-<a name="index-label-type_002c-legal-1"></a>
+<span id="index-label-type_002c-legal-1"></span>
</p></dd>
<dt><kbd>n.</kbd></dt>
<dd><p>Display legal labels, e.g. 1.4.3
</p></dd>
</dl>
-<a name="index-view-spec_002c-example"></a>
+<span id="index-view-spec_002c-example"></span>
<p>As a test, use <kbd>{C-h h k e}</kbd> to display the example koutline.
Then use <kbd>{C-c C-v}</kbd> to set a view spec of ‘c2l1’. This
will turn
off blank lines, clip each cell after its second line, and hide all
cells below level one.
</p>
<hr>
-<a name="Links"></a>
-<div class="header">
+<span id="Links"></span><div class="header">
<p>
Next: <a href="#Cell-Attributes" accesskey="n" rel="next">Cell Attributes</a>,
Previous: <a href="#Viewing" accesskey="p" rel="prev">Viewing</a>, Up: <a
href="#Koutliner" accesskey="u" rel="up">Koutliner</a> [<a
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Links-1"></a>
-<h3 class="section">6.7 Links</h3>
+<span id="Links-1"></span><h3 class="section">6.7 Links</h3>
-<a name="index-link"></a>
-<a name="index-hyperlink"></a>
-<a name="index-klink-1"></a>
-<a name="index-_003c_003e-delimiters"></a>
+<span id="index-link"></span>
+<span id="index-hyperlink"></span>
+<span id="index-klink-1"></span>
+<span id="index-_003c_003e-delimiters"></span>
<p>Cells may include hyperlinks that refer to other cells or to external
sources of information. Explicit Hyperbole buttons may be created as
usual with mouse drags (see <a href="#By-Dragging">Creation Via Action Key
@@ -5832,17 +5721,17 @@ Drags</a>). A <em>klink</em> is a special implicit
link button, delimited by
<> separators, that jumps to a koutline cell. This section discusses
klinks.
</p>
-<a name="index-koutliner_002c-Action-Key_002c-klink"></a>
-<a name="index-Action-Key_002c-klink"></a>
-<a name="index-klink_002c-activating"></a>
-<a name="index-klink-referent"></a>
+<span id="index-koutliner_002c-Action-Key_002c-klink"></span>
+<span id="index-Action-Key_002c-klink"></span>
+<span id="index-klink_002c-activating"></span>
+<span id="index-klink-referent"></span>
<p>Press the Action Key over a klink to follow it. This will flash the
klink as a button and then will display its referent in the other
window. If the klink contains a view spec, it will be applied when
the referent is displayed.
</p>
-<a name="index-klink_002c-inserting"></a>
-<a name="index-koutliner_002c-C_002dc-l"></a>
+<span id="index-klink_002c-inserting"></span>
+<span id="index-koutliner_002c-C_002dc-l"></span>
<p>There are a number of easy ways to insert klinks into koutlines. If you
have mouse support under Hyperbole, simply click the Action Key within
the indentation to the left of a cell text. If you then double click on
@@ -5853,13 +5742,13 @@ implicit buttons, you may instead type in the text of
the klink just as
you see it in the examples below and it will work exactly as if it had
been entered with the insert link command.
</p>
-<a name="index-klink_002c-formats"></a>
+<span id="index-klink_002c-formats"></span>
<p>There are basically three forms of klinks:
</p>
<dl compact="compact">
-<dd><a name="index-internal-klink"></a>
-<a name="index-klink_002c-internal"></a>
-<a name="index-_003c_0040-klink_003e"></a>
+<dd><span id="index-internal-klink"></span>
+<span id="index-klink_002c-internal"></span>
+<span id="index-_003c_0040-klink_003e"></span>
</dd>
<dt><em>internal</em></dt>
<dd><p>‘<samp><@ 2b=06></samp>’ is an internal klink, since
it refers to the koutline in
@@ -5872,8 +5761,8 @@ cell is moved elsewhere within the outline. The form,
outline back to the default value, with a blank line between each cell
and the whole outline visible.
</p>
-<a name="index-external-klink"></a>
-<a name="index-klink_002c-external"></a>
+<span id="index-external-klink"></span>
+<span id="index-klink_002c-external"></span>
</dd>
<dt><em>external</em></dt>
<dd><p>The second klink format is an external link to another koutline, such
@@ -5882,8 +5771,8 @@ starting at the cell 3 (whose permanent identifer is
012), with the
view specification of: blank lines turned off, cutoff after one line
per cell, and showing ellipses for cells or trees which are collapsed.
</p>
-<a name="index-klink_002c-view-spec"></a>
-<a name="index-view-spec-klink"></a>
+<span id="index-klink_002c-view-spec"></span>
+<span id="index-view-spec-klink"></span>
</dd>
<dt><em>view spec</em></dt>
<dd><p>The third format sets a view spec for the current koutline. For
@@ -5894,36 +5783,34 @@ and to label cells with the alphanumeric style.
</dl>
<hr>
-<a name="Cell-Attributes"></a>
-<div class="header">
+<span id="Cell-Attributes"></span><div class="header">
<p>
Next: <a href="#Koutliner-History" accesskey="n" rel="next">Koutliner
History</a>, Previous: <a href="#Links" accesskey="p" rel="prev">Links</a>, Up:
<a href="#Koutliner" accesskey="u" rel="up">Koutliner</a> [<a
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Cell-Attributes-1"></a>
-<h3 class="section">6.8 Cell Attributes</h3>
+<span id="Cell-Attributes-1"></span><h3 class="section">6.8 Cell
Attributes</h3>
-<a name="index-cell_002c-attribute"></a>
-<a name="index-attribute"></a>
+<span id="index-cell_002c-attribute"></span>
+<span id="index-attribute"></span>
<p><em>Attributes</em> are named variables whose values are specific to an
outline cell. Thus, each cell has its own attribute list. Every cell
has three standard attributes:
</p>
<dl compact="compact">
-<dd><a name="index-idstamp-attribute"></a>
+<dd><span id="index-idstamp-attribute"></span>
</dd>
<dt><em>idstamp</em></dt>
<dd><p>The permanent id of the cell, typically used in cross-file hyperlinks
that reference the cell.
</p>
-<a name="index-creator-attribute"></a>
-<a name="index-e_002dmail-address-1"></a>
-<a name="index-mail-address"></a>
+<span id="index-creator-attribute"></span>
+<span id="index-e_002dmail-address-1"></span>
+<span id="index-mail-address"></span>
</dd>
<dt><em>creator</em></dt>
<dd><p>The e-mail address of the person who created this cell.
</p>
-<a name="index-create_002dtime-attribute"></a>
-<a name="index-cell_002c-creation-time"></a>
+<span id="index-create_002dtime-attribute"></span>
+<span id="index-cell_002c-creation-time"></span>
</dd>
<dt><em>create-time</em></dt>
<dd><p>The time at which the cell was created. This is stored in a form that
@@ -5932,19 +5819,19 @@ format, such as ‘<samp>Jan 28 18:27:59 CST
2019</samp>’.
</p></dd>
</dl>
-<a name="index-koutliner_002c-C_002dc-C_002di"></a>
-<a name="index-attribute_002c-adding"></a>
-<a name="index-attribute_002c-modifying"></a>
-<a name="index-attribute_002c-removing"></a>
+<span id="index-koutliner_002c-C_002dc-C_002di"></span>
+<span id="index-attribute_002c-adding"></span>
+<span id="index-attribute_002c-modifying"></span>
+<span id="index-attribute_002c-removing"></span>
<p><kbd>{C-c C-i}</kbd> is the command to add an attribute to or to modify an
existing attribute of the cell at point. Think of it as inserting an
attribute value. To remove an attribute from a cell, set its value to
‘<samp>nil</samp>’.
</p>
-<a name="index-attribute_002c-no_002dfill-2"></a>
-<a name="index-cell_002c-no_002dfill-attribute-2"></a>
-<a name="index-no_002dfill-attribute"></a>
+<span id="index-attribute_002c-no_002dfill-2"></span>
+<span id="index-cell_002c-no_002dfill-attribute-2"></span>
+<span id="index-no_002dfill-attribute"></span>
<p>The ‘no-fill’ attribute is special. When set to
‘<samp>t</samp>’, it
prevents movement, promotion, demotion, exchange, split or append
commands from refilling the cell, even if the variable,
@@ -5952,12 +5839,12 @@ commands from refilling the cell, even if the variable,
you from invoking explicit commands that refill the cell.
See <a href="#Filling">Filling</a>.
</p>
-<a name="index-koutliner_002c-Assist-Key_002c-listing-attributes"></a>
-<a name="index-Assist-Key_002c-listing-attributes"></a>
-<a name="index-listing-attributes"></a>
-<a name="index-outline_002c-attribute-list"></a>
-<a name="index-koutliner_002c-C_002dc-h"></a>
-<a name="index-koutliner_002c-C_002du-C_002dc-h"></a>
+<span id="index-koutliner_002c-Assist-Key_002c-listing-attributes"></span>
+<span id="index-Assist-Key_002c-listing-attributes"></span>
+<span id="index-listing-attributes"></span>
+<span id="index-outline_002c-attribute-list"></span>
+<span id="index-koutliner_002c-C_002dc-h"></span>
+<span id="index-koutliner_002c-C_002du-C_002dc-h"></span>
<p>The attribute lists for the cells in the tree rooted at point may be
inspected by pressing the Assist Key within the contents of a cell.
<kbd>{C-c h}</kbd> prompts for a cell label and displays the cell’s
@@ -5966,54 +5853,50 @@ the attributes for it and its subtree; use 0 as the
kcell id to see
attributes for all visible cells in the outline.
</p>
<hr>
-<a name="Koutliner-History"></a>
-<div class="header">
+<span id="Koutliner-History"></span><div class="header">
<p>
Previous: <a href="#Cell-Attributes" accesskey="p" rel="prev">Cell
Attributes</a>, Up: <a href="#Koutliner" accesskey="u" rel="up">Koutliner</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Koutliner-History-1"></a>
-<h3 class="section">6.9 Koutliner History</h3>
+<span id="Koutliner-History-1"></span><h3 class="section">6.9 Koutliner
History</h3>
-<a name="index-NLS"></a>
-<a name="index-Augment"></a>
-<a name="index-Engelbart"></a>
+<span id="index-NLS"></span>
+<span id="index-Augment"></span>
+<span id="index-Engelbart"></span>
<p>Much of the Hyperbole outliner design is based upon concepts pioneered
in the Augment/NLS system, <cite>[Eng84a]</cite>. Augment treated documents as
a hierarchical set of nodes, called statements, rather than cells.
Every Augment document utilized this intrinsic structure.
</p>
-<a name="index-distributed-collaboration"></a>
-<a name="index-collaboration"></a>
+<span id="index-distributed-collaboration"></span>
+<span id="index-collaboration"></span>
<p>The system could rapidly change the view of a document by collapsing,
expanding, generating, clipping, filtering, including or reordering
these nodes. It could also map individual views to multiple workstation
displays across a network to aid in distributed, collaborative work.
</p>
-<a name="index-knowledge-transfer"></a>
-<a name="index-idea-structuring"></a>
-<a name="index-cross-referencing"></a>
+<span id="index-knowledge-transfer"></span>
+<span id="index-idea-structuring"></span>
+<span id="index-cross-referencing"></span>
<p>These facilities aided greatly in idea structuring, cross-referencing,
and knowledge transfer. The Koutliner is a start at bringing
these capabilities back into the mainstream of modern computing culture.
</p>
<hr>
-<a name="HyRolo"></a>
-<div class="header">
+<span id="HyRolo"></span><div class="header">
<p>
Next: <a href="#Window-Configurations" accesskey="n" rel="next">Window
Configurations</a>, Previous: <a href="#Koutliner" accesskey="p"
rel="prev">Koutliner</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="HyRolo-1"></a>
-<h2 class="chapter">7 HyRolo</h2>
+<span id="HyRolo-1"></span><h2 class="chapter">7 HyRolo</h2>
-<a name="index-Rolo"></a>
-<a name="index-HyRolo"></a>
+<span id="index-Rolo"></span>
+<span id="index-HyRolo"></span>
<p>Hyperbole includes a complete, advanced rolo system, HyRolo, for
convenient management of hierarchical, record-oriented information.
Most often this is used for contact management but it can quickly be
adapted to most any record-oriented lookup task requiring fast retrieval.
</p>
-<a name="index-rolo_002c-buttons-in"></a>
+<span id="index-rolo_002c-buttons-in"></span>
<p>Hyperbole buttons may be included within rolo records and then
manually activated whenever their records are retrieved in a search.
</p>
@@ -6021,29 +5904,27 @@ manually activated whenever their records are retrieved
in a search.
tool.
</p>
<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">• <a href="#HyRolo-Concepts"
accesskey="1">HyRolo Concepts</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#HyRolo-Concepts"
accesskey="1">HyRolo Concepts</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#HyRolo-Menu"
accesskey="2">HyRolo Menu</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#HyRolo-Menu"
accesskey="2">HyRolo Menu</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#HyRolo-Searching"
accesskey="3">HyRolo Searching</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#HyRolo-Searching"
accesskey="3">HyRolo Searching</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#HyRolo-Keys"
accesskey="4">HyRolo Keys</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#HyRolo-Keys"
accesskey="4">HyRolo Keys</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#HyRolo-Settings"
accesskey="5">HyRolo Settings</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#HyRolo-Settings"
accesskey="5">HyRolo Settings</a></td><td> </td><td align="left"
valign="top">
</td></tr>
</table>
<hr>
-<a name="HyRolo-Concepts"></a>
-<div class="header">
+<span id="HyRolo-Concepts"></span><div class="header">
<p>
Next: <a href="#HyRolo-Menu" accesskey="n" rel="next">HyRolo Menu</a>,
Previous: <a href="#HyRolo" accesskey="p" rel="prev">HyRolo</a>, Up: <a
href="#HyRolo" accesskey="u" rel="up">HyRolo</a> [<a
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="HyRolo-Concepts-1"></a>
-<h3 class="section">7.1 HyRolo Concepts</h3>
+<span id="HyRolo-Concepts-1"></span><h3 class="section">7.1 HyRolo
Concepts</h3>
-<a name="index-rolo-file"></a>
-<a name="index-rolo-entry"></a>
+<span id="index-rolo-file"></span>
+<span id="index-rolo-entry"></span>
<p>HyRolo manages and searches rolo files. A <em>rolo file</em> consists of
an optional header that starts and ends with a line of equal signs
(at least three equal signs starting at the beginning of a line),
@@ -6101,31 +5982,29 @@ Searching for Manager turns up all Staffer entries.
</p>
<hr>
-<a name="HyRolo-Menu"></a>
-<div class="header">
+<span id="HyRolo-Menu"></span><div class="header">
<p>
Next: <a href="#HyRolo-Searching" accesskey="n" rel="next">HyRolo
Searching</a>, Previous: <a href="#HyRolo-Concepts" accesskey="p"
rel="prev">HyRolo Concepts</a>, Up: <a href="#HyRolo" accesskey="u"
rel="up">HyRolo</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Rolo-Menu"></a>
-<h3 class="section">7.2 Rolo Menu</h3>
+<span id="Rolo-Menu"></span><h3 class="section">7.2 Rolo Menu</h3>
<p>The Rolo submenu of the Hyperbole menu offers a full set of commands
for searching and maintaining a personal address book. It looks like
so.
</p>
-<div class="float"><a name="image_003aRolo-Menu"></a>
+<div class="float"><span id="image_003aRolo-Menu"></span>
<img src="im/menu-rolo.png" alt="HyRolo Menu">
<div class="float-caption"><p><strong>Image 7.1: </strong>HyRolo
Menu</p></div></div>
-<a name="index-Rolo-menu"></a>
-<a name="index-HyRolo-menu"></a>
-<a name="index-menu_002c-HyRolo"></a>
-<a name="index-menu_002c-Rolo-1"></a>
-<a name="index-C_002dmouse_002d3-1"></a>
-<a name="index-popup-menu_002c-HyRolo"></a>
-<a name="index-popup-menu_002c-Rolo"></a>
-<a name="index-menubar-menu_002c-HyRolo"></a>
-<a name="index-menubar-menu_002c-Rolo"></a>
+<span id="index-Rolo-menu"></span>
+<span id="index-HyRolo-menu"></span>
+<span id="index-menu_002c-HyRolo"></span>
+<span id="index-menu_002c-Rolo-1"></span>
+<span id="index-C_002dmouse_002d3-1"></span>
+<span id="index-popup-menu_002c-HyRolo"></span>
+<span id="index-popup-menu_002c-Rolo"></span>
+<span id="index-menubar-menu_002c-HyRolo"></span>
+<span id="index-menubar-menu_002c-Rolo"></span>
<p>The Rolo/ menu entry on the Hyperbole minibuffer menu provides the same
set of commands as the menubar and popup menus, with more concise labels.
<kbd>{C-mouse-3}</kbd> pops up the mode-specific menu in Emacs. Experiment
with
@@ -6133,18 +6012,18 @@ the menu or read the following sections explaining
commands.
</p>
<p>The minibuffer Rolo/ menu offers the following commands:
</p>
-<a name="index-Rolo-commands"></a>
-<a name="index-HyRolo-commands"></a>
-<a name="index-hyrolo_002dadd"></a>
-<a name="index-hyrolo_002ddisplay_002dmatches"></a>
-<a name="index-hyrolo_002dedit"></a>
-<a name="index-hyrolo_002dkill"></a>
-<a name="index-hyrolo_002dmail_002dto"></a>
-<a name="index-hyrolo_002dsort"></a>
-<a name="index-hyrolo_002dgrep"></a>
-<a name="index-hyrolo_002dfgrep"></a>
-<a name="index-hyrolo_002dword"></a>
-<a name="index-hyrolo_002dyank"></a>
+<span id="index-Rolo-commands"></span>
+<span id="index-HyRolo-commands"></span>
+<span id="index-hyrolo_002dadd"></span>
+<span id="index-hyrolo_002ddisplay_002dmatches"></span>
+<span id="index-hyrolo_002dedit"></span>
+<span id="index-hyrolo_002dkill"></span>
+<span id="index-hyrolo_002dmail_002dto"></span>
+<span id="index-hyrolo_002dsort"></span>
+<span id="index-hyrolo_002dgrep"></span>
+<span id="index-hyrolo_002dfgrep"></span>
+<span id="index-hyrolo_002dword"></span>
+<span id="index-hyrolo_002dyank"></span>
<div class="example">
<pre class="example">Menu Item Command Description
=====================================================================
@@ -6193,19 +6072,17 @@ containing "Staffer" at any level in a
hierarchy, like so:
</pre></div>
<hr>
-<a name="HyRolo-Searching"></a>
-<div class="header">
+<span id="HyRolo-Searching"></span><div class="header">
<p>
Next: <a href="#HyRolo-Keys" accesskey="n" rel="next">HyRolo Keys</a>,
Previous: <a href="#HyRolo-Menu" accesskey="p" rel="prev">HyRolo Menu</a>, Up:
<a href="#HyRolo" accesskey="u" rel="up">HyRolo</a> [<a
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="HyRolo-Searching-1"></a>
-<h3 class="section">7.3 HyRolo Searching</h3>
+<span id="HyRolo-Searching-1"></span><h3 class="section">7.3 HyRolo
Searching</h3>
-<a name="index-rolo-searching"></a>
-<a name="index-searching_002c-rolo"></a>
-<a name="index-menu-item_002c-RegexFind"></a>
-<a name="index-menu-item_002c-WordFind"></a>
-<a name="index-menu-item_002c-StringFind"></a>
+<span id="index-rolo-searching"></span>
+<span id="index-searching_002c-rolo"></span>
+<span id="index-menu-item_002c-RegexFind"></span>
+<span id="index-menu-item_002c-WordFind"></span>
+<span id="index-menu-item_002c-StringFind"></span>
<p>See <a href="#HyRolo-Menu">HyRolo Menu</a>, for the list of HyRolo search
commands. In this
section, the menu item names from the minibuffer menu are used to
refer to each command.
@@ -6213,7 +6090,7 @@ refer to each command.
<p>The <code>RegexFind</code> menu item searches the rolo list for all entries
which contain matches for a given regular expression. The regular
expression syntax used is the same as the one used within Emacs
-and across the GNU set of tools. See <a
href="http://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Regexps">Syntax
of Regular
+and across the GNU set of tools. See <a
href="https://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Regexps">Syntax
of Regular
Expressions</a> in <cite>the GNU Emacs Manual</cite>, for full documentation
on this
format.
</p>
@@ -6221,7 +6098,7 @@ format.
search for ‘<samp>product</samp>’, it won’t match to
occurrences of
‘<samp>production</samp>’. It is also handy for more precise name
matching.
</p>
-<a name="index-logical-rolo-searches"></a>
+<span id="index-logical-rolo-searches"></span>
<p>The <code>StringFind</code> menu item has two uses. It can find all entry
matches for a string or can execute logical queries for more
precise matching. The format of logical queries is explained here; a
@@ -6260,30 +6137,28 @@ you should contact.
<hr>
-<a name="HyRolo-Keys"></a>
-<div class="header">
+<span id="HyRolo-Keys"></span><div class="header">
<p>
Next: <a href="#HyRolo-Settings" accesskey="n" rel="next">HyRolo Settings</a>,
Previous: <a href="#HyRolo-Searching" accesskey="p" rel="prev">HyRolo
Searching</a>, Up: <a href="#HyRolo" accesskey="u" rel="up">HyRolo</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="HyRolo-Keys-1"></a>
-<h3 class="section">7.4 HyRolo Keys</h3>
+<span id="HyRolo-Keys-1"></span><h3 class="section">7.4 HyRolo Keys</h3>
-<a name="index-hyrolo-menu"></a>
-<a name="index-rolo-keys"></a>
+<span id="index-hyrolo-menu"></span>
+<span id="index-rolo-keys"></span>
<p>After a rolo search is performed, point is left in the <em>rolo
match buffer</em>, <samp>*Hyperbole Rolo*</samp>, which uses
<code>hyrolo-mode</code> to
simplify browsing many rolo matches. Press <kbd>{?}</kbd> when in the
match buffer for a summary of available keys, all of which are
documented in this section.
</p>
-<a name="index-HyRolo_002c-see-rolo"></a>
-<a name="index-rolo_002c-TAB"></a>
-<a name="index-rolo_002c-M_002dTAB"></a>
-<a name="index-rolo_002c-SHIFT_002dTAB"></a>
-<a name="index-rolo_002c-r"></a>
-<a name="index-rolo_002c-highlighting-matches"></a>
-<a name="index-rolo_002c-finding-matches"></a>
-<a name="index-rolo_002c-moving-through-matches"></a>
+<span id="index-HyRolo_002c-see-rolo"></span>
+<span id="index-rolo_002c-TAB"></span>
+<span id="index-rolo_002c-M_002dTAB"></span>
+<span id="index-rolo_002c-SHIFT_002dTAB"></span>
+<span id="index-rolo_002c-r"></span>
+<span id="index-rolo_002c-highlighting-matches"></span>
+<span id="index-rolo_002c-finding-matches"></span>
+<span id="index-rolo_002c-moving-through-matches"></span>
<p>If your emacs version supports textual highlighting, each search match
is highlighted for quick, visual location. {<tt class="key">TAB</tt>} moves
point
forward to successive spans of text which match the search expression.
@@ -6292,13 +6167,13 @@ point backward to earlier matches. These keys allow
you to quickly
find the matching entry of most interest to you if your search
expression failed to narrow the matches sufficiently.
</p>
-<a name="index-rolo_002c-M_002ds"></a>
-<a name="index-rolo_002c-C_002ds"></a>
-<a name="index-rolo_002c-C_002dr"></a>
-<a name="index-rolo_002c-l"></a>
-<a name="index-rolo_002c-extending-a-match"></a>
-<a name="index-rolo_002c-interactive-searching"></a>
-<a name="index-rolo_002c-locating-a-name"></a>
+<span id="index-rolo_002c-M_002ds"></span>
+<span id="index-rolo_002c-C_002ds"></span>
+<span id="index-rolo_002c-C_002dr"></span>
+<span id="index-rolo_002c-l"></span>
+<span id="index-rolo_002c-extending-a-match"></span>
+<span id="index-rolo_002c-interactive-searching"></span>
+<span id="index-rolo_002c-locating-a-name"></span>
<p>If you want to extend the match expression with some more characters
to find a particular entry, use <kbd>{M-s}</kbd>. This performs an
interactive search forward for the match expression. You may add to
@@ -6314,12 +6189,12 @@ matches. Standard string, <kbd>{C-s}</kbd>, and
regular expression,
<kbd>{C-M-s}</kbd>, interactive search commands are also available within
the rolo match buffer.
</p>
-<a name="index-rolo_002c-a"></a>
-<a name="index-rolo_002c-h"></a>
-<a name="index-rolo_002c-o"></a>
-<a name="index-rolo_002c-s"></a>
-<a name="index-rolo_002c-t"></a>
-<a name="index-rolo_002c-outlining"></a>
+<span id="index-rolo_002c-a"></span>
+<span id="index-rolo_002c-h"></span>
+<span id="index-rolo_002c-o"></span>
+<span id="index-rolo_002c-s"></span>
+<span id="index-rolo_002c-t"></span>
+<span id="index-rolo_002c-outlining"></span>
<p>Single key outlining commands are also available for browsing matches.
If your search matches a large number of entries, use
<kbd>{t}</kbd> to get a top-level summary of entries. Only the first
@@ -6334,68 +6209,68 @@ to expand all entries in the buffer.
</p>
<p>Many other keys are defined to help you move through matching entries.
</p>
-<a name="index-rolo_002c-moving-to-entries"></a>
+<span id="index-rolo_002c-moving-to-entries"></span>
<dl compact="compact">
-<dd><a name="index-rolo_002c-b"></a>
-<a name="index-b-1"></a>
+<dd><span id="index-rolo_002c-b"></span>
+<span id="index-b-1"></span>
</dd>
<dt><kbd>{b}</kbd></dt>
<dd><p>Move to the previous entry at the same level as the current entry.
-<a name="index-rolo_002c-f"></a>
-<a name="index-f-1"></a>
+<span id="index-rolo_002c-f"></span>
+<span id="index-f-1"></span>
</p></dd>
<dt><kbd>{f}</kbd></dt>
<dd><p>Move to the next entry at the same level as the current entry.
-<a name="index-rolo_002c-n"></a>
-<a name="index-n-1"></a>
+<span id="index-rolo_002c-n"></span>
+<span id="index-n-1"></span>
</p></dd>
<dt><kbd>{n}</kbd></dt>
<dd><p>Move to the next entry at any level.
-<a name="index-rolo_002c-p"></a>
-<a name="index-p-1"></a>
+<span id="index-rolo_002c-p"></span>
+<span id="index-p-1"></span>
</p></dd>
<dt><kbd>{p}</kbd></dt>
<dd><p>Move to the previous entry at any level.
-<a name="index-rolo_002c-u"></a>
-<a name="index-u-1"></a>
+<span id="index-rolo_002c-u"></span>
+<span id="index-u-1"></span>
</p></dd>
<dt><kbd>{u}</kbd></dt>
<dd><p>Move to the previous entry one level up.
-<a name="index-rolo_002c-_002e"></a>
-<a name="index-rolo_002c-_003c"></a>
-<a name="index-_002e-or-_003c"></a>
+<span id="index-rolo_002c-_002e"></span>
+<span id="index-rolo_002c-_003c"></span>
+<span id="index-_002e-or-_003c"></span>
</p></dd>
<dt><kbd>{. or <}</kbd></dt>
<dd><p>Move to the beginning of the buffer.
-<a name="index-rolo_002c-_002c"></a>
-<a name="index-rolo_002c-_003e"></a>
-<a name="index-_002c-or-_003e"></a>
+<span id="index-rolo_002c-_002c"></span>
+<span id="index-rolo_002c-_003e"></span>
+<span id="index-_002c-or-_003e"></span>
</p></dd>
<dt><kbd>{, or >}</kbd></dt>
<dd><p>Move to the end of the buffer.
-<a name="index-rolo_002c-DEL"></a>
-<a name="index-DEL"></a>
+<span id="index-rolo_002c-DEL"></span>
+<span id="index-DEL"></span>
</p></dd>
<dt><kbd>{<span class="key">DEL</span>}</kbd></dt>
<dd><p>Scroll backward a windowful.
-<a name="index-rolo_002c-SPC"></a>
-<a name="index-SPC"></a>
+<span id="index-rolo_002c-SPC"></span>
+<span id="index-SPC"></span>
</p></dd>
<dt><kbd>{<span class="key">SPC</span>}</kbd></dt>
<dd><p>Scroll forward a windowful.
</p></dd>
</dl>
-<a name="index-rolo_002c-e"></a>
-<a name="index-rolo_002c-editing"></a>
-<a name="index-datestamps"></a>
-<a name="index-rolo_002c-datestamps"></a>
-<a name="index-customize_002c-rolo-datestamps"></a>
-<a name="index-menu_002c-Toggle_002dRolo_002dDates"></a>
-<a name="index-customize_002c-rolo-edits"></a>
-<a name="index-customize_002c-rolo-additions"></a>
-<a name="index-hyrolo_002dedit_002dhook"></a>
-<a name="index-hyrolo_002dadd_002dhook"></a>
+<span id="index-rolo_002c-e"></span>
+<span id="index-rolo_002c-editing"></span>
+<span id="index-datestamps"></span>
+<span id="index-rolo_002c-datestamps"></span>
+<span id="index-customize_002c-rolo-datestamps"></span>
+<span id="index-menu_002c-Toggle_002dRolo_002dDates"></span>
+<span id="index-customize_002c-rolo-edits"></span>
+<span id="index-customize_002c-rolo-additions"></span>
+<span id="index-hyrolo_002dedit_002dhook"></span>
+<span id="index-hyrolo_002dadd_002dhook"></span>
<p>Use the <kbd>{e}</kbd> key to edit the current entry within your personal
rolo file. A datestamp will automatically be added or updated at the end
of the entry, unless this feature has been turned off via the
@@ -6405,23 +6280,21 @@ programmed modification of the way rolo edits work.
The variable,
<code>hyrolo-add-hook</code>, works the same way but is evaluated when a new
entry is first added.
</p>
-<a name="index-rolo_002c-q"></a>
-<a name="index-rolo_002c-quitting"></a>
+<span id="index-rolo_002c-q"></span>
+<span id="index-rolo_002c-quitting"></span>
<p>Once you have found an entry of interest and you want to remove the
rolo match buffer, use <kbd>{q}</kbd> to quit. This will restore your
current frame to its state prior to the rolo search.
</p>
<hr>
-<a name="HyRolo-Settings"></a>
-<div class="header">
+<span id="HyRolo-Settings"></span><div class="header">
<p>
Previous: <a href="#HyRolo-Keys" accesskey="p" rel="prev">HyRolo Keys</a>, Up:
<a href="#HyRolo" accesskey="u" rel="up">HyRolo</a> [<a
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="HyRolo-Settings-1"></a>
-<h3 class="section">7.5 HyRolo Settings</h3>
+<span id="HyRolo-Settings-1"></span><h3 class="section">7.5 HyRolo
Settings</h3>
-<a name="index-hyrolo_002dfile_002dlist"></a>
-<a name="index-rolo_002c-personal"></a>
+<span id="index-hyrolo_002dfile_002dlist"></span>
+<span id="index-rolo_002c-personal"></span>
<p>The files used in any rolo search are given by the
<code>hyrolo-file-list</code> variable, whose default value is
typically <code>("~/.rolo.otl"</code>. Searches scan only your
@@ -6436,8 +6309,8 @@ command on the rolo menu adds entries.
personal rolo. If such a file exists, you will be prompted to rename
it whenever the HyRolo system is loaded.
</p>
-<a name="index-BBDB"></a>
-<a name="index-Big-Brother-DataBase"></a>
+<span id="index-BBDB"></span>
+<span id="index-Big-Brother-DataBase"></span>
<p>If you use the Big Brother DataBase (BBDB) Emacs package to capture
email addresses and store contact information, the rolo automatically
works with it. If the BBDB package is loaded before HyRolo, then your
@@ -6450,9 +6323,9 @@ BBDB entries, just finding them.
<code>hyrolo-bbdb-fgrep</code> (string finding) and
<code>hyrolo-bbdb-grep</code>
(regular expression finding). They may be bound to keys if desired.
</p>
-<a name="index-contacts_002c-Google"></a>
-<a name="index-Google-Contacts"></a>
-<a name="index-Gmail-Contacts"></a>
+<span id="index-contacts_002c-Google"></span>
+<span id="index-Google-Contacts"></span>
+<span id="index-Gmail-Contacts"></span>
<p>If you use Google/Gmail Contacts, you can configure the HyRolo to
query your Google Contacts for matches. First you must download and
install the external <samp>google-contacts</samp> package using the Emacs
@@ -6469,14 +6342,14 @@ that will be displayed on your screen. After
authorization, your
your information will be cached so that you are not prompted for
it again within this Emacs session.
</p>
-<a name="index-hyrolo_002dgoogle_002dcontacts_002dfgrep"></a>
-<a name="index-hyrolo_002dgoogle_002dcontacts_002dgrep"></a>
+<span id="index-hyrolo_002dgoogle_002dcontacts_002dfgrep"></span>
+<span id="index-hyrolo_002dgoogle_002dcontacts_002dgrep"></span>
<p>For finding matches within only Google Contacts, there are the commands
<code>hyrolo-google-contacts-fgrep</code> (string finding) and
<code>hyrolo-google-contacts-grep</code> (regular expression finding). They
may be bound to keys if desired.
</p>
-<a name="index-hyrolo_002dgoogle_002dcontacts_002dflag"></a>
+<span id="index-hyrolo_002dgoogle_002dcontacts_002dflag"></span>
<p>If you ever need to disable Google Contacts usage, there is a
flag, <code>hyrolo-google-contacts-flag</code>, which when set to
‘<samp>nil</samp>’
disables searching of your Google Contacts.
@@ -6485,10 +6358,10 @@ disables searching of your Google Contacts.
</p>
<dl compact="compact">
<dd>
-<a name="index-rolo_002c-highlighting-matches-1"></a>
+<span id="index-rolo_002c-highlighting-matches-1"></span>
</dd>
<dt><code>hyrolo-highlight-face</code>
-<a name="index-hyrolo_002dhighlight_002dface"></a>
+<span id="index-hyrolo_002dhighlight_002dface"></span>
</dt>
<dd><p>If textual highlighting is available in your emacs on your current
display type, the rolo uses the value of <code>hyrolo-highlight-face</code> as
@@ -6496,7 +6369,7 @@ the face which highlights search matches.
</p>
</dd>
<dt><code>hyrolo-kill-buffers-after-use</code>
-<a name="index-hyrolo_002dkill_002dbuffers_002dafter_002duse"></a>
+<span id="index-hyrolo_002dkill_002dbuffers_002dafter_002duse"></span>
</dt>
<dd><p>HyRolo file buffers are left around after they are searched, on the
assumption that another search is likely to follow within this emacs
@@ -6505,7 +6378,7 @@ setting: <code>(setq hyrolo-kill-buffers-after-use
t)</code>.
</p>
</dd>
<dt><code>hyrolo-save-buffers-after-use</code>
-<a name="index-hyrolo_002dsave_002dbuffers_002dafter_002duse"></a>
+<span id="index-hyrolo_002dsave_002dbuffers_002dafter_002duse"></span>
</dt>
<dd><p>After an entry is killed, the modified rolo file is automatically
saved. If you would rather always save files yourself, use this
@@ -6513,7 +6386,7 @@ setting: <code>(setq hyrolo-save-buffers-after-use
nil)</code>.
</p>
</dd>
<dt><code>hyrolo-email-format</code>
-<a name="index-hyrolo_002demail_002dformat"></a>
+<span id="index-hyrolo_002demail_002dformat"></span>
</dt>
<dd><p>When an entry is being added from within a mail reader buffer, the
rolo extracts the sender’s name and e-mail address and prompts you
@@ -6524,7 +6397,7 @@ change its value.
</p>
</dd>
<dt><code>hyrolo-hdr-regexp</code>
-<a name="index-hyrolo_002dhdr_002dregexp"></a>
+<span id="index-hyrolo_002dhdr_002dregexp"></span>
</dt>
<dd><p>A rolo file may begin with an optional header section which is copied
to the match display buffer whenever any matches are found during a
@@ -6535,7 +6408,7 @@ matching entries retrieved from multiple files during a
single search.
</p>
</dd>
<dt><code>hyrolo-entry-regexp</code>
-<a name="index-hyrolo_002dentry_002dregexp"></a>
+<span id="index-hyrolo_002dentry_002dregexp"></span>
</dt>
<dd><p>The rolo entry start delimiter is given by the regular expression
variable, <code>hyrolo-entry-regexp</code>, whose default value is
"^\*+", i.e.
@@ -6543,7 +6416,7 @@ one or more asterisks at the beginning of a line.
</p>
</dd>
<dt><code>hyrolo-display-format-function</code>
-<a name="index-hyrolo_002ddisplay_002dformat_002dfunction"></a>
+<span id="index-hyrolo_002ddisplay_002dformat_002dfunction"></span>
</dt>
<dd><p>When a rolo search is done, each matching entry is passed through the
function given by the variable, <code>hyrolo-display-format-function</code>,
@@ -6562,18 +6435,16 @@ There is never a need to learn a complicated query
language.
</dl>
<hr>
-<a name="Window-Configurations"></a>
-<div class="header">
+<span id="Window-Configurations"></span><div class="header">
<p>
Next: <a href="#Developing-with-Hyperbole" accesskey="n" rel="next">Developing
with Hyperbole</a>, Previous: <a href="#HyRolo" accesskey="p"
rel="prev">HyRolo</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Window-Configurations-1"></a>
-<h2 class="chapter">8 Window Configurations</h2>
+<span id="Window-Configurations-1"></span><h2 class="chapter">8 Window
Configurations</h2>
-<a name="index-window-configurations"></a>
-<a name="index-restoring-windows"></a>
-<a name="index-saving-window-configurations"></a>
-<a name="index-file_002c-hywconfig_002eel"></a>
+<span id="index-window-configurations"></span>
+<span id="index-restoring-windows"></span>
+<span id="index-saving-window-configurations"></span>
+<span id="index-file_002c-hywconfig_002eel"></span>
<p>This chapter explains Hyperbole’s <samp>hywconfig.el</samp> library.
It lets you
save and restore window configurations, i.e. the layout of windows and
buffers displayed within an emacs frame. This is useful to save a
@@ -6601,17 +6472,17 @@ hywconfig window configuration commands:
</pre>
<p>The operations on this menu are defined as follows.
</p>
-<a name="index-hywconfig-commands"></a>
-<a name="index-wconfig-commands"></a>
-<a name="index-window-configuration-commands"></a>
-<a name="index-named-window-configuration"></a>
-<a name="index-window-configuration-ring"></a>
-<a name="index-hywconfig_002dadd_002dby_002dname"></a>
-<a name="index-hywconfig_002ddelete_002dby_002dname"></a>
-<a name="index-hywconfig_002drestore_002dby_002dname"></a>
-<a name="index-hywconfig_002ddelete_002dpop"></a>
-<a name="index-hywconfig_002dring_002dsave"></a>
-<a name="index-hywconfig_002dyank_002dpop"></a>
+<span id="index-hywconfig-commands"></span>
+<span id="index-wconfig-commands"></span>
+<span id="index-window-configuration-commands"></span>
+<span id="index-named-window-configuration"></span>
+<span id="index-window-configuration-ring"></span>
+<span id="index-hywconfig_002dadd_002dby_002dname"></span>
+<span id="index-hywconfig_002ddelete_002dby_002dname"></span>
+<span id="index-hywconfig_002drestore_002dby_002dname"></span>
+<span id="index-hywconfig_002ddelete_002dpop"></span>
+<span id="index-hywconfig_002dring_002dsave"></span>
+<span id="index-hywconfig_002dyank_002dpop"></span>
<div class="example">
<pre class="example">Menu Item Command Description
=====================================================================
@@ -6631,20 +6502,20 @@ commands permit saves and restores using only the
mouse. Since the ring
commands are a bit more complex than their by-name counterparts, the
following paragraphs explain them in more detail.
</p>
-<a name="index-kill_002dring"></a>
+<span id="index-kill_002dring"></span>
<p>HyWconfig creates a ring structure that operates just like the Emacs
-<code>kill-ring</code> (see <a
href="http://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Kill-Ring">Kill
Ring</a> in <cite>the GNU Emacs Manual</cite>) but its
+<code>kill-ring</code> (see <a
href="https://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Kill-Ring">Kill
Ring</a> in <cite>the GNU Emacs Manual</cite>) but its
elements are window configurations rather than text regions. You can
add an element to the ring to save the current window configuration in
the selected frame. After several elements are in the ring, you can
walk through all of them in sequence until the desired configuration
is restored.
</p>
-<a name="index-hywconfig_002dring_002dsave-1"></a>
+<span id="index-hywconfig_002dring_002dsave-1"></span>
<p>SaveRing executes the <code>hywconfig-ring-save</code> command which
saves the current window configuration to the ring.
</p>
-<a name="index-hywconfig_002dyank_002dpop-1"></a>
+<span id="index-hywconfig_002dyank_002dpop-1"></span>
<p>YankRing executes the <code>hywconfig-yank-pop</code> command. It restores
the window configuration currently pointed to within the ring. It
does not delete this configuration from the ring but it does move the
@@ -6653,60 +6524,56 @@ thus restore successive window configurations until the
ring pointer
wraps around. Simply stop when a desired configuration appears and
use <kbd>{q}</kbd> to quit from the minibuffer menu.
</p>
-<a name="index-hywconfig_002ddelete_002dpop-1"></a>
+<span id="index-hywconfig_002ddelete_002dpop-1"></span>
<p>PopRing calls the <code>hywconfig-delete-pop</code> command. It is used to
restore a previously saved configuration and to delete it from the ring.
Simply stop when a desired configuration appears and use <kbd>{q}</kbd> to
quit from the minibuffer menu.
</p>
-<a name="index-hywconfig_002dring_002dmax"></a>
+<span id="index-hywconfig_002dring_002dmax"></span>
<p>The maximum number of elements the ring can hold is set by the
<code>hywconfig-ring-max</code> variable whose default is 10. Any saves beyond
this value will delete the oldest element in the ring before a new one
is added.
</p>
<hr>
-<a name="Developing-with-Hyperbole"></a>
-<div class="header">
+<span id="Developing-with-Hyperbole"></span><div class="header">
<p>
Next: <a href="#Glossary" accesskey="n" rel="next">Glossary</a>, Previous: <a
href="#Window-Configurations" accesskey="p" rel="prev">Window
Configurations</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Developing-with-Hyperbole-1"></a>
-<h2 class="chapter">9 Developing with Hyperbole</h2>
+<span id="Developing-with-Hyperbole-1"></span><h2 class="chapter">9 Developing
with Hyperbole</h2>
<p>This chapter is for people who are familiar with Emacs Lisp and
wish to customize Hyperbole, to extend it, or to develop other systems
using Hyperbole as a base.
</p>
<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">• <a href="#Hook-Variables"
accesskey="1">Hook Variables</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Hook-Variables"
accesskey="1">Hook Variables</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Creating-Types"
accesskey="2">Creating Types</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Creating-Types"
accesskey="2">Creating Types</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Explicit-Button-Technicalities" accesskey="3">Explicit Button
Technicalities</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Explicit-Button-Technicalities" accesskey="3">Explicit Button
Technicalities</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Encapsulating-Systems"
accesskey="4">Encapsulating Systems</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Encapsulating-Systems"
accesskey="4">Encapsulating Systems</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Embedding-Hyperbole"
accesskey="5">Embedding Hyperbole</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Embedding-Hyperbole"
accesskey="5">Embedding Hyperbole</a></td><td> </td><td align="left"
valign="top">
</td></tr>
</table>
<hr>
-<a name="Hook-Variables"></a>
-<div class="header">
+<span id="Hook-Variables"></span><div class="header">
<p>
Next: <a href="#Creating-Types" accesskey="n" rel="next">Creating Types</a>,
Previous: <a href="#Developing-with-Hyperbole" accesskey="p"
rel="prev">Developing with Hyperbole</a>, Up: <a
href="#Developing-with-Hyperbole" accesskey="u" rel="up">Developing with
Hyperbole</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Hook-Variables-1"></a>
-<h3 class="section">9.1 Hook Variables</h3>
+<span id="Hook-Variables-1"></span><h3 class="section">9.1 Hook Variables</h3>
-<a name="index-variables"></a>
-<a name="index-hook-variables"></a>
+<span id="index-variables"></span>
+<span id="index-hook-variables"></span>
<p>Hyperbole supplies a number of hook variables that allow you to adjust
its basic operations to meet your own needs, without requiring you to
change the code for those operations.
</p>
-<a name="index-add_002dhook"></a>
+<span id="index-add_002dhook"></span>
<p>We find it best to always set the value of hook variables either to
‘<samp>nil</samp>’ or to a list of function names of no arguments,
each of which
will be called in sequence when the hook is triggered. If you use
@@ -6719,7 +6586,7 @@ appended. Hyperbole includes the following hook
variables:
</p>
<dl compact="compact">
<dt><code>hyperbole-init-hook</code>
-<a name="index-hyperbole_002dinit_002dhook"></a>
+<span id="index-hyperbole_002dinit_002dhook"></span>
</dt>
<dd><p>For customization at Hyperbole initialization time. Use this to load
any personal Hyperbole type definitions or key bindings you might have.
@@ -6728,27 +6595,27 @@ initialized, i.e. prior to keyboard and mouse bindings.
</p>
</dd>
<dt><code>action-key-depress-hook</code>
-<a name="index-action_002dkey_002ddepress_002dhook"></a>
+<span id="index-action_002dkey_002ddepress_002dhook"></span>
</dt>
<dt><code>assist-key-depress-hook</code>
-<a name="index-assist_002dkey_002ddepress_002dhook"></a>
+<span id="index-assist_002dkey_002ddepress_002dhook"></span>
</dt>
<dd><p>Run after an Action or Assist Mouse Key depress is detected.
</p>
</dd>
<dt><code>action-key-release-hook</code>
-<a name="index-action_002dkey_002drelease_002dhook"></a>
+<span id="index-action_002dkey_002drelease_002dhook"></span>
</dt>
<dt><code>assist-key-release-hook</code>
-<a name="index-assist_002dkey_002drelease_002dhook"></a>
+<span id="index-assist_002dkey_002drelease_002dhook"></span>
</dt>
<dd><p>Run after an Action or Assist Mouse Key release is detected, before
any associated action is executed.
</p>
-<a name="index-hbut_003acurrent"></a>
+<span id="index-hbut_003acurrent"></span>
</dd>
<dt><code>action-act-hook</code>
-<a name="index-action_002dact_002dhook"></a>
+<span id="index-action_002dact_002dhook"></span>
</dt>
<dd><p>Run before each Hyperbole button activation.
The variable <code>hbut:current</code> contains the button to be activated when
@@ -6756,25 +6623,25 @@ this is run.
</p>
</dd>
<dt><code>ebut-create-hook</code>
-<a name="index-ebut_002dcreate_002dhook"></a>
+<span id="index-ebut_002dcreate_002dhook"></span>
</dt>
<dd><p>Adds to the Hyperbole explicit button creation process.
</p>
</dd>
<dt><code>ebut-delete-hook</code>
-<a name="index-ebut_002ddelete_002dhook"></a>
+<span id="index-ebut_002ddelete_002dhook"></span>
</dt>
<dd><p>Adds to the Hyperbole explicit button deletion process.
</p>
</dd>
<dt><code>ebut-modify-hook</code>
-<a name="index-ebut_002dmodify_002dhook"></a>
+<span id="index-ebut_002dmodify_002dhook"></span>
</dt>
<dd><p>Executed when an explicit button’s attributes are modified.
</p>
</dd>
<dt><code>hibtypes-begin-load-hook</code>
-<a name="index-hibtypes_002dbegin_002dload_002dhook"></a>
+<span id="index-hibtypes_002dbegin_002dload_002dhook"></span>
</dt>
<dd><p>Executed prior to loading of standard Hyperbole implicit button types.
Used to load site-specific low priority implicit button types since
@@ -6782,7 +6649,7 @@ lowest priority ibtypes are loaded first.
</p>
</dd>
<dt><code>hibtypes-end-load-hook</code>
-<a name="index-hibtypes_002dend_002dload_002dhook"></a>
+<span id="index-hibtypes_002dend_002dload_002dhook"></span>
</dt>
<dd><p>Executed after loading of standard Hyperbole implicit button types.
Used to load site-specific high priority implicit button types since
@@ -6790,52 +6657,52 @@ highest priority ibtypes are loaded last.
</p>
</dd>
<dt><code>htype-create-hook</code>
-<a name="index-htype_002dcreate_002dhook"></a>
+<span id="index-htype_002dcreate_002dhook"></span>
</dt>
<dd><p>Executed whenever a Hyperbole type (e.g. action type or implicit button
type) is added to the environment.
</p>
</dd>
<dt><code>htype-delete-hook</code>
-<a name="index-htype_002ddelete_002dhook"></a>
+<span id="index-htype_002ddelete_002dhook"></span>
</dt>
<dd><p>Executed whenever a type is deleted from the environment.
</p>
</dd>
<dt><code>kotl-mode-hook</code>
-<a name="index-kotl_002dmode_002dhook"></a>
+<span id="index-kotl_002dmode_002dhook"></span>
</dt>
<dd><p>Executed whenever a koutline is created or read in or when kotl-mode is
invoked.
</p>
</dd>
<dt><code>hyrolo-add-hook</code>
-<a name="index-hyrolo_002dadd_002dhook-1"></a>
+<span id="index-hyrolo_002dadd_002dhook-1"></span>
</dt>
<dd><p>Executed after the addition of a new rolo entry.
</p>
</dd>
<dt><code>hyrolo-display-hook</code>
-<a name="index-hyrolo_002ddisplay_002dhook"></a>
+<span id="index-hyrolo_002ddisplay_002dhook"></span>
</dt>
<dd><p>Executed when rolo matches are displayed.
</p>
</dd>
<dt><code>hyrolo-edit-hook</code>
-<a name="index-hyrolo_002dedit_002dhook-1"></a>
+<span id="index-hyrolo_002dedit_002dhook-1"></span>
</dt>
<dd><p>Executed after point is successfully moved to an entry to be edited.
</p>
</dd>
<dt><code>hyrolo-mode-hook</code>
-<a name="index-hyrolo_002dmode_002dhook"></a>
+<span id="index-hyrolo_002dmode_002dhook"></span>
</dt>
<dd><p>Executed when a rolo match buffer is created and put into hyrolo-mode.
</p>
-<a name="index-yank_002c-reformatting"></a>
+<span id="index-yank_002c-reformatting"></span>
</dd>
<dt><code>hyrolo-yank-reformat-function</code>
-<a name="index-hyrolo_002dyank_002dreformat_002dfunction"></a>
+<span id="index-hyrolo_002dyank_002dreformat_002dfunction"></span>
</dt>
<dd><p>A variable whose value may be set to a function of two arguments, START
and END, which give the region of the rolo entry yanked into the
@@ -6849,25 +6716,25 @@ region to meet user-specific needs.
</p>
<dl compact="compact">
<dd>
-<a name="index-button-highlighting"></a>
+<span id="index-button-highlighting"></span>
</dd>
<dt><code>find-file-hook</code>
-<a name="index-find_002dfile_002dhook"></a>
+<span id="index-find_002dfile_002dhook"></span>
</dt>
<dd><p>This is called whenever a file is read into a buffer. Hyperbole uses
it to highlight any buttons within files.
</p>
-<a name="index-button-data-saving"></a>
+<span id="index-button-data-saving"></span>
</dd>
<dt><code>write-file-hooks</code>
-<a name="index-write_002dfile_002dhooks"></a>
+<span id="index-write_002dfile_002dhooks"></span>
</dt>
<dd><p>This is called whenever a buffer is written to a file. Hyperbole uses
it to save modified button attributes associated with any file from the
same directory as the current file.
</p>
-<a name="index-mail-hooks"></a>
-<a name="index-news-hooks"></a>
+<span id="index-mail-hooks"></span>
+<span id="index-news-hooks"></span>
<p>Hyperbole mail and news facilities also utilize a number of Emacs hook
variables. These hide button data and highlight buttons if possible.
See the Hyperbole files with ‘mail’ and ‘gnus’ in
their names for
@@ -6876,23 +6743,21 @@ specific usage of such hooks.
</dl>
<hr>
-<a name="Creating-Types"></a>
-<div class="header">
+<span id="Creating-Types"></span><div class="header">
<p>
Next: <a href="#Explicit-Button-Technicalities" accesskey="n"
rel="next">Explicit Button Technicalities</a>, Previous: <a
href="#Hook-Variables" accesskey="p" rel="prev">Hook Variables</a>, Up: <a
href="#Developing-with-Hyperbole" accesskey="u" rel="up">Developing with
Hyperbole</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Creating-Types-1"></a>
-<h3 class="section">9.2 Creating Types</h3>
+<span id="Creating-Types-1"></span><h3 class="section">9.2 Creating Types</h3>
-<a name="index-type-definition"></a>
-<a name="index-type-redefinition-1"></a>
+<span id="index-type-definition"></span>
+<span id="index-type-redefinition-1"></span>
<p>To define or redefine a single Hyperbole type, you may either:
</p>
<ul>
-<li> <a name="index-C_002dM_002dx"></a>
-<a name="index-eval_002ddefun"></a>
-<a name="index-C_002dx-C_002de"></a>
-<a name="index-eval_002dlast_002dsexp"></a>
+<li> <span id="index-C_002dM_002dx"></span>
+<span id="index-eval_002ddefun"></span>
+<span id="index-C_002dx-C_002de"></span>
+<span id="index-eval_002dlast_002dsexp"></span>
move your Emacs point to within the type definition and use
<kbd>{C-M-x}</kbd> <code>(eval-defun)</code> (only works in Emacs Lisp mode);
@@ -6900,44 +6765,42 @@ move your Emacs point to within the type definition and
use
use <kbd>{C-x C-e}</kbd> <code>(eval-last-sexp)</code> (works in most modes).
</li></ul>
-<a name="index-Hyperbole-types"></a>
-<a name="index-class_002c-htype"></a>
+<span id="index-Hyperbole-types"></span>
+<span id="index-class_002c-htype"></span>
<p>The functions from the ‘<samp>htype</samp>’ class may be
applied to any
Hyperbole types, if needed.
</p>
-<a name="index-file_002c-hactypes_002eel"></a>
-<a name="index-file_002c-hibtypes_002eel-1"></a>
+<span id="index-file_002c-hactypes_002eel"></span>
+<span id="index-file_002c-hibtypes_002eel-1"></span>
<p>The following subsections explain the specifics of Hyperbole type
definitions which are beyond standard practice for Emacs Lisp programming.
See the definitions of the standard types in <samp>hactypes.el</samp>
and <samp>hibtypes.el</samp> for examples.
</p>
<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">• <a href="#Action-Type-Creation"
accesskey="1">Action Type Creation</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Action-Type-Creation"
accesskey="1">Action Type Creation</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Implicit-Button-Type-Creation" accesskey="2">Implicit Button Type
Creation</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Implicit-Button-Type-Creation" accesskey="2">Implicit Button Type
Creation</a></td><td> </td><td align="left" valign="top">
</td></tr>
</table>
<hr>
-<a name="Action-Type-Creation"></a>
-<div class="header">
+<span id="Action-Type-Creation"></span><div class="header">
<p>
Next: <a href="#Implicit-Button-Type-Creation" accesskey="n"
rel="next">Implicit Button Type Creation</a>, Previous: <a
href="#Creating-Types" accesskey="p" rel="prev">Creating Types</a>, Up: <a
href="#Creating-Types" accesskey="u" rel="up">Creating Types</a> [<a
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Action-Type-Creation-1"></a>
-<h4 class="subsection">9.2.1 Action Type Creation</h4>
+<span id="Action-Type-Creation-1"></span><h4 class="subsection">9.2.1 Action
Type Creation</h4>
-<a name="index-actype_003acreate"></a>
-<a name="index-file_002c-hactypes_002eel-1"></a>
-<a name="index-file_002c-hbut_002eel"></a>
+<span id="index-actype_003acreate"></span>
+<span id="index-file_002c-hactypes_002eel-1"></span>
+<span id="index-file_002c-hbut_002eel"></span>
<p>New forms of explicit buttons may be created by adding new action types
to a Hyperbole environment. The file, <samp>hactypes.el</samp>, contains
many examples of working action types.
</p>
-<a name="index-action-type_002c-creation"></a>
-<a name="index-defact"></a>
-<a name="index-actype_003acreate-1"></a>
+<span id="index-action-type_002c-creation"></span>
+<span id="index-defact"></span>
+<span id="index-actype_003acreate-1"></span>
<p>An action type is created, i.e. loaded into the Hyperbole environment,
with the <code>(defact)</code> function (which is an alias for
<code>(actype:create)</code>). The calling signature for this function is
@@ -6962,12 +6825,12 @@ caller to ensure that it registers the performance of
the action.
<p>An action type body may perform any computation that uses Emacs Lisp and
Hyperbole functions.
</p>
-<a name="index-interactive-form"></a>
-<a name="index-interactive"></a>
+<span id="index-interactive-form"></span>
+<span id="index-interactive"></span>
<p>The interactive calling form for an action type is of the same form as
that of a regular Emacs Lisp function definition (see the
documentation for the Emacs Lisp <code>(interactive)</code> form
-or see <a
href="http://www.gnu.org/software/emacs/manual/html_mono/elisp.html#Interactive-Codes">Code
Characters for ’interactive’</a> in <cite>the GNU Emacs Lisp
Reference Manual</cite>. It may additionally use
+or see <a
href="https://www.gnu.org/software/emacs/manual/html_mono/elisp.html#Interactive-Codes">Code
Characters for ’interactive’</a> in <cite>the GNU Emacs Lisp
Reference Manual</cite>. It may additionally use
Hyperbole command character extensions when the form is given as a
string. Each such extension character <em>must</em> be preceded by a
plus sign, ‘<samp>+</samp>’, in order to be recognized, since such
characters
@@ -6976,44 +6839,44 @@ may also have different standard interactive meanings.
<p>The present Hyperbole extension characters are:
</p>
<dl compact="compact">
-<dd><a name="index-argument_002c-Info-node"></a>
-<a name="index-interactive-cmd-char_002c-_002bI"></a>
+<dd><span id="index-argument_002c-Info-node"></span>
+<span id="index-interactive-cmd-char_002c-_002bI"></span>
</dd>
<dt><code>+I</code></dt>
<dd><p>Prompts with completion for an existing Info (filename)nodename.
</p>
-<a name="index-argument_002c-kcell"></a>
-<a name="index-argument_002c-koutline"></a>
-<a name="index-interactive-cmd-char_002c-_002bK"></a>
+<span id="index-argument_002c-kcell"></span>
+<span id="index-argument_002c-koutline"></span>
+<span id="index-interactive-cmd-char_002c-_002bK"></span>
</dd>
<dt><code>+K</code></dt>
<dd><p>Prompts for an existing kcell identifier, either a full outline level
identifier or a permanent idstamp.
</p>
-<a name="index-argument_002c-klink"></a>
-<a name="index-interactive-cmd-char_002c-_002bL"></a>
+<span id="index-argument_002c-klink"></span>
+<span id="index-interactive-cmd-char_002c-_002bL"></span>
</dd>
<dt><code>+L</code></dt>
<dd><p>Prompts for a klink specification. See the documentation for the
function
<code>(kcell-view:reference)</code> for details of the format of a klink.
</p>
-<a name="index-interactive-cmd-char_002c-_002bM"></a>
-<a name="index-argument_002c-mail-message"></a>
+<span id="index-interactive-cmd-char_002c-_002bM"></span>
+<span id="index-argument_002c-mail-message"></span>
</dd>
<dt><code>+M</code></dt>
<dd><p>Prompts for a mail message date and the filename in which it resides.
The mail parameters prompted for by this character code may change in
the future.
</p>
-<a name="index-argument_002c-view-spec"></a>
-<a name="index-interactive-cmd-char_002c-_002bV"></a>
+<span id="index-argument_002c-view-spec"></span>
+<span id="index-interactive-cmd-char_002c-_002bV"></span>
</dd>
<dt><code>+V</code></dt>
<dd><p>Prompts for a Koutliner view specification string, with the current
view spec, if any, as a default.
</p>
-<a name="index-argument_002c-Info-index-item"></a>
-<a name="index-interactive-cmd-char_002c-_002bX"></a>
+<span id="index-argument_002c-Info-index-item"></span>
+<span id="index-interactive-cmd-char_002c-_002bX"></span>
</dd>
<dt><code>+X</code></dt>
<dd><p>Prompts with completion for an existing Info index (filename)itemname.
@@ -7021,8 +6884,8 @@ view spec, if any, as a default.
</dd>
</dl>
-<a name="index-class_002c-hargs"></a>
-<a name="index-argument_002c-reading"></a>
+<span id="index-class_002c-hargs"></span>
+<span id="index-argument_002c-reading"></span>
<p>Arguments are read by the functions in Hyperbole’s <code>hargs</code>
class,
rather than the standard Lisp <code>read</code> functions, in order to allow
direct selection of arguments via the Action Key.
@@ -7036,25 +6899,23 @@ environment, you can create new explicit buttons which
use it. There is
no explicit button type beyond its action type, so no other work is
necessary.
</p>
-<a name="index-actype_003adelete"></a>
+<span id="index-actype_003adelete"></span>
<p>Call <code>(actype:delete)</code> to remove an action type from a Hyperbole
environment. It takes a single parameter which should be the same type
symbol used in the type definition call (not the Hyperbole symbol
returned by the call).
</p>
<hr>
-<a name="Implicit-Button-Type-Creation"></a>
-<div class="header">
+<span id="Implicit-Button-Type-Creation"></span><div class="header">
<p>
Previous: <a href="#Action-Type-Creation" accesskey="p" rel="prev">Action Type
Creation</a>, Up: <a href="#Creating-Types" accesskey="u" rel="up">Creating
Types</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Implicit-Button-Type-Creation-1"></a>
-<h4 class="subsection">9.2.2 Implicit Button Type Creation</h4>
+<span id="Implicit-Button-Type-Creation-1"></span><h4 class="subsection">9.2.2
Implicit Button Type Creation</h4>
-<a name="index-implicit-button-type"></a>
-<a name="index-ibtype"></a>
-<a name="index-defib"></a>
-<a name="index-ibtype_003acreate"></a>
+<span id="index-implicit-button-type"></span>
+<span id="index-ibtype"></span>
+<span id="index-defib"></span>
+<span id="index-ibtype_003acreate"></span>
<p>An implicit button type is created or loaded via the <code>(defib)</code>
function (which is an alias for <code>(ibtype:create)</code>). The calling
signature for this function is given in its documentation; it is the
@@ -7063,10 +6924,10 @@ parameter list should always be empty since no
parameters will be used.
A documentation string is required; it is followed by the body of the
type.
</p>
-<a name="index-ibtype_002c-predicate"></a>
-<a name="index-ibtype_002c-argument"></a>
-<a name="index-ibtype_002c-return-val"></a>
-<a name="index-ibtype_002c-actype"></a>
+<span id="index-ibtype_002c-predicate"></span>
+<span id="index-ibtype_002c-argument"></span>
+<span id="index-ibtype_002c-return-val"></span>
+<span id="index-ibtype_002c-actype"></span>
<p>The body of an implicit button type is a predicate which determines
whether or not point is within an implicit button of the type. If not,
the predicate returns ‘<samp>nil</samp>’. If so, it may
optionally setup to
@@ -7092,18 +6953,18 @@ may be the same without any conflict. In fact, such
naming is
encouraged when an implicit button type is the exclusive user of an
action type.
</p>
-<a name="index-ibtype_003adelete"></a>
+<span id="index-ibtype_003adelete"></span>
<p>Call <code>(ibtype:delete)</code> to remove an implicit button type from a
Hyperbole environment. It takes a single parameter which should be the
same type symbol used in the type definition call (not the Hyperbole
symbol returned by the call). This will not delete the action type used
by the implicit button; that must be done separately.
</p>
-<a name="index-ibtype_002c-help"></a>
-<a name="index-ibut_003aat_002dp"></a>
-<a name="index-class_002c-hattr"></a>
-<a name="index-class_002c-hbut"></a>
-<a name="index-file_002c-hib_002dkbd_002eel"></a>
+<span id="index-ibtype_002c-help"></span>
+<span id="index-ibut_003aat_002dp"></span>
+<span id="index-class_002c-hattr"></span>
+<span id="index-class_002c-hbut"></span>
+<span id="index-file_002c-hib_002dkbd_002eel"></span>
<p>By default, a request for help on an implicit button will display the
button’s attributes in the same manner as is done for explicit buttons.
For some implicit button types, other forms of help will be more
@@ -7119,34 +6980,30 @@ functions from the ‘<samp>hbut</samp>’ and
‘<samp>hattr</samp>
the <samp>hib-kbd.el</samp> file for an example of a custom help function.
</p>
<hr>
-<a name="Explicit-Button-Technicalities"></a>
-<div class="header">
+<span id="Explicit-Button-Technicalities"></span><div class="header">
<p>
Next: <a href="#Encapsulating-Systems" accesskey="n" rel="next">Encapsulating
Systems</a>, Previous: <a href="#Creating-Types" accesskey="p"
rel="prev">Creating Types</a>, Up: <a href="#Developing-with-Hyperbole"
accesskey="u" rel="up">Developing with Hyperbole</a> [<a
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Explicit-Button-Technicalities-1"></a>
-<h3 class="section">9.3 Explicit Button Technicalities</h3>
+<span id="Explicit-Button-Technicalities-1"></span><h3 class="section">9.3
Explicit Button Technicalities</h3>
<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">• <a href="#Button-Label-Normalization"
accesskey="1">Button Label Normalization</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Button-Label-Normalization"
accesskey="1">Button Label Normalization</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Operational-and-Storage-Formats" accesskey="2">Operational and Storage
Formats</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Operational-and-Storage-Formats" accesskey="2">Operational and Storage
Formats</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Programmatic-Button-Creation" accesskey="3">Programmatic Button
Creation</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Programmatic-Button-Creation" accesskey="3">Programmatic Button
Creation</a></td><td> </td><td align="left" valign="top">
</td></tr>
</table>
<hr>
-<a name="Button-Label-Normalization"></a>
-<div class="header">
+<span id="Button-Label-Normalization"></span><div class="header">
<p>
Next: <a href="#Operational-and-Storage-Formats" accesskey="n"
rel="next">Operational and Storage Formats</a>, Previous: <a
href="#Explicit-Button-Technicalities" accesskey="p" rel="prev">Explicit Button
Technicalities</a>, Up: <a href="#Explicit-Button-Technicalities" accesskey="u"
rel="up">Explicit Button Technicalities</a> [<a href="#SEC_Contents"
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index"
title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Button-Label-Normalization-1"></a>
-<h4 class="subsection">9.3.1 Button Label Normalization</h4>
-<a name="index-normalized-label"></a>
-<a name="index-button-label-2"></a>
-<a name="index-button-key"></a>
-<a name="index-hbut_003alabel_002dto_002dkey"></a>
+<span id="Button-Label-Normalization-1"></span><h4 class="subsection">9.3.1
Button Label Normalization</h4>
+<span id="index-normalized-label"></span>
+<span id="index-button-label-2"></span>
+<span id="index-button-key"></span>
+<span id="index-hbut_003alabel_002dto_002dkey"></span>
<p>Hyperbole uses a normalized form of button labels called button keys (or
label keys) for all internal operations. See the documentation for the
function <code>(hbut:label-to-key)</code> for details of the normalization
@@ -7168,11 +7025,11 @@ be recognized as the same button.
/* button )> */
</pre></div>
-<a name="index-hbut_003afill_002dprefix_002dregexps"></a>
-<a name="index-fill_002dprefix"></a>
-<a name="index-fill-prefix"></a>
-<a name="index-button_002c-multiple-lines"></a>
-<a name="index-button_002c-split-across-lines"></a>
+<span id="index-hbut_003afill_002dprefix_002dregexps"></span>
+<span id="index-fill_002dprefix"></span>
+<span id="index-fill-prefix"></span>
+<span id="index-button_002c-multiple-lines"></span>
+<span id="index-button_002c-split-across-lines"></span>
<p>The last three examples demonstrate how Hyperbole ignores common fill
prefix patterns that happen to fall within the middle of a button label
that spans multiple lines. As long as such buttons are selected with
@@ -7184,19 +7041,17 @@ setting of the Emacs variable,
<code>fill-prefix</code>, so no user
intervention is required.
</p>
<hr>
-<a name="Operational-and-Storage-Formats"></a>
-<div class="header">
+<span id="Operational-and-Storage-Formats"></span><div class="header">
<p>
Next: <a href="#Programmatic-Button-Creation" accesskey="n"
rel="next">Programmatic Button Creation</a>, Previous: <a
href="#Button-Label-Normalization" accesskey="p" rel="prev">Button Label
Normalization</a>, Up: <a href="#Explicit-Button-Technicalities" accesskey="u"
rel="up">Explicit Button Technicalities</a> [<a href="#SEC_Contents"
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index"
title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Operational-and-Storage-Formats-1"></a>
-<h4 class="subsection">9.3.2 Operational and Storage Formats</h4>
+<span id="Operational-and-Storage-Formats-1"></span><h4
class="subsection">9.3.2 Operational and Storage Formats</h4>
-<a name="index-explicit-button-formats"></a>
-<a name="index-explicit-button-storage"></a>
-<a name="index-storage-manager"></a>
-<a name="index-button-attributes-1"></a>
-<a name="index-hbut_003acurrent-1"></a>
+<span id="index-explicit-button-formats"></span>
+<span id="index-explicit-button-storage"></span>
+<span id="index-storage-manager"></span>
+<span id="index-button-attributes-1"></span>
+<span id="index-hbut_003acurrent-1"></span>
<p>Hyperbole uses a terse format to store explicit buttons and a more
meaningful one to show users and to manipulate during editing. The
terse format consists solely of button attribute values whereas the edit
@@ -7208,9 +7063,9 @@ which the button is attached. Most functions utilize the
pre-defined
<code>hbut:current</code> symbol by default to store and retrieve the last
encountered button in edit format.
</p>
-<a name="index-class_002c-hbdata"></a>
-<a name="index-class_002c-ebut"></a>
-<a name="index-class_002c-hbut-1"></a>
+<span id="index-class_002c-hbdata"></span>
+<span id="index-class_002c-ebut"></span>
+<span id="index-class_002c-hbut-1"></span>
<p>The ‘<samp>hbdata</samp>’ class handles the terse, stored
format. The
‘<samp>hbut</samp>’, ‘<samp>ebut</samp>’, and
‘<samp>ibut</samp>’ classes work with the
name/value format. This separation permits the wholesale replacement of
@@ -7218,15 +7073,13 @@ the storage manager with another, with any interface
changes hidden from
any Hyperbole client programming.
</p>
<hr>
-<a name="Programmatic-Button-Creation"></a>
-<div class="header">
+<span id="Programmatic-Button-Creation"></span><div class="header">
<p>
Previous: <a href="#Operational-and-Storage-Formats" accesskey="p"
rel="prev">Operational and Storage Formats</a>, Up: <a
href="#Explicit-Button-Technicalities" accesskey="u" rel="up">Explicit Button
Technicalities</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Programmatic-Button-Creation-1"></a>
-<h4 class="subsection">9.3.3 Programmatic Button Creation</h4>
+<span id="Programmatic-Button-Creation-1"></span><h4 class="subsection">9.3.3
Programmatic Button Creation</h4>
-<a name="index-explicit-button_002c-creation"></a>
+<span id="index-explicit-button_002c-creation"></span>
<p>A common need when developing with Hyperbole is to create or to modify
explicit buttons without user interaction. For example, an application
might require the addition of an explicit summary button to a file for
@@ -7234,10 +7087,10 @@ each new mail message a user reads that contains a set
of keywords. The
user could then check the summary file and jump to desired messages
quickly.
</p>
-<a name="index-class_002c-ebut-1"></a>
-<a name="index-file_002c-hbut_002eel-1"></a>
-<a name="index-ebut_003acreate"></a>
-<a name="index-ebut_003amap"></a>
+<span id="index-class_002c-ebut-1"></span>
+<span id="index-file_002c-hbut_002eel-1"></span>
+<span id="index-ebut_003acreate"></span>
+<span id="index-ebut_003amap"></span>
<p>The Hyperbole class ‘<samp>ebut</samp>’ supports programmatic
access to explicit
buttons. Examine it within the <samp>hbut.el</samp> file for full details.
The documentation for <code>(ebut:create)</code> explains the set of
@@ -7247,17 +7100,15 @@ buffer, use the <code>(ebut:map)</code> function.
</p>
<hr>
-<a name="Encapsulating-Systems"></a>
-<div class="header">
+<span id="Encapsulating-Systems"></span><div class="header">
<p>
Next: <a href="#Embedding-Hyperbole" accesskey="n" rel="next">Embedding
Hyperbole</a>, Previous: <a href="#Explicit-Button-Technicalities"
accesskey="p" rel="prev">Explicit Button Technicalities</a>, Up: <a
href="#Developing-with-Hyperbole" accesskey="u" rel="up">Developing with
Hyperbole</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Encapsulating-Systems-1"></a>
-<h3 class="section">9.4 Encapsulating Systems</h3>
+<span id="Encapsulating-Systems-1"></span><h3 class="section">9.4
Encapsulating Systems</h3>
-<a name="index-file_002c-hsys_002d_002a"></a>
-<a name="index-Hyperbole_002c-system-encapsulation"></a>
-<a name="index-system-encapsulation"></a>
+<span id="index-file_002c-hsys_002d_002a"></span>
+<span id="index-Hyperbole_002c-system-encapsulation"></span>
+<span id="index-system-encapsulation"></span>
<p>A powerful use of implicit button types is to provide a Hyperbole-based
interface to external systems. The basic idea is to interpret patterns
output by the application as implicit buttons.
@@ -7276,21 +7127,19 @@ that a press of the Action Key follows a URL.
<hr>
-<a name="Embedding-Hyperbole"></a>
-<div class="header">
+<span id="Embedding-Hyperbole"></span><div class="header">
<p>
Previous: <a href="#Encapsulating-Systems" accesskey="p"
rel="prev">Encapsulating Systems</a>, Up: <a href="#Developing-with-Hyperbole"
accesskey="u" rel="up">Developing with Hyperbole</a> [<a
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Embedding-Hyperbole-1"></a>
-<h3 class="section">9.5 Embedding Hyperbole</h3>
+<span id="Embedding-Hyperbole-1"></span><h3 class="section">9.5 Embedding
Hyperbole</h3>
<p>[NOTE: We have never done this ourselves, though we have done similar
things which leads us to infer that the task should not be difficult.]
</p>
-<a name="index-Hyperbole-API"></a>
-<a name="index-API"></a>
-<a name="index-programming-interface"></a>
-<a name="index-Hyperbole_002c-embedding"></a>
+<span id="index-Hyperbole-API"></span>
+<span id="index-API"></span>
+<span id="index-programming-interface"></span>
+<span id="index-Hyperbole_002c-embedding"></span>
<p>The standard Hyperbole user interface has purposely been separated from
the Hyperbole backend to support the development of alternative
interfaces and the embedding of Hyperbole functionality within other
@@ -7321,18 +7170,16 @@ You are welcome, however, to study its code, below the
</p>
<hr>
-<a name="Glossary"></a>
-<div class="header">
+<span id="Glossary"></span><div class="header">
<p>
Next: <a href="#Setup" accesskey="n" rel="next">Setup</a>, Previous: <a
href="#Developing-with-Hyperbole" accesskey="p" rel="prev">Developing with
Hyperbole</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Glossary-1"></a>
-<h2 class="appendix">Appendix A Glossary</h2>
+<span id="Glossary-1"></span><h2 class="appendix">Appendix A Glossary</h2>
-<a name="index-glossary"></a>
-<a name="index-definitions"></a>
+<span id="index-glossary"></span>
+<span id="index-definitions"></span>
<p>Concepts pertinent to operational usage of Hyperbole are defined here.
-See <a
href="http://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Glossary">Glossary</a>
in <cite>the GNU Emacs Manual</cite>,
+See <a
href="https://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Glossary">Glossary</a>
in <cite>the GNU Emacs Manual</cite>,
if any emacs-related terms are unfamiliar to you.
</p>
<dl compact="compact">
@@ -7373,16 +7220,16 @@ button is activated.
button. An <em>attribute value</em> is typically specific to a particular
button instance.
</p>
-<a name="index-Augment-1"></a>
-<a name="index-hypertext-1"></a>
-<a name="index-interactive-computing"></a>
-<a name="index-mouse"></a>
-<a name="index-windows"></a>
-<a name="index-hypertext-2"></a>
-<a name="index-outline-processor"></a>
-<a name="index-groupware"></a>
-<a name="index-digital-signature"></a>
-<a name="index-Engelbart-1"></a>
+<span id="index-Augment-1"></span>
+<span id="index-hypertext-1"></span>
+<span id="index-interactive-computing"></span>
+<span id="index-mouse"></span>
+<span id="index-windows"></span>
+<span id="index-hypertext-2"></span>
+<span id="index-outline-processor"></span>
+<span id="index-groupware"></span>
+<span id="index-digital-signature"></span>
+<span id="index-Engelbart-1"></span>
</dd>
<dt><b>Augment</b></dt>
<dd><p>The Augment system, originally named NLS, was a pioneering research and
@@ -7454,7 +7301,7 @@ so behave exactly alike. Since button labels are simply
text strings,
they may be embedded within any text to provide non-linear information
or operational access points.
</p>
-<a name="index-ebut_003amax_002dlen"></a>
+<span id="index-ebut_003amax_002dlen"></span>
<p>The maximum length of a button label is limited by the variable
<code>ebut:max-len</code>.
</p>
@@ -7524,7 +7371,7 @@ frame is visible at a time as each frame generally fills
the whole
terminal display, providing a virtual screen capability. Emacs
windows exist within a frame.
</p>
-<a name="index-gbut_003afile"></a>
+<span id="index-gbut_003afile"></span>
</dd>
<dt><b>Global Button</b></dt>
<dd><p>A Hyperbole button which is accessed by name rather than direct
@@ -7544,7 +7391,7 @@ default, this is the same as the user’s personal
button file.
<dt><b>Grid</b></dt>
<dd><p>See <b>Windows Grid</b>.
</p>
-<a name="index-run_002dhooks"></a>
+<span id="index-run_002dhooks"></span>
</dd>
<dt><b>Hook Variable</b></dt>
<dd><p>A variable that permits customization of an existing function’s
@@ -7599,7 +7446,7 @@ to documents created and managed by tools other than
Hyperbole, for
example, programming documentation. <b>Ibtype</b> is a synonym for
implicit button type. See also <b>system encapsulation</b>.
</p>
-<a name="index-InfoDock"></a>
+<span id="index-InfoDock"></span>
</dd>
<dt><b>InfoDock</b></dt>
<dd><p>InfoDock was an integrated productivity toolset for software engineers
@@ -7748,16 +7595,16 @@ Cust/Find-File-URLs menu option to enable this feature.
<dd><p>A koutline cell which has cells below it at lower outline levels. All
such cells share the same root cell.
</p>
-<a name="index-Screen"></a>
+<span id="index-Screen"></span>
</dd>
<dt><b>Screen</b></dt>
<dd><p>The total display area available to Emacs frames. This may consist of
multiple physical monitors arranged into a single virtual display.
Screen edges are thus the outer borders of the virtual display.
</p>
-<a name="index-Smart-Key-1"></a>
-<a name="index-proportional-scrolling"></a>
-<a name="index-scrolling"></a>
+<span id="index-Smart-Key-1"></span>
+<span id="index-proportional-scrolling"></span>
+<span id="index-scrolling"></span>
</dd>
<dt><b>Smart Key</b></dt>
<dd><p>A context-sensitive key used within Hyperbole and beyond. There are
@@ -7848,13 +7695,11 @@ specifiable filters.
</dl>
<hr>
-<a name="Setup"></a>
-<div class="header">
+<span id="Setup"></span><div class="header">
<p>
Next: <a href="#Global-Key-Bindings" accesskey="n" rel="next">Global Key
Bindings</a>, Previous: <a href="#Glossary" accesskey="p"
rel="prev">Glossary</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Setup-1"></a>
-<h2 class="appendix">Appendix B Setup</h2>
+<span id="Setup-1"></span><h2 class="appendix">Appendix B Setup</h2>
<p>Hyperbole must be obtained and setup at your site before you can
use it. Instructions are given below. If you are using InfoDock
@@ -7863,29 +7708,27 @@ the installation instructions and simply continue with
the
invocation instructions in this appendix.
</p>
<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">• <a href="#Installation"
accesskey="1">Installation</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Installation"
accesskey="1">Installation</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Invocation"
accesskey="2">Invocation</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Invocation"
accesskey="2">Invocation</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Customization"
accesskey="3">Customization</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Customization"
accesskey="3">Customization</a></td><td> </td><td align="left"
valign="top">
</td></tr>
</table>
<hr>
-<a name="Installation"></a>
-<div class="header">
+<span id="Installation"></span><div class="header">
<p>
Next: <a href="#Invocation" accesskey="n" rel="next">Invocation</a>, Previous:
<a href="#Setup" accesskey="p" rel="prev">Setup</a>, Up: <a href="#Setup"
accesskey="u" rel="up">Setup</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Installation-1"></a>
-<h3 class="section">B.1 Installation</h3>
+<span id="Installation-1"></span><h3 class="section">B.1 Installation</h3>
-<a name="index-installation"></a>
-<a name="index-obtaining-Hyperbole"></a>
-<a name="index-Hyperbole_002c-obtaining-1"></a>
+<span id="index-installation"></span>
+<span id="index-obtaining-Hyperbole"></span>
+<span id="index-Hyperbole_002c-obtaining-1"></span>
<p>Once you have Emacs set up at your site, GNU Hyperbole may be
installed by using the Emacs Package Manager. If you are not familiar
-with it, see <a
href="http://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Packages">Packages</a>
in <cite>the GNU Emacs Manual</cite>.
+with it, see <a
href="https://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Packages">Packages</a>
in <cite>the GNU Emacs Manual</cite>.
</p>
<p>If you have Hyperbole installed and simply want to upgrade it, invoke
the Emacs Package Manager with <kbd>{M-x list-packages <span
class="key">RET</span>}</kbd>,
@@ -7895,7 +7738,7 @@ and move on to the next section, see <a
href="#Invocation">Invocation</a>.
</p>
<p>Otherwise, to download and install the Hyperbole package, you should add
several lines to your personal Emacs initialization file,
<samp>~/.emacs</samp>.
-(For further details, see <a
href="http://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Init-File">The
Emacs Initialization File</a> in <cite>the GNU Emacs Manual</cite>).
+(For further details, see <a
href="https://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Init-File">The
Emacs Initialization File</a> in <cite>the GNU Emacs Manual</cite>).
</p>
<p>Below are the lines to add:
</p>
@@ -7918,13 +7761,11 @@ can be safely ignored.
<p>Now read the next section on Invocation.
</p>
<hr>
-<a name="Invocation"></a>
-<div class="header">
+<span id="Invocation"></span><div class="header">
<p>
Next: <a href="#Customization" accesskey="n" rel="next">Customization</a>,
Previous: <a href="#Installation" accesskey="p" rel="prev">Installation</a>,
Up: <a href="#Setup" accesskey="u" rel="up">Setup</a> [<a
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Invocation-1"></a>
-<h3 class="section">B.2 Invocation</h3>
+<span id="Invocation-1"></span><h3 class="section">B.2 Invocation</h3>
<p>Once Hyperbole has been installed for use at your site and loaded into
your Emacs session, it is ready for use. You will see a Hyperbole
@@ -7938,7 +7779,7 @@ to quit from the menu.
<ul>
<li> use the Hyperbole entry on your menubar;
-</li><li> <a name="index-hyperbole"></a>
+</li><li> <span id="index-hyperbole"></span>
type <kbd>{C-h h}</kbd> or <kbd>{M-x hyperbole <span
class="key">RET</span>}</kbd> to display the Hyperbole minibuffer menu;
</li><li> use a specific Hyperbole command, for example, a press of
@@ -7961,20 +7802,20 @@ already bound prior to Hyperbole’s
initialization. A long video
demonstrating most of HyControl’s features is available at
<a href="https://youtu.be/M3-aMh1ccJk">https://youtu.be/M3-aMh1ccJk</a>.
</p>
-<a name="index-Info_002ddirectory_002dlist"></a>
-<a name="index-hyperb_003adir"></a>
-<a name="index-Hyperbole-manual"></a>
+<span id="index-Info_002ddirectory_002dlist"></span>
+<span id="index-hyperb_003adir"></span>
+<span id="index-Hyperbole-manual"></span>
<p>The above are the best interactive ways to learn about Hyperbole. The
Hyperbole Manual is a reference manual, not a simple introduction. It
is included in the <samp>man/</samp> subdirectory of the Hyperbole package
directory in four forms:
</p>
-<a name="index-Info-manual"></a>
-<a name="index-Texinfo-manual"></a>
-<a name="index-file_002c-man_002fhyperbole_002einfo"></a>
-<a name="index-file_002c-man_002fhyperbole_002ehtml"></a>
-<a name="index-file_002c-man_002fhyperbole_002epdf"></a>
-<a name="index-file_002c-man_002fhyperbole_002etexi"></a>
+<span id="index-Info-manual"></span>
+<span id="index-Texinfo-manual"></span>
+<span id="index-file_002c-man_002fhyperbole_002einfo"></span>
+<span id="index-file_002c-man_002fhyperbole_002ehtml"></span>
+<span id="index-file_002c-man_002fhyperbole_002epdf"></span>
+<span id="index-file_002c-man_002fhyperbole_002etexi"></span>
<div class="example">
<pre class="example"><samp>man/hyperbole.info</samp> - online Info browser
version
<samp>man/hyperbole.html</samp> - web HTML version
@@ -7982,7 +7823,7 @@ directory in four forms:
<samp>man/hyperbole.texi</samp> - source form
</pre></div>
-<a name="index-C_002dh-h-d-i"></a>
+<span id="index-C_002dh-h-d-i"></span>
<p>The Hyperbole package installation places the Info version of this
manual where needed and adds an entry for Hyperbole into the Info
directory under the Emacs category. <kbd>{C-h h d i}</kbd> will let you
@@ -7996,42 +7837,40 @@ is:
<samp>~/.emacs.d/elpa/hyperbole-${hyperb:version}/</samp>.
configuring Hyperbole’s behavior.
</p>
<hr>
-<a name="Customization"></a>
-<div class="header">
+<span id="Customization"></span><div class="header">
<p>
Previous: <a href="#Invocation" accesskey="p" rel="prev">Invocation</a>, Up:
<a href="#Setup" accesskey="u" rel="up">Setup</a> [<a
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Customization-1"></a>
-<h3 class="section">B.3 Customization</h3>
+<span id="Customization-1"></span><h3 class="section">B.3 Customization</h3>
-<a name="index-menu_002c-Cust-1"></a>
-<a name="index-configuration"></a>
-<a name="index-customization"></a>
+<span id="index-menu_002c-Cust-1"></span>
+<span id="index-configuration"></span>
+<span id="index-customization"></span>
<p>Major Hyperbole user options may be set from the Customize submenu
below the Hyperbole menubar menu, as seen here.
</p>
-<div class="float"><a name="image_003aCustomize-Menu"></a>
+<div class="float"><span id="image_003aCustomize-Menu"></span>
<img src="im/menu-customization.png" alt="Hyperbole Customize Menu">
<div class="float-caption"><p><strong>Image B.1: </strong>Hyperbole Customize
Menu</p></div></div><br>
<p>Alternatively, the minibuffer-based menu, Cust/ may be used.
</p>
-<a name="index-customization-1"></a>
-<a name="index-option-setting"></a>
-<a name="index-variable-setting"></a>
+<span id="index-customization-1"></span>
+<span id="index-option-setting"></span>
+<span id="index-variable-setting"></span>
<p>Generally, you should not need to change anything other than these options.
However, if you like to customize your environment extensively, there
are many additional Hyperbole customization options that may be
changed with the Emacs customization interface,
-see <a
href="http://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Easy-Customization">Easy
Customization Interface</a> in <cite>the GNU
+see <a
href="https://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Easy-Customization">Easy
Customization Interface</a> in <cite>the GNU
Emacs Manual</cite>. When you save any changes within this interface, the
changes are saved permanently to your personal Emacs initialization
file and are available in future Emacs sessions.
</p>
-<a name="index-customize_002dbrowse"></a>
-<a name="index-menu-item_002c-Cust_002fAll_002dOptions"></a>
-<a name="index-C_002dh-h-c-a"></a>
+<span id="index-customize_002dbrowse"></span>
+<span id="index-menu-item_002c-Cust_002fAll_002dOptions"></span>
+<span id="index-C_002dh-h-c-a"></span>
<p>Use Cust/All-Options <kbd>{C-h h c a}</kbd> to display an expandable tree of
customizable Hyperbole options. Hyperbole’s customizations are
further grouped into several sub-categories, one for the Koutliner,
@@ -8040,7 +7879,7 @@ specfic option and they will appear in another window for
editing.
Simply follow the instructions on screen and then press the “Apply
and Save” button to make any changes permanent.
</p>
-<a name="index-customize_002dvariable"></a>
+<span id="index-customize_002dvariable"></span>
<p>If you know the name of the option you want to edit, you can edit it
at any time without going through the tree of options. Use <kbd>{M-x
customize-variable <span class="key">RET</span>}</kbd> and then type the name
of the variable
@@ -8050,41 +7889,39 @@ and press <tt class="key">RET</tt> to edit it.
be of interest to users.
</p>
<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">• <a href="#Referent-Display"
accesskey="1">Referent Display</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Referent-Display"
accesskey="1">Referent Display</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Internal-Viewers"
accesskey="2">Internal Viewers</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Internal-Viewers"
accesskey="2">Internal Viewers</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#External-Viewers"
accesskey="3">External Viewers</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#External-Viewers"
accesskey="3">External Viewers</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Link-Variable-Substitution"
accesskey="4">Link Variable Substitution</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Link-Variable-Substitution"
accesskey="4">Link Variable Substitution</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Web-Search-Engines"
accesskey="5">Web Search Engines</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Web-Search-Engines"
accesskey="5">Web Search Engines</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Using-URLs-with-Find_002dFile" accesskey="6">Using URLs with
Find-File</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Using-URLs-with-Find_002dFile" accesskey="6">Using URLs with
Find-File</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Invisible-Text-Searches"
accesskey="7">Invisible Text Searches</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Invisible-Text-Searches"
accesskey="7">Invisible Text Searches</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Button-Colors"
accesskey="8">Button Colors</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Button-Colors"
accesskey="8">Button Colors</a></td><td> </td><td align="left"
valign="top">
</td></tr>
</table>
<hr>
-<a name="Referent-Display"></a>
-<div class="header">
+<span id="Referent-Display"></span><div class="header">
<p>
Next: <a href="#Internal-Viewers" accesskey="n" rel="next">Internal
Viewers</a>, Previous: <a href="#Customization" accesskey="p"
rel="prev">Customization</a>, Up: <a href="#Customization" accesskey="u"
rel="up">Customization</a> [<a href="#SEC_Contents" title="Table of
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Referent-Display-1"></a>
-<h4 class="subsection">B.3.1 Referent Display</h4>
-<a name="index-hpath_003adisplay_002dwhere-1"></a>
-<a name="index-referent-display"></a>
-<a name="index-link-display"></a>
-<a name="index-display-where"></a>
-<a name="index-display-outside-Emacs"></a>
-<a name="index-where-to-display"></a>
-<a name="index-image-display"></a>
-<a name="index-internal-display"></a>
-<a name="index-external-display"></a>
+<span id="Referent-Display-1"></span><h4 class="subsection">B.3.1 Referent
Display</h4>
+<span id="index-hpath_003adisplay_002dwhere-1"></span>
+<span id="index-referent-display"></span>
+<span id="index-link-display"></span>
+<span id="index-display-where"></span>
+<span id="index-display-outside-Emacs"></span>
+<span id="index-where-to-display"></span>
+<span id="index-image-display"></span>
+<span id="index-internal-display"></span>
+<span id="index-external-display"></span>
<p>Hyperbole lets you control where link referents are displayed. It also
permits setting a specific Emacs function or external program
to display them. There are four categories of referents, each with
@@ -8105,25 +7942,23 @@ Internal Standard Display hpath:display-where
are displayed internally and externally.
</p>
<hr>
-<a name="Internal-Viewers"></a>
-<div class="header">
+<span id="Internal-Viewers"></span><div class="header">
<p>
Next: <a href="#External-Viewers" accesskey="n" rel="next">External
Viewers</a>, Previous: <a href="#Referent-Display" accesskey="p"
rel="prev">Referent Display</a>, Up: <a href="#Customization" accesskey="u"
rel="up">Customization</a> [<a href="#SEC_Contents" title="Table of
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Internal-Viewers-1"></a>
-<h4 class="subsection">B.3.2 Internal Viewers</h4>
-<a name="index-hpath_003ainternal_002ddisplay_002dalist"></a>
-<a name="index-file-display-function"></a>
-<a name="index-display-function"></a>
-<a name="index-internal-viewer"></a>
-<a name="index-link_002c-display-function"></a>
-
-<a name="index-internal-image-display"></a>
-<a name="index-hpath_003anative_002dimage_002dsuffixes"></a>
-<a name="index-internal-custom-display"></a>
-<a name="index-hpath_003ainternal_002ddisplay_002dalist-1"></a>
-<a name="index-internal-standard-display"></a>
-<a name="index-hpath_003adisplay_002dwhere-2"></a>
+<span id="Internal-Viewers-1"></span><h4 class="subsection">B.3.2 Internal
Viewers</h4>
+<span id="index-hpath_003ainternal_002ddisplay_002dalist"></span>
+<span id="index-file-display-function"></span>
+<span id="index-display-function"></span>
+<span id="index-internal-viewer"></span>
+<span id="index-link_002c-display-function"></span>
+
+<span id="index-internal-image-display"></span>
+<span id="index-hpath_003anative_002dimage_002dsuffixes"></span>
+<span id="index-internal-custom-display"></span>
+<span id="index-hpath_003ainternal_002ddisplay_002dalist-1"></span>
+<span id="index-internal-standard-display"></span>
+<span id="index-hpath_003adisplay_002dwhere-2"></span>
<p>When given a filename to display, Hyperbole first checks if its suffix
is matched by <code>hpath:native-image-suffixes</code>. If so and if the
function <code>image-mode</code> is defined, it uses that mode together with
@@ -8154,8 +7989,8 @@ available with InfoDock.
</p></dd>
</dl>
-<a name="index-menu_002c-Cust_002fReferents"></a>
-<a name="index-C_002dh-h-c-r"></a>
+<span id="index-menu_002c-Cust_002fReferents"></span>
+<span id="index-C_002dh-h-c-r"></span>
<p>Links to standard files, those which don’t match any special referent
category described earlier, are displayed in an Emacs window specified
by the <code>hpath:display-where</code> setting. It may be changed with the
@@ -8187,7 +8022,7 @@ the default)
<p>Alternatively, you can use the Hyperbole menubar menu as shown here:
</p>
-<div class="float"><a name="image_003aMenu_002dDisplay_002dReferents"></a>
+<div class="float"><span id="image_003aMenu_002dDisplay_002dReferents"></span>
<img src="im/menu-display-referents.png" alt="Display Referents Menu">
<div class="float-caption"><p><strong>Image B.2: </strong>Display Referents
Menu</p></div></div><br>
@@ -8196,24 +8031,22 @@ the default)
external, window-system specific viewers.
</p>
<hr>
-<a name="External-Viewers"></a>
-<div class="header">
+<span id="External-Viewers"></span><div class="header">
<p>
Next: <a href="#Link-Variable-Substitution" accesskey="n" rel="next">Link
Variable Substitution</a>, Previous: <a href="#Internal-Viewers" accesskey="p"
rel="prev">Internal Viewers</a>, Up: <a href="#Customization" accesskey="u"
rel="up">Customization</a> [<a href="#SEC_Contents" title="Table of
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="External-Viewers-1"></a>
-<h4 class="subsection">B.3.3 External Viewers</h4>
-<a name="index-hpath_003aget_002dexternal_002ddisplay_002dalist"></a>
-<a name="index-hpath_003aexternal_002ddisplay_002dalist_002dmacos"></a>
-<a name="index-hpath_003aexternal_002ddisplay_002dalist_002dmswindows"></a>
-<a name="index-hpath_003aexternal_002ddisplay_002dalist_002dx"></a>
-<a name="index-window-system"></a>
-<a name="index-external-program"></a>
-<a name="index-external-viewer"></a>
-<a name="index-link_002c-viewer-program"></a>
-
-<a name="index-external-display-1"></a>
-<a name="index-hpath_003aexternal_002ddisplay_002dalist"></a>
+<span id="External-Viewers-1"></span><h4 class="subsection">B.3.3 External
Viewers</h4>
+<span id="index-hpath_003aget_002dexternal_002ddisplay_002dalist"></span>
+<span id="index-hpath_003aexternal_002ddisplay_002dalist_002dmacos"></span>
+<span id="index-hpath_003aexternal_002ddisplay_002dalist_002dmswindows"></span>
+<span id="index-hpath_003aexternal_002ddisplay_002dalist_002dx"></span>
+<span id="index-window-system"></span>
+<span id="index-external-program"></span>
+<span id="index-external-viewer"></span>
+<span id="index-link_002c-viewer-program"></span>
+
+<span id="index-external-display-1"></span>
+<span id="index-hpath_003aexternal_002ddisplay_002dalist"></span>
<p>If you use Hyperbole under a window system,
the <code>hpath:get-external-display-alist</code> function in
<samp>hpath.el</samp>
supports hyperlinks that open files using external, non-Emacs tools, e.g.
@@ -8240,17 +8073,15 @@ values to suit your needs.
</p>
<hr>
-<a name="Link-Variable-Substitution"></a>
-<div class="header">
+<span id="Link-Variable-Substitution"></span><div class="header">
<p>
Next: <a href="#Web-Search-Engines" accesskey="n" rel="next">Web Search
Engines</a>, Previous: <a href="#External-Viewers" accesskey="p"
rel="prev">External Viewers</a>, Up: <a href="#Customization" accesskey="u"
rel="up">Customization</a> [<a href="#SEC_Contents" title="Table of
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Link-Variable-Substitution-1"></a>
-<h4 class="subsection">B.3.4 Link Variable Substitution</h4>
-<a name="index-hpath_003avariables"></a>
-<a name="index-environment-variables"></a>
-<a name="index-Emacs-Lisp-variables"></a>
-<a name="index-Lisp-variables"></a>
+<span id="Link-Variable-Substitution-1"></span><h4 class="subsection">B.3.4
Link Variable Substitution</h4>
+<span id="index-hpath_003avariables"></span>
+<span id="index-environment-variables-1"></span>
+<span id="index-Emacs-Lisp-variables-1"></span>
+<span id="index-Lisp-variables-1"></span>
<p>Another option to consider modifying is <code>hpath:variables</code>. This
option consists of a list of Emacs Lisp variable names, each of which
may have a pathname or a list of pathnames as a value. Whenever a
@@ -8261,7 +8092,8 @@ 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 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
+Environment variables and Emacs Lisp variables delimited
+by \"${variable-name}\" are also replaced whenever link paths are
resolved.
</p>
<p>This permits sharing of links over wide areas, where the variable values
@@ -8270,23 +8102,21 @@ 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>.
</p>
<hr>
-<a name="Web-Search-Engines"></a>
-<div class="header">
+<span id="Web-Search-Engines"></span><div class="header">
<p>
Next: <a href="#Using-URLs-with-Find_002dFile" accesskey="n" rel="next">Using
URLs with Find-File</a>, Previous: <a href="#Link-Variable-Substitution"
accesskey="p" rel="prev">Link Variable Substitution</a>, Up: <a
href="#Customization" accesskey="u" rel="up">Customization</a> [<a
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Web-Search-Engines-1"></a>
-<h4 class="subsection">B.3.5 Web Search Engines</h4>
-
-<a name="index-menu_002c-Find_002fWeb-1"></a>
-<a name="index-menu_002c-Web-1"></a>
-<a name="index-menu_002c-Cust_002fWeb_002dSearch"></a>
-<a name="index-C_002dh-h-c-w"></a>
-<a name="index-C_002dh-h-f-w"></a>
-<a name="index-hyperbole_002dweb_002dsearch_002dalist"></a>
-<a name="index-search-engines-menu"></a>
-<a name="index-web-search-menu"></a>
-<a name="index-customizing-web-search-menu"></a>
+<span id="Web-Search-Engines-1"></span><h4 class="subsection">B.3.5 Web Search
Engines</h4>
+
+<span id="index-menu_002c-Find_002fWeb-1"></span>
+<span id="index-menu_002c-Web-1"></span>
+<span id="index-menu_002c-Cust_002fWeb_002dSearch"></span>
+<span id="index-C_002dh-h-c-w"></span>
+<span id="index-C_002dh-h-f-w"></span>
+<span id="index-hyperbole_002dweb_002dsearch_002dalist"></span>
+<span id="index-search-engines-menu"></span>
+<span id="index-web-search-menu"></span>
+<span id="index-customizing-web-search-menu"></span>
<p>The Find/Web menu offers quick access to major web search engines. It
is typically bound to <kbd>{C-c /}</kbd> or if not, then <kbd>{C-h h f
w}</kbd> is
always available. Your standard web browser will be used to return
@@ -8303,26 +8133,24 @@ search is performed.
<p>You can change which browser is used with <kbd>{C-h h c w}</kbd>, the
Cust/Web-Search menu. Below is the equivalent Hyperbole menubar menu.
</p>
-<div class="float"><a name="image_003aWeb_002dSearch_002dBrowser_002dMenu"></a>
+<div class="float"><span
id="image_003aWeb_002dSearch_002dBrowser_002dMenu"></span>
<img src="im/menu-web-search-browser.png" alt="Web Search Browser Menu">
<div class="float-caption"><p><strong>Image B.3: </strong>Web Search Browser
Menu</p></div></div><br>
<hr>
-<a name="Using-URLs-with-Find_002dFile"></a>
-<div class="header">
+<span id="Using-URLs-with-Find_002dFile"></span><div class="header">
<p>
Next: <a href="#Invisible-Text-Searches" accesskey="n" rel="next">Invisible
Text Searches</a>, Previous: <a href="#Web-Search-Engines" accesskey="p"
rel="prev">Web Search Engines</a>, Up: <a href="#Customization" accesskey="u"
rel="up">Customization</a> [<a href="#SEC_Contents" title="Table of
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Using-URLs-with-Find_002dFile-1"></a>
-<h4 class="subsection">B.3.6 Using URLs with Find-File</h4>
+<span id="Using-URLs-with-Find_002dFile-1"></span><h4 class="subsection">B.3.6
Using URLs with Find-File</h4>
-<a name="index-find_002dfile"></a>
-<a name="index-find_002dfile_002c-browsing-URLs"></a>
-<a name="index-browsing-URLs"></a>
-<a name="index-URLs_002c-using-with-find_002dfile"></a>
-<a name="index-web-pages_002c-displaying"></a>
-<a name="index-remote-pathnames"></a>
+<span id="index-find_002dfile"></span>
+<span id="index-find_002dfile_002c-browsing-URLs"></span>
+<span id="index-browsing-URLs"></span>
+<span id="index-URLs_002c-using-with-find_002dfile"></span>
+<span id="index-web-pages_002c-displaying"></span>
+<span id="index-remote-pathnames"></span>
<p>Hyperbole always recognizes URLs within buffers when the Action Key is
pressed on them. But sometimes it is useful to enter a URL at a prompt
and have it displayed. Hyperbole can recognize ftp and www URLs given to
@@ -8330,24 +8158,24 @@ the <code>find-file</code> command (or any other
<code>find-file-*</code> comman
But because there is added overhead with this feature, it is not enabled by
default.
</p>
-<a name="index-menu-item_002c-Find_002dFile_002dURLs"></a>
-<a name="index-menu-item_002c-Find_002dFile_002dAccepts_002dURLs"></a>
+<span id="index-menu-item_002c-Find_002dFile_002dURLs"></span>
+<span id="index-menu-item_002c-Find_002dFile_002dAccepts_002dURLs"></span>
<p>To enable the feature, use the Hyperbole menu item Cust/Find-File-URLs
(or Find-File-Accepts-URLs on the Hyperbole/Customize pulldown
menu). Either of these toggles acceptance of URLs. When enabled the
string, URLs, appears in the parenthesized minor-mode section of the
modeline.
</p>
-<a name="index-hpath_003afind_002dfile_002durls_002dmode"></a>
-<a name="index-enabling-URLs-in-find_002dfile"></a>
-<a name="index-browsing-URLs-in-find_002dfile"></a>
+<span id="index-hpath_003afind_002dfile_002durls_002dmode"></span>
+<span id="index-enabling-URLs-in-find_002dfile"></span>
+<span id="index-browsing-URLs-in-find_002dfile"></span>
<p>To enable this feature each time you start the editor, add the
following to your personal initialization file after initializing
Hyperbole: <code>(hpath:find-file-urls-mode 1)</code>.
</p>
-<a name="index-abbreviated-URLs"></a>
-<a name="index-URLs_002c-abbreviated"></a>
-<a name="index-Tramp-1"></a>
+<span id="index-abbreviated-URLs"></span>
+<span id="index-URLs_002c-abbreviated"></span>
+<span id="index-Tramp-1"></span>
<p>Both full URLs and abbreviated ones, like <samp>www.gnu.org</samp>, are
recognized. filename completion does not work with URLs; you
have to type or paste in the entire URL. This feature will work only
@@ -8355,30 +8183,28 @@ if you have the builtin Tramp Emacs Lisp package; if
you don’t have
Tramp, an error message will be displayed when you try to enable
find-file URLs.
</p>
-<a name="index-C_002dh-h-c-u"></a>
-<a name="index-menu_002c-Cust_002fURL_002dDisplay"></a>
+<span id="index-C_002dh-h-c-u"></span>
+<span id="index-menu_002c-Cust_002fURL_002dDisplay"></span>
<p>The web browser used to display URLs may be set with the minibuffer
menu Cust/URL-Display <kbd>{C-h h c u}</kbd> or with this Hyperbole menubar
menu.
</p>
-<div class="float"><a name="image_003aURL_002dBrowser_002dMenu"></a>
+<div class="float"><span id="image_003aURL_002dBrowser_002dMenu"></span>
<img src="im/menu-url-browser.png" alt="URL Browser Menu">
<div class="float-caption"><p><strong>Image B.4: </strong>URL Browser
Menu</p></div></div><br>
<hr>
-<a name="Invisible-Text-Searches"></a>
-<div class="header">
+<span id="Invisible-Text-Searches"></span><div class="header">
<p>
Next: <a href="#Button-Colors" accesskey="n" rel="next">Button Colors</a>,
Previous: <a href="#Using-URLs-with-Find_002dFile" accesskey="p"
rel="prev">Using URLs with Find-File</a>, Up: <a href="#Customization"
accesskey="u" rel="up">Customization</a> [<a href="#SEC_Contents"
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index"
title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Invisible-Text-Searches-1"></a>
-<h4 class="subsection">B.3.7 Invisible Text Searches</h4>
+<span id="Invisible-Text-Searches-1"></span><h4 class="subsection">B.3.7
Invisible Text Searches</h4>
-<a name="index-menu-item_002c-Isearch_002dInvisible"></a>
-<a name="index-menu-item_002c-Toggle_002dIsearch_002dInvisible"></a>
-<a name="index-isearch"></a>
-<a name="index-search-1"></a>
+<span id="index-menu-item_002c-Isearch_002dInvisible"></span>
+<span id="index-menu-item_002c-Toggle_002dIsearch_002dInvisible"></span>
+<span id="index-isearch"></span>
+<span id="index-search-1"></span>
<p>This is largely for outline modes such as the Koutliner. By default,
character-by-character interactive search on <kbd>{C-s}</kbd> will search
through invisible/hidden text, making the text temporarily visible
@@ -8392,21 +8218,19 @@ when invoked again). The setting lasts only through
the current
interactive search.
</p>
<hr>
-<a name="Button-Colors"></a>
-<div class="header">
+<span id="Button-Colors"></span><div class="header">
<p>
Previous: <a href="#Invisible-Text-Searches" accesskey="p"
rel="prev">Invisible Text Searches</a>, Up: <a href="#Customization"
accesskey="u" rel="up">Customization</a> [<a href="#SEC_Contents"
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index"
title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Configuring-Button-Colors"></a>
-<h4 class="subsection">B.3.8 Configuring Button Colors</h4>
-<a name="index-Emacs-support"></a>
-<a name="index-button-highlighting-1"></a>
-<a name="index-highlighting-buttons"></a>
-<a name="index-button-flashing"></a>
-<a name="index-flashing-buttons"></a>
-<a name="index-file_002c-hui_002dep_002a_002eel"></a>
-<a name="index-file_002c-hsettings_002eel"></a>
-<a name="index-hproperty_003acycle_002dbut_002dcolor"></a>
+<span id="Configuring-Button-Colors"></span><h4 class="subsection">B.3.8
Configuring Button Colors</h4>
+<span id="index-Emacs-support"></span>
+<span id="index-button-highlighting-1"></span>
+<span id="index-highlighting-buttons"></span>
+<span id="index-button-flashing"></span>
+<span id="index-flashing-buttons"></span>
+<span id="index-file_002c-hui_002dep_002a_002eel"></span>
+<span id="index-file_002c-hsettings_002eel"></span>
+<span id="index-hproperty_003acycle_002dbut_002dcolor"></span>
<p>When Hyperbole is run under a window system, it automatically
highlights any explicit buttons in a buffer and makes them flash when
selected. The main setting you may want change is the selection of a
@@ -8416,21 +8240,21 @@ code which supports this behavior. A call
to <code>(hproperty:cycle-but-color)</code> in the <samp>hsettings.el</samp>
file
changes the color used to highlight and flash explicit buttons.
</p>
-<a name="index-hproperty_003abut_002dhighlight_002dflag"></a>
+<span id="index-hproperty_003abut_002dhighlight_002dflag"></span>
<p>Whether or not buttons are highlighted is controlled
by <code>hproperty:but-highlight-flag</code>, which defaults to
‘<samp>t</samp>’.
To disable highlighting, change this setting in <samp>hsettings.el</samp> or
use Hyperbole menu item, Cust/All-Options, and select the Hyperbole
Buttons group to edit its options.
</p>
-<a name="index-hproperty_003abut_002dcreate"></a>
+<span id="index-hproperty_003abut_002dcreate"></span>
<p>If you read in a file with explicit buttons before you load Hyperbole,
these buttons won’t be highlighted. Load Hyperbole and then use
<kbd>{M-x hproperty:but-create <span class="key">RET</span>}</kbd> to
highlight the buttons in
the current buffer.
</p>
-<a name="index-button-emphasis"></a>
-<a name="index-hproperty_003abut_002demphasize_002dflag"></a>
+<span id="index-button-emphasis"></span>
+<span id="index-hproperty_003abut_002demphasize_002dflag"></span>
<p>Additionally, if <code>hproperty:but-emphasize-flag</code> is set to
‘<samp>t</samp>’,
then whenever the mouse pointer moves over an explicit button, it will
be emphasized in a different color or style. This emphasis is in
@@ -8438,15 +8262,13 @@ addition to any non-mouse-sensitive button highlighting.
</p>
<hr>
-<a name="Global-Key-Bindings"></a>
-<div class="header">
+<span id="Global-Key-Bindings"></span><div class="header">
<p>
Next: <a href="#Koutliner-Keys" accesskey="n" rel="next">Koutliner Keys</a>,
Previous: <a href="#Setup" accesskey="p" rel="prev">Setup</a>, Up: <a
href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents"
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index"
title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Global-Key-Bindings-1"></a>
-<h2 class="appendix">Appendix C Global Key Bindings</h2>
+<span id="Global-Key-Bindings-1"></span><h2 class="appendix">Appendix C Global
Key Bindings</h2>
-<p><a name="index-key-binding-list"></a>
+<p><span id="index-key-binding-list"></span>
This appendix summarizes all of Hyperbole’s global 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
@@ -8457,7 +8279,7 @@ global Hyperbole keys.
Cust/KeyBindings minibuffer menu or from the Hyperbole menubar menu as
shown here:
</p>
-<div class="float"><a name="image_003aChange_002dKey_002dBindings"></a>
+<div class="float"><span id="image_003aChange_002dKey_002dBindings"></span>
<img src="im/menu-key-bindings.png" alt="Change Key Bindings">
<div class="float-caption"><p><strong>Image C.1: </strong>Global Key Bindings
Menu</p></div></div><br>
@@ -8465,30 +8287,30 @@ shown here:
<p>Below are descriptions of Hyperbole’s default keyboard key bindings:
</p>
<dl compact="compact">
-<dd><a name="index-key-binding_002c-M_002dRET"></a>
-<a name="index-M_002dRET-2"></a>
+<dd><span id="index-key-binding_002c-M_002dRET"></span>
+<span id="index-M_002dRET-2"></span>
</dd>
<dt><kbd>{M-<span class="key">RET</span>}</kbd></dt>
<dd><p>Action Key: Invoke the Action Key in the present context.
-<a name="index-C_002du-M_002dRET-1"></a>
+<span id="index-C_002du-M_002dRET-1"></span>
</p></dd>
<dt><kbd>{C-u M-<span class="key">RET</span>}</kbd></dt>
<dd><p>Assist Key: Invoke the Assist Key in the present context.
</p>
-<a name="index-key-binding_002c-C_002dc-_005c"></a>
-<a name="index-C_002dc-_005c-1"></a>
+<span id="index-key-binding_002c-C_002dc-_005c"></span>
+<span id="index-C_002dc-_005c-1"></span>
</dd>
<dt><kbd>{C-c \}</kbd></dt>
<dd><p>HyControl: Control windows, frames and buffer display. This binding
is made only if the key is not bound prior to loading Hyperbole.
</p>
-<a name="index-C_002dc-_002f-1"></a>
-<a name="index-C_002dh-h-f-w-1"></a>
-<a name="index-menu_002c-Find_002fWeb-2"></a>
-<a name="index-menu_002c-Web-2"></a>
-<a name="index-searching-the-web-1"></a>
-<a name="index-web-search-menu-1"></a>
-<a name="index-C_002dc-_002f-2"></a>
+<span id="index-C_002dc-_002f-1"></span>
+<span id="index-C_002dh-h-f-w-1"></span>
+<span id="index-menu_002c-Find_002fWeb-2"></span>
+<span id="index-menu_002c-Web-2"></span>
+<span id="index-searching-the-web-1"></span>
+<span id="index-web-search-menu-1"></span>
+<span id="index-C_002dc-_002f-2"></span>
</dd>
<dt><kbd>{C-c /}</kbd></dt>
<dd><p>Search the Web: Display a minibuffer menu of web search engines. Once
@@ -8497,11 +8319,11 @@ associated search. This binding is made only if the
key is not bound
prior to loading Hyperbole; otherwise, the Find/Web minibuffer menu
item, <kbd>{C-h h f w}</kbd>, will do the same thing.
</p>
-<a name="index-C_002dc-_0040-1"></a>
-<a name="index-key-binding_002c-C_002dc-_0040"></a>
-<a name="index-windows-grid-1"></a>
-<a name="index-grid-of-windows-1"></a>
-<a name="index-C_002dc-_0040-2"></a>
+<span id="index-C_002dc-_0040-1"></span>
+<span id="index-key-binding_002c-C_002dc-_0040"></span>
+<span id="index-windows-grid-1"></span>
+<span id="index-grid-of-windows-1"></span>
+<span id="index-C_002dc-_0040-2"></span>
</dd>
<dt><kbd>{C-c @}</kbd></dt>
<dd><p>Display a grid of windows in the selected frame, sized according to the
@@ -8513,15 +8335,15 @@ bound prior to loading Hyperbole.
<p>For further details, see the <kbd>{@}</kbd> key binding description
in <a href="#HyControl">HyControl</a>.
</p>
-<a name="index-key-binding_002c-C_002dc-C_002dr"></a>
-<a name="index-C_002dc-C_002dr-1"></a>
+<span id="index-key-binding_002c-C_002dc-C_002dr"></span>
+<span id="index-C_002dc-C_002dr-1"></span>
</dd>
<dt><kbd>{C-c C-r}</kbd></dt>
<dd><p>Button Rename: Rename an explicit button. This binding is made only if
the key is not bound prior to loading Hyperbole.
</p>
-<a name="index-key-binding_002c-M_002do"></a>
-<a name="index-M_002do-1"></a>
+<span id="index-key-binding_002c-M_002do"></span>
+<span id="index-M_002do-1"></span>
</dd>
<dt><kbd>{M-o}</kbd></dt>
<dd><p>Drag Operation: Keyboard emulation of the start and stop of mouse
@@ -8529,26 +8351,26 @@ 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
a window system.
</p>
-<a name="index-key-binding_002c-C_002dh-h"></a>
-<a name="index-C_002dh-h-1"></a>
+<span id="index-key-binding_002c-C_002dh-h"></span>
+<span id="index-C_002dh-h-1"></span>
</dd>
<dt><kbd>{C-h h}</kbd></dt>
<dd><p>Hyperbole Mini Menu: Invoke the Hyperbole minibuffer menu, giving
access to many Hyperbole commands.
</p>
-<a name="index-key-binding_002c-C_002dh-A"></a>
-<a name="index-key-binding_002c-C_002du-C_002dh-A"></a>
-<a name="index-C_002dh-A-1"></a>
+<span id="index-key-binding_002c-C_002dh-A"></span>
+<span id="index-key-binding_002c-C_002du-C_002dh-A"></span>
+<span id="index-C_002dh-A-1"></span>
</dd>
<dt><kbd>{C-h A}</kbd></dt>
<dd><p>Action Key Help: Show what the Action Key will do in the current
context.
-<a name="index-C_002du-C_002dh-A-1"></a>
+<span id="index-C_002du-C_002dh-A-1"></span>
</p></dd>
<dt><kbd>{C-u C-h A}</kbd></dt>
<dd><p>Assist Key Help: Show what the Assist Key will do in the same context.
</p>
-<a name="index-key-binding_002c-C_002dc-RET"></a>
-<a name="index-C_002dc-RET-1"></a>
+<span id="index-key-binding_002c-C_002dc-RET"></span>
+<span id="index-C_002dc-RET-1"></span>
</dd>
<dt><kbd>{C-c <span class="key">RET</span>}</kbd></dt>
<dd><p>Mark Things: Mark larger and larger synctactical units in a buffer
@@ -8558,8 +8380,8 @@ 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
Hyperbole.
</p>
-<a name="index-key-binding_002c-C_002dc-_002e"></a>
-<a name="index-C_002dc-_002e-2"></a>
+<span id="index-key-binding_002c-C_002dc-_002e"></span>
+<span id="index-C_002dc-_002e-2"></span>
</dd>
<dt><kbd>{C-c .}</kbd></dt>
<dd><p>Delimited Thing Jump: Jump between the start and end of a delimited
@@ -8568,8 +8390,8 @@ the key is not bound prior to loading Hyperbole. See <a
href="#Smart-Key-Thing-
</p></dd>
</dl>
-<a name="index-hkey_002dinit"></a>
-<a name="index-disable-global-key-bindings"></a>
+<span id="index-hkey_002dinit"></span>
+<span id="index-disable-global-key-bindings"></span>
<p>The variable, <code>hkey-init</code>, controls whether or not any Hyperbole
global key bindings are made. It is set to ‘<samp>t</samp>’
(true) by default in
<samp>hyperbole.el</samp>. This setting means all Hyperbole key bindings will
@@ -8579,13 +8401,13 @@ your <samp>~/.emacs</samp> file prior to the point at
which you load Hyperbole
and restart Emacs. Then you will have to choose the Hyperbole commands
that you want to use and bind those to keys.
</p>
-<a name="index-file_002c-_002eemacs-4"></a>
-<a name="index-hyperbole_002dtoggle_002dbindings-1"></a>
-<a name="index-change-key-bindings-1"></a>
-<a name="index-toggle-key-bindings-1"></a>
-<a name="index-key-bindings_002c-toggle-1"></a>
-<a name="index-disable-Hyperbole-1"></a>
-<a name="index-C_002dc-h-1"></a>
+<span id="index-file_002c-_002eemacs-4"></span>
+<span id="index-hyperbole_002dtoggle_002dbindings-1"></span>
+<span id="index-change-key-bindings-1"></span>
+<span id="index-toggle-key-bindings-1"></span>
+<span id="index-key-bindings_002c-toggle-1"></span>
+<span id="index-disable-Hyperbole-1"></span>
+<span id="index-C_002dc-h-1"></span>
<p>If you ever have a need to temporarily disable the Hyperbole keyboard and
mouse bindings, use the <code>hyperbole-toggle-bindings</code> command. It
switches between the Hyperbole key bindings and those set prior to loading
@@ -8596,11 +8418,11 @@ setting of <code>hyperbole-init-hook</code> within your
personal <samp>~/.emacs<
file. For example, <code>(add-hook 'hyperbole-init-hook (lambda ()
(global-set-key "\C-ch" 'hyperbole-toggle-bindings)))</code>.
</p>
-<a name="index-file_002c-_002eemacs-5"></a>
-<a name="index-hmouse_002dtoggle_002dbindings"></a>
-<a name="index-mouse-key-toggle"></a>
-<a name="index-Smart-Mouse-Key-toggle"></a>
-<a name="index-C_002dc-t"></a>
+<span id="index-file_002c-_002eemacs-5"></span>
+<span id="index-hmouse_002dtoggle_002dbindings"></span>
+<span id="index-mouse-key-toggle"></span>
+<span id="index-Smart-Mouse-Key-toggle"></span>
+<span id="index-C_002dc-t"></span>
<p>If you want to restore only the mouse bindings that existed before
Hyperbole was loaded, use the <code>hmouse-toggle-bindings</code> command.
It switches between the Hyperbole mouse key bindings and those set
@@ -8612,9 +8434,9 @@ within your personal <samp>~/.emacs</samp> file. For
example, <code>(add-hook
'hyperbole-init-hook (lambda () (global-set-key "\C-ct"
'hmouse-toggle-bindings)))</code>.
</p>
-<a name="index-hkey_002dinit_002doverride_002dlocal_002dkeys"></a>
-<a name="index-overriding-local-keys"></a>
-<a name="index-disable-local-key-override"></a>
+<span id="index-hkey_002dinit_002doverride_002dlocal_002dkeys"></span>
+<span id="index-overriding-local-keys"></span>
+<span id="index-disable-local-key-override"></span>
<p>Major mode-specific keys take precedence over global key bindings. In
some cases, a major mode will unknowingly override some of the global
Hyperbole keys, preventing you from using them in that mode. By
@@ -8627,15 +8449,13 @@ change the value to <code>nil</code>. Then press the
“Apply and Save&rdqu
button.
</p>
<hr>
-<a name="Koutliner-Keys"></a>
-<div class="header">
+<span id="Koutliner-Keys"></span><div class="header">
<p>
Next: <a href="#Smart-Key-Reference" accesskey="n" rel="next">Smart Key
Reference</a>, Previous: <a href="#Global-Key-Bindings" accesskey="p"
rel="prev">Global Key Bindings</a>, Up: <a href="#Top" accesskey="u"
rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Koutliner-Keys-1"></a>
-<h2 class="appendix">Appendix D Koutliner Keys</h2>
+<span id="Koutliner-Keys-1"></span><h2 class="appendix">Appendix D Koutliner
Keys</h2>
-<a name="index-outliner-keys"></a>
+<span id="index-outliner-keys"></span>
<p>This appendix summarizes the specialized key bindings available when
editing a koutline with Hyperbole. Each key is shown together with its
command binding and the documentation for that command. Normal emacs
@@ -8645,12 +8465,12 @@ is named <em>kotl-mode:cmd</em>.
</p>
<dl compact="compact">
<dd>
-<a name="index-kfile_003awrite"></a>
+<span id="index-kfile_003awrite"></span>
</dd>
<dt><code>kfile:write <kbd>{C-x C-w}</kbd></code></dt>
<dd><p>Write the current outline to FILE.
</p>
-<a name="index-klink_003acreate-1"></a>
+<span id="index-klink_003acreate-1"></span>
</dd>
<dt><code>klink:create <kbd>{C-c l}</kbd></code></dt>
<dd><p>Insert at point an implicit link to REFERENCE.
@@ -8658,7 +8478,7 @@ REFERENCE should be a cell-ref or a string containing
"filename, cell-ref&q
See the documentation for <code>(kcell:ref-to-id)</code> for valid cell-ref
formats.
</p>
-<a name="index-kotl_002dmode_003aadd_002dcell"></a>
+<span id="index-kotl_002dmode_003aadd_002dcell"></span>
</dd>
<dt><code>kotl-mode:add-cell <kbd>{C-j}</kbd></code></dt>
<dd><p>Add a cell following current cell at optional RELATIVE-LEVEL with
CONTENTS string.
@@ -8669,76 +8489,76 @@ used as a repeat count for the number of cells to add.
</p>
<p>Return last newly added cell.
</p>
-<a name="index-kotl_002dmode_003aadd_002dchild"></a>
+<span id="index-kotl_002dmode_003aadd_002dchild"></span>
</dd>
<dt><code>kotl-mode:add-child <kbd>{C-c a}</kbd></code></dt>
<dd><p>Add a new cell to current kview as first child of current cell.
</p>
-<a name="index-kotl_002dmode_003aadd_002dparent"></a>
+<span id="index-kotl_002dmode_003aadd_002dparent"></span>
</dd>
<dt><code>kotl-mode:add-parent <kbd>{C-c p}</kbd></code></dt>
<dd><p>Add a new cell to current kview as sibling of current cell’s
parent.
</p>
-<a name="index-kotl_002dmode_003aappend_002dcell"></a>
+<span id="index-kotl_002dmode_003aappend_002dcell"></span>
</dd>
<dt><code>kotl-mode:append-cell <kbd>{C-c +}</kbd></code></dt>
<dd><p>Append the CONTENTS-CELL to APPEND-TO-CELL. If neither cell has a
no-fill property and <code>kotl-mode:refill-flag</code> is enabled, then
APPEND-TO-CELL is refilled.
</p>
-<a name="index-kotl_002dmode_003aback_002dto_002dindentation"></a>
+<span id="index-kotl_002dmode_003aback_002dto_002dindentation"></span>
</dd>
<dt><code>kotl-mode:back-to-indentation <kbd>{M-m}</kbd></code></dt>
<dd><p>Move point to the first non-read-only non-whitespace character on this
line.
</p>
-<a name="index-kotl_002dmode_003abackward_002dcell"></a>
+<span id="index-kotl_002dmode_003abackward_002dcell"></span>
</dd>
<dt><code>kotl-mode:backward-cell <kbd>{C-c C-b}</kbd></code></dt>
<dd><p>Move to prefix ARGth prior cell (same level) within current view.
Return number of cells left to move.
</p>
-<a name="index-kotl_002dmode_003abackward_002dchar"></a>
+<span id="index-kotl_002dmode_003abackward_002dchar"></span>
</dd>
<dt><code>kotl-mode:backward-char <kbd>{C-b}</kbd></code></dt>
<dd><p>Move point backward ARG (or 1) characters and return point.
</p>
-<a name="index-kotl_002dmode_003abackward_002dkill_002dword"></a>
+<span id="index-kotl_002dmode_003abackward_002dkill_002dword"></span>
</dd>
<dt><code>kotl-mode:backward-kill-word <kbd>{M-DEL}</kbd></code></dt>
<dd><p>Kill up to prefix ARG (or 1) words preceding point within a single cell.
</p>
-<a name="index-kotl_002dmode_003abackward_002dsentence"></a>
+<span id="index-kotl_002dmode_003abackward_002dsentence"></span>
</dd>
<dt><code>kotl-mode:backward-sentence <kbd>{M-a}</kbd></code></dt>
<dd><p>Move point backward ARG (or 1) sentences and return point.
</p>
-<a name="index-kotl_002dmode_003abackward_002dword"></a>
+<span id="index-kotl_002dmode_003abackward_002dword"></span>
</dd>
<dt><code>kotl-mode:backward-word <kbd>{M-b}</kbd></code></dt>
<dd><p>Move point backward ARG (or 1) words and return point.
</p>
-<a name="index-kotl_002dmode_003abeginning_002dof_002dbuffer"></a>
+<span id="index-kotl_002dmode_003abeginning_002dof_002dbuffer"></span>
</dd>
<dt><code>kotl-mode:beginning-of-buffer <kbd>{M-<}</kbd></code></dt>
<dd><p>Move point to beginning of buffer and return point.
</p>
-<a name="index-kotl_002dmode_003abeginning_002dof_002dcell"></a>
+<span id="index-kotl_002dmode_003abeginning_002dof_002dcell"></span>
</dd>
<dt><code>kotl-mode:beginning-of-cell <kbd>{C-c ,}</kbd></code></dt>
<dd><p>Move point to beginning of current or ARGth - 1 prior cell and return
point.
</p>
-<a name="index-kotl_002dmode_003abeginning_002dof_002dline"></a>
+<span id="index-kotl_002dmode_003abeginning_002dof_002dline"></span>
</dd>
<dt><code>kotl-mode:beginning-of-line <kbd>{C-a}</kbd></code></dt>
<dd><p>Move point to beginning of current or ARGth - 1 line and return point.
</p>
-<a name="index-kotl_002dmode_003abeginning_002dof_002dtree"></a>
+<span id="index-kotl_002dmode_003abeginning_002dof_002dtree"></span>
</dd>
<dt><code>kotl-mode:beginning-of-tree <kbd>{C-c ^}</kbd></code></dt>
<dd><p>Move point to the level 1 root of the current cell’s tree.
Leave point at the start of the cell.
</p>
-<a name="index-kotl_002dmode_003acell_002dhelp"></a>
+<span id="index-kotl_002dmode_003acell_002dhelp"></span>
</dd>
<dt><code>kotl-mode:cell-help <kbd>{C-c h}</kbd></code></dt>
<dd><p>Display a temporary buffer of CELL-REF’s attributes.
@@ -8752,24 +8572,24 @@ If < 1, print all visible cells in current view
(In this last case, CELL-REF is not used).
</pre></div>
-<a name="index-kotl_002dmode_003acell_002dattributes"></a>
+<span id="index-kotl_002dmode_003acell_002dattributes"></span>
<p>See also the documentation for <code>kotl-mode:cell-attributes</code>.
</p>
-<a name="index-kotl_002dmode_003acenter_002dline"></a>
-<a name="index-fill_002dcolumn"></a>
+<span id="index-kotl_002dmode_003acenter_002dline"></span>
+<span id="index-fill_002dcolumn"></span>
</dd>
<dt><code>kotl-mode:center-line <kbd>{M-s}</kbd></code></dt>
<dd><p>Center the line point is on, within the width specified by
<code>fill-column</code>.
This means adjusting the indentation so that it equals the distance between
the end of the text and <code>fill-column</code>.
</p>
-<a name="index-kotl_002dmode_003acenter_002dparagraph"></a>
+<span id="index-kotl_002dmode_003acenter_002dparagraph"></span>
</dd>
<dt><code>kotl-mode:center-paragraph <kbd>{M-S}</kbd></code></dt>
<dd><p>Center each nonblank line in the paragraph at or after point.
See <code>center-line</code> for more information.
</p>
-<a name="index-kotl_002dmode_003acopy_002dafter"></a>
+<span id="index-kotl_002dmode_003acopy_002dafter"></span>
</dd>
<dt><code>kotl-mode:copy-after <kbd>{C-c c}</kbd></code></dt>
<dd><p>Copy tree rooted at FROM-CELL-REF to follow tree rooted at TO-CELL-REF.
@@ -8778,7 +8598,7 @@ TO-CELL-REF, otherwise make it the sibling following
TO-CELL-REF.
</p>
<p>Leave point at the start of the root cell of the new tree.
</p>
-<a name="index-kotl_002dmode_003acopy_002dbefore"></a>
+<span id="index-kotl_002dmode_003acopy_002dbefore"></span>
</dd>
<dt><code>kotl-mode:copy-before <kbd>{C-c C-c}</kbd></code></dt>
<dd><p>Copy tree rooted at FROM-CELL-REF to precede tree rooted at TO-CELL-REF.
@@ -8787,19 +8607,19 @@ TO-CELL-REF’s parent, otherwise make it the
preceding sibling of TO-CELL-R
</p>
<p>Leave point at the start of the root cell of the new tree.
</p>
-<a name="index-kotl_002dmode_003acopy_002dto_002dbuffer"></a>
+<span id="index-kotl_002dmode_003acopy_002dto_002dbuffer"></span>
</dd>
<dt><code>kotl-mode:copy-to-buffer <kbd>{C-c M-c}</kbd></code></dt>
<dd><p>Copy outline tree rooted at CELL-REF to a non-koutline BUFFER.
Use 0 to copy the whole outline buffer.
</p>
-<a name="index-kotl_002dmode_003acopy_002dto_002dregister"></a>
+<span id="index-kotl_002dmode_003acopy_002dto_002dregister"></span>
</dd>
<dt><code>kotl-mode:copy-to-register <kbd>{C-x x}</kbd></code></dt>
<dd><p>Copy into REGISTER the region START to END.
With optional prefix arg DELETE-FLAG, delete region.
</p>
-<a name="index-kotl_002dmode_003adelete_002dbackward_002dchar"></a>
+<span id="index-kotl_002dmode_003adelete_002dbackward_002dchar"></span>
</dd>
<dt><code>kotl-mode:delete-backward-char {<span
class="key">DEL</span>}</code></dt>
<dd><p>Delete up to the preceding prefix ARG characters.
@@ -8807,7 +8627,7 @@ Return number of characters deleted.
Optional KILL-FLAG non-nil means save in kill ring instead of deleting.
Does not delete across cell boundaries.
</p>
-<a name="index-kotl_002dmode_003adelete_002dblank_002dlines"></a>
+<span id="index-kotl_002dmode_003adelete_002dblank_002dlines"></span>
</dd>
<dt><code>kotl-mode:delete-blank-lines <kbd>{C-x C-o}</kbd></code></dt>
<dd><p>On blank line within a cell, delete all surrounding blank lines,
leaving just one.
@@ -8817,7 +8637,7 @@ On nonblank line, delete all blank lines that follow it.
<p>If nothing but whitespace follows point until the end of a cell, delete all
whitespace at the end of the cell.
</p>
-<a name="index-kotl_002dmode_003adelete_002dchar"></a>
+<span id="index-kotl_002dmode_003adelete_002dchar"></span>
</dd>
<dt><code>kotl-mode:delete-char <kbd>{C-d}</kbd></code></dt>
<dd><p>Delete up to prefix ARG characters following point.
@@ -8825,14 +8645,14 @@ Return number of characters deleted.
Optional KILL-FLAG non-nil means save in kill ring instead of deleting.
Does not delete across cell boundaries.
</p>
-<a name="index-kotl_002dmode_003adelete_002dindentation"></a>
+<span id="index-kotl_002dmode_003adelete_002dindentation"></span>
</dd>
<dt><code>kotl-mode:delete-indentation <kbd>{M-^}</kbd></code></dt>
<dd><p>Join this line to previous and fix up whitespace at join.
If there is a fill prefix, delete it from the beginning of this line.
With argument, join this line to the following line.
</p>
-<a name="index-kotl_002dmode_003ademote_002dtree"></a>
+<span id="index-kotl_002dmode_003ademote_002dtree"></span>
</dd>
<dt><code>kotl-mode:demote-tree {<span class="key">TAB</span>}</code></dt>
<dd><p>Move current tree a maximum of prefix ARG levels lower in current view.
@@ -8841,120 +8661,120 @@ Each cell is refilled iff its <em>no-fill</em>
attribute is nil and
demoted up to one level and <code>kotl-mode:refill-flag</code> is treated as
true.
</p>
-<a name="index-kotl_002dmode_003adown_002dlevel"></a>
+<span id="index-kotl_002dmode_003adown_002dlevel"></span>
</dd>
<dt><code>kotl-mode:down-level <kbd>{C-c C-d}</kbd></code></dt>
<dd><p>Move down prefix ARG levels lower within current tree.
</p>
-<a name="index-kotl_002dmode_003aend_002dof_002dbuffer"></a>
+<span id="index-kotl_002dmode_003aend_002dof_002dbuffer"></span>
</dd>
<dt><code>kotl-mode:end-of-buffer <kbd>{M->}</kbd></code></dt>
<dd><p>Move point to the end of buffer and return point.
</p>
-<a name="index-kotl_002dmode_003aend_002dof_002dcell"></a>
+<span id="index-kotl_002dmode_003aend_002dof_002dcell"></span>
</dd>
<dt><code>kotl-mode:end-of-cell <kbd>{C-c .}</kbd></code></dt>
<dd><p>Move point to end of current or ARGth - 1 succeeding cell and return
point.
</p>
-<a name="index-kotl_002dmode_003aend_002dof_002dline"></a>
+<span id="index-kotl_002dmode_003aend_002dof_002dline"></span>
</dd>
<dt><code>kotl-mode:end-of-line <kbd>{C-e}</kbd></code></dt>
<dd><p>Move point to end of current or ARGth - 1 line and return point.
</p>
-<a name="index-kotl_002dmode_003aend_002dof_002dtree"></a>
+<span id="index-kotl_002dmode_003aend_002dof_002dtree"></span>
</dd>
<dt><code>kotl-mode:end-of-tree <kbd>{C-c $}</kbd></code></dt>
<dd><p>Move point to the last cell in tree rooted at the current cell.
Leave point at the start of the cell.
</p>
-<a name="index-kotl_002dmode_003aexample"></a>
+<span id="index-kotl_002dmode_003aexample"></span>
</dd>
<dt><code>kotl-mode:example</code></dt>
<dd><p>Display the Koutliner example file for demonstration use by a user.
</p>
-<a name="index-kotl_002dmode_003aexchange_002dcells"></a>
+<span id="index-kotl_002dmode_003aexchange_002dcells"></span>
</dd>
<dt><code>kotl-mode:exchange-cells <kbd>{C-c e}</kbd></code></dt>
<dd><p>Exchange CELL-REF-1 with CELL-REF-2 in current view. Don’t move
point.
</p>
-<a name="index-kotl_002dmode_003afill_002dcell"></a>
+<span id="index-kotl_002dmode_003afill_002dcell"></span>
</dd>
<dt><code>kotl-mode:fill-cell <kbd>{C-c M-j}</kbd></code></dt>
<dd><p>Fill current cell if it lacks the <em>no-fill</em> attribute.
With optional JUSTIFY, justify cell as well. IGNORE-COLLAPSED-P is used
when caller has already expanded cell, indicating it is not collapsed.
</p>
-<a name="index-kotl_002dmode_003afill_002dparagraph"></a>
+<span id="index-kotl_002dmode_003afill_002dparagraph"></span>
</dd>
<dt><code>kotl-mode:fill-paragraph <kbd>{C-x f}</kbd></code></dt>
<dd><p>Fill current paragraph within cell. With optional JUSTIFY, justify
paragraph as well. Ignore any non-nil <em>no-fill</em> attribute attached
to the cell.
</p>
-<a name="index-kotl_002dmode_003afill_002dtree"></a>
+<span id="index-kotl_002dmode_003afill_002dtree"></span>
</dd>
<dt><code>kotl-mode:fill-tree <kbd>{C-M-j}</kbd></code></dt>
<dd><p>Refill each cell within the tree whose root is at point.
</p>
-<a name="index-kotl_002dmode_003afirst_002dsibling"></a>
+<span id="index-kotl_002dmode_003afirst_002dsibling"></span>
</dd>
<dt><code>kotl-mode:first-sibling <kbd>{C-c <}</kbd></code></dt>
<dd><p>Move point to the first sibling of the present cell.
Leave point at the start of the cell or at its present position if it is
already within the first sibling cell.
</p>
-<a name="index-kotl_002dmode_003afkey_002dbackward_002dchar"></a>
+<span id="index-kotl_002dmode_003afkey_002dbackward_002dchar"></span>
</dd>
<dt><code>kotl-mode:fkey-backward-char <kbd>{C-b}</kbd> or
<kbd>{left}</kbd></code></dt>
<dd><p>Move point backward ARG (or 1) characters and return point.
</p>
-<a name="index-kotl_002dmode_003afkey_002dforward_002dchar"></a>
+<span id="index-kotl_002dmode_003afkey_002dforward_002dchar"></span>
</dd>
<dt><code>kotl-mode:fkey-forward-char <kbd>{C-f}</kbd> or
<kbd>{right}</kbd></code></dt>
<dd><p>Move point forward ARG (or 1) characters and return point.
</p>
-<a name="index-kotl_002dmode_003afkey_002dnext_002dline"></a>
+<span id="index-kotl_002dmode_003afkey_002dnext_002dline"></span>
</dd>
<dt><code>kotl-mode:fkey-next-line <kbd>{C-n}</kbd> or
<kbd>{down}</kbd></code></dt>
<dd><p>Move point to ARGth next line and return point.
</p>
-<a name="index-kotl_002dmode_003afkey_002dprevious_002dline"></a>
+<span id="index-kotl_002dmode_003afkey_002dprevious_002dline"></span>
</dd>
<dt><code>kotl-mode:fkey-previous-line <kbd>{C-p}</kbd> or
<kbd>{up}</kbd></code></dt>
<dd><p>Move point to ARGth previous line and return point.
</p>
-<a name="index-kotl_002dmode_003aforward_002dcell"></a>
+<span id="index-kotl_002dmode_003aforward_002dcell"></span>
</dd>
<dt><code>kotl-mode:forward-cell <kbd>{C-c C-f}</kbd></code></dt>
<dd><p>Move to the prefix ARG following cell (same level) within current view.
Return number of cells left to move.
</p>
-<a name="index-kotl_002dmode_003aforward_002dchar"></a>
+<span id="index-kotl_002dmode_003aforward_002dchar"></span>
</dd>
<dt><code>kotl-mode:forward-char <kbd>{C-f}</kbd></code></dt>
<dd><p>Move point forward ARG (or 1) characters and return point.
</p>
-<a name="index-kotl_002dmode_003aforward_002dpara"></a>
+<span id="index-kotl_002dmode_003aforward_002dpara"></span>
</dd>
<dt><code>kotl-mode:forward-para <kbd>{M-n}</kbd></code></dt>
<dd><p>Move to prefix ARGth next cell (any level) within current view.
</p>
-<a name="index-kotl_002dmode_003aforward_002dparagraph"></a>
+<span id="index-kotl_002dmode_003aforward_002dparagraph"></span>
</dd>
<dt><code>kotl-mode:forward-paragraph <kbd>{M-]}</kbd></code></dt>
<dd><p>Move to prefix ARG next cell (any level) within current view.
</p>
-<a name="index-kotl_002dmode_003aforward_002dsentence"></a>
+<span id="index-kotl_002dmode_003aforward_002dsentence"></span>
</dd>
<dt><code>kotl-mode:forward-sentence <kbd>{M-e}</kbd></code></dt>
<dd><p>Move point forward ARG (or 1) sentences and return point.
</p>
-<a name="index-kotl_002dmode_003aforward_002dword"></a>
+<span id="index-kotl_002dmode_003aforward_002dword"></span>
</dd>
<dt><code>kotl-mode:forward-word <kbd>{M-f}</kbd></code></dt>
<dd><p>Move point forward ARG (or 1) words and return point.
</p>
-<a name="index-kotl_002dmode_003agoto_002dcell"></a>
+<span id="index-kotl_002dmode_003agoto_002dcell"></span>
</dd>
<dt><code>kotl-mode:goto-cell <kbd>{C-c g}</kbd></code></dt>
<dd><p>Move point to start of cell given by CELL-REF. (See the documentation
@@ -8966,25 +8786,25 @@ is assigned the argument value for use as an idstamp.
not found within current view. Will signal same error if called
interactively when CELL-REF is not found.
</p>
-<a name="index-kotl_002dmode_003ahide_002dsublevels-1"></a>
+<span id="index-kotl_002dmode_003ahide_002dsublevels-1"></span>
</dd>
<dt><code>kotl-mode:hide-sublevels <kbd>{C-X $}</kbd></code></dt>
<dd><p>Hide all cells in outline at levels deeper than LEVELS-TO-KEEP (a
number). Show any hidden cells within LEVELS-TO-KEEP. 1 is the first
level.
</p>
-<a name="index-kotl_002dmode_003ahide_002dsubtree"></a>
+<span id="index-kotl_002dmode_003ahide_002dsubtree"></span>
</dd>
<dt><code>kotl-mode:hide-subtree <kbd>{C-M-h}</kbd></code></dt>
<dd><p>Hide subtree, ignoring root, at optional CELL-REF (defaults to cell at
point).
</p>
-<a name="index-kotl_002dmode_003ahide_002dtree-1"></a>
+<span id="index-kotl_002dmode_003ahide_002dtree-1"></span>
</dd>
<dt><code>kotl-mode:hide-tree <kbd>{C-c BS}</kbd></code></dt>
<dd><p>Collapse tree rooted at optional CELL-REF (defaults to cell at point).
</p>
-<a name="index-kotl_002dmode_003aindent_002dline"></a>
+<span id="index-kotl_002dmode_003aindent_002dline"></span>
</dd>
<dt><code>kotl-mode:indent-line {<span class="key">TAB</span>}</code></dt>
<dd><p>Indent line relative to the previous one.
@@ -8992,7 +8812,7 @@ With optional prefix ARG greater than 1, tab forward ARG
times.
See the documentation string of ‘kotl-mode:indent-tabs-mode’ for
details
on when tabs are used for indenting.
</p>
-<a name="index-kotl_002dmode_003aindent_002dregion"></a>
+<span id="index-kotl_002dmode_003aindent_002dregion"></span>
</dd>
<dt><code>kotl-mode:indent-region <kbd>{C-M-\}</kbd></code></dt>
<dd><p>Indent each nonblank line in the region from START to END.
@@ -9000,14 +8820,14 @@ If there is a fill prefix, make each line start with
the fill prefix.
With argument COLUMN, indent each line to that column.
Called from a program, takes three args: START, END and COLUMN.
</p>
-<a name="index-kimport_003ainsert_002dfile"></a>
+<span id="index-kimport_003ainsert_002dfile"></span>
</dd>
<dt><code>kimport:insert-file <kbd>{C-x i}</kbd></code></dt>
<dd><p>Insert each paragraph in IMPORT-FROM as a separate cell in the current
view.
Insert as sibling cells following the current cell. IMPORT-FROM may be a
buffer name or filename (filename completion is provided).
</p>
-<a name="index-kimport_003ainsert_002dregister"></a>
+<span id="index-kimport_003ainsert_002dregister"></span>
</dd>
<dt><code>kimport:insert-register <kbd>{C-x r i}</kbd></code></dt>
<dd><p>Insert contents of REGISTER at point in current cell.
@@ -9016,23 +8836,23 @@ Normally puts point before and mark after the inserted
text.
If optional second arg is non-nil, puts mark before and point after.
Interactively, second arg is non-nil if prefix arg is supplied.
</p>
-<a name="index-kotl_002dmode_003ajust_002done_002dspace"></a>
+<span id="index-kotl_002dmode_003ajust_002done_002dspace"></span>
</dd>
<dt><code>kotl-mode:just-one-space <kbd>{M-\}</kbd></code></dt>
<dd><p>Delete all spaces and tabs around point and leave one space.
</p>
-<a name="index-kotl_002dmode_003akill_002dcontents"></a>
+<span id="index-kotl_002dmode_003akill_002dcontents"></span>
</dd>
<dt><code>kotl-mode:kill-contents <kbd>{C-c k}</kbd></code></dt>
<dd><p>Kill contents of cell from point to cell end.
With prefix ARG, kill entire cell contents.
</p>
-<a name="index-kotl_002dmode_003akill_002dline"></a>
+<span id="index-kotl_002dmode_003akill_002dline"></span>
</dd>
<dt><code>kotl-mode:kill-line <kbd>{C-k}</kbd></code></dt>
<dd><p>Kill ARG lines from point.
</p>
-<a name="index-kotl_002dmode_003akill_002dregion"></a>
+<span id="index-kotl_002dmode_003akill_002dregion"></span>
</dd>
<dt><code>kotl-mode:kill-region <kbd>{C-w}</kbd></code></dt>
<dd><p>Kill region between START and END within a single kcell.
@@ -9044,40 +8864,40 @@ string without affecting the kill ring.
deleted but it will be copied to the kill ring and then an error will be
signaled.
</p>
-<a name="index-kotl_002dmode_003akill_002dring_002dsave"></a>
+<span id="index-kotl_002dmode_003akill_002dring_002dsave"></span>
</dd>
<dt><code>kotl-mode:kill-ring-save <kbd>{M-w}</kbd></code></dt>
<dd><p>Copy region between START and END within a single kcell to kill ring.
</p>
-<a name="index-kotl_002dmode_003akill_002dsentence"></a>
+<span id="index-kotl_002dmode_003akill_002dsentence"></span>
</dd>
<dt><code>kotl-mode:kill-sentence <kbd>{M-k}</kbd></code></dt>
<dd><p>Kill up to prefix ARG (or 1) sentences following point within a single
cell.
</p>
-<a name="index-kotl_002dmode_003akill_002dtree-1"></a>
+<span id="index-kotl_002dmode_003akill_002dtree-1"></span>
</dd>
<dt><code>kotl-mode:kill-tree <kbd>{C-c C-k}</kbd></code></dt>
<dd><p>Kill ARG following trees starting with tree rooted at point.
If ARG is a non-positive number, nothing is done.
</p>
-<a name="index-kotl_002dmode_003akill_002dword"></a>
+<span id="index-kotl_002dmode_003akill_002dword"></span>
</dd>
<dt><code>kotl-mode:kill-word <kbd>{M-d}</kbd></code></dt>
<dd><p>Kill up to prefix ARG words following point within a single cell.
</p>
-<a name="index-kotl_002dmode_003alast_002dsibling"></a>
+<span id="index-kotl_002dmode_003alast_002dsibling"></span>
</dd>
<dt><code>kotl-mode:last-sibling <kbd>{C-c >}</kbd></code></dt>
<dd><p>Move point to the last sibling of the present cell.
Leave point at the start of the cell or at its present position if it is
already within the last sibling cell.
</p>
-<a name="index-kotl_002dmode_003amail_002dtree"></a>
+<span id="index-kotl_002dmode_003amail_002dtree"></span>
</dd>
<dt><code>kotl-mode:mail-tree <kbd>{C-c @}</kbd></code></dt>
<dd><p>Mail outline tree rooted at CELL-REF. Use "0" for whole
outline buffer.
</p>
-<a name="index-kotl_002dmode_003amove_002dafter"></a>
+<span id="index-kotl_002dmode_003amove_002dafter"></span>
</dd>
<dt><code>kotl-mode:move-after <kbd>{C-c m}</kbd></code></dt>
<dd><p>Move tree rooted at FROM-CELL-REF to follow tree rooted at TO-CELL-REF.
@@ -9087,7 +8907,7 @@ With optional COPY-P, copy tree rather than moving it.
</p>
<p>Leave point at original location but return the tree’s new start
point.
</p>
-<a name="index-kotl_002dmode_003amove_002dbefore"></a>
+<span id="index-kotl_002dmode_003amove_002dbefore"></span>
</dd>
<dt><code>kotl-mode:move-before <kbd>{C-c <span
class="key">RET</span>}</kbd></code></dt>
<dd><p>Move tree rooted at FROM-CELL-REF to precede tree rooted at TO-CELL-REF.
@@ -9097,46 +8917,46 @@ TO-CELL-REF. With optional COPY-P, copy tree rather
than moving it.
</p>
<p>Leave point at original location but return the tree’s new start
point.
</p>
-<a name="index-kotl_002dmode_003anewline"></a>
+<span id="index-kotl_002dmode_003anewline"></span>
</dd>
<dt><code>kotl-mode:newline {<span class="key">RET</span>}</code></dt>
<dd><p>Insert a newline. With ARG, insert ARG newlines.
In Auto Fill mode, if no numeric arg, break the preceding line if it is
too long.
</p>
-<a name="index-kotl_002dmode_003anext_002dcell"></a>
+<span id="index-kotl_002dmode_003anext_002dcell"></span>
</dd>
<dt><code>kotl-mode:next-cell <kbd>{C-c C-n}</kbd></code></dt>
<dd><p>Move to prefix ARG next cell (any level) within current view.
</p>
-<a name="index-kotl_002dmode_003anext_002dline"></a>
+<span id="index-kotl_002dmode_003anext_002dline"></span>
</dd>
<dt><code>kotl-mode:next-line <kbd>{C-n}</kbd></code></dt>
<dd><p>Move point to ARGth next line and return point.
</p>
-<a name="index-kotl_002dmode_003aopen_002dline"></a>
+<span id="index-kotl_002dmode_003aopen_002dline"></span>
</dd>
<dt><code>kotl-mode:open-line <kbd>{C-o}</kbd></code></dt>
<dd><p>Insert a newline and leave point before it.
With arg N, insert N newlines.
</p>
-<a name="index-kotl_002dmode_003aoverview-1"></a>
+<span id="index-kotl_002dmode_003aoverview-1"></span>
</dd>
<dt><code>kotl-mode:overview <kbd>{C-c C-o}</kbd></code></dt>
<dd><p>Show only the first line of each cell in the current outline. With a
prefix arg, also toggle the display of blank lines between cells.
</p>
-<a name="index-kotl_002dmode_003aprevious_002dcell"></a>
+<span id="index-kotl_002dmode_003aprevious_002dcell"></span>
</dd>
<dt><code>kotl-mode:previous-cell <kbd>{C-c C-p}</kbd></code></dt>
<dd><p>Move to prefix ARG previous cell (any level) within current view.
</p>
-<a name="index-kotl_002dmode_003aprevious_002dline"></a>
+<span id="index-kotl_002dmode_003aprevious_002dline"></span>
</dd>
<dt><code>kotl-mode:previous-line <kbd>{C-p}</kbd></code></dt>
<dd><p>Move point to ARGth previous line and return point.
</p>
-<a name="index-kotl_002dmode_003apromote_002dtree"></a>
+<span id="index-kotl_002dmode_003apromote_002dtree"></span>
</dd>
<dt><code>kotl-mode:promote-tree <kbd>{M-<span class="key">TAB</span>}</kbd>
or <kbd>{<span class="key">SHIFT</span>-<span
class="key">TAB</span>}</kbd></code></dt>
<dd><p>Move current tree a maximum of prefix ARG levels higher in current view.
@@ -9144,47 +8964,47 @@ Each cell is refilled iff its <em>no-fill</em>
attribute is nil and
<code>kotl-mode:refill-flag</code> is non-nil. With prefix ARG = 0, cells are
promoted up to one level and <code>kotl-mode:refill-flag</code> is treated as
true.
</p>
-<a name="index-kotl_002dmode_003ascroll_002ddown"></a>
+<span id="index-kotl_002dmode_003ascroll_002ddown"></span>
</dd>
<dt><code>kotl-mode:scroll-down <kbd>{M-v}</kbd></code></dt>
<dd><p>Scroll text of current window downward ARG lines; or a windowful if no
ARG.
</p>
-<a name="index-kotl_002dmode_003ascroll_002dup"></a>
+<span id="index-kotl_002dmode_003ascroll_002dup"></span>
</dd>
<dt><code>kotl-mode:scroll-up <kbd>{C-v}</kbd></code></dt>
<dd><p>Scroll text of current window upward ARG lines; or a windowful if no
ARG.
</p>
-<a name="index-kotl_002dmode_003aset_002dcell_002dattribute"></a>
+<span id="index-kotl_002dmode_003aset_002dcell_002dattribute"></span>
</dd>
<dt><code>kotl-mode:set-cell-attribute <kbd>{C-c C-i}</kbd></code></dt>
<dd><p>Include ATTRIBUTE VALUE with the current cell or the cell at optional
POS.
Replace any existing value that ATTRIBUTE has. When called
interactively, display the setting in the minibuffer as confirmation.
</p>
-<a name="index-kotl_002dmode_003aset_002dfill_002dprefix"></a>
+<span id="index-kotl_002dmode_003aset_002dfill_002dprefix"></span>
</dd>
<dt><code>kotl-mode:set-fill-prefix <kbd>{C-x l}</kbd></code></dt>
<dd><p>Set fill prefix to line up to point.
With prefix arg TURN-OFF or at begin of line, turn fill prefix off.
</p>
-<a name="index-kotl_002dmode_003ashow_002dall-1"></a>
+<span id="index-kotl_002dmode_003ashow_002dall-1"></span>
</dd>
<dt><code>kotl-mode:show-all <kbd>{C-c C-a}</kbd></code></dt>
<dd><p>Show (expand) all cells in current view. With a prefix arg, also
toggle the display of blank lines between cells.
</p>
-<a name="index-kotl_002dmode_003ashow_002dsubtree"></a>
+<span id="index-kotl_002dmode_003ashow_002dsubtree"></span>
</dd>
<dt><code>kotl-mode:show-subtree</code></dt>
<dd><p>Show subtree, ignoring root, at optional CELL-REF (defaults to cell at
point).
</p>
-<a name="index-kotl_002dmode_003ashow_002dtree-1"></a>
+<span id="index-kotl_002dmode_003ashow_002dtree-1"></span>
</dd>
<dt><code>kotl-mode:show-tree <kbd>{C-c C-s}</kbd></code></dt>
<dd><p>Display fully expanded tree rooted at CELL-REF.
</p>
-<a name="index-kotl_002dmode_003asplit_002dcell"></a>
+<span id="index-kotl_002dmode_003asplit_002dcell"></span>
</dd>
<dt><code>kotl-mode:split-cell <kbd>{C-c s}</kbd></code></dt>
<dd><p>Split cell into two cells and move to new cell.
@@ -9193,14 +9013,14 @@ Default is to create new cell as sibling of current
cell.
With optional universal ARG, <kbd>{C-u}</kbd>, new cell is added as child of
current cell.
</p>
-<a name="index-kotl_002dmode_003atop_002dcells-1"></a>
+<span id="index-kotl_002dmode_003atop_002dcells-1"></span>
</dd>
<dt><code>kotl-mode:top-cells <kbd>{C-c C-t}</kbd></code></dt>
<dd><p>Collapse all level 1 cells in view and hide any deeper sublevels.
With a prefix arg, also toggle the display of blank lines between
cells.
</p>
-<a name="index-kotl_002dmode_003atranspose_002dcells"></a>
+<span id="index-kotl_002dmode_003atranspose_002dcells"></span>
</dd>
<dt><code>kotl-mode:transpose-cells <kbd>{C-c t}</kbd></code></dt>
<dd><p>Exchange current and previous visible cells, leaving point after both.
@@ -9209,7 +9029,7 @@ With prefix ARG, take current cell and move it past ARG
cells.
With prefix ARG = 0, interchange the cell that contains point with the cell
that contains mark.
</p>
-<a name="index-kotl_002dmode_003atranspose_002dchars"></a>
+<span id="index-kotl_002dmode_003atranspose_002dchars"></span>
</dd>
<dt><code>kotl-mode:transpose-chars <kbd>{C-t}</kbd></code></dt>
<dd><p>Interchange characters around point, moving forward one character.
@@ -9218,7 +9038,7 @@ other characters (backward if ARG negative).
If no prefix ARG and at end of line, the previous two characters are
exchanged.
</p>
-<a name="index-kotl_002dmode_003atranspose_002dlines"></a>
+<span id="index-kotl_002dmode_003atranspose_002dlines"></span>
</dd>
<dt><code>kotl-mode:transpose-lines <kbd>{C-x C-t}</kbd></code></dt>
<dd><p>Exchange current line and previous line, leaving point after both.
@@ -9227,7 +9047,7 @@ With prefix ARG, take previous line and move it past ARG
lines.
With prefix ARG = 0, interchange the line that contains point with the line
that contains mark.
</p>
-<a name="index-kotl_002dmode_003atranspose_002dwords"></a>
+<span id="index-kotl_002dmode_003atranspose_002dwords"></span>
</dd>
<dt><code>kotl-mode:transpose-words <kbd>{M-t}</kbd></code></dt>
<dd><p>Interchange words around point, leaving point after both words.
@@ -9235,12 +9055,12 @@ With prefix ARG, take word before or around point and
drag it forward past
ARG other words (backward if ARG negative). If ARG is zero, the words around
or after point and around or after mark are interchanged.
</p>
-<a name="index-kotl_002dmode_003aup_002dlevel"></a>
+<span id="index-kotl_002dmode_003aup_002dlevel"></span>
</dd>
<dt><code>kotl-mode:up-level <kbd>{C-c C-u}</kbd></code></dt>
<dd><p>Move up prefix ARG levels higher in current outline view.
</p>
-<a name="index-kotl_002dmode_003ayank"></a>
+<span id="index-kotl_002dmode_003ayank"></span>
</dd>
<dt><code>kotl-mode:yank <kbd>{C-y}</kbd></code></dt>
<dd><p>Reinsert the last stretch of killed text.
@@ -9251,7 +9071,7 @@ With argument N, reinsert the Nth most recently killed
stretch of killed
text.
See also the command, <code>(kotl-mode:yank-pop)</code>.
</p>
-<a name="index-kotl_002dmode_003ayank_002dpop"></a>
+<span id="index-kotl_002dmode_003ayank_002dpop"></span>
</dd>
<dt><code>kotl-mode:yank-pop <kbd>{M-y}</kbd></code></dt>
<dd><p>Replace just-yanked stretch of killed text with a different stretch.
@@ -9267,27 +9087,27 @@ If N is negative, this is a more recent kill.
<p>The sequence of kills wraps around, so that after the oldest one
comes the newest one.
</p>
-<a name="index-kotl_002dmode_003azap_002dto_002dchar"></a>
+<span id="index-kotl_002dmode_003azap_002dto_002dchar"></span>
</dd>
<dt><code>kotl-mode:zap-to-char <kbd>{M-z}</kbd></code></dt>
<dd><p>Kill up to and including prefix ARGth occurrence of CHAR.
Goes backward if ARG is negative; error if CHAR not found.
</p>
-<a name="index-kview_003aset_002dlabel_002dseparator"></a>
+<span id="index-kview_003aset_002dlabel_002dseparator"></span>
</dd>
<dt><code>kview:set-label-separator <kbd>{C-c M-l}</kbd></code></dt>
<dd><p>Set the LABEL-SEPARATOR (a string) between labels and cell contents for
the current kview. With optional prefix arg SET-DEFAULT-P, the default
separator value used for new outlines is also set to this new value.
</p>
-<a name="index-kview_003aset_002dlabel_002dtype"></a>
+<span id="index-kview_003aset_002dlabel_002dtype"></span>
</dd>
<dt><code>kview:set-label-type <kbd>{C-c C-l}</kbd></code></dt>
<dd><p>Change kview’s label display type to NEW-TYPE, updating all
displayed labels.
See documentation for the <code>kview:default-label-type</code> variable,
for valid values of NEW-TYPE.
</p>
-<a name="index-kvspec_003aactivate-1"></a>
+<span id="index-kvspec_003aactivate-1"></span>
</dd>
<dt><code>kvspec:activate <kbd>{C-c C-v}</kbd></code></dt>
<dd><p>Activate optional VIEW-SPEC or existing view specification over the
@@ -9295,7 +9115,7 @@ current koutline. VIEW-SPEC must be a string. See
‘<samp><<code>${hyperb:dir}</code>/kotl/EXAMPLE.kotl,
2b17=048></samp>’ for details
on valid view specs.
</p>
-<a name="index-kvspec_003atoggle_002dblank_002dlines-1"></a>
+<span id="index-kvspec_003atoggle_002dblank_002dlines-1"></span>
</dd>
<dt><code>kvspec:toggle-blank-lines <kbd>{C-c b}</kbd></code></dt>
<dd><p>Toggle blank lines between cells on or off.
@@ -9305,13 +9125,11 @@ on valid view specs.
<hr>
-<a name="Smart-Key-Reference"></a>
-<div class="header">
+<span id="Smart-Key-Reference"></span><div class="header">
<p>
Next: <a href="#Suggestion-or-Bug-Reporting" accesskey="n"
rel="next">Suggestion or Bug Reporting</a>, Previous: <a href="#Koutliner-Keys"
accesskey="p" rel="prev">Koutliner Keys</a>, Up: <a href="#Top" accesskey="u"
rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-Reference-1"></a>
-<h2 class="appendix">Appendix E Smart Key Reference</h2>
+<span id="Smart-Key-Reference-1"></span><h2 class="appendix">Appendix E Smart
Key Reference</h2>
<p>This appendix documents Hyperbole’s context-sensitive Smart Key
operations. It is quite extensive and is meant for reference rather
@@ -9329,22 +9147,20 @@ Within each context, the actions performed by the
Action and Assist
Keys are given.
</p>
<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">• <a href="#Smart-Mouse-Keys"
accesskey="1">Smart Mouse Keys</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Smart-Mouse-Keys"
accesskey="1">Smart Mouse Keys</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Smart-Keyboard-Keys"
accesskey="2">Smart Keyboard Keys</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Smart-Keyboard-Keys"
accesskey="2">Smart Keyboard Keys</a></td><td> </td><td align="left"
valign="top">
</td></tr>
</table>
<hr>
-<a name="Smart-Mouse-Keys"></a>
-<div class="header">
+<span id="Smart-Mouse-Keys"></span><div class="header">
<p>
Next: <a href="#Smart-Keyboard-Keys" accesskey="n" rel="next">Smart Keyboard
Keys</a>, Previous: <a href="#Smart-Key-Reference" accesskey="p"
rel="prev">Smart Key Reference</a>, Up: <a href="#Smart-Key-Reference"
accesskey="u" rel="up">Smart Key Reference</a> [<a href="#SEC_Contents"
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index"
title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Smart-Mouse-Keys-1"></a>
-<h3 class="section">E.1 Smart Mouse Keys</h3>
+<span id="Smart-Mouse-Keys-1"></span><h3 class="section">E.1 Smart Mouse
Keys</h3>
-<a name="index-Smart-Mouse-Keys"></a>
+<span id="index-Smart-Mouse-Keys"></span>
<p>The contexts and actions in this section, like drags and modeline
clicks, apply only if you have mouse support within Hyperbole. The
Smart Key operations in <a href="#Smart-Keyboard-Keys">Smart Keyboard
Keys</a>, apply to both mouse
@@ -9357,41 +9173,39 @@ matching mouse key context is found, then the keyboard
key contexts
are searched in order.
</p>
<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">• <a href="#Minibuffer-Menu-Activation"
accesskey="1">Minibuffer Menu Activation</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Minibuffer-Menu-Activation"
accesskey="1">Minibuffer Menu Activation</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Thing-Selection"
accesskey="2">Thing Selection</a>:</td><td> </td><td align="left"
valign="top">
+<tr><td align="left" valign="top">• <a href="#Thing-Selection"
accesskey="2">Thing Selection</a></td><td> </td><td align="left"
valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Side_002dby_002dSide-Window-Resizing" accesskey="3">Side-by-Side Window
Resizing</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Side_002dby_002dSide-Window-Resizing" accesskey="3">Side-by-Side Window
Resizing</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Modeline-Clicks-and-Drags"
accesskey="4">Modeline Clicks and Drags</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Modeline-Clicks-and-Drags"
accesskey="4">Modeline Clicks and Drags</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Mouse-Drags-between-Windows" accesskey="5">Smart Mouse Drags
between Windows</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Mouse-Drags-between-Windows" accesskey="5">Smart Mouse Drags
between Windows</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Mouse-Drags-within-a-Window" accesskey="6">Smart Mouse Drags
within a Window</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Mouse-Drags-within-a-Window" accesskey="6">Smart Mouse Drags
within a Window</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Mouse-Drags-outside-a-Window" accesskey="7">Smart Mouse Drags
outside a Window</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Mouse-Drags-outside-a-Window" accesskey="7">Smart Mouse Drags
outside a Window</a></td><td> </td><td align="left" valign="top">
</td></tr>
</table>
<hr>
-<a name="Minibuffer-Menu-Activation"></a>
-<div class="header">
+<span id="Minibuffer-Menu-Activation"></span><div class="header">
<p>
Next: <a href="#Thing-Selection" accesskey="n" rel="next">Thing Selection</a>,
Previous: <a href="#Smart-Mouse-Keys" accesskey="p" rel="prev">Smart Mouse
Keys</a>, Up: <a href="#Smart-Mouse-Keys" accesskey="u" rel="up">Smart Mouse
Keys</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Minibuffer-Menu-Activation-1"></a>
-<h4 class="subsection">E.1.1 Minibuffer Menu Activation</h4>
-
-<a name="index-menu_002c-top_002dlevel-1"></a>
-<a name="index-minibuffer-menu-1"></a>
-<a name="index-buffer-menu-1"></a>
-<a name="index-minibuffer_002c-buffer-menu"></a>
-<a name="index-minibuffer_002c-default-actions"></a>
-<a name="index-jump-menu-1"></a>
-<a name="index-minibuffer_002c-jump-menu"></a>
-<a name="index-inactive-minibuffer"></a>
-<a name="index-action_002dkey_002dminibuffer_002dfunction"></a>
-<a name="index-assist_002dkey_002dminibuffer_002dfunction"></a>
+<span id="Minibuffer-Menu-Activation-1"></span><h4 class="subsection">E.1.1
Minibuffer Menu Activation</h4>
+
+<span id="index-menu_002c-top_002dlevel-1"></span>
+<span id="index-minibuffer-menu-1"></span>
+<span id="index-buffer-menu-1"></span>
+<span id="index-minibuffer_002c-buffer-menu"></span>
+<span id="index-minibuffer_002c-default-actions"></span>
+<span id="index-jump-menu-1"></span>
+<span id="index-minibuffer_002c-jump-menu"></span>
+<span id="index-inactive-minibuffer"></span>
+<span id="index-action_002dkey_002dminibuffer_002dfunction"></span>
+<span id="index-assist_002dkey_002dminibuffer_002dfunction"></span>
<div class="format">
<pre class="format">When clicked within an inactive minibuffer:
ACTION KEY
@@ -9407,23 +9221,21 @@ Next: <a href="#Thing-Selection" accesskey="n"
rel="next">Thing Selection</a>, P
</pre></div>
<hr>
-<a name="Thing-Selection"></a>
-<div class="header">
+<span id="Thing-Selection"></span><div class="header">
<p>
Next: <a href="#Side_002dby_002dSide-Window-Resizing" accesskey="n"
rel="next">Side-by-Side Window Resizing</a>, Previous: <a
href="#Minibuffer-Menu-Activation" accesskey="p" rel="prev">Minibuffer Menu
Activation</a>, Up: <a href="#Smart-Mouse-Keys" accesskey="u" rel="up">Smart
Mouse Keys</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Thing-Selection-1"></a>
-<h4 class="subsection">E.1.2 Thing Selection</h4>
-
-<a name="index-thing"></a>
-<a name="index-list"></a>
-<a name="index-comment"></a>
-<a name="index-string"></a>
-<a name="index-array"></a>
-<a name="index-vector"></a>
-<a name="index-set"></a>
-<a name="index-function"></a>
-<a name="index-markup-pair"></a>
+<span id="Thing-Selection-1"></span><h4 class="subsection">E.1.2 Thing
Selection</h4>
+
+<span id="index-thing"></span>
+<span id="index-list"></span>
+<span id="index-comment"></span>
+<span id="index-string"></span>
+<span id="index-array"></span>
+<span id="index-vector"></span>
+<span id="index-set"></span>
+<span id="index-function"></span>
+<span id="index-markup-pair"></span>
<div class="format">
<pre class="format">In a programming or markup language buffer, when
pressed/clicked at
the start or end of a delimited thing (including lists, comments,
@@ -9438,14 +9250,14 @@ markup language), and not at the end of a line:
<p>Note that the press must be on the first character of the delimiter of
the thing.
</p>
-<a name="index-Smart-Mouse-Key"></a>
-<a name="index-Action-Mouse-Key"></a>
-<a name="index-Assist-Mouse-Key"></a>
-<a name="index-drag-1"></a>
-<a name="index-copy-and-yank"></a>
-<a name="index-kill-and-yank"></a>
-<a name="index-yanking"></a>
-<a name="index-pasting-a-region"></a>
+<span id="index-Smart-Mouse-Key"></span>
+<span id="index-Action-Mouse-Key"></span>
+<span id="index-Assist-Mouse-Key"></span>
+<span id="index-drag-1"></span>
+<span id="index-copy-and-yank"></span>
+<span id="index-kill-and-yank"></span>
+<span id="index-yanking"></span>
+<span id="index-pasting-a-region"></span>
<p>There are also <em>drag</em> actions that work on delimited things.
Delimited things include parenthesized lists, single and double quoted
strings, bracketed arrays/vectors, sets with braces, programming
@@ -9468,16 +9280,14 @@ the first line of the thing.
to use and indispensable.
</p>
<hr>
-<a name="Side_002dby_002dSide-Window-Resizing"></a>
-<div class="header">
+<span id="Side_002dby_002dSide-Window-Resizing"></span><div class="header">
<p>
Next: <a href="#Modeline-Clicks-and-Drags" accesskey="n" rel="next">Modeline
Clicks and Drags</a>, Previous: <a href="#Thing-Selection" accesskey="p"
rel="prev">Thing Selection</a>, Up: <a href="#Smart-Mouse-Keys" accesskey="u"
rel="up">Smart Mouse Keys</a> [<a href="#SEC_Contents" title="Table of
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Side_002dby_002dSide-Window-Resizing-1"></a>
-<h4 class="subsection">E.1.3 Side-by-Side Window Resizing</h4>
+<span id="Side_002dby_002dSide-Window-Resizing-1"></span><h4
class="subsection">E.1.3 Side-by-Side Window Resizing</h4>
-<a name="index-drag_002c-side-edge"></a>
-<a name="index-side-drag"></a>
+<span id="index-drag_002c-side-edge"></span>
+<span id="index-side-drag"></span>
<div class="format">
<pre class="format">If dragged from a side-by-side window edge or from the
immediate left of
a vertical scroll bar:
@@ -9486,18 +9296,16 @@ a vertical scroll bar:
</pre></div>
<hr>
-<a name="Modeline-Clicks-and-Drags"></a>
-<div class="header">
+<span id="Modeline-Clicks-and-Drags"></span><div class="header">
<p>
Next: <a href="#Smart-Mouse-Drags-between-Windows" accesskey="n"
rel="next">Smart Mouse Drags between Windows</a>, Previous: <a
href="#Side_002dby_002dSide-Window-Resizing" accesskey="p"
rel="prev">Side-by-Side Window Resizing</a>, Up: <a href="#Smart-Mouse-Keys"
accesskey="u" rel="up">Smart Mouse Keys</a> [<a href="#SEC_Contents"
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index"
title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Modeline-Clicks-and-Drags-1"></a>
-<h4 class="subsection">E.1.4 Modeline Clicks and Drags</h4>
+<span id="Modeline-Clicks-and-Drags-1"></span><h4 class="subsection">E.1.4
Modeline Clicks and Drags</h4>
-<a name="index-depress_002c-modeline"></a>
-<a name="index-modeline-depress"></a>
-<a name="index-action_002dkey_002dmodeline_002dfunction-1"></a>
-<a name="index-assist_002dkey_002dmodeline_002dfunction-1"></a>
+<span id="index-depress_002c-modeline"></span>
+<span id="index-modeline-depress"></span>
+<span id="index-action_002dkey_002dmodeline_002dfunction-1"></span>
+<span id="index-assist_002dkey_002dmodeline_002dfunction-1"></span>
<div class="format">
<pre class="format">If depressed within a window modeline:
ACTION KEY
@@ -9564,19 +9372,17 @@ Next: <a href="#Smart-Mouse-Drags-between-Windows"
accesskey="n" rel="next">Smar
</pre></div>
<hr>
-<a name="Smart-Mouse-Drags-between-Windows"></a>
-<div class="header">
+<span id="Smart-Mouse-Drags-between-Windows"></span><div class="header">
<p>
Next: <a href="#Smart-Mouse-Drags-within-a-Window" accesskey="n"
rel="next">Smart Mouse Drags within a Window</a>, Previous: <a
href="#Modeline-Clicks-and-Drags" accesskey="p" rel="prev">Modeline Clicks and
Drags</a>, Up: <a href="#Smart-Mouse-Keys" accesskey="u" rel="up">Smart Mouse
Keys</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Mouse-Drags-between-Windows-1"></a>
-<h4 class="subsection">E.1.5 Smart Mouse Drags between Windows</h4>
+<span id="Smart-Mouse-Drags-between-Windows-1"></span><h4
class="subsection">E.1.5 Smart Mouse Drags between Windows</h4>
-<a name="index-active-region"></a>
-<a name="index-copy-and-yank-1"></a>
-<a name="index-kill-and-yank-1"></a>
-<a name="index-yanking-1"></a>
-<a name="index-pasting-a-region-1"></a>
+<span id="index-active-region"></span>
+<span id="index-copy-and-yank-1"></span>
+<span id="index-kill-and-yank-1"></span>
+<span id="index-yanking-1"></span>
+<span id="index-pasting-a-region-1"></span>
<div class="format">
<pre class="format">If an active (highlighted) region exists within the editor:
ACTION KEY
@@ -9602,17 +9408,15 @@ Next: <a href="#Smart-Mouse-Drags-within-a-Window"
accesskey="n" rel="next">Smar
</pre></div>
<hr>
-<a name="Smart-Mouse-Drags-within-a-Window"></a>
-<div class="header">
+<span id="Smart-Mouse-Drags-within-a-Window"></span><div class="header">
<p>
Next: <a href="#Smart-Mouse-Drags-outside-a-Window" accesskey="n"
rel="next">Smart Mouse Drags outside a Window</a>, Previous: <a
href="#Smart-Mouse-Drags-between-Windows" accesskey="p" rel="prev">Smart Mouse
Drags between Windows</a>, Up: <a href="#Smart-Mouse-Keys" accesskey="u"
rel="up">Smart Mouse Keys</a> [<a href="#SEC_Contents" title="Table of
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Mouse-Drags-within-a-Window-1"></a>
-<h4 class="subsection">E.1.6 Smart Mouse Drags within a Window</h4>
+<span id="Smart-Mouse-Drags-within-a-Window-1"></span><h4
class="subsection">E.1.6 Smart Mouse Drags within a Window</h4>
-<a name="index-active-region-1"></a>
-<a name="index-region_002c-active"></a>
-<a name="index-drag_002c-with-region-1"></a>
+<span id="index-active-region-1"></span>
+<span id="index-region_002c-active"></span>
+<span id="index-drag_002c-with-region-1"></span>
<div class="format">
<pre class="format">If a region is active and a drag occurs within a single
buffer/window:
ACTION KEY
@@ -9621,9 +9425,9 @@ Next: <a href="#Smart-Mouse-Drags-outside-a-Window"
accesskey="n" rel="next">Sma
Restores region to before Action Key drag and signals an error.
</pre></div>
-<a name="index-drag_002c-horizontal-1"></a>
-<a name="index-horizontal-drag-1"></a>
-<a name="index-hmouse_002dx_002ddrag_002dsensitivity"></a>
+<span id="index-drag_002c-horizontal-1"></span>
+<span id="index-horizontal-drag-1"></span>
+<span id="index-hmouse_002dx_002ddrag_002dsensitivity"></span>
<div class="format">
<pre class="format">(Note that <code>hmouse-x-drag-sensitivity</code> sets the
minimal horizontal
movement which registers a drag). If dragged horizontally within a
@@ -9635,9 +9439,9 @@ single window from anywhere but a thing delimiter:
current frame.
</pre></div>
-<a name="index-drag_002c-vertical-1"></a>
-<a name="index-vertical-drag-1"></a>
-<a name="index-hmouse_002dy_002ddrag_002dsensitivity"></a>
+<span id="index-drag_002c-vertical-1"></span>
+<span id="index-vertical-drag-1"></span>
+<span id="index-hmouse_002dy_002ddrag_002dsensitivity"></span>
<div class="format">
<pre class="format">(Note that <code>hmouse-y-drag-sensitivity</code> sets the
minimal vertical
movement which registers a drag). If dragged vertically within a
@@ -9649,10 +9453,10 @@ single window from anywhere but a thing delimiter:
current frame.
</pre></div>
-<a name="index-drag_002c-diagonal-1"></a>
-<a name="index-diagonal-drag-1"></a>
-<a name="index-hmouse_002dx_002ddiagonal_002dsensitivity"></a>
-<a name="index-hmouse_002dy_002ddiagonal_002dsensitivity"></a>
+<span id="index-drag_002c-diagonal-1"></span>
+<span id="index-diagonal-drag-1"></span>
+<span id="index-hmouse_002dx_002ddiagonal_002dsensitivity"></span>
+<span id="index-hmouse_002dy_002ddiagonal_002dsensitivity"></span>
<div class="format">
<pre class="format">If dragged diagonally within a single window while
depressed
(‘hmouse-x-diagonal-sensitivity’ and
‘hmouse-y-diagonal-sensitivity’ set
@@ -9666,22 +9470,20 @@ the minimal diagonal movements which register a drag):
</pre></div>
<hr>
-<a name="Smart-Mouse-Drags-outside-a-Window"></a>
-<div class="header">
+<span id="Smart-Mouse-Drags-outside-a-Window"></span><div class="header">
<p>
Previous: <a href="#Smart-Mouse-Drags-within-a-Window" accesskey="p"
rel="prev">Smart Mouse Drags within a Window</a>, Up: <a
href="#Smart-Mouse-Keys" accesskey="u" rel="up">Smart Mouse Keys</a> [<a
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Smart-Mouse-Drags-outside-a-Window-1"></a>
-<h4 class="subsection">E.1.7 Smart Mouse Drags outside a Window</h4>
-
-<a name="index-hmouse_002ddrag_002ditem_002dmode_002dforms"></a>
-<a name="index-hycontrol_002dkeep_002dwindow_002dflag-1"></a>
-<a name="index-dragging-items"></a>
-<a name="index-dragging-outside-Emacs"></a>
-<a name="index-window_002c-clone-2"></a>
-<a name="index-clone-window-2"></a>
-<a name="index-window_002c-move"></a>
-<a name="index-move-window"></a>
+<span id="Smart-Mouse-Drags-outside-a-Window-1"></span><h4
class="subsection">E.1.7 Smart Mouse Drags outside a Window</h4>
+
+<span id="index-hmouse_002ddrag_002ditem_002dmode_002dforms"></span>
+<span id="index-hycontrol_002dkeep_002dwindow_002dflag-1"></span>
+<span id="index-dragging-items"></span>
+<span id="index-dragging-outside-Emacs"></span>
+<span id="index-window_002c-clone-2"></span>
+<span id="index-clone-window-2"></span>
+<span id="index-window_002c-move"></span>
+<span id="index-move-window"></span>
<div class="format">
<pre class="format">If dragged from an Emacs window to outside of Emacs:
ACTION KEY
@@ -9699,113 +9501,109 @@ Previous: <a
href="#Smart-Mouse-Drags-within-a-Window" accesskey="p" rel="prev">
</pre></div>
<hr>
-<a name="Smart-Keyboard-Keys"></a>
-<div class="header">
+<span id="Smart-Keyboard-Keys"></span><div class="header">
<p>
Previous: <a href="#Smart-Mouse-Keys" accesskey="p" rel="prev">Smart Mouse
Keys</a>, Up: <a href="#Smart-Key-Reference" accesskey="u" rel="up">Smart Key
Reference</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Keyboard-Keys-1"></a>
-<h3 class="section">E.2 Smart Keyboard Keys</h3>
+<span id="Smart-Keyboard-Keys-1"></span><h3 class="section">E.2 Smart Keyboard
Keys</h3>
<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Company-Mode" accesskey="1">Smart Key - Company
Mode</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Company-Mode" accesskey="1">Smart Key - Company
Mode</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Smart-Key-_002d-Treemacs"
accesskey="2">Smart Key - Treemacs</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Smart-Key-_002d-Treemacs"
accesskey="2">Smart Key - Treemacs</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Emacs-Pushbuttons" accesskey="3">Smart Key - Emacs
Pushbuttons</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Emacs-Pushbuttons" accesskey="3">Smart Key - Emacs
Pushbuttons</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Argument-Completion" accesskey="4">Smart Key - Argument
Completion</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Argument-Completion" accesskey="4">Smart Key - Argument
Completion</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-ID-Edit-Mode" accesskey="5">Smart Key - ID Edit
Mode</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-ID-Edit-Mode" accesskey="5">Smart Key - ID Edit
Mode</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029"
accesskey="6">Smart Key - Emacs Cross-references
(Xrefs)</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029"
accesskey="6">Smart Key - Emacs Cross-references
(Xrefs)</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Smart-Scrolling" accesskey="7">Smart Key - Smart
Scrolling</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Smart-Scrolling" accesskey="7">Smart Key - Smart
Scrolling</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Smart-Menus" accesskey="8">Smart Key - Smart
Menus</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Smart-Menus" accesskey="8">Smart Key - Smart
Menus</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Smart-Key-_002d-Dired-Mode"
accesskey="9">Smart Key - Dired Mode</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Smart-Key-_002d-Dired-Mode"
accesskey="9">Smart Key - Dired Mode</a></td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Hyperbole-Buttons">Smart Key - Hyperbole
Buttons</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Hyperbole-Buttons">Smart Key - Hyperbole
Buttons</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-View-Mode">Smart Key - View
Mode</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-View-Mode">Smart Key - View
Mode</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Delimited-Things">Smart Key - Delimited
Things</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Delimited-Things">Smart Key - Delimited
Things</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-The-Koutliner">Smart Key - The
Koutliner</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-The-Koutliner">Smart Key - The
Koutliner</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-RDB-Mode">Smart Key - RDB
Mode</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-RDB-Mode">Smart Key - RDB
Mode</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Help-Buffers">Smart Key - Help
Buffers</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Help-Buffers">Smart Key - Help
Buffers</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Pages-Directory-Mode">Smart Key - Pages Directory
Mode</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Pages-Directory-Mode">Smart Key - Pages Directory
Mode</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Python-Source-Code">Smart Key - Python Source
Code</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Python-Source-Code">Smart Key - Python Source
Code</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Identifier-Menu-Mode">Smart Key - Identifier Menu Mode
</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Identifier-Menu-Mode">Smart Key - Identifier Menu Mode
</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-C-Source-Code">Smart Key - C Source
Code</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-C-Source-Code">Smart Key - C Source
Code</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-C_002b_002b-Source-Code">Smart Key - C++ Source
Code</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-C_002b_002b-Source-Code">Smart Key - C++ Source
Code</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Assembly-Source-Code">Smart Key - Assembly Source
Code</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Assembly-Source-Code">Smart Key - Assembly Source
Code</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Lisp-Source-Code">Smart Key - Lisp Source
Code</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Lisp-Source-Code">Smart Key - Lisp Source
Code</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Java-Source-Code">Smart Key - Java Source
Code</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Java-Source-Code">Smart Key - Java Source
Code</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-JavaScript-Source-Code">Smart Key - JavaScript Source
Code</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-JavaScript-Source-Code">Smart Key - JavaScript Source
Code</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Objective_002dC-Source-Code">Smart Key - Objective-C
Source Code</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Objective_002dC-Source-Code">Smart Key - Objective-C
Source Code</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Fortran-Source-Code">Smart Key - Fortran Source
Code</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Fortran-Source-Code">Smart Key - Fortran Source
Code</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Occurrence-Matches">Smart Key - Occurrence
Matches</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Occurrence-Matches">Smart Key - Occurrence
Matches</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Calendar-Mode">Smart Key - Calendar
Mode</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Calendar-Mode">Smart Key - Calendar
Mode</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Man-Page-Apropos">Smart Key - Man Page
Apropos</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Man-Page-Apropos">Smart Key - Man Page
Apropos</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Emacs-Outline-Mode">Smart Key - Emacs Outline
Mode</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Emacs-Outline-Mode">Smart Key - Emacs Outline
Mode</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Info-Manuals">Smart Key - Info
Manuals</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Info-Manuals">Smart Key - Info
Manuals</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Email-Composers">Smart Key - Email
Composers</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Email-Composers">Smart Key - Email
Composers</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-GNUS-Newsreader">Smart Key - GNUS
Newsreader</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-GNUS-Newsreader">Smart Key - GNUS
Newsreader</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Buffer-Menus">Smart Key - Buffer
Menus</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Buffer-Menus">Smart Key - Buffer
Menus</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Tar-File-Mode">Smart Key - Tar File
Mode</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Tar-File-Mode">Smart Key - Tar File
Mode</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Man-Pages">Smart Key - Man
Pages</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Man-Pages">Smart Key - Man
Pages</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-WWW-URLs">Smart Key - WWW
URLs</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-WWW-URLs">Smart Key - WWW
URLs</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-HyRolo-Match-Buffers">Smart Key - HyRolo Match
Buffers</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-HyRolo-Match-Buffers">Smart Key - HyRolo Match
Buffers</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Image-Thumbnails">Smart Key - Image
Thumbnails</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Image-Thumbnails">Smart Key - Image
Thumbnails</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Gomoku-Game">Smart Key - Gomoku
Game</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Gomoku-Game">Smart Key - Gomoku
Game</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-The-OO_002dBrowser">Smart Key - The
OO-Browser</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-The-OO_002dBrowser">Smart Key - The
OO-Browser</a></td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Default-Context">Smart Key - Default
Context</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Default-Context">Smart Key - Default
Context</a></td><td> </td><td align="left" valign="top">
</td></tr>
</table>
<hr>
-<a name="Smart-Key-_002d-Company-Mode"></a>
-<div class="header">
+<span id="Smart-Key-_002d-Company-Mode"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-Treemacs" accesskey="n" rel="next">Smart Key -
Treemacs</a>, Previous: <a href="#Smart-Keyboard-Keys" accesskey="p"
rel="prev">Smart Keyboard Keys</a>, Up: <a href="#Smart-Keyboard-Keys"
accesskey="u" rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents"
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index"
title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Company-Mode-1"></a>
-<h4 class="subsection">E.2.1 Smart Key - Company Mode</h4>
+<span id="Smart-Key-_002d-Company-Mode-1"></span><h4 class="subsection">E.2.1
Smart Key - Company Mode</h4>
-<a name="index-company_002dmode"></a>
-<a name="index-completion-2"></a>
+<span id="index-company_002dmode"></span>
+<span id="index-completion-2"></span>
<p>Company mode is an extensive in-buffer completion framework, often used to
complete programming identifiers.
</p>
<div class="format">
@@ -9818,15 +9616,13 @@ Next: <a href="#Smart-Key-_002d-Treemacs" accesskey="n"
rel="next">Smart Key - T
<hr>
-<a name="Smart-Key-_002d-Treemacs"></a>
-<div class="header">
+<span id="Smart-Key-_002d-Treemacs"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-Emacs-Pushbuttons" accesskey="n"
rel="next">Smart Key - Emacs Pushbuttons</a>, Previous: <a
href="#Smart-Key-_002d-Company-Mode" accesskey="p" rel="prev">Smart Key -
Company Mode</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Treemacs-1"></a>
-<h4 class="subsection">E.2.2 Smart Key - Treemacs</h4>
+<span id="Smart-Key-_002d-Treemacs-1"></span><h4 class="subsection">E.2.2
Smart Key - Treemacs</h4>
-<a name="index-Treemacs-1"></a>
+<span id="index-Treemacs-1"></span>
<p>Treemacs is an add-on Emacs package that offers a fixed, per-frame,
graphical
window for hierarchically browsing and operating upon directories, files and
programming tags within files. Use the Emacs package manager to install it and
@@ -9854,13 +9650,11 @@ See <a
href="#Displaying-File-and-Buffer-Items">Displaying File and Buffer Items
<hr>
-<a name="Smart-Key-_002d-Emacs-Pushbuttons"></a>
-<div class="header">
+<span id="Smart-Key-_002d-Emacs-Pushbuttons"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-Argument-Completion" accesskey="n"
rel="next">Smart Key - Argument Completion</a>, Previous: <a
href="#Smart-Key-_002d-Treemacs" accesskey="p" rel="prev">Smart Key -
Treemacs</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart
Keyboard Keys</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Emacs-Pushbuttons-1"></a>
-<h4 class="subsection">E.2.3 Smart Key - Emacs Pushbuttons</h4>
+<span id="Smart-Key-_002d-Emacs-Pushbuttons-1"></span><h4
class="subsection">E.2.3 Smart Key - Emacs Pushbuttons</h4>
<div class="format">
<pre class="format">When over an Emacs pushbutton:
@@ -9871,15 +9665,13 @@ Next: <a href="#Smart-Key-_002d-Argument-Completion"
accesskey="n" rel="next">Sm
</pre></div>
<hr>
-<a name="Smart-Key-_002d-Argument-Completion"></a>
-<div class="header">
+<span id="Smart-Key-_002d-Argument-Completion"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-ID-Edit-Mode" accesskey="n" rel="next">Smart
Key - ID Edit Mode</a>, Previous: <a href="#Smart-Key-_002d-Emacs-Pushbuttons"
accesskey="p" rel="prev">Smart Key - Emacs Pushbuttons</a>, Up: <a
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Argument-Completion-1"></a>
-<h4 class="subsection">E.2.4 Smart Key - Argument Completion</h4>
+<span id="Smart-Key-_002d-Argument-Completion-1"></span><h4
class="subsection">E.2.4 Smart Key - Argument Completion</h4>
-<a name="index-Smart-Keyboard-Keys"></a>
+<span id="index-Smart-Keyboard-Keys"></span>
<div class="format">
<pre class="format">When prompting for a Hyperbole argument, a press in the
minibuffer:
ACTION KEY
@@ -9888,7 +9680,7 @@ Next: <a href="#Smart-Key-_002d-ID-Edit-Mode"
accesskey="n" rel="next">Smart Key
Offers completions for the current minibuffer argument.
</pre></div>
-<a name="index-completion-3"></a>
+<span id="index-completion-3"></span>
<div class="format">
<pre class="format">When reading a Hyperbole menu item or an argument with
completion:
ACTION KEY
@@ -9902,13 +9694,11 @@ Next: <a href="#Smart-Key-_002d-ID-Edit-Mode"
accesskey="n" rel="next">Smart Key
</pre></div>
<hr>
-<a name="Smart-Key-_002d-ID-Edit-Mode"></a>
-<div class="header">
+<span id="Smart-Key-_002d-ID-Edit-Mode"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029"
accesskey="n" rel="next">Smart Key - Emacs Cross-references (Xrefs)</a>,
Previous: <a href="#Smart-Key-_002d-Argument-Completion" accesskey="p"
rel="prev">Smart Key - Argument Completion</a>, Up: <a
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-ID-Edit-Mode-1"></a>
-<h4 class="subsection">E.2.5 Smart Key - ID Edit Mode</h4>
+<span id="Smart-Key-_002d-ID-Edit-Mode-1"></span><h4 class="subsection">E.2.5
Smart Key - ID Edit Mode</h4>
<div class="format">
<pre class="format">If in ID Edit mode (a package within InfoDock, not
included in
Hyperbole, that supports rapid marking, killing, copying, yanking and
@@ -9918,13 +9708,11 @@ display-management):
</pre></div>
<hr>
-<a name="Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029"></a>
-<div class="header">
+<span
id="Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029"></span><div
class="header">
<p>
Next: <a href="#Smart-Key-_002d-Smart-Scrolling" accesskey="n"
rel="next">Smart Key - Smart Scrolling</a>, Previous: <a
href="#Smart-Key-_002d-ID-Edit-Mode" accesskey="p" rel="prev">Smart Key - ID
Edit Mode</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart
Keyboard Keys</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029-1"></a>
-<h4 class="subsection">E.2.6 Smart Key - Emacs Cross-references (Xrefs)</h4>
+<span
id="Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029-1"></span><h4
class="subsection">E.2.6 Smart Key - Emacs Cross-references (Xrefs)</h4>
<div class="format">
<pre class="format">When over an Emacs cross-reference:
@@ -9936,21 +9724,19 @@ Next: <a href="#Smart-Key-_002d-Smart-Scrolling"
accesskey="n" rel="next">Smart
</pre></div>
<hr>
-<a name="Smart-Key-_002d-Smart-Scrolling"></a>
-<div class="header">
+<span id="Smart-Key-_002d-Smart-Scrolling"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-Smart-Menus" accesskey="n" rel="next">Smart
Key - Smart Menus</a>, Previous: <a
href="#Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029"
accesskey="p" rel="prev">Smart Key - Emacs Cross-references (Xrefs)</a>, Up: <a
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Smart-Scrolling-1"></a>
-<h4 class="subsection">E.2.7 Smart Key - Smart Scrolling</h4>
+<span id="Smart-Key-_002d-Smart-Scrolling-1"></span><h4
class="subsection">E.2.7 Smart Key - Smart Scrolling</h4>
-<a name="index-smart_002dscroll_002dproportional"></a>
-<a name="index-proportional-scrolling-1"></a>
-<a name="index-scrolling-1"></a>
-<a name="index-click_002c-end-of-line"></a>
-<a name="index-end-of-line-click"></a>
-<a name="index-action_002dkey_002deol_002dfunction"></a>
-<a name="index-assist_002dkey_002deol_002dfunction"></a>
+<span id="index-smart_002dscroll_002dproportional"></span>
+<span id="index-proportional-scrolling-1"></span>
+<span id="index-scrolling-1"></span>
+<span id="index-click_002c-end-of-line"></span>
+<span id="index-end-of-line-click"></span>
+<span id="index-action_002dkey_002deol_002dfunction"></span>
+<span id="index-assist_002dkey_002deol_002dfunction"></span>
<div class="format">
<pre class="format">When pressed at the end of a line but not the end of a
buffer:
ACTION KEY
@@ -9974,13 +9760,11 @@ Next: <a href="#Smart-Key-_002d-Smart-Menus"
accesskey="n" rel="next">Smart Key
</pre></div>
<hr>
-<a name="Smart-Key-_002d-Smart-Menus"></a>
-<div class="header">
+<span id="Smart-Key-_002d-Smart-Menus"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-Dired-Mode" accesskey="n" rel="next">Smart Key
- Dired Mode</a>, Previous: <a href="#Smart-Key-_002d-Smart-Scrolling"
accesskey="p" rel="prev">Smart Key - Smart Scrolling</a>, Up: <a
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Smart-Menus-1"></a>
-<h4 class="subsection">E.2.8 Smart Key - Smart Menus</h4>
+<span id="Smart-Key-_002d-Smart-Menus-1"></span><h4 class="subsection">E.2.8
Smart Key - Smart Menus</h4>
<p>Smart Menus are an older in-buffer menu system that worked on dumb
terminals and pre-dated Emacs’ own dumb terminal menu support. They
@@ -9997,8 +9781,8 @@ necesary for its use.
Displays help for the item.
</pre></div>
-<a name="index-hkey_002dalways_002ddisplay_002dmenu"></a>
-<a name="index-Smart-Menu"></a>
+<span id="index-hkey_002dalways_002ddisplay_002dmenu"></span>
+<span id="index-Smart-Menu"></span>
<div class="format">
<pre class="format">If the Smart Menu package (part of InfoDock) has been
loaded and
‘hkey-always-display-menu’ is non-nil:
@@ -10008,17 +9792,15 @@ necesary for its use.
</pre></div>
<hr>
-<a name="Smart-Key-_002d-Dired-Mode"></a>
-<div class="header">
+<span id="Smart-Key-_002d-Dired-Mode"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-Hyperbole-Buttons" accesskey="n"
rel="next">Smart Key - Hyperbole Buttons</a>, Previous: <a
href="#Smart-Key-_002d-Smart-Menus" accesskey="p" rel="prev">Smart Key - Smart
Menus</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart
Keyboard Keys</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Dired-Mode-1"></a>
-<h4 class="subsection">E.2.9 Smart Key - Dired Mode</h4>
-<a name="index-click_002c-dired"></a>
-<a name="index-drag_002c-dired"></a>
-<a name="index-dired-browsing"></a>
-<a name="index-DisplayHere-mode"></a>
+<span id="Smart-Key-_002d-Dired-Mode-1"></span><h4 class="subsection">E.2.9
Smart Key - Dired Mode</h4>
+<span id="index-click_002c-dired"></span>
+<span id="index-drag_002c-dired"></span>
+<span id="index-dired-browsing"></span>
+<span id="index-DisplayHere-mode"></span>
<div class="format">
<pre class="format">If pressed within a dired-mode (directory editor) buffer:
ACTION KEY
@@ -10049,16 +9831,14 @@ Next: <a href="#Smart-Key-_002d-Hyperbole-Buttons"
accesskey="n" rel="next">Smar
</pre></div>
<hr>
-<a name="Smart-Key-_002d-Hyperbole-Buttons"></a>
-<div class="header">
+<span id="Smart-Key-_002d-Hyperbole-Buttons"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-View-Mode" accesskey="n" rel="next">Smart Key
- View Mode</a>, Previous: <a href="#Smart-Key-_002d-Dired-Mode" accesskey="p"
rel="prev">Smart Key - Dired Mode</a>, Up: <a href="#Smart-Keyboard-Keys"
accesskey="u" rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents"
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index"
title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Hyperbole-Buttons-1"></a>
-<h4 class="subsection">E.2.10 Smart Key - Hyperbole Buttons</h4>
+<span id="Smart-Key-_002d-Hyperbole-Buttons-1"></span><h4
class="subsection">E.2.10 Smart Key - Hyperbole Buttons</h4>
-<a name="index-click_002c-button"></a>
-<a name="index-button-click"></a>
+<span id="index-click_002c-button"></span>
+<span id="index-button-click"></span>
<div class="format">
<pre class="format">When pressed on a Hyperbole button:
ACTION KEY
@@ -10069,15 +9849,13 @@ Next: <a href="#Smart-Key-_002d-View-Mode"
accesskey="n" rel="next">Smart Key -
</pre></div>
<hr>
-<a name="Smart-Key-_002d-View-Mode"></a>
-<div class="header">
+<span id="Smart-Key-_002d-View-Mode"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-Delimited-Things" accesskey="n"
rel="next">Smart Key - Delimited Things</a>, Previous: <a
href="#Smart-Key-_002d-Hyperbole-Buttons" accesskey="p" rel="prev">Smart Key -
Hyperbole Buttons</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-View-Mode-1"></a>
-<h4 class="subsection">E.2.11 Smart Key - View Mode</h4>
+<span id="Smart-Key-_002d-View-Mode-1"></span><h4 class="subsection">E.2.11
Smart Key - View Mode</h4>
-<a name="index-view-mode"></a>
+<span id="index-view-mode"></span>
<div class="format">
<pre class="format">If pressed within a buffer in View major or minor mode:
ACTION KEY
@@ -10088,23 +9866,21 @@ Next: <a href="#Smart-Key-_002d-Delimited-Things"
accesskey="n" rel="next">Smart
</pre></div>
<hr>
-<a name="Smart-Key-_002d-Delimited-Things"></a>
-<div class="header">
+<span id="Smart-Key-_002d-Delimited-Things"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-The-Koutliner" accesskey="n" rel="next">Smart
Key - The Koutliner</a>, Previous: <a href="#Smart-Key-_002d-View-Mode"
accesskey="p" rel="prev">Smart Key - View Mode</a>, Up: <a
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Delimited-Things-1"></a>
-<h4 class="subsection">E.2.12 Smart Key - Delimited Things</h4>
-
-<a name="index-thing-1"></a>
-<a name="index-list-1"></a>
-<a name="index-comment-1"></a>
-<a name="index-string-1"></a>
-<a name="index-array-1"></a>
-<a name="index-vector-1"></a>
-<a name="index-set-1"></a>
-<a name="index-function-1"></a>
-<a name="index-markup-pair-1"></a>
+<span id="Smart-Key-_002d-Delimited-Things-1"></span><h4
class="subsection">E.2.12 Smart Key - Delimited Things</h4>
+
+<span id="index-thing-1"></span>
+<span id="index-list-1"></span>
+<span id="index-comment-1"></span>
+<span id="index-string-1"></span>
+<span id="index-array-1"></span>
+<span id="index-vector-1"></span>
+<span id="index-set-1"></span>
+<span id="index-function-1"></span>
+<span id="index-markup-pair-1"></span>
<div class="format">
<pre class="format">In a programming or markup language buffer, when
pressed/clicked at
the start or end of a delimited thing (including lists, comments,
@@ -10117,7 +9893,7 @@ markup language), and not at the end of a line:
Note that the press must be on the first character of the delimiter of
the thing.
-<a name="index-Smart-Mouse-Key-1"></a><a
name="index-Action-Mouse-Key-1"></a><a name="index-Assist-Mouse-Key-1"></a><a
name="index-drag-2"></a><a name="index-copy-and-yank-2"></a><a
name="index-kill-and-yank-2"></a><a name="index-yanking-2"></a><a
name="index-pasting-a-region-2"></a>There are also drag actions that work on
delimited things. If no
+<span id="index-Smart-Mouse-Key-1"></span><span
id="index-Action-Mouse-Key-1"></span><span
id="index-Assist-Mouse-Key-1"></span><span id="index-drag-2"></span><span
id="index-copy-and-yank-2"></span><span id="index-kill-and-yank-2"></span><span
id="index-yanking-2"></span><span id="index-pasting-a-region-2"></span>There
are also drag actions that work on delimited things. If no
region is selected, when the Action Mouse Key is dragged from a thing
delimiter to another location, it copies the thing and yanks it at the
new location. Similarly, the Assist Mouse Key kills the thing at its
@@ -10126,13 +9902,11 @@ original location and yanks it at the new location.
<hr>
-<a name="Smart-Key-_002d-The-Koutliner"></a>
-<div class="header">
+<span id="Smart-Key-_002d-The-Koutliner"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-RDB-Mode" accesskey="n" rel="next">Smart Key -
RDB Mode</a>, Previous: <a href="#Smart-Key-_002d-Delimited-Things"
accesskey="p" rel="prev">Smart Key - Delimited Things</a>, Up: <a
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-The-Koutliner-1"></a>
-<h4 class="subsection">E.2.13 Smart Key - The Koutliner</h4>
+<span id="Smart-Key-_002d-The-Koutliner-1"></span><h4
class="subsection">E.2.13 Smart Key - The Koutliner</h4>
<div class="format">
<pre class="format">When pressed within a Hyperbole Koutliner buffer
(kotl-mode):
ACTION KEY
@@ -10161,15 +9935,13 @@ Next: <a href="#Smart-Key-_002d-RDB-Mode"
accesskey="n" rel="next">Smart Key - R
</pre></div>
<hr>
-<a name="Smart-Key-_002d-RDB-Mode"></a>
-<div class="header">
+<span id="Smart-Key-_002d-RDB-Mode"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-Help-Buffers" accesskey="n" rel="next">Smart
Key - Help Buffers</a>, Previous: <a href="#Smart-Key-_002d-The-Koutliner"
accesskey="p" rel="prev">Smart Key - The Koutliner</a>, Up: <a
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-RDB-Mode-1"></a>
-<h4 class="subsection">E.2.14 Smart Key - RDB Mode</h4>
-<a name="index-rdb_002dmode"></a>
-<a name="index-database"></a>
+<span id="Smart-Key-_002d-RDB-Mode-1"></span><h4 class="subsection">E.2.14
Smart Key - RDB Mode</h4>
+<span id="index-rdb_002dmode"></span>
+<span id="index-database"></span>
<div class="format">
<pre class="format">If pressed within an rdb-mode buffer which manipulates
in-memory,
relational databases (part of InfoDock):
@@ -10194,14 +9966,12 @@ relational databases (part of InfoDock):
</pre></div>
<hr>
-<a name="Smart-Key-_002d-Help-Buffers"></a>
-<div class="header">
+<span id="Smart-Key-_002d-Help-Buffers"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-Pages-Directory-Mode" accesskey="n"
rel="next">Smart Key - Pages Directory Mode</a>, Previous: <a
href="#Smart-Key-_002d-RDB-Mode" accesskey="p" rel="prev">Smart Key - RDB
Mode</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart
Keyboard Keys</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Help-Buffers-1"></a>
-<h4 class="subsection">E.2.15 Smart Key - Help Buffers</h4>
-<a name="index-help-buffer"></a>
+<span id="Smart-Key-_002d-Help-Buffers-1"></span><h4 class="subsection">E.2.15
Smart Key - Help Buffers</h4>
+<span id="index-help-buffer"></span>
<div class="format">
<pre class="format">
@@ -10211,13 +9981,11 @@ When pressed at the end of a Help buffer:
</pre></div>
<hr>
-<a name="Smart-Key-_002d-Pages-Directory-Mode"></a>
-<div class="header">
+<span id="Smart-Key-_002d-Pages-Directory-Mode"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-Python-Source-Code" accesskey="n"
rel="next">Smart Key - Python Source Code</a>, Previous: <a
href="#Smart-Key-_002d-Help-Buffers" accesskey="p" rel="prev">Smart Key - Help
Buffers</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart
Keyboard Keys</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Pages-Directory-Mode-1"></a>
-<h4 class="subsection">E.2.16 Smart Key - Pages Directory Mode</h4>
+<span id="Smart-Key-_002d-Pages-Directory-Mode-1"></span><h4
class="subsection">E.2.16 Smart Key - Pages Directory Mode</h4>
<div class="format">
<pre class="format">Pages-directory-mode is used in special buffers that
contain title lines extracted from files consisting of titled, page-delimited
contents, e.g. Info files.
@@ -10230,13 +9998,11 @@ When pressed on a pages-directory-mode entry line:
</pre></div>
<hr>
-<a name="Smart-Key-_002d-Python-Source-Code"></a>
-<div class="header">
+<span id="Smart-Key-_002d-Python-Source-Code"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-Identifier-Menu-Mode" accesskey="n"
rel="next">Smart Key - Identifier Menu Mode</a>, Previous: <a
href="#Smart-Key-_002d-Pages-Directory-Mode" accesskey="p" rel="prev">Smart Key
- Pages Directory Mode</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Python-Source-Code-1"></a>
-<h4 class="subsection">E.2.17 Smart Key - Python Source Code</h4>
+<span id="Smart-Key-_002d-Python-Source-Code-1"></span><h4
class="subsection">E.2.17 Smart Key - Python Source Code</h4>
<div class="format">
<pre class="format">When the Jedi identifier server or the OO-Browser has been
loaded and the press is
within a Python buffer:
@@ -10261,13 +10027,11 @@ within a Python buffer:
</pre></div>
<hr>
-<a name="Smart-Key-_002d-Identifier-Menu-Mode"></a>
-<div class="header">
+<span id="Smart-Key-_002d-Identifier-Menu-Mode"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-C-Source-Code" accesskey="n" rel="next">Smart
Key - C Source Code</a>, Previous: <a
href="#Smart-Key-_002d-Python-Source-Code" accesskey="p" rel="prev">Smart Key -
Python Source Code</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Identifier-Menu-Mode-1"></a>
-<h4 class="subsection">E.2.18 Smart Key - Identifier Menu Mode</h4>
+<span id="Smart-Key-_002d-Identifier-Menu-Mode-1"></span><h4
class="subsection">E.2.18 Smart Key - Identifier Menu Mode</h4>
<div class="format">
<pre class="format">This works only for identifiers defined within the same
source file in
@@ -10285,17 +10049,15 @@ When pressed on an identifier name after an
identifier index has been generated:
</pre></div>
<hr>
-<a name="Smart-Key-_002d-C-Source-Code"></a>
-<div class="header">
+<span id="Smart-Key-_002d-C-Source-Code"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-C_002b_002b-Source-Code" accesskey="n"
rel="next">Smart Key - C++ Source Code</a>, Previous: <a
href="#Smart-Key-_002d-Identifier-Menu-Mode" accesskey="p" rel="prev">Smart Key
- Identifier Menu Mode</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-C-Source-Code-1"></a>
-<h4 class="subsection">E.2.19 Smart Key - C Source Code</h4>
+<span id="Smart-Key-_002d-C-Source-Code-1"></span><h4
class="subsection">E.2.19 Smart Key - C Source Code</h4>
-<a name="index-smart_002dc_002dcpp_002dinclude_002dpath"></a>
-<a name="index-smart_002dc_002dinclude_002dpath"></a>
-<a name="index-smart_002dc_002duse_002dlib_002dman"></a>
+<span id="index-smart_002dc_002dcpp_002dinclude_002dpath"></span>
+<span id="index-smart_002dc_002dinclude_002dpath"></span>
+<span id="index-smart_002dc_002duse_002dlib_002dman"></span>
<div class="format">
<pre class="format">When pressed within a C source code file:
ACTION KEY
@@ -10317,16 +10079,14 @@ Next: <a
href="#Smart-Key-_002d-C_002b_002b-Source-Code" accesskey="n" rel="next
</pre></div>
<hr>
-<a name="Smart-Key-_002d-C_002b_002b-Source-Code"></a>
-<div class="header">
+<span id="Smart-Key-_002d-C_002b_002b-Source-Code"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-Assembly-Source-Code" accesskey="n"
rel="next">Smart Key - Assembly Source Code</a>, Previous: <a
href="#Smart-Key-_002d-C-Source-Code" accesskey="p" rel="prev">Smart Key - C
Source Code</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-C_002b_002b-Source-Code-1"></a>
-<h4 class="subsection">E.2.20 Smart Key - C++ Source Code</h4>
+<span id="Smart-Key-_002d-C_002b_002b-Source-Code-1"></span><h4
class="subsection">E.2.20 Smart Key - C++ Source Code</h4>
-<a name="index-c_002b_002b_002dcpp_002dinclude_002dpath"></a>
-<a name="index-c_002b_002b_002dinclude_002dpath"></a>
+<span id="index-c_002b_002b_002dcpp_002dinclude_002dpath"></span>
+<span id="index-c_002b_002b_002dinclude_002dpath"></span>
<div class="format">
<pre class="format">When the OO-Browser has been loaded and the press is
within a C++
buffer:
@@ -10370,15 +10130,13 @@ buffer:
</pre></div>
<hr>
-<a name="Smart-Key-_002d-Assembly-Source-Code"></a>
-<div class="header">
+<span id="Smart-Key-_002d-Assembly-Source-Code"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-Lisp-Source-Code" accesskey="n"
rel="next">Smart Key - Lisp Source Code</a>, Previous: <a
href="#Smart-Key-_002d-C_002b_002b-Source-Code" accesskey="p" rel="prev">Smart
Key - C++ Source Code</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Assembly-Source-Code-1"></a>
-<h4 class="subsection">E.2.21 Smart Key - Assembly Source Code</h4>
+<span id="Smart-Key-_002d-Assembly-Source-Code-1"></span><h4
class="subsection">E.2.21 Smart Key - Assembly Source Code</h4>
-<a name="index-smart_002dasm_002dinclude_002dpath"></a>
+<span id="index-smart_002dasm_002dinclude_002dpath"></span>
<div class="format">
<pre class="format">When pressed within an assembly source code file:
ACTION KEY
@@ -10395,16 +10153,14 @@ Next: <a href="#Smart-Key-_002d-Lisp-Source-Code"
accesskey="n" rel="next">Smart
</pre></div>
<hr>
-<a name="Smart-Key-_002d-Lisp-Source-Code"></a>
-<div class="header">
+<span id="Smart-Key-_002d-Lisp-Source-Code"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-Java-Source-Code" accesskey="n"
rel="next">Smart Key - Java Source Code</a>, Previous: <a
href="#Smart-Key-_002d-Assembly-Source-Code" accesskey="p" rel="prev">Smart Key
- Assembly Source Code</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Lisp-Source-Code-1"></a>
-<h4 class="subsection">E.2.22 Smart Key - Lisp Source Code</h4>
+<span id="Smart-Key-_002d-Lisp-Source-Code-1"></span><h4
class="subsection">E.2.22 Smart Key - Lisp Source Code</h4>
<div class="format">
-<pre class="format"><a name="index-change_002dlog_002dmode"></a><a
name="index-lisp-identifier"></a><a name="index-elisp-identifier"></a>When
pressed on a Lisp symbol within any of these types of buffers
+<pre class="format"><span id="index-change_002dlog_002dmode"></span><span
id="index-lisp-identifier"></span><span id="index-elisp-identifier"></span>When
pressed on a Lisp symbol within any of these types of buffers
(Lisp code, debugger, compilation, or help) or in change-log-mode
on an Emacs Lisp bound identifier:
ACTION KEY
@@ -10418,15 +10174,13 @@ on an Emacs Lisp bound identifier:
</pre></div>
<hr>
-<a name="Smart-Key-_002d-Java-Source-Code"></a>
-<div class="header">
+<span id="Smart-Key-_002d-Java-Source-Code"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-JavaScript-Source-Code" accesskey="n"
rel="next">Smart Key - JavaScript Source Code</a>, Previous: <a
href="#Smart-Key-_002d-Lisp-Source-Code" accesskey="p" rel="prev">Smart Key -
Lisp Source Code</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Java-Source-Code-1"></a>
-<h4 class="subsection">E.2.23 Smart Key - Java Source Code</h4>
+<span id="Smart-Key-_002d-Java-Source-Code-1"></span><h4
class="subsection">E.2.23 Smart Key - Java Source Code</h4>
-<a name="index-smart_002djava_002dpackage_002dpath"></a>
+<span id="index-smart_002djava_002dpackage_002dpath"></span>
<div class="format">
<pre class="format">When the OO-Browser has been loaded and the press is
within a Java
buffer:
@@ -10461,13 +10215,11 @@ buffer:
</pre></div>
<hr>
-<a name="Smart-Key-_002d-JavaScript-Source-Code"></a>
-<div class="header">
+<span id="Smart-Key-_002d-JavaScript-Source-Code"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-Objective_002dC-Source-Code" accesskey="n"
rel="next">Smart Key - Objective-C Source Code</a>, Previous: <a
href="#Smart-Key-_002d-Java-Source-Code" accesskey="p" rel="prev">Smart Key -
Java Source Code</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-JavaScript-Source-Code-1"></a>
-<h4 class="subsection">E.2.24 Smart Key - JavaScript Source Code</h4>
+<span id="Smart-Key-_002d-JavaScript-Source-Code-1"></span><h4
class="subsection">E.2.24 Smart Key - JavaScript Source Code</h4>
<div class="format">
<pre class="format">When pressed within a JavaScript source code file:
@@ -10482,16 +10234,14 @@ Next: <a
href="#Smart-Key-_002d-Objective_002dC-Source-Code" accesskey="n" rel="
<hr>
-<a name="Smart-Key-_002d-Objective_002dC-Source-Code"></a>
-<div class="header">
+<span id="Smart-Key-_002d-Objective_002dC-Source-Code"></span><div
class="header">
<p>
Next: <a href="#Smart-Key-_002d-Fortran-Source-Code" accesskey="n"
rel="next">Smart Key - Fortran Source Code</a>, Previous: <a
href="#Smart-Key-_002d-JavaScript-Source-Code" accesskey="p" rel="prev">Smart
Key - JavaScript Source Code</a>, Up: <a href="#Smart-Keyboard-Keys"
accesskey="u" rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents"
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index"
title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Objective_002dC-Source-Code-1"></a>
-<h4 class="subsection">E.2.25 Smart Key - Objective-C Source Code</h4>
+<span id="Smart-Key-_002d-Objective_002dC-Source-Code-1"></span><h4
class="subsection">E.2.25 Smart Key - Objective-C Source Code</h4>
-<a name="index-objc_002dcpp_002dinclude_002dpath"></a>
-<a name="index-objc_002dinclude_002dpath"></a>
+<span id="index-objc_002dcpp_002dinclude_002dpath"></span>
+<span id="index-objc_002dinclude_002dpath"></span>
<div class="format">
<pre class="format">When the OO-Browser has been loaded and the press is
within a
Objective-C buffer:
@@ -10533,13 +10283,11 @@ OO-Browser):
</pre></div>
<hr>
-<a name="Smart-Key-_002d-Fortran-Source-Code"></a>
-<div class="header">
+<span id="Smart-Key-_002d-Fortran-Source-Code"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-Occurrence-Matches" accesskey="n"
rel="next">Smart Key - Occurrence Matches</a>, Previous: <a
href="#Smart-Key-_002d-Objective_002dC-Source-Code" accesskey="p"
rel="prev">Smart Key - Objective-C Source Code</a>, Up: <a
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Fortran-Source-Code-1"></a>
-<h4 class="subsection">E.2.26 Smart Key - Fortran Source Code</h4>
+<span id="Smart-Key-_002d-Fortran-Source-Code-1"></span><h4
class="subsection">E.2.26 Smart Key - Fortran Source Code</h4>
<div class="format">
<pre class="format">When pressed within a Fortran source code file:
@@ -10551,13 +10299,11 @@ Next: <a href="#Smart-Key-_002d-Occurrence-Matches"
accesskey="n" rel="next">Sma
</pre></div>
<hr>
-<a name="Smart-Key-_002d-Occurrence-Matches"></a>
-<div class="header">
+<span id="Smart-Key-_002d-Occurrence-Matches"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-Calendar-Mode" accesskey="n" rel="next">Smart
Key - Calendar Mode</a>, Previous: <a
href="#Smart-Key-_002d-Fortran-Source-Code" accesskey="p" rel="prev">Smart Key
- Fortran Source Code</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Occurrence-Matches-1"></a>
-<h4 class="subsection">E.2.27 Smart Key - Occurrence Matches</h4>
+<span id="Smart-Key-_002d-Occurrence-Matches-1"></span><h4
class="subsection">E.2.27 Smart Key - Occurrence Matches</h4>
<div class="format">
<pre class="format">When pressed within an occur-mode, moccur-mode or
amoccur-mode buffer:
@@ -10566,13 +10312,11 @@ Next: <a href="#Smart-Key-_002d-Calendar-Mode"
accesskey="n" rel="next">Smart Ke
</pre></div>
<hr>
-<a name="Smart-Key-_002d-Calendar-Mode"></a>
-<div class="header">
+<span id="Smart-Key-_002d-Calendar-Mode"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-Man-Page-Apropos" accesskey="n"
rel="next">Smart Key - Man Page Apropos</a>, Previous: <a
href="#Smart-Key-_002d-Occurrence-Matches" accesskey="p" rel="prev">Smart Key -
Occurrence Matches</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Calendar-Mode-1"></a>
-<h4 class="subsection">E.2.28 Smart Key - Calendar Mode</h4>
+<span id="Smart-Key-_002d-Calendar-Mode-1"></span><h4
class="subsection">E.2.28 Smart Key - Calendar Mode</h4>
<div class="format">
<pre class="format">When pressed within a calendar-mode buffer:
@@ -10593,13 +10337,11 @@ Next: <a href="#Smart-Key-_002d-Man-Page-Apropos"
accesskey="n" rel="next">Smart
</pre></div>
<hr>
-<a name="Smart-Key-_002d-Man-Page-Apropos"></a>
-<div class="header">
+<span id="Smart-Key-_002d-Man-Page-Apropos"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-Emacs-Outline-Mode" accesskey="n"
rel="next">Smart Key - Emacs Outline Mode</a>, Previous: <a
href="#Smart-Key-_002d-Calendar-Mode" accesskey="p" rel="prev">Smart Key -
Calendar Mode</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Man-Page-Apropos-1"></a>
-<h4 class="subsection">E.2.29 Smart Key - Man Page Apropos</h4>
+<span id="Smart-Key-_002d-Man-Page-Apropos-1"></span><h4
class="subsection">E.2.29 Smart Key - Man Page Apropos</h4>
<div class="format">
<pre class="format">When pressed within a man page apropos buffer or listing:
ACTION KEY
@@ -10615,14 +10357,12 @@ Next: <a href="#Smart-Key-_002d-Emacs-Outline-Mode"
accesskey="n" rel="next">Sma
</pre></div>
<hr>
-<a name="Smart-Key-_002d-Emacs-Outline-Mode"></a>
-<div class="header">
+<span id="Smart-Key-_002d-Emacs-Outline-Mode"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-Info-Manuals" accesskey="n" rel="next">Smart
Key - Info Manuals</a>, Previous: <a href="#Smart-Key-_002d-Man-Page-Apropos"
accesskey="p" rel="prev">Smart Key - Man Page Apropos</a>, Up: <a
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Emacs-Outline-Mode-1"></a>
-<h4 class="subsection">E.2.30 Smart Key - Emacs Outline Mode</h4>
-<a name="index-selective_002ddisplay"></a>
+<span id="Smart-Key-_002d-Emacs-Outline-Mode-1"></span><h4
class="subsection">E.2.30 Smart Key - Emacs Outline Mode</h4>
+<span id="index-selective_002ddisplay"></span>
<div class="format">
<pre class="format">If pressed within an outline-mode buffer or when no other
context is matched
and outline-minor-mode is enabled:
@@ -10652,16 +10392,14 @@ and outline-minor-mode is enabled:
</pre></div>
<hr>
-<a name="Smart-Key-_002d-Info-Manuals"></a>
-<div class="header">
+<span id="Smart-Key-_002d-Info-Manuals"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-Email-Composers" accesskey="n"
rel="next">Smart Key - Email Composers</a>, Previous: <a
href="#Smart-Key-_002d-Emacs-Outline-Mode" accesskey="p" rel="prev">Smart Key -
Emacs Outline Mode</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Info-Manuals-1"></a>
-<h4 class="subsection">E.2.31 Smart Key - Info Manuals</h4>
+<span id="Smart-Key-_002d-Info-Manuals-1"></span><h4 class="subsection">E.2.31
Smart Key - Info Manuals</h4>
<div class="format">
-<pre class="format"><a name="index-click_002c-Info"></a><a
name="index-Info-browsing"></a><a name="index-Info_002dglobal_002dnext"></a><a
name="index-Info_002dglobal_002dprev"></a>If pressed within an Info manual node:
+<pre class="format"><span id="index-click_002c-Info"></span><span
id="index-Info-browsing"></span><span
id="index-Info_002dglobal_002dnext"></span><span
id="index-Info_002dglobal_002dprev"></span>If pressed within an Info manual
node:
ACTION KEY
(1) on the first line of an Info Menu Entry or Cross Reference, the
referenced node is displayed;
@@ -10693,15 +10431,13 @@ Use <kbd>{s}</kbd> within an Info manual to search
for any concept that interest
</pre></div>
<hr>
-<a name="Smart-Key-_002d-Email-Composers"></a>
-<div class="header">
+<span id="Smart-Key-_002d-Email-Composers"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-GNUS-Newsreader" accesskey="n"
rel="next">Smart Key - GNUS Newsreader</a>, Previous: <a
href="#Smart-Key-_002d-Info-Manuals" accesskey="p" rel="prev">Smart Key - Info
Manuals</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart
Keyboard Keys</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Email-Composers-1"></a>
-<h4 class="subsection">E.2.32 Smart Key - Email Composers</h4>
-<a name="index-hmail_003areader"></a>
-<a name="index-hmail_003alister"></a>
+<span id="Smart-Key-_002d-Email-Composers-1"></span><h4
class="subsection">E.2.32 Smart Key - Email Composers</h4>
+<span id="index-hmail_003areader"></span>
+<span id="index-hmail_003alister"></span>
<div class="format">
<pre class="format">If pressed within a Hyperbole-supported mail reader
(defined by
‘hmail:reader’) or a mail summary (defined by
‘hmail:lister’) buffer:
@@ -10732,15 +10468,13 @@ Next: <a href="#Smart-Key-_002d-GNUS-Newsreader"
accesskey="n" rel="next">Smart
</pre></div>
<hr>
-<a name="Smart-Key-_002d-GNUS-Newsreader"></a>
-<div class="header">
+<span id="Smart-Key-_002d-GNUS-Newsreader"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-Buffer-Menus" accesskey="n" rel="next">Smart
Key - Buffer Menus</a>, Previous: <a href="#Smart-Key-_002d-Email-Composers"
accesskey="p" rel="prev">Smart Key - Email Composers</a>, Up: <a
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-GNUS-Newsreader-1"></a>
-<h4 class="subsection">E.2.33 Smart Key - GNUS Newsreader</h4>
-<a name="index-click_002c-Gnus"></a>
-<a name="index-Gnus-browsing"></a>
+<span id="Smart-Key-_002d-GNUS-Newsreader-1"></span><h4
class="subsection">E.2.33 Smart Key - GNUS Newsreader</h4>
+<span id="index-click_002c-Gnus"></span>
+<span id="index-Gnus-browsing"></span>
<div class="format">
<pre class="format">If pressed within the Gnus newsgroups listing buffer:
ACTION KEY
@@ -10799,15 +10533,13 @@ Next: <a href="#Smart-Key-_002d-Buffer-Menus"
accesskey="n" rel="next">Smart Key
</pre></div>
<hr>
-<a name="Smart-Key-_002d-Buffer-Menus"></a>
-<div class="header">
+<span id="Smart-Key-_002d-Buffer-Menus"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-Tar-File-Mode" accesskey="n" rel="next">Smart
Key - Tar File Mode</a>, Previous: <a href="#Smart-Key-_002d-GNUS-Newsreader"
accesskey="p" rel="prev">Smart Key - GNUS Newsreader</a>, Up: <a
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Buffer-Menus-1"></a>
-<h4 class="subsection">E.2.34 Smart Key - Buffer Menus</h4>
-<a name="index-click_002c-buffer-menu"></a>
-<a name="index-buffer-menu-2"></a>
+<span id="Smart-Key-_002d-Buffer-Menus-1"></span><h4 class="subsection">E.2.34
Smart Key - Buffer Menus</h4>
+<span id="index-click_002c-buffer-menu"></span>
+<span id="index-buffer-menu-2"></span>
<div class="format">
<pre class="format">If pressed within a listing of buffers (Buffer-menu-mode):
ACTION KEY
@@ -10832,8 +10564,8 @@ Next: <a href="#Smart-Key-_002d-Tar-File-Mode"
accesskey="n" rel="next">Smart Ke
delete marks on all entries are undone.
</pre></div>
-<a name="index-click_002c-ibuffer-menu"></a>
-<a name="index-ibuffer-menu-1"></a>
+<span id="index-click_002c-ibuffer-menu"></span>
+<span id="index-ibuffer-menu-1"></span>
<div class="format">
<pre class="format">If pressed within an interactive buffer menu
(ibuffer-mode):
ACTION KEY
@@ -10856,16 +10588,14 @@ Next: <a href="#Smart-Key-_002d-Tar-File-Mode"
accesskey="n" rel="next">Smart Ke
</pre></div>
<hr>
-<a name="Smart-Key-_002d-Tar-File-Mode"></a>
-<div class="header">
+<span id="Smart-Key-_002d-Tar-File-Mode"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-Man-Pages" accesskey="n" rel="next">Smart Key
- Man Pages</a>, Previous: <a href="#Smart-Key-_002d-Buffer-Menus"
accesskey="p" rel="prev">Smart Key - Buffer Menus</a>, Up: <a
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Tar-File-Mode-1"></a>
-<h4 class="subsection">E.2.35 Smart Key - Tar File Mode</h4>
-<a name="index-click_002c-tar"></a>
-<a name="index-tar-archive-browsing"></a>
-<a name="index-extracting-from-tar-files"></a>
+<span id="Smart-Key-_002d-Tar-File-Mode-1"></span><h4
class="subsection">E.2.35 Smart Key - Tar File Mode</h4>
+<span id="index-click_002c-tar"></span>
+<span id="index-tar-archive-browsing"></span>
+<span id="index-extracting-from-tar-files"></span>
<div class="format">
<pre class="format">If pressed within a tar-mode buffer:
ACTION KEY
@@ -10883,15 +10613,13 @@ Next: <a href="#Smart-Key-_002d-Man-Pages"
accesskey="n" rel="next">Smart Key -
</pre></div>
<hr>
-<a name="Smart-Key-_002d-Man-Pages"></a>
-<div class="header">
+<span id="Smart-Key-_002d-Man-Pages"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-WWW-URLs" accesskey="n" rel="next">Smart Key -
WWW URLs</a>, Previous: <a href="#Smart-Key-_002d-Tar-File-Mode" accesskey="p"
rel="prev">Smart Key - Tar File Mode</a>, Up: <a href="#Smart-Keyboard-Keys"
accesskey="u" rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents"
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index"
title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Man-Pages-1"></a>
-<h4 class="subsection">E.2.36 Smart Key - Man Pages</h4>
-<a name="index-man-page-references"></a>
-<a name="index-smart_002dman_002dc_002droutine_002dref"></a>
+<span id="Smart-Key-_002d-Man-Pages-1"></span><h4 class="subsection">E.2.36
Smart Key - Man Pages</h4>
+<span id="index-man-page-references"></span>
+<span id="index-smart_002dman_002dc_002droutine_002dref"></span>
<div class="format">
<pre class="format">If pressed on a cross reference within a man page entry
section labeled
NAME, SEE ALSO, or PACKAGES USED, or within a man page C routine
@@ -10903,21 +10631,19 @@ containing its pathname:
</pre></div>
<hr>
-<a name="Smart-Key-_002d-WWW-URLs"></a>
-<div class="header">
+<span id="Smart-Key-_002d-WWW-URLs"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-HyRolo-Match-Buffers" accesskey="n"
rel="next">Smart Key - HyRolo Match Buffers</a>, Previous: <a
href="#Smart-Key-_002d-Man-Pages" accesskey="p" rel="prev">Smart Key - Man
Pages</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart
Keyboard Keys</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-WWW-URLs-1"></a>
-<h4 class="subsection">E.2.37 Smart Key - WWW URLs</h4>
-<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-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>
-<a name="index-menu_002c-Cust_002fURL_002dDisplay-1"></a>
+<span id="Smart-Key-_002d-WWW-URLs-1"></span><h4 class="subsection">E.2.37
Smart Key - WWW URLs</h4>
+<span id="index-click_002c-world_002dwide-web"></span>
+<span id="index-W3"></span>
+<span id="index-URL-2"></span>
+<span id="index-browse_002durl_002dbrowser_002dfunction-2"></span>
+<span id="index-World_002dwide-Web-2"></span>
+<span id="index-WWW-2"></span>
+<span id="index-C_002dh-h-c-u-1"></span>
+<span id="index-menu_002c-Cust_002fURL_002dDisplay-1"></span>
<div class="format">
<pre class="format">If pressed on a World-Wide Web universal resource locator
(URL):
ACTION KEY
@@ -10929,15 +10655,13 @@ Next: <a href="#Smart-Key-_002d-HyRolo-Match-Buffers"
accesskey="n" rel="next">S
</pre></div>
<hr>
-<a name="Smart-Key-_002d-HyRolo-Match-Buffers"></a>
-<div class="header">
+<span id="Smart-Key-_002d-HyRolo-Match-Buffers"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-Image-Thumbnails" accesskey="n"
rel="next">Smart Key - Image Thumbnails</a>, Previous: <a
href="#Smart-Key-_002d-WWW-URLs" accesskey="p" rel="prev">Smart Key - WWW
URLs</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart
Keyboard Keys</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-HyRolo-Match-Buffers-1"></a>
-<h4 class="subsection">E.2.38 Smart Key - HyRolo Match Buffers</h4>
-<a name="index-click_002c-hyrolo-matches"></a>
-<a name="index-hyrolo-matches"></a>
+<span id="Smart-Key-_002d-HyRolo-Match-Buffers-1"></span><h4
class="subsection">E.2.38 Smart Key - HyRolo Match Buffers</h4>
+<span id="index-click_002c-hyrolo-matches"></span>
+<span id="index-hyrolo-matches"></span>
<div class="format">
<pre class="format">If pressed within an entry in the HyRolo search results
buffer:
ACTION KEY or ASSIST KEY
@@ -10945,17 +10669,15 @@ Next: <a href="#Smart-Key-_002d-Image-Thumbnails"
accesskey="n" rel="next">Smart
</pre></div>
<hr>
-<a name="Smart-Key-_002d-Image-Thumbnails"></a>
-<div class="header">
+<span id="Smart-Key-_002d-Image-Thumbnails"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-Gomoku-Game" accesskey="n" rel="next">Smart
Key - Gomoku Game</a>, Previous: <a
href="#Smart-Key-_002d-HyRolo-Match-Buffers" accesskey="p" rel="prev">Smart Key
- HyRolo Match Buffers</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Image-Thumbnails-1"></a>
-<h4 class="subsection">E.2.39 Smart Key - Image Thumbnails</h4>
-<a name="index-images"></a>
-<a name="index-thumbnails"></a>
-<a name="index-dired_002c-images"></a>
-<a name="index-image_002ddired_002dexternal_002dviewer"></a>
+<span id="Smart-Key-_002d-Image-Thumbnails-1"></span><h4
class="subsection">E.2.39 Smart Key - Image Thumbnails</h4>
+<span id="index-images"></span>
+<span id="index-thumbnails"></span>
+<span id="index-dired_002c-images"></span>
+<span id="index-image_002ddired_002dexternal_002dviewer"></span>
<div class="format">
<pre class="format">If pressed within a Dired Image Thumbnail buffer:
ACTION KEY
@@ -10966,15 +10688,13 @@ Next: <a href="#Smart-Key-_002d-Gomoku-Game"
accesskey="n" rel="next">Smart Key
</pre></div>
<hr>
-<a name="Smart-Key-_002d-Gomoku-Game"></a>
-<div class="header">
+<span id="Smart-Key-_002d-Gomoku-Game"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-The-OO_002dBrowser" accesskey="n"
rel="next">Smart Key - The OO-Browser</a>, Previous: <a
href="#Smart-Key-_002d-Image-Thumbnails" accesskey="p" rel="prev">Smart Key -
Image Thumbnails</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Gomoku-Game-1"></a>
-<h4 class="subsection">E.2.40 Smart Key - Gomoku Game</h4>
-<a name="index-game_002c-gomoku"></a>
-<a name="index-gomoku"></a>
+<span id="Smart-Key-_002d-Gomoku-Game-1"></span><h4 class="subsection">E.2.40
Smart Key - Gomoku Game</h4>
+<span id="index-game_002c-gomoku"></span>
+<span id="index-gomoku"></span>
<div class="format">
<pre class="format">If pressed within a Gomoku game buffer:
ACTION KEY
@@ -10984,16 +10704,14 @@ Next: <a href="#Smart-Key-_002d-The-OO_002dBrowser"
accesskey="n" rel="next">Sma
</pre></div>
<hr>
-<a name="Smart-Key-_002d-The-OO_002dBrowser"></a>
-<div class="header">
+<span id="Smart-Key-_002d-The-OO_002dBrowser"></span><div class="header">
<p>
Next: <a href="#Smart-Key-_002d-Default-Context" accesskey="n"
rel="next">Smart Key - Default Context</a>, Previous: <a
href="#Smart-Key-_002d-Gomoku-Game" accesskey="p" rel="prev">Smart Key - Gomoku
Game</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart
Keyboard Keys</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-The-OO_002dBrowser-1"></a>
-<h4 class="subsection">E.2.41 Smart Key - The OO-Browser</h4>
+<span id="Smart-Key-_002d-The-OO_002dBrowser-1"></span><h4
class="subsection">E.2.41 Smart Key - The OO-Browser</h4>
-<a name="index-OO_002dBrowser"></a>
-<a name="index-object_002doriented-code-browsing"></a>
+<span id="index-OO_002dBrowser"></span>
+<span id="index-object_002doriented-code-browsing"></span>
<div class="format">
<pre class="format">If pressed within an OO-Browser implementors, elements or
OOBR-FTR tags
buffer after an OO-Browser Environment has been loaded:
@@ -11058,19 +10776,17 @@ buffer after an OO-Browser Environment has been
loaded:
</pre></div>
<hr>
-<a name="Smart-Key-_002d-Default-Context"></a>
-<div class="header">
+<span id="Smart-Key-_002d-Default-Context"></span><div class="header">
<p>
Previous: <a href="#Smart-Key-_002d-The-OO_002dBrowser" accesskey="p"
rel="prev">Smart Key - The OO-Browser</a>, Up: <a href="#Smart-Keyboard-Keys"
accesskey="u" rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents"
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index"
title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Smart-Key-_002d-Default-Context-1"></a>
-<h4 class="subsection">E.2.42 Smart Key - Default Context</h4>
-<a name="index-action_002dkey_002ddefault_002dfunction-1"></a>
-<a name="index-assist_002dkey_002ddefault_002dfunction-1"></a>
-<a name="index-hyperbole-1"></a>
-<a name="index-hyperbole_002dpopup_002dmenu-1"></a>
-<a name="index-hkey_002dsummarize"></a>
-<a name="index-Smart-Key_002c-default-context-1"></a>
+<span id="Smart-Key-_002d-Default-Context-1"></span><h4
class="subsection">E.2.42 Smart Key - Default Context</h4>
+<span id="index-action_002dkey_002ddefault_002dfunction-1"></span>
+<span id="index-assist_002dkey_002ddefault_002dfunction-1"></span>
+<span id="index-hyperbole-1"></span>
+<span id="index-hyperbole_002dpopup_002dmenu-1"></span>
+<span id="index-hkey_002dsummarize"></span>
+<span id="index-Smart-Key_002c-default-context-1"></span>
<div class="format">
<pre class="format">Finally, if pressed within an unrecognized context:
ACTION KEY
@@ -11088,16 +10804,14 @@ Previous: <a
href="#Smart-Key-_002d-The-OO_002dBrowser" accesskey="p" rel="prev"
<hr>
-<a name="Suggestion-or-Bug-Reporting"></a>
-<div class="header">
+<span id="Suggestion-or-Bug-Reporting"></span><div class="header">
<p>
Next: <a href="#Questions-and-Answers" accesskey="n" rel="next">Questions and
Answers</a>, Previous: <a href="#Smart-Key-Reference" accesskey="p"
rel="prev">Smart Key Reference</a>, Up: <a href="#Top" accesskey="u"
rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Suggestion-or-Bug-Reporting-1"></a>
-<h2 class="appendix">Appendix F Suggestion or Bug Reporting</h2>
+<span id="Suggestion-or-Bug-Reporting-1"></span><h2 class="appendix">Appendix
F Suggestion or Bug Reporting</h2>
-<a name="index-version-description"></a>
-<a name="index-Hyperbole-version"></a>
+<span id="index-version-description"></span>
+<span id="index-Hyperbole-version"></span>
<p>If you find any errors in Hyperbole’s operation or documentation, feel
free to report them to <bug-hyperbole@gnu.org>. Be sure to use the
<kbd>{C-h h m r}</kbd> Msg/Report-Hypb-Bug minibuffer menu item whenever you
send a message
@@ -11131,7 +10845,7 @@ and high energy, high impact declarations with
exclamation points. These
simple rules make all e-mail communication much easier for recipients to
handle appropriately.
-</li><li> <a name="index-emacs_002dversion"></a>
+</li><li> <span id="index-emacs_002dversion"></span>
Question messages should normally include your Hyperbole and Emacs
version numbers and should clearly explain your problem and surrounding
issues. Otherwise, it is difficult for anyone to answer your question.
@@ -11161,13 +10875,11 @@ Msg/Compose-Hypb-Mail). Here are some issues you
might address:
</li></ul>
<hr>
-<a name="Questions-and-Answers"></a>
-<div class="header">
+<span id="Questions-and-Answers"></span><div class="header">
<p>
Next: <a href="#Future-Work" accesskey="n" rel="next">Future Work</a>,
Previous: <a href="#Suggestion-or-Bug-Reporting" accesskey="p"
rel="prev">Suggestion or Bug Reporting</a>, Up: <a href="#Top" accesskey="u"
rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Questions-and-Answers-1"></a>
-<h2 class="appendix">Appendix G Questions and Answers</h2>
+<span id="Questions-and-Answers-1"></span><h2 class="appendix">Appendix G
Questions and Answers</h2>
<ol>
<li> As I discover the Zen of Hyperbole, will I become so enamored of its
power that I lose all control of my physical faculties?
@@ -11184,7 +10896,7 @@ let it flow through you.
<p>Ok, joking aside, now that we have your attention, here are some
serious questions and answers.
</p>
-</li><li> <a name="index-Org-mode-1"></a>
+</li><li> <span id="index-Org-mode-1"></span>
Isn’t Org mode the same as Hyperbole?
<p>No, they offer very different capabilities when you compare them a bit
@@ -11204,25 +10916,25 @@ a matter of having time and resources to devote to
finding ways to
integrate the two. We would like to see this happen. If you would
like to see it, offer time or money to help make it happen.
</p>
-</li><li> <a name="index-Smart-Key-2"></a>
-<a name="index-mouse-key-bindings"></a>
-<a name="index-hmouse_002dsetup"></a>
-<a name="index-hmouse_002dget_002dbindings"></a>
-<a name="index-file_002c-hmouse_002dsh_002eel"></a>
+</li><li> <span id="index-Smart-Key-2"></span>
+<span id="index-mouse-key-bindings"></span>
+<span id="index-hmouse_002dsetup"></span>
+<span id="index-hmouse_002dget_002dbindings"></span>
+<span id="index-file_002c-hmouse_002dsh_002eel"></span>
How can I change the Smart Mouse Key bindings?
-<a name="index-hmouse_002dsetup-1"></a>
-<a name="index-hmouse_002dget_002dbindings-1"></a>
+<span id="index-hmouse_002dsetup-1"></span>
+<span id="index-hmouse_002dget_002dbindings-1"></span>
<p>Since the Smart Mouse Keys are set up for use under many different
Emacs configurations, there is no easy way to provide user level
customization. Any mouse key binding changes require editing the
<code>(hmouse-setup)</code> and <code>(hmouse-get-bindings)</code> functions
in the
<samp>hmouse-sh.el</samp> file.
</p>
-<a name="index-file_002c-hmouse_002dkey_002eel"></a>
-<a name="index-file_002c-hui_002dwindow_002eel"></a>
-<a name="index-hkey_002dalist"></a>
-<a name="index-hmouse_002dalist"></a>
+<span id="index-file_002c-hmouse_002dkey_002eel"></span>
+<span id="index-file_002c-hui_002dwindow_002eel"></span>
+<span id="index-hkey_002dalist"></span>
+<span id="index-hmouse_002dalist"></span>
<p>To make the Smart Keys do new things in particular contexts, define new
types of implicit buttons, see <a href="#Implicit-Buttons">Implicit
Buttons</a>.
</p>
@@ -11249,7 +10961,7 @@ requires an iterative process. If you get a mail
message with a button
for which you don’t have the action type, you mail the sender and
request it.
</p>
-</li><li> <a name="index-global-button_002c-modify"></a>
+</li><li> <span id="index-global-button_002c-modify"></span>
How can I modify a number of global buttons in succession?
<p>Rather than typing the name for each, it is quicker to jump to the
@@ -11286,13 +10998,11 @@ module into your Emacs session.
<hr>
-<a name="Future-Work"></a>
-<div class="header">
+<span id="Future-Work"></span><div class="header">
<p>
Next: <a href="#References" accesskey="n" rel="next">References</a>, Previous:
<a href="#Questions-and-Answers" accesskey="p" rel="prev">Questions and
Answers</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Future-Work-1"></a>
-<h2 class="appendix">Appendix H Future Work</h2>
+<span id="Future-Work-1"></span><h2 class="appendix">Appendix H Future
Work</h2>
<p>This appendix is included for a number of reasons:
</p>
@@ -11405,13 +11115,11 @@ could just use a screen sharing program.
</dl>
<hr>
-<a name="References"></a>
-<div class="header">
+<span id="References"></span><div class="header">
<p>
Next: <a href="#Key-Index" accesskey="n" rel="next">Key Index</a>, Previous:
<a href="#Future-Work" accesskey="p" rel="prev">Future Work</a>, Up: <a
href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents"
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index"
title="Index" rel="index">Index</a>]</p>
</div>
-<a name="References-1"></a>
-<h2 class="appendix">Appendix I References</h2>
+<span id="References-1"></span><h2 class="appendix">Appendix I References</h2>
<dl compact="compact">
<dt><b>[AkMcYo88]</b></dt>
@@ -11544,13 +11252,11 @@ Austin, TX, ACM: NY,NY, 1989, pp. 37-42.
<hr>
-<a name="Key-Index"></a>
-<div class="header">
+<span id="Key-Index"></span><div class="header">
<p>
Next: <a href="#Function" accesskey="n" rel="next">Function</a>, Previous: <a
href="#References" accesskey="p" rel="prev">References</a>, Up: <a href="#Top"
accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
-<a name="Key-Index-1"></a>
-<h2 class="unnumbered">Key Index</h2>
+<span id="Key-Index-1"></span><h2 class="unnumbered">Key Index</h2>
<table><tr><th valign="top">Jump to: </th><td><a class="summary-letter"
href="#Key-Index_ky_symbol-1"><b>%</b></a>
@@ -11627,61 +11333,61 @@ Next: <a href="#Function" accesskey="n"
rel="next">Function</a>, Previous: <a hr
<table class="index-ky" border="0">
<tr><td></td><th align="left">Index Entry</th><td> </td><th align="left">
Section</th></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Key-Index_ky_symbol-1">%</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_symbol-1">%</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-_0025"><code>%</code></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="Key-Index_ky_symbol-2">(</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_symbol-2">(</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-_0028"><code>(</code></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="Key-Index_ky_symbol-3">)</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_symbol-3">)</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-_0029"><code>)</code></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="Key-Index_ky_symbol-4">+</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_symbol-4">+</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-_002b"><code>+</code></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="Key-Index_ky_symbol-5">,</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_symbol-5">,</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-_002c-or-_003e"><code>, or
></code></a>:</td><td> </td><td valign="top"><a
href="#HyRolo-Keys">HyRolo Keys</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Key-Index_ky_symbol-6">-</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_symbol-6">-</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-_002d"><code>-</code></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="Key-Index_ky_symbol-7">.</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_symbol-7">.</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-_002e"><code>.</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-_002e-or-_003c"><code>. or
<</code></a>:</td><td> </td><td valign="top"><a
href="#HyRolo-Keys">HyRolo Keys</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Key-Index_ky_symbol-8">0</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_symbol-8">0</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-0_002d9"><code>0-9</code></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="Key-Index_ky_symbol-9">=</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_symbol-9">=</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-_003d"><code>=</code></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="Key-Index_ky_symbol-10">?</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_symbol-10">?</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-_003f"><code>?</code></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="Key-Index_ky_symbol-11">@</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_symbol-11">@</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-_0040"><code>@</code></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="Key-Index_ky_symbol-12">[</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_symbol-12">[</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-_005b"><code>[</code></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="Key-Index_ky_symbol-13">]</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_symbol-13">]</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-_005d"><code>]</code></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="Key-Index_ky_symbol-14">~</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_symbol-14">~</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-_007e"><code>~</code></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="Key-Index_ky_letter-A">A</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_letter-A">A</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-a"><code>a</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-A"><code>A</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Action-Key-1"><code>Action
Key</code></a>:</td><td> </td><td valign="top"><a href="#Smart-Keys">Smart
Keys</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-Action-Key_002c-web-browsing-1"><code>Action Key, web
browsing</code></a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Assist-Key-1"><code>Assist
Key</code></a>:</td><td> </td><td valign="top"><a href="#Smart-Keys">Smart
Keys</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Key-Index_ky_letter-B">B</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_letter-B">B</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-b"><code>b</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-b-1"><code>b</code></a>:</td><td> </td><td valign="top"><a
href="#HyRolo-Keys">HyRolo Keys</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Key-Index_ky_letter-C">C</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_letter-C">C</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-c"><code>c</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-C_002dc-_0024"><code>C-c
$</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-_002c"><code>C-c
,</code></a>:</td><td> </td><td valign="top"><a
href="#Moving-Around">Moving Around</a></td></tr>
@@ -11767,31 +11473,31 @@ Next: <a href="#Function" accesskey="n"
rel="next">Function</a>, Previous: <a hr
<tr><td></td><td valign="top"><a href="#index-C_002dx-m"><code>C-x
m</code></a>:</td><td> </td><td valign="top"><a
href="#Buttons-in-Mail">Buttons in Mail</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-C_002dx-o"><code>C-x
o</code></a>:</td><td> </td><td valign="top"><a
href="#Keyboard-Drags">Keyboard Drags</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Key-Index_ky_letter-D">D</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_letter-D">D</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-d"><code>d</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-D"><code>D</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-DEL"><code><span
class="key">DEL</span></code></a>:</td><td> </td><td valign="top"><a
href="#HyRolo-Keys">HyRolo Keys</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-down"><code>down</code></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="Key-Index_ky_letter-F">F</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_letter-F">F</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-f"><code>f</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-F"><code>F</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-f-1"><code>f</code></a>:</td><td> </td><td valign="top"><a
href="#HyRolo-Keys">HyRolo Keys</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Key-Index_ky_letter-H">H</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_letter-H">H</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-h"><code>h</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-H"><code>H</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-HyControl_002c-see-screen"><code>HyControl, see
screen</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-HyControl_002c-see-screen-1"><code>HyControl, see
screen</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-HyRolo_002c-see-rolo"><code>HyRolo, see
rolo</code></a>:</td><td> </td><td valign="top"><a
href="#HyRolo-Keys">HyRolo Keys</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Key-Index_ky_letter-I">I</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_letter-I">I</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-i"><code>i</code></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="Key-Index_ky_letter-J">J</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_letter-J">J</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-j"><code>j</code></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="Key-Index_ky_letter-K">K</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_letter-K">K</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-k"><code>k</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-keypad-number"><code>keypad
number</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-koutliner_002c-Action-Key_002c-cell-argument"><code>koutliner,
Action Key, cell argument</code></a>:</td><td> </td><td valign="top"><a
href="#Relocating-and-Copying">Relocating and Copying</a></td></tr>
@@ -11835,11 +11541,11 @@ Next: <a href="#Function" accesskey="n"
rel="next">Function</a>, Previous: <a hr
<tr><td></td><td valign="top"><a
href="#index-koutliner_002c-M_002dTAB"><code>koutliner, M-<span
class="key">TAB</span></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-koutliner_002c-TAB"><code>koutliner, <span
class="key">TAB</span></code></a>:</td><td> </td><td valign="top"><a
href="#Relocating-and-Copying">Relocating and Copying</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Key-Index_ky_letter-L">L</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_letter-L">L</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-l"><code>l</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-left"><code>left</code></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="Key-Index_ky_letter-M">M</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_letter-M">M</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-m"><code>m</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-M_002db"><code>M-b</code></a>:</td><td> </td><td
valign="top"><a href="#Menus">Menus</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-M_002df"><code>M-f</code></a>:</td><td> </td><td
valign="top"><a href="#Menus">Menus</a></td></tr>
@@ -11855,23 +11561,23 @@ Next: <a href="#Function" accesskey="n"
rel="next">Function</a>, Previous: <a hr
<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>
-<tr><th><a name="Key-Index_ky_letter-N">N</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_letter-N">N</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-n"><code>n</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-n-1"><code>n</code></a>:</td><td> </td><td valign="top"><a
href="#HyRolo-Keys">HyRolo Keys</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Key-Index_ky_letter-O">O</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_letter-O">O</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-o"><code>o</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-O"><code>O</code></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="Key-Index_ky_letter-P">P</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_letter-P">P</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-p"><code>p</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-p-1"><code>p</code></a>:</td><td> </td><td valign="top"><a
href="#HyRolo-Keys">HyRolo Keys</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Key-Index_ky_letter-Q">Q</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_letter-Q">Q</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-q"><code>q</code></a>:</td><td> </td><td valign="top"><a
href="#Menus">Menus</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-q-1"><code>q</code></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="Key-Index_ky_letter-R">R</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_letter-R">R</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-r"><code>r</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-right"><code>right</code></a>:</td><td> </td><td
valign="top"><a href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-rolo_002c-_002c"><code>rolo,
,</code></a>:</td><td> </td><td valign="top"><a href="#HyRolo-Keys">HyRolo
Keys</a></td></tr>
@@ -11901,7 +11607,7 @@ Next: <a href="#Function" accesskey="n"
rel="next">Function</a>, Previous: <a hr
<tr><td></td><td valign="top"><a href="#index-rolo_002c-TAB"><code>rolo, <span
class="key">TAB</span></code></a>:</td><td> </td><td valign="top"><a
href="#HyRolo-Keys">HyRolo Keys</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-rolo_002c-u"><code>rolo,
u</code></a>:</td><td> </td><td valign="top"><a href="#HyRolo-Keys">HyRolo
Keys</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Key-Index_ky_letter-S">S</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_letter-S">S</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-s"><code>s</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-screen_002c-_0025"><code>screen,
%</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-screen_002c-_0028"><code>screen,
(</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
@@ -11961,20 +11667,20 @@ Next: <a href="#Function" accesskey="n"
rel="next">Function</a>, Previous: <a hr
<tr><td></td><td valign="top"><a
href="#index-shift_002dright-mouse-key"><code>shift-right mouse
key</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-SPC"><code><span
class="key">SPC</span></code></a>:</td><td> </td><td valign="top"><a
href="#HyRolo-Keys">HyRolo Keys</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Key-Index_ky_letter-T">T</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_letter-T">T</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-t"><code>t</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-TAB"><code><span
class="key">TAB</span></code></a>:</td><td> </td><td valign="top"><a
href="#Menus">Menus</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Key-Index_ky_letter-U">U</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_letter-U">U</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-u"><code>u</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-u-1"><code>u</code></a>:</td><td> </td><td valign="top"><a
href="#HyRolo-Keys">HyRolo Keys</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-up"><code>up</code></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="Key-Index_ky_letter-W">W</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_letter-W">W</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-w"><code>w</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-W"><code>W</code></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="Key-Index_ky_letter-Z">Z</a></th><td></td><td></td></tr>
+<tr><th id="Key-Index_ky_letter-Z">Z</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-Z"><code>Z</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-z"><code>z</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
@@ -12053,13 +11759,11 @@ Next: <a href="#Function" accesskey="n"
rel="next">Function</a>, Previous: <a hr
</td></tr></table>
<hr>
-<a name="Function"></a>
-<div class="header">
+<span id="Function"></span><div class="header">
<p>
Next: <a href="#Concept-Index" accesskey="n" rel="next">Concept Index</a>,
Previous: <a href="#Key-Index" accesskey="p" rel="prev">Key Index</a>, Up: <a
href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents"
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index"
title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Function_002c-Variable-and-File-Index"></a>
-<h2 class="unnumbered">Function, Variable and File Index</h2>
+<span id="Function_002c-Variable-and-File-Index"></span><h2
class="unnumbered">Function, Variable and File Index</h2>
<table><tr><th valign="top">Jump to: </th><td><a class="summary-letter"
href="#Function_fn_letter-A"><b>A</b></a>
@@ -12099,7 +11803,7 @@ Next: <a href="#Concept-Index" accesskey="n"
rel="next">Concept Index</a>, Previ
<table class="index-fn" border="0">
<tr><td></td><th align="left">Index Entry</th><td> </td><th align="left">
Section</th></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Function_fn_letter-A">A</a></th><td></td><td></td></tr>
+<tr><th id="Function_fn_letter-A">A</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-ace_002dwindow-1"><code>ace-window</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-action_002dact_002dhook">action-act-hook</a>:</td><td> </td><td
valign="top"><a href="#Hook-Variables">Hook Variables</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-action_002dkey"><code>action-key</code></a>:</td><td> </td><td
valign="top"><a href="#Smart-Key-Bindings">Smart Key Bindings</a></td></tr>
@@ -12128,6 +11832,7 @@ Next: <a href="#Concept-Index" accesskey="n"
rel="next">Concept Index</a>, Previ
<tr><td></td><td valign="top"><a
href="#index-actypes-hyp_002drequest"><code>actypes
hyp-request</code></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-actypes-hyp_002dsource"><code>actypes
hyp-source</code></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-actypes-kbd_002dkey"><code>actypes
kbd-key</code></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-actypes-link_002dto_002dbookmark"><code>actypes
link-to-bookmark</code></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-actypes-link_002dto_002dbuffer_002dtmp"><code>actypes
link-to-buffer-tmp</code></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-actypes-link_002dto_002ddirectory"><code>actypes
link-to-directory</code></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-actypes-link_002dto_002ddoc"><code>actypes
link-to-doc</code></a>:</td><td> </td><td valign="top"><a
href="#Action-Types">Action Types</a></td></tr>
@@ -12164,12 +11869,12 @@ Next: <a href="#Concept-Index" accesskey="n"
rel="next">Concept Index</a>, Previ
<tr><td></td><td valign="top"><a
href="#index-assist_002dkey_002drelease_002dhook">assist-key-release-hook</a>:</td><td> </td><td
valign="top"><a href="#Hook-Variables">Hook Variables</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-assist_002dmouse_002dkey"><code>assist-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>
-<tr><th><a name="Function_fn_letter-B">B</a></th><td></td><td></td></tr>
+<tr><th id="Function_fn_letter-B">B</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-Types">Implicit Button
Types</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><th id="Function_fn_letter-C">C</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>
<tr><td></td><td valign="top"><a
href="#index-c_002b_002b_002dinclude_002dpath">c++-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>
<tr><td></td><td valign="top"><a href="#index-class_002c-ebut">class,
ebut</a>:</td><td> </td><td valign="top"><a
href="#Operational-and-Storage-Formats">Operational and Storage
Formats</a></td></tr>
@@ -12183,13 +11888,13 @@ Next: <a href="#Concept-Index" accesskey="n"
rel="next">Concept Index</a>, Previ
<tr><td></td><td valign="top"><a
href="#index-customize_002dbrowse"><code>customize-browse</code></a>:</td><td> </td><td
valign="top"><a href="#Customization">Customization</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-customize_002dvariable"><code>customize-variable</code></a>:</td><td> </td><td
valign="top"><a href="#Customization">Customization</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Function_fn_letter-D">D</a></th><td></td><td></td></tr>
+<tr><th id="Function_fn_letter-D">D</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-defact"><code>defact</code></a>:</td><td> </td><td
valign="top"><a href="#Action-Type-Creation">Action Type Creation</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-defib"><code>defib</code></a>:</td><td> </td><td
valign="top"><a href="#Implicit-Button-Type-Creation">Implicit Button Type
Creation</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-dir_002c-_007e_002f_002ehyperb">dir,
~/.hyperb</a>:</td><td> </td><td valign="top"><a
href="#Button-Files">Button Files</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-dired_002djump"><code>dired-jump</code></a>:</td><td> </td><td
valign="top"><a href="#Smart-Mouse-Key-Modeline-Clicks">Smart Mouse Key
Modeline Clicks</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Function_fn_letter-E">E</a></th><td></td><td></td></tr>
+<tr><th id="Function_fn_letter-E">E</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-ebut_002dcreate_002dhook">ebut-create-hook</a>:</td><td> </td><td
valign="top"><a href="#Hook-Variables">Hook Variables</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-ebut_002ddelete_002dhook">ebut-delete-hook</a>:</td><td> </td><td
valign="top"><a href="#Hook-Variables">Hook Variables</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-ebut_002dmodify_002dhook">ebut-modify-hook</a>:</td><td> </td><td
valign="top"><a href="#Hook-Variables">Hook Variables</a></td></tr>
@@ -12200,7 +11905,7 @@ Next: <a href="#Concept-Index" accesskey="n"
rel="next">Concept Index</a>, Previ
<tr><td></td><td valign="top"><a
href="#index-eval_002ddefun"><code>eval-defun</code></a>:</td><td> </td><td
valign="top"><a href="#Creating-Types">Creating Types</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-eval_002dlast_002dsexp"><code>eval-last-sexp</code></a>:</td><td> </td><td
valign="top"><a href="#Creating-Types">Creating Types</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Function_fn_letter-F">F</a></th><td></td><td></td></tr>
+<tr><th id="Function_fn_letter-F">F</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-file_002c-_002eemacs">file,
.emacs</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-file_002c-_002eemacs-1">file,
.emacs</a>:</td><td> </td><td valign="top"><a
href="#Renaming">Renaming</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-file_002c-_002eemacs-2">file,
.emacs</a>:</td><td> </td><td valign="top"><a
href="#Buttons-in-Mail">Buttons in Mail</a></td></tr>
@@ -12243,10 +11948,10 @@ Next: <a href="#Concept-Index" accesskey="n"
rel="next">Concept Index</a>, Previ
<tr><td></td><td valign="top"><a
href="#index-find_002dfile"><code>find-file</code></a>:</td><td> </td><td
valign="top"><a href="#Using-URLs-with-Find_002dFile">Using URLs with
Find-File</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-find_002dfile_002dhook">find-file-hook</a>:</td><td> </td><td
valign="top"><a href="#Hook-Variables">Hook Variables</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Function_fn_letter-G">G</a></th><td></td><td></td></tr>
+<tr><th id="Function_fn_letter-G">G</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-gbut_003afile">gbut:file</a>:</td><td> </td><td
valign="top"><a href="#Glossary">Glossary</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Function_fn_letter-H">H</a></th><td></td><td></td></tr>
+<tr><th id="Function_fn_letter-H">H</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hbmap_003adir_002duser">hbmap:dir-user</a>:</td><td> </td><td
valign="top"><a href="#Button-Files">Button Files</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hbmap_003afilename">hbmap:filename</a>:</td><td> </td><td
valign="top"><a href="#Button-Files">Button Files</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hbut_003acurrent">hbut:current</a>:</td><td> </td><td
valign="top"><a href="#Hook-Variables">Hook Variables</a></td></tr>
@@ -12381,7 +12086,7 @@ Next: <a href="#Concept-Index" accesskey="n"
rel="next">Concept Index</a>, Previ
<tr><td></td><td valign="top"><a
href="#index-hywconfig_002dyank_002dpop"><code>hywconfig-yank-pop</code></a>:</td><td> </td><td
valign="top"><a href="#Window-Configurations">Window
Configurations</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hywconfig_002dyank_002dpop-1"><code>hywconfig-yank-pop</code></a>:</td><td> </td><td
valign="top"><a href="#Window-Configurations">Window
Configurations</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Function_fn_letter-I">I</a></th><td></td><td></td></tr>
+<tr><th id="Function_fn_letter-I">I</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-ibtype_003acreate"><code>ibtype:create</code></a>:</td><td> </td><td
valign="top"><a href="#Implicit-Button-Type-Creation">Implicit Button Type
Creation</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-ibtype_003adelete"><code>ibtype:delete</code></a>:</td><td> </td><td
valign="top"><a href="#Implicit-Button-Type-Creation">Implicit Button Type
Creation</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-ibtypes-actions"><code>ibtypes
actions</code></a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
@@ -12434,7 +12139,7 @@ Next: <a href="#Concept-Index" accesskey="n"
rel="next">Concept Index</a>, Previ
<tr><td></td><td valign="top"><a
href="#index-Info_002dglobal_002dprev"><code>Info-global-prev</code></a>:</td><td> </td><td
valign="top"><a href="#Smart-Key-_002d-Info-Manuals">Smart Key - Info
Manuals</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-interactive"><code>interactive</code></a>:</td><td> </td><td
valign="top"><a href="#Action-Type-Creation">Action Type Creation</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Function_fn_letter-K">K</a></th><td></td><td></td></tr>
+<tr><th id="Function_fn_letter-K">K</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-kcell_003aref_002dto_002did"><code>kcell:ref-to-id</code></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-kexport_003ahtml"><code>kexport:html</code></a>:</td><td> </td><td
valign="top"><a href="#Exporting">Exporting</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-kfile_003afind"><code>kfile:find</code></a>:</td><td> </td><td
valign="top"><a href="#Menu-Commands">Menu Commands</a></td></tr>
@@ -12564,24 +12269,24 @@ Next: <a href="#Concept-Index" accesskey="n"
rel="next">Concept Index</a>, Previ
<tr><td></td><td valign="top"><a
href="#index-kvspec_003atoggle_002dblank_002dlines"><code>kvspec:toggle-blank-lines</code></a>:</td><td> </td><td
valign="top"><a href="#Menu-Commands">Menu Commands</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-kvspec_003atoggle_002dblank_002dlines-1"><code>kvspec:toggle-blank-lines</code></a>:</td><td> </td><td
valign="top"><a href="#Koutliner-Keys">Koutliner Keys</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Function_fn_letter-L">L</a></th><td></td><td></td></tr>
+<tr><th id="Function_fn_letter-L">L</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-link_002dto_002dfile"><code>link-to-file</code></a>:</td><td> </td><td
valign="top"><a href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-locate_002dcommand">locate-command</a>:</td><td> </td><td
valign="top"><a href="#Menus">Menus</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Function_fn_letter-M">M</a></th><td></td><td></td></tr>
+<tr><th id="Function_fn_letter-M">M</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-mail"><code>mail</code></a>:</td><td> </td><td
valign="top"><a href="#Buttons-in-Mail">Buttons in Mail</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-mail_002dyank_002doriginal">mail-yank-original</a>:</td><td> </td><td
valign="top"><a href="#Buttons-in-Mail">Buttons in Mail</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Function_fn_letter-O">O</a></th><td></td><td></td></tr>
+<tr><th id="Function_fn_letter-O">O</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-Types">Implicit Button
Types</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-Types">Implicit Button
Types</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><th id="Function_fn_letter-R">R</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>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Function_fn_letter-S">S</a></th><td></td><td></td></tr>
+<tr><th id="Function_fn_letter-S">S</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-selective_002ddisplay">selective-display</a>:</td><td> </td><td
valign="top"><a href="#Smart-Key-_002d-Emacs-Outline-Mode">Smart Key - Emacs
Outline Mode</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-smail_003acomment">smail:comment</a>:</td><td> </td><td
valign="top"><a href="#Buttons-in-Mail">Buttons in Mail</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-smart_002dasm_002dinclude_002dpath">smart-asm-include-path</a>:</td><td> </td><td
valign="top"><a href="#Smart-Key-_002d-Assembly-Source-Code">Smart Key -
Assembly Source Code</a></td></tr>
@@ -12592,10 +12297,10 @@ Next: <a href="#Concept-Index" accesskey="n"
rel="next">Concept Index</a>, Previ
<tr><td></td><td valign="top"><a
href="#index-smart_002dman_002dc_002droutine_002dref">smart-man-c-routine-ref</a>:</td><td> </td><td
valign="top"><a href="#Smart-Key-_002d-Man-Pages">Smart Key - Man
Pages</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-smart_002dscroll_002dproportional">smart-scroll-proportional</a>:</td><td> </td><td
valign="top"><a href="#Smart-Key-_002d-Smart-Scrolling">Smart Key - Smart
Scrolling</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Function_fn_letter-W">W</a></th><td></td><td></td></tr>
+<tr><th id="Function_fn_letter-W">W</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-write_002dfile_002dhooks">write-file-hooks</a>:</td><td> </td><td
valign="top"><a href="#Hook-Variables">Hook Variables</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Function_fn_letter-Z">Z</a></th><td></td><td></td></tr>
+<tr><th id="Function_fn_letter-Z">Z</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-zoom_002dfrm_002eel"><code>zoom-frm.el</code></a>:</td><td> </td><td
valign="top"><a href="#HyControl">HyControl</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
</table>
@@ -12636,13 +12341,11 @@ Next: <a href="#Concept-Index" accesskey="n"
rel="next">Concept Index</a>, Previ
</td></tr></table>
<hr>
-<a name="Concept-Index"></a>
-<div class="header">
+<span id="Concept-Index"></span><div class="header">
<p>
Previous: <a href="#Function" accesskey="p" rel="prev">Function</a>, Up: <a
href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents"
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index"
title="Index" rel="index">Index</a>]</p>
</div>
-<a name="Concept-Index-1"></a>
-<h2 class="unnumbered">Concept Index</h2>
+<span id="Concept-Index-1"></span><h2 class="unnumbered">Concept Index</h2>
<table><tr><th valign="top">Jump to: </th><td><a class="summary-letter"
href="#Concept-Index_cp_symbol-1"><b><</b></a>
@@ -12705,15 +12408,15 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<table class="index-cp" border="0">
<tr><td></td><th align="left">Index Entry</th><td> </td><th align="left">
Section</th></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a
name="Concept-Index_cp_symbol-1"><</a></th><td></td><td></td></tr>
+<tr><th id="Concept-Index_cp_symbol-1"><</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-_003c_003e-delimiters"><>
delimiters</a>:</td><td> </td><td valign="top"><a
href="#Links">Links</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-_003c_0040-klink_003e"><@
klink></a>:</td><td> </td><td valign="top"><a
href="#Links">Links</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-_003c_007cviewspec_003e"><|viewspec></a>:</td><td> </td><td
valign="top"><a href="#View-Specs">View Specs</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Concept-Index_cp_symbol-2">|</a></th><td></td><td></td></tr>
+<tr><th id="Concept-Index_cp_symbol-2">|</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-_007c">|</a>:</td><td> </td><td valign="top"><a
href="#View-Specs">View Specs</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Concept-Index_cp_letter-A">A</a></th><td></td><td></td></tr>
+<tr><th id="Concept-Index_cp_letter-A">A</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-abbreviated-URLs">abbreviated
URLs</a>:</td><td> </td><td valign="top"><a
href="#Using-URLs-with-Find_002dFile">Using URLs with Find-File</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-ace_002dwindow">ace-window</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-action">action</a>:</td><td> </td><td valign="top"><a
href="#Action-Types">Action Types</a></td></tr>
@@ -12772,7 +12475,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a
href="#index-autonumber">autonumber</a>:</td><td> </td><td valign="top"><a
href="#Koutliner">Koutliner</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-autonumber-1">autonumber</a>:</td><td> </td><td
valign="top"><a href="#Autonumbering">Autonumbering</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Concept-Index_cp_letter-B">B</a></th><td></td><td></td></tr>
+<tr><th id="Concept-Index_cp_letter-B">B</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-balance-windows">balance
windows</a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-BBDB">BBDB</a>:</td><td> </td><td valign="top"><a
href="#HyRolo-Settings">HyRolo Settings</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-bibliography">bibliography</a>:</td><td> </td><td
valign="top"><a href="#Implicit-Button-Types">Implicit Button
Types</a></td></tr>
@@ -12847,7 +12550,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a
href="#index-button_002c-split-across-lines">button, split across
lines</a>:</td><td> </td><td valign="top"><a
href="#Button-Label-Normalization">Button Label Normalization</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-byte-compiler-error">byte
compiler error</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Concept-Index_cp_letter-C">C</a></th><td></td><td></td></tr>
+<tr><th id="Concept-Index_cp_letter-C">C</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-C-call-tree">C call
tree</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-C-flow-graph">C flow
graph</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-C_002fC_002b_002b-call-trees">C/C++ call
trees</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
@@ -12941,7 +12644,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-cut-region">cut
region</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-cutoff-lines">cutoff
lines</a>:</td><td> </td><td valign="top"><a href="#View-Specs">View
Specs</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Concept-Index_cp_letter-D">D</a></th><td></td><td></td></tr>
+<tr><th id="Concept-Index_cp_letter-D">D</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-database">database</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-datestamps">datestamps</a>:</td><td> </td><td valign="top"><a
href="#HyRolo-Keys">HyRolo Keys</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-dbx">dbx</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
@@ -13006,7 +12709,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a
href="#index-dragging-items_002c-dired">dragging items,
dired</a>:</td><td> </td><td valign="top"><a
href="#Smart-Mouse-Key-Modeline-Clicks">Smart Mouse Key Modeline
Clicks</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-dragging-outside-Emacs">dragging
outside Emacs</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 colspan="4"> <hr></td></tr>
-<tr><th><a name="Concept-Index_cp_letter-E">E</a></th><td></td><td></td></tr>
+<tr><th id="Concept-Index_cp_letter-E">E</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-e_002dmail-address">e-mail
address</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-e_002dmail-address-1">e-mail
address</a>:</td><td> </td><td valign="top"><a
href="#Cell-Attributes">Cell Attributes</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-elink">elink</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
@@ -13016,7 +12719,8 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a
href="#index-Emacs-1">Emacs</a>:</td><td> </td><td valign="top"><a
href="#Menus">Menus</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Emacs-Lisp">Emacs
Lisp</a>:</td><td> </td><td valign="top"><a
href="#Hyperbole-Overview">Hyperbole Overview</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Emacs-Lisp-compiler-error">Emacs
Lisp compiler error</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-Emacs-Lisp-variables">Emacs Lisp
variables</a>:</td><td> </td><td valign="top"><a
href="#Link-Variable-Substitution">Link Variable Substitution</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Emacs-Lisp-variables">Emacs Lisp
variables</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Emacs-Lisp-variables-1">Emacs
Lisp variables</a>:</td><td> </td><td valign="top"><a
href="#Link-Variable-Substitution">Link Variable Substitution</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-emacs-outline">emacs
outline</a>:</td><td> </td><td valign="top"><a
href="#Inserting-and-Importing">Inserting and Importing</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Emacs-support">Emacs
support</a>:</td><td> </td><td valign="top"><a
href="#Button-Colors">Button Colors</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-emulation_002c-drag">emulation,
drag</a>:</td><td> </td><td valign="top"><a
href="#Keyboard-Drags">Keyboard Drags</a></td></tr>
@@ -13024,7 +12728,8 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-end-of-line-click">end of line
click</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-_002d-Smart-Scrolling">Smart Key - Smart
Scrolling</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-Engelbart">Engelbart</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-Engelbart-1">Engelbart</a>:</td><td> </td><td valign="top"><a
href="#Glossary">Glossary</a></td></tr>
-<tr><td></td><td valign="top"><a
href="#index-environment-variables">environment
variables</a>:</td><td> </td><td valign="top"><a
href="#Link-Variable-Substitution">Link Variable Substitution</a></td></tr>
+<tr><td></td><td valign="top"><a
href="#index-environment-variables">environment
variables</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
+<tr><td></td><td valign="top"><a
href="#index-environment-variables-1">environment
variables</a>:</td><td> </td><td valign="top"><a
href="#Link-Variable-Substitution">Link Variable Substitution</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-equalize-windows">equalize
windows</a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-etags-entry">etags
entry</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-exchanging-cells">exchanging
cells</a>:</td><td> </td><td valign="top"><a
href="#Transposing">Transposing</a></td></tr>
@@ -13051,7 +12756,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-external-viewer">external
viewer</a>:</td><td> </td><td valign="top"><a
href="#External-Viewers">External Viewers</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-extracting-from-tar-files">extracting from tar
files</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-_002d-Tar-File-Mode">Smart Key - Tar File Mode</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Concept-Index_cp_letter-F">F</a></th><td></td><td></td></tr>
+<tr><th id="Concept-Index_cp_letter-F">F</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-file-display-function">file
display function</a>:</td><td> </td><td valign="top"><a
href="#Internal-Viewers">Internal Viewers</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-file-viewer_002c-Treemacs">file
viewer, Treemacs</a>:</td><td> </td><td valign="top"><a
href="#Smart-Mouse-Key-Modeline-Clicks">Smart Mouse Key Modeline
Clicks</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-file_002c-DEMO">file,
DEMO</a>:</td><td> </td><td valign="top"><a href="#Manual-Overview">Manual
Overview</a></td></tr>
@@ -13086,7 +12791,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-function-menu">function
menu</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-functon-call-implicit-button">functon call implicit
button</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Concept-Index_cp_letter-G">G</a></th><td></td><td></td></tr>
+<tr><th id="Concept-Index_cp_letter-G">G</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-game_002c-gomoku">game,
gomoku</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-_002d-Gomoku-Game">Smart Key - Gomoku Game</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-gdb">gdb</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-git-commit-reference">git commit
reference</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
@@ -13117,7 +12822,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-grid-of-windows-1">grid of
windows</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-groupware">groupware</a>:</td><td> </td><td valign="top"><a
href="#Glossary">Glossary</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Concept-Index_cp_letter-H">H</a></th><td></td><td></td></tr>
+<tr><th id="Concept-Index_cp_letter-H">H</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hashtag">hashtag</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-help-buffer">help
buffer</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-_002d-Help-Buffers">Smart Key - Help Buffers</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-help_002c-button">help,
button</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-Operations">Smart Key Operations</a></td></tr>
@@ -13180,7 +12885,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-hyrolo-menu">hyrolo
menu</a>:</td><td> </td><td valign="top"><a href="#HyRolo-Keys">HyRolo
Keys</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-hywconfig-commands">hywconfig
commands</a>:</td><td> </td><td valign="top"><a
href="#Window-Configurations">Window Configurations</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Concept-Index_cp_letter-I">I</a></th><td></td><td></td></tr>
+<tr><th id="Concept-Index_cp_letter-I">I</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-ibtype">ibtype</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Type-Creation">Implicit Button Type
Creation</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-ibtype_002c-actype">ibtype,
actype</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Type-Creation">Implicit Button Type
Creation</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-ibtype_002c-argument">ibtype,
argument</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Type-Creation">Implicit Button Type
Creation</a></td></tr>
@@ -13244,12 +12949,12 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-item-drag">item
drag</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-item-throw">item
throw</a>:</td><td> </td><td valign="top"><a
href="#Keyboard-Drags">Keyboard Drags</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Concept-Index_cp_letter-J">J</a></th><td></td><td></td></tr>
+<tr><th id="Concept-Index_cp_letter-J">J</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-jump-menu">jump
menu</a>:</td><td> </td><td valign="top"><a
href="#Smart-Mouse-Key-Modeline-Clicks">Smart Mouse Key Modeline
Clicks</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-jump-menu-1">jump
menu</a>:</td><td> </td><td valign="top"><a
href="#Minibuffer-Menu-Activation">Minibuffer Menu Activation</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-jump-to-window-by-letter">jump
to window by letter</a>:</td><td> </td><td valign="top"><a
href="#Keyboard-Drags">Keyboard Drags</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Concept-Index_cp_letter-K">K</a></th><td></td><td></td></tr>
+<tr><th id="Concept-Index_cp_letter-K">K</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-kcell-link">kcell
link</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-key-binding-list">key binding
list</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-key-binding_002c-C_002dc-_002e">key binding, C-c
.</a>:</td><td> </td><td valign="top"><a
href="#Global-Key-Bindings">Global Key Bindings</a></td></tr>
@@ -13291,7 +12996,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-Koutliner-menu">Koutliner
menu</a>:</td><td> </td><td valign="top"><a href="#Menu-Commands">Menu
Commands</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-Koutliner_002c-toggle-tab-behavior">Koutliner, toggle tab
behavior</a>:</td><td> </td><td valign="top"><a
href="#Relocating-and-Copying">Relocating and Copying</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Concept-Index_cp_letter-L">L</a></th><td></td><td></td></tr>
+<tr><th id="Concept-Index_cp_letter-L">L</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-label-separator_002c-changing">label separator,
changing</a>:</td><td> </td><td valign="top"><a
href="#Autonumbering">Autonumbering</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-label-separator_002c-default">label separator,
default</a>:</td><td> </td><td valign="top"><a
href="#Autonumbering">Autonumbering</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-label-type">label
type</a>:</td><td> </td><td valign="top"><a href="#View-Specs">View
Specs</a></td></tr>
@@ -13326,7 +13031,8 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a
href="#index-linking_002c-in_002dplace">linking,
in-place</a>:</td><td> </td><td valign="top"><a
href="#Explicit-Buttons">Explicit Buttons</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-links">links</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-lisp-identifier">lisp
identifier</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-_002d-Lisp-Source-Code">Smart Key - Lisp Source
Code</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-Lisp-variables">Lisp
variables</a>:</td><td> </td><td valign="top"><a
href="#Link-Variable-Substitution">Link Variable Substitution</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Lisp-variables">Lisp
variables</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Lisp-variables-1">Lisp
variables</a>:</td><td> </td><td valign="top"><a
href="#Link-Variable-Substitution">Link Variable Substitution</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-list">list</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-list-1">list</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-listing-attributes">listing
attributes</a>:</td><td> </td><td valign="top"><a
href="#Cell-Attributes">Cell Attributes</a></td></tr>
@@ -13335,7 +13041,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-logical-rolo-searches">logical
rolo searches</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-lower-frame">lower
frame</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-M">M</a></th><td></td><td></td></tr>
+<tr><th id="Concept-Index_cp_letter-M">M</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-mail-address">mail
address</a>:</td><td> </td><td valign="top"><a
href="#Cell-Attributes">Cell Attributes</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-mail-comment">mail
comment</a>:</td><td> </td><td valign="top"><a
href="#Buttons-in-Mail">Buttons in Mail</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-mail-hooks">mail
hooks</a>:</td><td> </td><td valign="top"><a href="#Hook-Variables">Hook
Variables</a></td></tr>
@@ -13473,7 +13179,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-moving-buttons">moving
buttons</a>:</td><td> </td><td valign="top"><a
href="#Explicit-Buttons">Explicit Buttons</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-multiplier">multiplier</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-N">N</a></th><td></td><td></td></tr>
+<tr><th id="Concept-Index_cp_letter-N">N</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-name_002c-button">name,
button</a>:</td><td> </td><td valign="top"><a
href="#Explicit-Buttons">Explicit Buttons</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-named-window-configuration">named window
configuration</a>:</td><td> </td><td valign="top"><a
href="#Window-Configurations">Window Configurations</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-naming-implicit-buttons">naming
implicit buttons</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
@@ -13487,7 +13193,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-numeric-argument">numeric
argument</a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-numeric-keypad">numeric
keypad</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-O">O</a></th><td></td><td></td></tr>
+<tr><th id="Concept-Index_cp_letter-O">O</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-object_002doriented-code-browsing">object-oriented code
browsing</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-_002d-The-OO_002dBrowser">Smart Key - The
OO-Browser</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-obtaining-Hyperbole">obtaining
Hyperbole</a>:</td><td> </td><td valign="top"><a
href="#Installation">Installation</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-online-library">online
library</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
@@ -13532,7 +13238,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a
href="#index-overriding-local-keys">overriding local
keys</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-overview">overview</a>:</td><td> </td><td valign="top"><a
href="#Hiding-and-Showing">Hiding and Showing</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Concept-Index_cp_letter-P">P</a></th><td></td><td></td></tr>
+<tr><th id="Concept-Index_cp_letter-P">P</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-paragraph_002c-filling">paragraph,
filling</a>:</td><td> </td><td valign="top"><a
href="#Filling">Filling</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-paste-region">paste
region</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-pasting-a-region">pasting a
region</a>:</td><td> </td><td valign="top"><a
href="#Thing-Selection">Thing Selection</a></td></tr>
@@ -13557,10 +13263,10 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a
href="#index-proportional-scrolling-1">proportional
scrolling</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-_002d-Smart-Scrolling">Smart Key - Smart
Scrolling</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-pulldown-menu">pulldown
menu</a>:</td><td> </td><td valign="top"><a
href="#Menus">Menus</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Concept-Index_cp_letter-Q">Q</a></th><td></td><td></td></tr>
+<tr><th id="Concept-Index_cp_letter-Q">Q</th><td></td><td></td></tr>
<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><th id="Concept-Index_cp_letter-R">R</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-Types">Implicit Button Types</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>
@@ -13613,7 +13319,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-root-cell">root
cell</a>:</td><td> </td><td valign="top"><a
href="#Creating-Outlines">Creating Outlines</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-root-cell-1">root
cell</a>:</td><td> </td><td valign="top"><a
href="#Idstamps">Idstamps</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Concept-Index_cp_letter-S">S</a></th><td></td><td></td></tr>
+<tr><th id="Concept-Index_cp_letter-S">S</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-save-lines">save
lines</a>:</td><td> </td><td valign="top"><a
href="#Menus">Menus</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-saving-window-configurations">saving window
configurations</a>:</td><td> </td><td valign="top"><a
href="#Window-Configurations">Window Configurations</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-screen">screen</a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
@@ -13685,7 +13391,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a
href="#index-swapping">swapping</a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-system-encapsulation">system
encapsulation</a>:</td><td> </td><td valign="top"><a
href="#Encapsulating-Systems">Encapsulating Systems</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Concept-Index_cp_letter-T">T</a></th><td></td><td></td></tr>
+<tr><th id="Concept-Index_cp_letter-T">T</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-table-of-contents">table of
contents</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-table-of-contents-1">table of
contents</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-table-of-contents-2">table of
contents</a>:</td><td> </td><td valign="top"><a
href="#Action-Types">Action Types</a></td></tr>
@@ -13737,7 +13443,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-type-redefinition">type
redefinition</a>:</td><td> </td><td valign="top"><a
href="#Button-Type-Precedence">Button Type Precedence</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-type-redefinition-1">type
redefinition</a>:</td><td> </td><td valign="top"><a
href="#Creating-Types">Creating Types</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Concept-Index_cp_letter-U">U</a></th><td></td><td></td></tr>
+<tr><th id="Concept-Index_cp_letter-U">U</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-unbury-buffer">unbury
buffer</a>:</td><td> </td><td valign="top"><a
href="#Smart-Mouse-Key-Modeline-Clicks">Smart Mouse Key Modeline
Clicks</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-unburying">unburying</a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-UNIX-manual">UNIX
manual</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
@@ -13752,7 +13458,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a
href="#index-USENET-1">USENET</a>:</td><td> </td><td valign="top"><a
href="#Buttons-in-News">Buttons in News</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-username">username</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Concept-Index_cp_letter-V">V</a></th><td></td><td></td></tr>
+<tr><th id="Concept-Index_cp_letter-V">V</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-variable-display-implicit-button">variable display implicit
button</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-variable-setting">variable
setting</a>:</td><td> </td><td valign="top"><a
href="#Customization">Customization</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-variables">variables</a>:</td><td> </td><td valign="top"><a
href="#Hook-Variables">Hook Variables</a></td></tr>
@@ -13782,7 +13488,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-virtual-numeric-keypad">virtual
numeric keypad</a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-VM">VM</a>:</td><td> </td><td valign="top"><a
href="#Buttons-in-Mail">Buttons in Mail</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Concept-Index_cp_letter-W">W</a></th><td></td><td></td></tr>
+<tr><th id="Concept-Index_cp_letter-W">W</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-W3">W3</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-wconfig-commands">wconfig
commands</a>:</td><td> </td><td valign="top"><a
href="#Window-Configurations">Window Configurations</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-web-pages_002c-displaying">web
pages, displaying</a>:</td><td> </td><td valign="top"><a
href="#Using-URLs-with-Find_002dFile">Using URLs with Find-File</a></td></tr>
@@ -13823,17 +13529,18 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a
href="#index-WWW-1">WWW</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-WWW-2">WWW</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="Concept-Index_cp_letter-X">X</a></th><td></td><td></td></tr>
+<tr><th id="Concept-Index_cp_letter-X">X</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-xdb">xdb</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-XML-tag-pair">XML tag
pair</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-Thing-Selection">Smart Key Thing Selection</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Concept-Index_cp_letter-Y">Y</a></th><td></td><td></td></tr>
+<tr><th id="Concept-Index_cp_letter-Y">Y</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-yank-region">yank
region</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-yank_002c-reformatting">yank,
reformatting</a>:</td><td> </td><td valign="top"><a
href="#Hook-Variables">Hook Variables</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-yanking">yanking</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-yanking-1">yanking</a>:</td><td> </td><td valign="top"><a
href="#Smart-Mouse-Drags-between-Windows">Smart Mouse Drags between
Windows</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-yanking-2">yanking</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-_002d-Delimited-Things">Smart Key - Delimited
Things</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
-<tr><th><a name="Concept-Index_cp_letter-Z">Z</a></th><td></td><td></td></tr>
+<tr><th id="Concept-Index_cp_letter-Z">Z</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-zooming">zooming</a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
</table>
diff --git a/man/hyperbole.info b/man/hyperbole.info
index 259325e..ef82339 100644
Binary files a/man/hyperbole.info and b/man/hyperbole.info differ
diff --git a/man/hyperbole.pdf b/man/hyperbole.pdf
index 5c6c6c1..190d715 100644
Binary files a/man/hyperbole.pdf and b/man/hyperbole.pdf differ
diff --git a/man/hyperbole.texi b/man/hyperbole.texi
index 5ab9738..5466944 100644
--- a/man/hyperbole.texi
+++ b/man/hyperbole.texi
@@ -154,8 +154,8 @@ WITHOUT ANY WARRANTY, without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</P>
<PRE>
-Edition 7.0.7
-Printed October 2, 2019.
+Edition 7.0.8
+Printed January 19, 2020.
Published by the Free Software Foundation, Inc.
Author: Bob Weiner
@@ -196,8 +196,8 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
@sp 2
@example
-Edition 7.0.7
-October 2, 2019
+Edition 7.0.8
+January 19, 2020
Published by the Free Software Foundation, Inc.
Author: Bob Weiner
@@ -474,7 +474,7 @@ Smart Keyboard Keys
@chapter Introduction
This edition of the GNU Hyperbole Manual is for use with any version
-7.0.7 or greater of GNU Hyperbole. Hyperbole runs atop GNU Emacs 24.3
+7.0.8 or greater of GNU Hyperbole. Hyperbole runs atop GNU Emacs 24.3
or higher. It will trigger an error if your Emacs is older.
This chapter summarizes the structure of the rest of the manual,
@@ -1087,14 +1087,15 @@ parenthesis.
@cindex HTML tag pair
@cindex SGML tag pair
+@cindex XML tag pair
The best way to mark a delimited thing is to move your cursor to the
-starting delimiter of the thing and then press the Action Key. Typically,
-you will see the thing highlight. You can then operate upon it as you
-would any Emacs region. In many cases, you can do the same thing upon
-the closing delimiter, but this is not as reliable. An Action Key
-press on the start of an HTML or SGML tag pair marks the entire region
-span of the pair. If you use the Assist Key instead, it will mark and
-kill (delete) the thing.
+starting delimiter of the thing and then press the Action Key.
+Typically, you will see the thing highlight. You can then operate
+upon it as you would any Emacs region. In many cases, you can do the
+same thing upon the closing delimiter, but this is not as reliable.
+An Action Key press on the start of an HTML, XML, or SGML tag pair
+marks the entire region span of the pair. If you use the Assist Key
+instead, it will mark and kill (delete) the thing.
@cindex drag, with region
@cindex kill region
@@ -1135,12 +1136,13 @@ a different mouse key to use single clicks instead of
double clicks.
@kindex C-c .
@findex hui-select-goto-matching-tag
-The second convenience key is bound only in HTML/web mode. @bkbd{C-c
-.} @code{hui-select-goto-matching-tag} jumps between the opening and
-closing tag of a pair. It moves point to the start of the tag paired
-with the closest tag that point is within or which it precedes. A
-second press moves point to the matching tag of the pair, allowing you
-to quickly jump back and forth between opening and closing tags.
+The second convenience key is bound in HTML/XML/SGML/web
+modes. @bkbd{C-c .} @code{hui-select-goto-matching-tag} jumps between
+the opening and closing tag of a pair. It moves point to the start of
+the tag paired with the closest tag that point is within or which it
+precedes. A second press moves point to the matching tag of the pair,
+allowing you to quickly jump back and forth between opening and
+closing tags.
@node Smart Mouse Key Modeline Clicks, Smart Mouse Key Drags, Smart Key Thing
Selection, Smart Keys
@section Smart Mouse Key Modeline Clicks
@@ -2351,6 +2353,9 @@ handled by func-menu.
@item pathname-line-and-column
Make a valid pathname:line-num[:column-num] pattern display the path
at line-num and optional column-num. Also works for remote pathnames.
+May also contain hash-style link references with the following format:
+@file{<path>[#<link-anchor>]:<line-num>[:<column-num>]}.
+
@findex ibtypes pathname
@findex hpath:at-p
@@ -2362,14 +2367,23 @@ at line-num and optional column-num. Also works for
remote pathnames.
@cindex remote path
@cindex filename
@cindex link, pathname
+@cindex environment variables
+@cindex Emacs Lisp variables
+@cindex Lisp variables
@item pathname
Make a valid pathname display the path entry. Also works for
delimited and non-delimited remote pathnames, Texinfo @@file@{@}
-entries, and hash-style link references to HTML, Markdown or Emacs
-outline headings, and MSWindows paths (see @file{$@{hyperb:dir@}/DEMO#POSIX
-and MSWindows Paths} for details). Emacs Lisp library files
-(filenames without any directory component that end in .el and .elc)
-are looked up using the @code{load-path} directory list.
+entries, and hash-style link references to HTML, XML, SGML, Markdown
+or Emacs outline headings, shell script comments, and MSWindows paths
+(see @file{$@{hyperb:dir@}/DEMO#POSIX and MSWindows Paths} for
+details). Emacs Lisp library files (filenames without any directory
+component that end in .el and .elc) are located using
+the @code{load-path} directory list.
+
+@noindent
+The pathname may contain references to Emacs Lisp variables or shell
+environment variables using the syntax, \"$@{variable-name@}\".
+@xref{Link Variable Substitution}, for how this handled.
@noindent
See the function documentation for @code{hpath:at-p} for possible
@@ -2617,6 +2631,14 @@ Execute the function binding for KEY-SEQUENCE, delimited
by @{@}.
Return @samp{t} if a KEY-SEQUENCE has a binding, else @samp{nil}.
@cindex link action types
+@findex actypes link-to-bookmark
+@item link-to-bookmark
+Display an Emacs BOOKMARK.
+When creating the button, if in Bookmark Menu mode, use the bookmark
+nearest point as the default. Otherwise, utilize the most recently used
+bookmark in the current file (bookmark-current-bookmark) as the default,
+if any.
+
@findex actypes link-to-buffer-tmp
@item link-to-buffer-tmp
Display a BUFFER. This type of link is for use in a single editor session.
@@ -6881,7 +6903,8 @@ 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 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
+Environment variables and Emacs Lisp variables delimited
+by \"$@{variable-name@}\" are also replaced whenever link paths are
resolved.
This permits sharing of links over wide areas, where the variable values
diff --git a/man/version.texi b/man/version.texi
index 9f61a84..3b497a3 100644
--- a/man/version.texi
+++ b/man/version.texi
@@ -1,4 +1,4 @@
-@set UPDATED October 2, 2019
-@set UPDATED-MONTH October 2019
-@set EDITION 7.0.7
-@set VERSION 7.0.7
+@set UPDATED January 19, 2020
+@set UPDATED-MONTH January 2020
+@set EDITION 7.0.8
+@set VERSION 7.0.8
- [elpa] externals/hyperbole 55a8009 05/51: Fail packaging when proper version number is missing, (continued)
- [elpa] externals/hyperbole 55a8009 05/51: Fail packaging when proper version number is missing, Stefan Monnier, 2020/07/12
- [elpa] externals/hyperbole 88e8aab 06/51: 7.0.8 test release: XML markup tag selection; global button renaming, Stefan Monnier, 2020/07/12
- [elpa] externals/hyperbole 62f3fd2 01/51: 7.0.7 test release: many changes, new logo; fixed def macros, Stefan Monnier, 2020/07/12
- [elpa] externals/hyperbole 7aa8e62 03/51: Merge pull request #20 from rswgnu/make-make-release-fail-on-wrong-version-number, Stefan Monnier, 2020/07/12
- [elpa] externals/hyperbole cac90b5 10/51: Merge branch 'master' of github.com:rswgnu/hyperbole, Stefan Monnier, 2020/07/12
- [elpa] externals/hyperbole 0f8c29e 07/51: Merge branch 'master' of github.com:rswgnu/hyperbole, Stefan Monnier, 2020/07/12
- [elpa] externals/hyperbole d087a82 11/51: Fixes for 7.0.8 test release, Stefan Monnier, 2020/07/12
- [elpa] externals/hyperbole fc7c511 15/51: Merge branch 'master' of hyperbole, Stefan Monnier, 2020/07/12
- [elpa] externals/hyperbole 4f0a651 16/51: hproperty:but-flash-time - revert value from 0.05 back to 1000, Stefan Monnier, 2020/07/12
- [elpa] externals/hyperbole c30a718 18/51: Fix out-of-date imenu index after buffer changes, Stefan Monnier, 2020/07/12
- [elpa] externals/hyperbole 766ac22 04/51: Large commit of RSW changes,
Stefan Monnier <=
- [elpa] externals/hyperbole 9e2b4ba 08/51: hui-select.el - remove require of kotl-mode; caused cyclical loads, Stefan Monnier, 2020/07/12
- [elpa] externals/hyperbole 8e6ea41 12/51: Fix ibut handling in programming modes; add button links to glossary, Stefan Monnier, 2020/07/12
- [elpa] externals/hyperbole ad4dc9f 09/51: Makefile - add missing gzipped tar file dependency to 'ftp' target, Stefan Monnier, 2020/07/12
- [elpa] externals/hyperbole 0e1203c 32/51: Publish 7.1.0 test release, Stefan Monnier, 2020/07/12
- [elpa] externals/hyperbole c565349 33/51: Fix entry addition which was failing due to level handling change, Stefan Monnier, 2020/07/12
- [elpa] externals/hyperbole db4dd6c 13/51: Use float for delay instead of looping (#21), Stefan Monnier, 2020/07/12
- [elpa] externals/hyperbole 5119a4c 17/51: hui-em-but.el: Properly highlight explicit buttons when loading, Stefan Monnier, 2020/07/12
- [elpa] externals/hyperbole 9a94a8f 19/51: Fix hproperty:item-highlight-color init error; add regional 'throw', Stefan Monnier, 2020/07/12
- [elpa] externals/hyperbole 45fff9a 23/51: Many bug fixes and improvements, Stefan Monnier, 2020/07/12
- [elpa] externals/hyperbole 6e55a34 34/51: Fix ebut:get calls to send file as 3rd arg, not 2nd, Stefan Monnier, 2020/07/12