This is Info file ../info/hyperbole.info, produced by Makeinfo-1.63
from the input file hyperbole.texi.


File: hyperbole.info,  Node: Glossary,  Next: Smart Key Reference,  Prev: Developing with Hyperbole,  Up: Top

Glossary
********

   Concepts pertinent to operational usage of Hyperbole are defined
here.  If some GNU Emacs terms are unfamiliar to you, *Note Emacs
Glossary: (emacs)Glossary.

`action'
     An executable behavior associated with a Hyperbole button.  A
     specific class of actions which display entities are called
     *links*, such as a link to a file.

`Action Key'
     See *Smart Key*.

`action type'
     A behavioral specification for use within Hyperbole buttons.
     Action types usually contain a set of parameters which must be
     given values for each button with which they are associated.  An
     action type together with a set of values, called arguments, may
     be considered an *action*.  *Actype* is a synonym for action type.

`activation'
     Request for a Hyperbole button to perform its action.  Ordinarily
     the user presses a key which selects and activates a button.

`ange-ftp'
     A standard GNU Emacs Lisp package which allows one to use pathnames
     that are accessible via the Internet File Transfer Protocol (ftp)
     just like other pathnames, for example when finding a file.  The
     latest version of ange-ftp may always be obtained via anonymous
     ftp to: `/ftp.gnu.ai.mit.edu:ange-ftp/ange-ftp.tar.gz'.

`argument'
     A button-specific value fed to a Hyperbole type specification when
     the button is activated.

`Assist Key'
     See *Smart Key*.

`attributes'
     Slot names associated with Hyperbole buttons.  An *attribute value*
     is associated with each button attribute.

`Augment'
     The Augment system, originally named NLS, was a pioneering
     research and production system aimed at augmenting human intellect
     and group knowledge processing capabilities through integrated
     tools and organizational development strategies.  This approach
     led to the invention of much of interactive computing technology
     decades ahead of other efforts, including: the mouse, screen
     windows, true hypertext, outline processors, groupware, and
     digitally signed documents.  *Note References::, which cites
     several Douglas Engelbart papers on the subject.  The Koutliner
     concept emerged from studies of publicly available information
     concerning Augment.

`button'
     A selectable Hyperbole construct which performs an action.  A
     button consists of a set of attributes that includes: a textual
     label, a category, a type and zero or more arguments.  *Explicit
     buttons* also have creator, create time, last modifier, and last
     modifier time attributes.

     Buttons provide the user's gateway to information.  The user sees
     and interacts with button labels, the rest of the button data is
     managed invisibly by Hyperbole and displayed only in response to
     user queries.

`button activation'
     See *activation*.

`button attributes'
     See *attributes*.

`button data'
     Lists of button attribute values explicitly saved and managed by
     Hyperbole.  One list for each button created by Hyperbole.

`button file, local'
     A per-directory file named `HYPB' that may be used to store any
     desired buttons and may then be displayed via a menu selection
     whenever a user is within that directory.

`button file, personal'
     A per-user file named `HYPB' that may be used to store any desired
     buttons and may then be displayed via a menu selection.

`button key'
     A normalized form of a *button label* used internally by Hyperbole.

`button label'
     A text string that visually indicates a Hyperbole button location
     and provides it with a name and unique identifier.  Within a
     buffer, buttons with the same label are considered separate views
     of the same button and 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.

     The maximum length of a button label is limited by the variable
     EBUT:MAX-LEN.

`button selection'
     The act of designating a Hyperbole button upon which to operate.
     Use the Action Key to select a button.

`category'
     A high-level, conceptual grouping of Hyperbole buttons into
     classes.  *Implicit* and *explicit* groupings represent categories.

`cell'
     See *kcell*.

`children'
     The set of koutline cells which share a common parent cell and are
     one level deeper than the parent.

`class'
     A group of functions and variables with the same prefix in their
     names, used to provide an interface to an internal or external
     Hyperbole abstraction.

`context'
     A programmatic or positional state recognized by Hyperbole.  We
     speak of Smart Key and implicit button contexts.  Both are
     typically defined in terms of surrounding patterns within a
     buffer, but may be defined by arbitrary Emacs Lisp predicates.
     (Context may come to have a broader meaning within future versions
     of Hyperbole.)

`environment'
     See *Hyperbole environment*.

`efs'
     The much larger successor to ange-ftp.  It does the same thing as
     ange-ftp but works with more types of ftp hosts.  See *ange-ftp*.

