This page is about the following libraries, which together enhance the Emacs help system:

Each of these libraries provides enhancements to the standard Emacs library of the same name but without the `+’. Library help+20.el is an exception to this naming convention; it enhances standard library help.el for Emacs 20. Library help-macro+.el works for Emacs 20 and later. The other libraries work with Emacs 22 and later.

Help Commands Provide Links to Manuals

Pretty much all of the standard help commands (‘describe-face’, ‘describe-function’, ‘describe-variable’,…), as well as the new help commands described below (‘describe-keymap’,…), are enhanced by help-fns+.el (starting with Emacs version 23.2) so that the ‘*Help*’ window also has a link to the locations in the various manuals (Info) where the given help target is indexed.

For example, if you do ‘C-h f forward-char’, the ‘*Help*’ buffer has this text, where ‘manuals’ is a link:

  For more information check the manuals.

If you click ‘manuals’ you get an Info buffer that is a menu of the index entries for ‘forward-char’ in all of the manuals searched. In the case of function ‘forward-char’ it has two links, one to the ElispManual, one to the EmacsManual:

  * forward-char [elisp]:      (elisp)Character Motion.
  * forward-char [emacs]:      (emacs)Moving Point.

Which manuals are searched this way for index entries? You control this using user option ‘help-cross-reference-manuals’. You can have Emacs check all manuals on your system or just a specific set of manuals (or no manuals, to turn off this feature). By default, only the Emacs manual and Elisp manual are searched.

If, for example, you customize ‘help-cross-reference-manuals’ so that it searches all manuals, then the manuals link from ‘C-h f forward-char’ will give you an Info menu something like this:

  * forward-char [elisp]:      (elisp)Character Motion.
  * forward-char [emacs]:      (emacs)Moving Point.
  * forward-char [mh-e]:       (mh-e)Processing Mail Tour.

Obviously, searching the indexes of all manuals takes more time.

Option ‘help-cross-reference-manuals’ also controls whether to check for manual entries before adding the For more information check the manuals. link. By default, there is no check: the link is added even if there might not be any manual entries for the help target. This saves time. When you click the link the target is looked up in the manual indexes, in any case.

Keys in Help are Linked to Their Doc

Often, key descriptions (names) appearing in help output were provided initially as their associated command names. This provides flexibility, since it is the command that is most important. If a command ‘foobar’ is rebound from its default key then we want the doc to mention the new key.

For instance, a doc string that uses "the key `\\[forward-char]' does..." results in the output the key `C-f' does..., if command ‘forward-char’ is bound to key ‘C-f’.

This association between key and command is lost in the output, however. Starting with Emacs 23, library help-fns+.el enhances such key names by turning them into links to the doc for the corresponding commands. In the above doc string example, the key name ‘C-f’ is a link you can click (or hit ‘RET’ on), to see its doc, that is, the doc for command ‘forward-char’.

This enhancement affects only key names derived using the special doc-string construction `\\[...]’. It has no effect on key names that are hard-coded.

New Commands

The following new commands are provided:

Enhanced Commands

The following standard Emacs commands have been improved:

Additional Key Bindings

The following key bindings have been added:

Other Enhancements

Library help-mode+.el enhances the ‘*Help*’ buffer by providing links for libraries that are mentioned there – see HelpModePlus.

The doc string for command ‘help-for-help’ (‘C-h C-h’) was rewritten to be more informative and clearer. Library help-macro+.el enhances macro ‘make-help-screen’ (which is used to create the ‘help-for-help’ display) to play well with frames (e.g. non-‘nil’ ‘pop-up-frames’).

See Also

DrewsElispLibraries referenced here: Lisp:help-macro+.el, Lisp:help+.el, Lisp:help+20.el, Lisp:help-fns+.el, Lisp:help-mode+.el