`explicit button'
     A button created and managed by Hyperbole.  By default, explicit
     buttons are delimited like this `<(fake button)>'.  Direct
     selection is used to operate upon an explicit button.

`global button'
     A form of explicit button which is typically accessed by name
     rather than direct selection.  Global buttons are useful when one
     wants quick access to actions such as jumping to common file
     locations or for performing sequences of operations.  One need not
     locate them since they are always available by name, with full
     completion offered.  All global buttons are stored in the file
     given by the variable GBUT:FILE and may be activated as regular
     explicit buttons by visiting this file.  By default, this is the
     same as the user's personal button file.

`global button file'
     See *button file, personal*.

`hook variable'
     A variable that permits customization of an existing function's
     operation without the need to edit the function's code.  See also
     the documentation for the function `(run-hooks)'.

`Hyperbole'
     A flexible, programmable information management and viewing system
     built on top of GNU Emacs.  It utilizes a button-action model and
     supports hypertextual linkages.  Hyperbole is all things to all
     people.

`Hyperbole environment'
     A programmatic context within which Hyperbole operates.  This
     includes the set of Hyperbole types defined and the set of
     Hyperbole code modules loaded.  It does not include the set of
     accessible buttons.  Although the entire Emacs environment is
     available to Hyperbole, we do not speak of this as part of the
     Hyperbole environment.

`hypertext'
     A text or group of texts which may be explored in a non-linear
     fashion through associative linkages embedded throughout the text.
     Instead of simply referring to other pieces of work, hypertext
     references when followed actually take you to the works themselves.

`implicit button'
     A button recognized contextually by Hyperbole.  Such buttons
     contain no button data.  See also *implicit button type*.

`implicit button type'
     A specification of how to recognize and activate implicit buttons
     of a specific kind.  Implicit button types often utilize structure
     internal to documents created and managed without Hyperbole
     assistance, for example, programming documentation.  *Ibtype* is a
     synonym for implicit button type.  See also *system encapsulation*.

`instance number'
     A colon prefaced number appended to the label of a newly created
     button when the button's label duplicates the label of an existing
     button in the current buffer.  This number makes the label unique
     and so allows any number of buttons with the same base label
     within a single buffer.

`koutline'
     A hierarchically ordered grouping of cells which may be stored as
     a file and viewed and edited as an outline.

`Koutliner'
     Koutliner, the Hyperbole outliner, is a powerful autonumbering
     outliner with permanent hypertext anchors for easy hyperlinking
     and view specs for rapid outline view alteration.

`kcell'
     Cells or kcells are elements within koutlines.  Each cell contains
     textual and graphical contents, a relative identifier, a permanent
     identifier and a set of attributes such as the user who created
     the cell and the time of creation.  See also *Koutliner*.

`link'
     A reference from a Hyperbole button to an entity.  The referenced
     entity is sometimes called a *node* or *referent*.  A specific
     class of actions which display entities are called *links*, such
     as a link to a file.

`local button file'
     See *button file, local*.

`minibuffer window'
     The one line window at the bottom of a frame where messages and
     prompts are displayed.

`minibuffer menu'
     A Hyperbole menu displayed in the minibuffer window.  Each menu
     item within a minibuffer menu begins with a different letter that
     can be used to invoke the item (case doesn't matter).  Items that
     display other menus end with a forward slash, /.

`mouse button'
`mouse key'
     See *Smart Key*.

`node'
     See *link* or *cell*.

`outline'
     See *koutline*.

`parent'
     Any koutline cell which has children.

`predecessor'
     The previous same level koutline cell with the same parent.

`predicate'
     A boolean (nil = false, non-nil = true) Lisp expression typically
     evaluated as part of a conditional expression.

`referent'
     See *link*.

`rolodex'
     Wrolo, the Hyperbole rolodex, provides rapid lookup of multi-line,
     hierarchically ordered free form text records.

`root cell'
     A koutline cell which has cells below it.  All such cells share
     the same root cell.

`Smart Key'
     A context-sensitive key used within Hyperbole and beyond.
     Actually, there are two Smart Keys, the Action Key and the Assist
     Key.  The Action Key, typically bound to the shift-middle mouse
     key (or shift-left mouse key on a 2-button mouse), activates
     Hyperbole buttons and scrolls the current buffer line to the top
     of the window when pressed at the end of a line.  The Assist Key,
     typically bound to the shift-right mouse key, explains what a
     Hyperbole button does or scrolls the current line to the bottom of
     the window when pressed at the end of a line.  (See the
     documentation for the variable, SMART-SCROLL-PROPORTIONAL, for
     information on how to make these keys scroll forward and backward a
     windowful at a time).

     To see what a Smart Key will do within a particular context,
     depress and hold the key at the point desired and depress the
     other Smart Key.  A buffer containing a description of its
     contextual function will then be displayed.  You may release the
     two keys in any order after you have them both depressed.  A press
     of the Assist Key in an unsupported context displays a summary of
     Smart Key functions in each context, as does the Doc/SmartKy menu
     item.

`source buffer / file'
     The buffer or file within which a Hyperbole button is embedded.

`subtree'
     All of the cells in a koutline which share the same root cell,
     excluding the root cell.

`successor'
     The next same level koutline cell with the same parent.

`system encapsulation'
     Use of Hyperbole to provide an improved or simply consistent user
     interface to another system.  Typically, implicit button types are
     defined to recognize and activate button-type constructs managed
     by the other system.

`tree'
     The set of cells in a koutline that share a common root cell,
     including the root cell.

`view'
     A perspective on some information.  A view can affect the extent
     of the information displayed, its format, modes used to operate on
     it, its display location and so forth.

`view spec'
     A terse (and to the uninitiated, cryptic) string that specifies a
     particular view of koutline or a link referent.  If a view spec is
     in use in a buffer, the view spec appears in the modeline
     delimited by <|view spec>.


File: hyperbole.info,  Node: Smart Key Reference,  Next: Outliner Keys,  Prev: Glossary,  Up: Top

Smart Key Reference
*******************

   This appendix supplies complete documentation on Smart Key
operation.  It is quite extensive and is meant for reference rather
than sequential reading.  *Note Smart Keys::, for a description of the
Smart Keys.  That section also describes how to get context-sensitive
Smart Key help, with which you can explore Smart Key operation bit by
bit.

   Smart Key operations are context-sensitive.  Contexts are described
herein as conditionals, e.g. when depressed here, if this is true, etc.
Each Smart Key context is listed in the order in which it will be
checked.  The first matching context is always the one applied.  Within
each context, the actions performed by the Action and Assist Keys are
listed.

* Menu:

* Smart Mouse Keys::
* Smart Keyboard Keys::


File: hyperbole.info,  Node: Smart Mouse Keys,  Next: Smart Keyboard Keys,  Prev: Smart Key Reference,  Up: Smart Key Reference

Smart Mouse Keys
================

   Smart Key drags and modeline presses can only be used when running
under a window system with mouse key support.  So keep in mind that the
operations in this section apply only if you have mouse support within
Hyperbole.  The Smart Key operations in, *Note Smart Keyboard Keys::,
apply to both mouse and keyboard Smart Key usage.

If dragged from a side-by-side window edge or from the immediate left of
a vertical scroll bar:
  ACTION or ASSIST
     Resizes adjacent window sides to the point of drag release.

If dragged from inside one window to another:
  ACTION
     Creates a new link button at the drag start location, linked to the
     drag end location.  If drag start position is within a button,
     modifies the button to link to drag end location.
  ASSIST
     Swaps buffers in the two windows.

If dragged horizontally within a single window while depressed
(hmouse-x-drag-sensitivity sets the minimal horizontal movement which
registers a drag):
  ACTION
     Goes to buffer end if drag was to the right, otherwise goes to beginning.
  ASSIST
     Splits window vertically if drag was to the right, otherwise deletes
     window.

If depressed within a window mode line:
  ACTION
     (1) clicked on left edge of a window's modeline,
         window's buffer is buried (placed at bottom of buffer list);
     (2) clicked on right edge of a window's modeline,
         the Info buffer is displayed, or if already displayed and the
         modeline clicked belongs to a window displaying Info, the Info
         buffer is hidden;
     (3) clicked anywhere in the middle of a window's modeline,
	 the functions listed in 'assist-key-modeline-hook' are
         called;
     (4) dragged vertically from modeline to within a window,
         the modeline is moved to point of key release, thereby resizing
         its window and potentially its vertical neighbors.
  ASSIST
     (1) clicked on left edge of a window's modeline,
         bottom buffer in buffer list is unburied and placed in window;
     (2) clicked on right edge of a window's modeline,
         the summary of Smart Key behavior is displayed, or if already
         displayed and the modeline clicked belongs to a window displaying
         the summary, the summary buffer is hidden;
     (3) clicked anywhere in the middle of a window's modeline,
         a popup menu (if available) is displayed;
     (4) dragged vertically from modeline to within a window,
         the modeline is moved to point of key release, thereby resizing
         its window and potentially its vertical neighbors.

If dragged vertically within a single window while depressed
(hmouse-y-drag-sensitivity sets the minimal vertical movement which
registers a drag):
  ACTION or ASSIST
     Splits current window into two side-by-side windows.

If dragged diagonally within a single window while depressed
(hmouse-x-diagonal-sensitivity and hmouse-y-diagonal-sensitivity set the
minimal diagonal movement which registers a drag):
  ACTION
     Save current window configuration onto a ring of window configurations.
  ASSIST
     Restores prior window configuration from ring.  A prefix argument N
     specifies the Nth prior configuration from the ring.


File: hyperbole.info,  Node: Smart Keyboard Keys,  Prev: Smart Mouse Keys,  Up: Smart Key Reference

Smart Keyboard Keys
===================

When prompting for a Hyperbole argument, a press in the minibuffer:
  ACTION
     Terminates this minibuffer argument.
  ASSIST
     Offers completion help for current minibuffer argument.

When reading a Hyperbole menu item or a Hyperbole completion-based argument:
  ACTION
     Returns value selected at point if any, else nil.  If
     value is the same as the contents of the minibuffer, it is used as the
     current minibuffer argument, otherwise, the minibuffer is erased and
     value is inserted there.

  ASSIST
     Displays Hyperbole menu item help when item is selected.

When pressed at the end of a line but not the end of a buffer:
  ACTION
     Scrolls up according to value of smart-scroll-proportional.  If
     smart-scroll-proportional is nil or if point is on the top
     window line, scrolls up (forward) a windowful.  Otherwise, tries to
     bring current line to top of window.  Leaves point at end of line and
     returns t if scrolled, nil if not.
  ASSIST
     Scrolls down according to value of smart-scroll-proportional.  If
     smart-scroll-proportional is nil or if point is on the
     bottom window line, scrolls down (backward) a windowful.  Otherwise,
     tries to bring current line to bottom of window.  Leaves point at end of
     line and returns t if scrolled, nil if not.

When pressed on a Hyperbole button:
  ACTION
     Activates button.
  ASSIST
     Displays help for button, typically a summary of its attributes.

If pressed within a buffer in View major or minor mode:
  ACTION
     Scrolls buffer forward a windowful and quits from view mode when at
     the last line of the buffer.
  ASSIST
     Scrolls buffer backward a windowful.

When pressed within a Hyperbole outliner buffer (kotl-mode):
  ACTION
     (1) at the end of buffer, uncollapse and unhide all cells in view;
     (2) within a cell, if its subtree is hidden then show it,
         otherwise hide it;
     (3) between cells or within the read-only indentation region to the
         left of a cell, then move point to prior location and begin
	 creation of a klink to some other outline cell; hit the Action
	 Key twice to select the link referent cell;
     (4) anywhere else, scroll up a windowful.
  ASSIST
     (1) at the end of buffer, collapse all cells and hide all non-level-one
         cells;
     (2) on a header line but not at the beginning or end, display
         properties of each cell in kotl beginning at point;
     (3) between cells or within the read-only indentation region to the
         left of a cell, then move point to prior location and prompt to
         move one tree to a new location in the outline; hit the Action
         Key twice to select the tree to move and where to move it;
     (4) anywhere else, scroll down a windowful.

When pressed on a Smart Menu item:
  ACTION
    Activates item.
  ASSIST
    Displays help for item.

When pressed at the end of a Help buffer:
  ACTION or ASSIST
    Restores window configuration prior to help display.

When pressed within an OO-Browser listing window:
  ACTION
     (1) in a blank buffer or at the end of a buffer, browser help
         information is displayed in the viewer window;
     (2) at the beginning of a (non-single char) class name, the class'
         ancestors are listed;
     (3) at the end of an entry line, scrolls listing up;
     (4) on the '...', following a class name, point is moved to the class
         descendency expansion;
     (5) before an element name, the implementor classes of the name are
         listed;
     (6) anywhere else on an entry line, the source is displayed for editing.
  ASSIST
     (1) in a blank buffer, a selection list of buffer files is displayed;
     (2) at the beginning of a (non-single char) entry, the class'
         descendants are listed;
     (3) at the end of an entry line, scrolls listing down;
     (4) on the '...', following a class name, point is moved to the class
         expansion;
     (5) anywhere else on a class entry line, lists the class' elements;
     (6) anywhere else on an element line, lists the element's implementor
         classes;
     (7) on a blank line following all entries, the current listing buffer
         is exited.

When pressed within an OO-Browser Command Help Menu buffer:
  ACTION
     Executes an OO-Browser command whose key binding is at point.
  ASSIST
     Displays help for an OO-Browser command whose key binding is at point.

When pressed on an identifier within an OO-Browser source file:
  ACTION
     Tries to display identifier definition.
  ASSIST
     Not applicable.

When pressed within a C source code file:
  ACTION
     Jumps to the definition of selected C construct:
     (1) on a '#include' statement, the include file is displayed;
         Look for include file in directory lists
         'smart-c-cpp-include-dirs' and 'smart-c-include-dirs'.
     (2) on a C identifier, the identifier definition is displayed,
         assuming the identifier is found within an 'etags' generated tag file
         in the current directory or any of its ancestor directories.
     (3) if 'smart-c-use-lib-man' is non-nil, the C identifier is
         recognized as a library symbol, and a man page is found for the
         identifier, then the man page is displayed.
  ASSIST
     Jumps to the next tag matching an identifier at point.

When pressed within an assembly source code file:
  ACTION
     Jumps to the definition of selected assembly construct:
     (1) on an include statement, the include file is displayed;
         Look for include file in directory list
         'smart-asm-include-dirs'.
     (2) on an identifier, the identifier definition is displayed,
         assuming the identifier is found within an 'etags' generated
	 tag file in the current directory or any of its ancestor
	 directories.
  ASSIST
     Jumps to the next tag matching an identifier at point.

When pressed within a C++ source code file:
  ACTION
     Jumps to the definition of selected C+ construct:
     (1) on a '#include' statement, the include file is displayed;
         Look for include file in directory lists
         'smart-c-cpp-include-dirs' and 'smart-c-include-dirs'.
     (2) on a C++ identifier, the identifier definition is displayed,
         assuming the identifier is found within an 'etags' generated tag file
         in the current directory or any of its ancestor directories.
     (3) if 'smart-c-use-lib-man' is non-nil, the C++ identifier is
         recognized as a library symbol, and a man page is found for the
         identifier, then the man page is displayed.
  ASSIST
     Jumps to the next tag matching an identifier at point.

When pressed within a Objective-C source code file:
  ACTION
     Jumps to the definition of selected C+ construct:
     (1) on a '#include' statement, the include file is displayed;
         Look for include file in directory lists
         'smart-c-cpp-include-dirs' and 'smart-c-include-dirs'.
     (2) on an Objective-C identifier, the identifier definition is displayed,
         assuming the identifier is found within an 'etags' generated tag file
         in the current directory or any of its ancestor directories.
     (3) if 'smart-c-use-lib-man' is non-nil, the Objective-C identifier is
         recognized as a library symbol, and a man page is found for the
         identifier, then the man page is displayed.
  ASSIST
     Jumps to the next tag matching an identifier at point.

When pressed on a Lisp symbol within a Lisp code buffer:
  ACTION
     Jumps to the definition of any selected Lisp construct.
     If on an Emacs Lisp require, load, or autoload clause and 'find-library'
     from load-library package by Hallvard Furuseth <hallvard@ifi.uio.no> has
     been loaded, jumps to library source, if possible.
  ASSIST
     Jumps to the next tag matching an identifier at point or if using the
     "wtags" package and identifier is an Emacs Lisp symbol, then displays
     documentation for the symbol.

When the OO-Browser has been loaded and the press is within a C++ buffer:
  ACTION or ASSIST
     Jumps to the definition of selected C++ construct via OO-Browser support.
     (1) on a '#include' statement, the include file is displayed;
         Look for include file in directory lists
         'smart-c-cpp-include-dirs' and 'smart-c-include-dirs'.
     (2) within a method declaration, its definition is displayed;
     (3) on a class name, the class definition is shown.

When the OO-Browser has been loaded and the press is within a
Objective-C buffer:
  ACTION or ASSIST
     Jumps to the definition of selected Objective-C construct via
     OO-Browser support.
     (1) on a '#include' statement, the include file is displayed;
         Look for include file in directory lists
         'smart-c-cpp-include-dirs' and 'smart-c-include-dirs'.
     (2) within a method declaration, its definition is displayed;
     (3) on a class name, the class definition is shown.

When pressed within an occur-mode or moccur-mode buffer:
  ACTION or ASSIST
     Jumps to the source buffer and line of the current occurrence.

When pressed within a calendar-mode buffer:
  ACTION
     (1) at the end of the buffer, the calendar is scrolled forward 3 months;
     (2) to the left of any dates on a calendar line, the calendar is scrolled
         backward 3 months;
     (3) on a date, the diary entries for the date, if any, are displayed.
  ASSIST
     (1) at the end of the buffer, the calendar is scrolled backward 3 months;
     (2) to the left of any dates on a calendar line, the calendar is scrolled
         forward 3 months;
     (3) anywhere else, all dates with marking diary entries are marked in the
         calendar window.

When pressed within a man page apropos buffer:
  ACTION
     (1) on a UNIX man apropos entry, the man page for that entry is
         displayed in another window;
     (2) on or after the last line, the buffer in the other window is
         scrolled up a windowful.
  ASSIST
     (1) on a UNIX man apropos entry, the man page for that entry is
         displayed in another window;
     (2) on or after the last line, the buffer in the other window is
         scrolled down a windowful.

If Smart Menu package has been loaded and 'hkey-always-display-menu' is
non-nil:
  ACTION or ASSIST
     Pops up a window with a Smart Menu of commands.
     Menu displayed is selected by (smart-menu-choose-menu).

If pressed within an outline-mode buffer or when 'selective-display' is
non-nil:
  ACTION
     Collapses, expands, and moves outline entries.
     (1) after an outline heading has been cut via the Action Key, then paste
         the cut heading at point;
     (2) at the end of buffer, show all buffer text
     (3) at the beginning of a heading line, cut the headings subtree from the
         buffer;
     (4) on a header line but not at the beginning or end, if headings
         subtree is hidden then show it, otherwise hide it;
     (5) anywhere else, scroll up a windowful.
  ASSIST
     (1) after an outline heading has been cut via the Action Key, allow
         multiple pastes throughout the buffer (last paste should be done
         with the Action Key, not the Assist Key);
     (2) at the end of buffer, hide all bodies in buffer;
     (3) at the beginning of a heading line, cut the current heading (sans
         subtree) from the buffer;
     (4) on a header line but not at the beginning or end, if heading body is
         hidden then show it, otherwise hide it;
     (5) anywhere else, scroll down a windowful.

If pressed within an Info manual node:
  ACTION
     (1) the first line of an Info Menu Entry or Cross Reference, the desired
         node is found;
     (2) the Up,Next,or Previous entries of a Node Header (first line),
         the desired node is found;
     (3) the File entry of a Node Header (first line),
         the 'Top' node within that file is found;
     (4) at the end of the current node, the Next node is found (this will
         descend subtrees if the function 'Info-global-next' is bound);
     (5) anywhere else (e.g. at the end of a line), the current node entry is
         scrolled up a windowful.
  ASSIST
     (1) the first line of an Info Menu Entry or Cross Reference, the desired
         node is found;
     (2) the Up,Next,or Previous entries of a Node Header (first line),
         the last node in the history list is found;
     (3) the File entry of a Node Header (first line),
         the 'DIR' root-level node is found;
     (4) at the end of the current node, the Previous node is found (this will
         return from subtrees if the function 'Info-global-prev is bound);
     (5) anywhere else (e.g. at the end of a line), the current node entry is
         scrolled down a windowful.

If pressed within a Hyperbole-supported mail reader, 'hmail:reader', or mail
summary mode, 'hmail:lister', buffer at:
  ACTION
     (1) a msg buffer, within the first line or at the end of a message,
         the next undeleted message is displayed;
     (2) a msg buffer within the first line of an Info cross reference, the
         reference is followed;
     (3) anywhere else in a msg buffer, the window is scrolled up one
	 windowful;
     (4) a msg summary buffer on a header entry, the message corresponding to
         the header is displayed in the msg window;
     (5) a msg summary buffer, on or after the last line, the messages marked
         for deletion are expunged.
  ASSIST
     (1) a msg buffer, within the first line or at the end of a message,
         the previous undeleted message is displayed;
     (2) a msg buffer within the first line of an Info cross reference, the
         reference is followed;
     (3) anywhere else in a msg buffer, the window is scrolled down one
         windowful;
     (4) a msg summary buffer on a header entry, the message corresponding to
         the header is marked as deleted;
     (5) a msg summary buffer, on or after the last line, all messages are
         marked undeleted.

If pressed within a GNUS listing of newsgroups buffer at:
  ACTION
     (1) a GNUS-GROUP line, that newsgroup is read;
     (2) to the left of any GNUS-GROUP line, on any of the whitespace, the
         current group is unsubscribed or resubscribed;
     (3) at the end of the GNUS-GROUP buffer, after all lines, checks for new
         news.
  ASSIST
     (1) a GNUS-GROUP line, that newsgroup is read;
     (2) to the left of any GNUS-GROUP line, on any of the whitespace, the
         user is prompted for a group name to subscribe or unsubscribe to;
     (3) at the end of the GNUS-GROUP buffer, after all lines, quits from the
         newsreader.

If pressed within a GNUS newsreader subject listing buffer at:
  ACTION
     (1) a GNUS-SUBJECT line, that article is read, marked deleted, and
         scrolled forward;
     (2) at the end of the GNUS-SUBJECT buffer, the next undeleted article
         is read or the next group is entered.
  ASSIST
     (1) a GNUS-SUBJECT line, that article is read and scrolled backward;
     (2) at the end of the GNUS-SUBJECT buffer, the subject is exited, the
         user is returned to group mode.

If pressed within a GNUS newsreader article buffer at:
  ACTION
     (1) the first line or end of an article, the next unread message is
         displayed;
     (2) the first line of an Info cross reference, the reference is followed;
     (3) anywhere else, the window is scrolled up a windowful.
  ASSIST
     (1) the first line or end of an article, the previous message is
         displayed;
     (2) the first line of an Info cross reference, the reference is followed;
     (3) anywhere else, the window is scrolled down a windowful.

If pressed within a listing of buffers (Buffer-menu-mode):
  ACTION
     (1) on the first column of an entry, the selected buffer is marked for
         display;
     (2) on the second column of an entry, the selected buffer is marked to be
         saved;
     (3) anywhere else within an entry line, all saves and deletes are done,
         and selected buffers are displayed, including the one just clicked
         on (if in the OO-Browser, only the selected buffer is displayed);
     (4) on or after the last line in the buffer, all saves and deletes are
         done.
  ASSIST
     (1) on the first or second column of an entry, the selected buffer is
         unmarked for display and for saving or deletion;
     (2) anywhere else within an entry line, the selected buffer is marked for
         deletion;
     (3) on or after the last line in the buffer, all display, save, and delete
         marks on all entries are undone.

If pressed within a dired-mode buffer:
  ACTION
     (1) within an entry line, the selected file/directory is displayed
         for editing in the other window;
     (2) on or after the last line in the buffer, if any deletes are to be
         performed, they are executed after user verification, otherwise, this
         dired invocation is quit.
  ASSIST
     (1) on a '~' character, all backup files in the directory are marked for
         deletion;
     (2) on a '#' character, all auto-save files in the directory are marked
         for deletion;
     (3) anywhere else within an entry line, the current entry is marked for
         deletion;
     (4) on or after the last line in the buffer, all delete marks on all
         entries are undone.

If pressed within a tar-mode buffer:
  ACTION
     (1) within an entry line, the selected file/directory is displayed
         for editing in the other window;
     (2) on or after the last line in the buffer, if any deletes are to be
         performed, they are executed after user verification, otherwise, this
         tar file browser is quit.
  ASSIST
     (1) on an entry line, the current entry is marked for deletion;
     (2) on or after the last line in the buffer, all delete marks on all
         entries are undone.

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
specification (see 'smart-man-c-routine-ref') and man page buffer
has either an attached file or else a MAN-PATH local variable
containing its pathname:
  ACTION or ASSIST
     Displays man page or source code for cross reference.

If pressed on a world-wide web universal resource locator:
  ACTION
     Displays the URL referent at point.
  ASSIST
     Goes back to a previously displayed web page.

If pressed in a Gomoku game buffer.
  ACTION
     Makes a move at the space pointed to.
  ASSIST
     Takes back a prior move made at the space pointed to.

If pressed within an entry in the wrolo match display buffer:
  ACTION or ASSIST
     The entry is edited in the other window.

