XEmacs 21.2.32 "Kastor & Polydeukes".
[chise/xemacs-chise.git.1] / man / xemacs / help.texi
index 2b517fc..6fa5fd8 100644 (file)
@@ -1,20 +1,28 @@
 
 @node Help, Mark, M-x, Top
 @chapter Help
+@kindex Help
 @cindex help
 @cindex self-documentation
+@findex help-command
+@kindex C-h
+@kindex F1
 
-  Emacs provides extensive help features which revolve around a single
+  XEmacs provides extensive help features accessible through a single
 character, @kbd{C-h}.  @kbd{C-h} is a prefix key that is used only for
-documentation-printing commands.  The characters you can type after
+documentation-printing commands.  The characters that you can type after
 @kbd{C-h} are called @dfn{help options}.  One help option is @kbd{C-h};
-you use it to ask for help about using @kbd{C-h}.
+that is how you ask for help about using @kbd{C-h}.  To cancel, type
+@kbd{C-g}.  The function key @key{F1} is equivalent to @kbd{C-h}.
 
-  @kbd{C-h C-h} prints a list of the possible help options, and then asks
-you to type the desired option.  It prompts with the string:
+@kindex C-h C-h
+@findex help-for-help
+  @kbd{C-h C-h} (@code{help-for-help}) displays a list of the possible
+help options, and then asks you to type the desired option.  It prompts
+with the string:
 
 @smallexample
-A, B, C, F, I, K, L, M, N, S, T, V, W, C-c, C-d, C-n, C-w or C-h for more help:
+A B C F I K L M N P S T V W C-c C-d C-f C-i C-k C-n C-w;  ? for more help:
 @end smallexample
 
 @noindent
@@ -23,66 +31,109 @@ You should type one of those characters.
   Typing a third @kbd{C-h} displays a description of what the options mean;
 Emacs still waits for you to type an option.  To cancel, type @kbd{C-g}.
 
+  Most help buffers use a special major mode, Help mode, which lets you
+scroll conveniently with @key{SPC} and @key{DEL} or @key{BS}.
+
+@menu
+* Help Summary::       Brief list of all Help commands.
+* Key Help::           Asking what a key does in XEmacs.
+* Name Help::          Asking about a command, variable or function name.
+* Apropos::            Asking what pertains to a given topic.
+* Library Keywords::   Finding Lisp libraries by keywords (topics).
+* Help Mode::           Special features of Help mode and Help buffers.
+* Misc Help::          Other help commands.
+@end menu
+
+@iftex
+@node Help Summary, Help Summary, Help, Help
+@end iftex
+@ifinfo
+@node Help Summary, Key Help, Help, Help
+@section Help Summary
+@end ifinfo
+
   Here is a summary of the defined help commands.
 
 @table @kbd
-@item C-h a @var{string} @key{RET}
-Display a list of commands whose names contain @var{string}
-(@code{command-@*apropos}).@refill
+@item C-h a @var{regexp} @key{RET}
+Display a list of functions and variables whose names match @var{regexp}
+(@code{heper-apropos}).
+@item C-h A @var{regexp}
+Show all commands whose names contain matches for @var{regexp}
+(@code{command-apropos}).
 @item C-h b
-Display a table of all key bindings currently in effect, with local bindings of
-the current major mode first, followed by all global bindings
-(@code{describe-bindings}).
+Display a table of all key bindings currently in effect, with local
+bindings of the current major mode first, followed by all global
+bindings (@code{describe-bindings}).
 @item C-h c @var{key}
-Print the name of the command that @var{key} runs (@code{describe-key-@*briefly}).
-@kbd{c} is for `character'.  For more extensive information on @var{key},
-use @kbd{C-h k}.
-@item C-h f @var{function} @key{RET}
+Print the name of the command that @var{key} runs
+(@code{describe-key-briefly}).  Here @kbd{c} stands for `character'.  For more
+extensive information on @var{key}, use @kbd{C-h k}.
+@item C-h d @var{function} @key{RET}
+@itemx C-h f @var{function} @key{RET}
 Display documentation on the Lisp function named @var{function}
-(@code{describe-function}).  Note that commands are Lisp functions, so
+(@code{describe-function}).  Since commands are Lisp functions,
 a command name may be used.
 @item C-h i
 Run Info, the program for browsing documentation files (@code{info}).
-The complete Emacs manual is available online in Info.
+The complete XEmacs manual is available online in Info.
 @item C-h k @var{key}
-Display name and documentation of the command @var{key} runs (@code{describe-key}).
+Display the name and documentation of the command that @var{key} runs
+(@code{describe-key}).
 @item C-h l
 Display a description of the last 100 characters you typed
 (@code{view-lossage}).
 @item C-h m
 Display documentation of the current major mode (@code{describe-mode}).
 @item C-h n
-Display documentation of Emacs changes, most recent first
+@itemx C-h C-n
+Display documentation of XEmacs changes, most recent first
 (@code{view-emacs-news}).
 @item C-h p
+Find packages by topic keyword (@code{finder-by-keyword}).
+@item C-h C-p
 Display a table of all mouse bindings currently in effect now, with
-local bindings of the current major mode first, followed by all global bindings
-(@code{describe-pointer}).
+local bindings of the current major mode first, followed by all global
+bindings (@code{describe-pointer}).
 @item C-h s
 Display current contents of the syntax table, plus an explanation of
-what they mean (@code{describe-syntax}).
+what they mean (@code{describe-syntax}).  @xref{Syntax}.
 @item C-h t
-Display the Emacs tutorial (@code{help-with-tutorial}).
+Enter the XEmacs interactive tutorial (@code{help-with-tutorial}).
 @item C-h v @var{var} @key{RET}
 Display the documentation of the Lisp variable @var{var}
-(@code{describe-@*variable}).
+(@code{describe-variable}).
 @item C-h w @var{command} @key{RET}
 Print which keys run the command named @var{command} (@code{where-is}).
-@item M-x apropos @var{regexp}
-Show all symbols whose names contain matches for @var{regexp}.
+@item C-h B @key{RET}
+Display info on how to deal with Beta versions of XEmacs
+(@code{describe-beta}).
+@item C-h C @var{group} @key{RET}
+Select customization buffer for @var{group} (@code{customize}).
+@item C-h F @key{RET}
+View the local copy of the XEmacs FAQ (@code{xemacs-local-faq}).
+@item C-h C-i @var{file} @key{RET}
+Read Info file @var{file} with Info browser (@code{Info-query}).
+@item C-h C-c @var{command} @key{RET}
+Look up an Emacs command @var{command} in the Emacs manual in the Info
+system (@code{Info-goto-emacs-command-node}).
+@item C-h C-f @var{function} @key{RET}
+Look up an Emacs Lisp function @var{function} in the Elisp manual in the
+Info system (@code{Info-elisp-ref}).
 @end table
 
+@node Key Help, Name Help, Help Summary, Help
 @section Documentation for a Key
 
 @kindex C-h c
 @findex describe-key-briefly
   The most basic @kbd{C-h} options are @kbd{C-h c}
-(@code{describe-key-briefly}) and @kbd{C-h k}@*(@code{describe-key}).
-@kbd{C-h c @var{key}} prints the name of the command that @var{key} is
-bound to in the echo area.  For example, @kbd{C-h c C-f} prints
+(@code{describe-key-briefly}) and @w{@kbd{C-h k}} (@code{describe-key}).
+@kbd{C-h c @var{key}} prints in the echo area the name of the command
+that @var{key} is bound to.  For example, @kbd{C-h c C-f} prints
 @samp{forward-char}.  Since command names are chosen to describe what
-the command does, using this option is a good way to get a somewhat cryptic
-description of what @var{key} does.@refill
+the commands do, this is a good way to get a very brief description of
+what @var{key} does.
 
 @kindex C-h k
 @findex describe-key
@@ -93,6 +144,10 @@ vector of events.  When called interactively, @var{key} may also be a menu
 selection.  This information does not usually fit into the echo area, so a
 window is used for the display.
 
+  @kbd{C-h c} and @kbd{C-h k} work for any sort of key sequences,
+including function keys and mouse events.
+
+@node Name Help, Apropos, Key Help, Help
 @section Help by Command or Variable Name
 
 @kindex C-h f
@@ -116,117 +171,238 @@ If the variable @code{describe-function-show-arglist} is @code{t},
 @code{describe-function} shows its arglist if the @var{function} is not
 an autoload function.
 
-  @kbd{C-h f} is also useful for Lisp functions you are planning to
-use in a Lisp program.  For example, if you have just written the code
-@code{(make-vector len)} and want to make sure you are using
-@code{make-vector} properly, type @kbd{C-h f make-vector @key{RET}}.  Because
-@kbd{C-h f} allows all function names, not just command names, you may find
-that some of your favorite abbreviations that work in @kbd{M-x} don't work
-in @kbd{C-h f}.  An abbreviation may be unique among command names, yet fail
-to be unique when other function names are allowed.
-
-
-If you type @key{RET}, leaving the minibuffer empty, @kbd{C-h f} by
-default describes the function called by the innermost Lisp expression
-in the buffer around point, @i{provided} that that is a valid, defined Lisp
-function name.  For example, if point is located following the text
+  @kbd{C-h f} is also useful for Lisp functions that you are planning to
+use in a Lisp program.  For example, if you have just written the
+expression @code{(make-vector len)} and want to make sure you are using
+@code{make-vector} properly, type @kbd{C-h f make-vector @key{RET}}.
+Because @kbd{C-h f} allows all function names, not just command names,
+you may find that some of your favorite abbreviations that work in
+@kbd{M-x} don't work in @kbd{C-h f}.  An abbreviation may be unique
+among command names, yet fail to be unique when other function names are
+allowed.
+
+  The function name for @kbd{C-h f} to describe has a default which is
+used if you type @key{RET} leaving the minibuffer empty.  The default is
+the function called by the innermost Lisp expression in the buffer
+around point, @emph{provided} that is a valid, defined Lisp function
+name.  For example, if point is located following the text
 @samp{(make-vector (car x)}, the innermost list containing point is the
-one starting with @samp{(make-vector}, so the default is to describe
-the function @code{make-vector}.
+one that starts with @samp{(make-vector}, so the default is to describe the
+function @code{make-vector}.
 
   @kbd{C-h f} is often useful just to verify that you have the right
-spelling for the function name.  If @kbd{C-h f} mentions a default in the
-prompt, you have typed the name of a defined Lisp function.  If that is
-what you wanted to know, just type @kbd{C-g} to cancel the @kbd{C-h f}
-command and continue editing.
+spelling for the function name.  If @kbd{C-h f} mentions a name from the
+buffer as the default, that name must be defined as a Lisp function.  If
+that is all you want to know, just type @kbd{C-g} to cancel the @kbd{C-h
+f} command, then go on editing.
 
 @kindex C-h w
 @findex where-is
-  @kbd{C-h w @var{command} @key{RET}} (@code{where-s}) tells you what 
+  @kbd{C-h w @var{command} @key{RET}} (@code{where-is}) tells you what
 keys are bound to @var{command}.  It prints a list of the keys in the
-echo area. Alternatively, it informs you that a command is not bound to 
-any keys, which implies that you must use @kbd{M-x} to call the 
-command.@refill
+echo area. Alternatively, it informs you that a command is not bound to
+any keys, which implies that you must use @kbd{M-x} to call the
+command.
 
 @kindex C-h v
 @findex describe-variable
   @kbd{C-h v} (@code{describe-variable}) is like @kbd{C-h f} but
 describes Lisp variables instead of Lisp functions.  Its default is the
 Lisp symbol around or before point, if that is the name of a known Lisp
-variable.  @xref{Variables}.@refill
+variable.  @xref{Variables}.
 
+@node Apropos, Library Keywords, Name Help, Help
 @section Apropos
 
-@kindex C-h a
+@kindex C-h A
 @findex command-apropos
-@cindex apropos 
+@cindex apropos
 
 @table @kbd
-@item C-h a 
+@item C-h A
 Show only symbols that are names of commands
-(@code{command-apropos}).@refill
+(@code{command-apropos}).
 
 @item M-x apropos @var{regexp}
 Show all symbols whose names comtain matches for @var{regexp}.
 @end table
 
-  It is possible to ask a question like, ``What are the commands for
-working with files?''  To do this, type @kbd{C-h a file @key{RET}},
-which displays a list of all command names that contain @samp{file},
-such as @code{copy-file}, @code{find-file}, and so on.  With each
-command name a brief description of its use and information on the keys
-you can use to invoke it is displayed.  For example, you would be
-informed that you can invoke @code{find-file} by typing @kbd{C-x C-f}.
-The @kbd{a} in @kbd{C-h a} stands for `Apropos'; @kbd{C-h a} runs the
-Lisp function @code{command-apropos}.@refill
-
-  Because @kbd{C-h a} looks only for functions whose names contain the
+  A more sophisticated sort of question to ask is, ``What are the
+commands for working with files?''  To ask this question, type @kbd{C-h
+a file @key{RET}}, which displays a list of all command names that
+contain @samp{file}, including @code{copy-file}, @code{find-file}, and
+so on.  With each command name appears a brief description of how to use
+the command, and what keys you can currently invoke it with.  For
+example, it would say that you can invoke @code{find-file} by typing
+@kbd{C-x C-f}.  The @kbd{A} in @kbd{C-h A} stands for `Apropos';
+@kbd{C-h A} runs the command @code{command-apropos}.  This command
+normally checks only commands (interactive functions); if you specify a
+prefix argument, it checks noninteractive functions as well.
+
+  Because @kbd{C-h A} looks only for functions whose names contain the
 string you specify, you must use ingenuity in choosing the string.  If
 you are looking for commands for killing backwards and @kbd{C-h a
-kill-backwards @key{RET}} doesn't reveal any commands, don't give up.
-Try just @kbd{kill}, or just @kbd{backwards}, or just @kbd{back}.  Be
-persistent.  Pretend you are playing Adventure.  Also note that you can
-use a regular expression as the argument (@pxref{Regexps}).
+kill-backwards @key{RET}} doesn't reveal any, don't give up.  Try just
+@kbd{kill}, or just @kbd{backwards}, or just @kbd{back}.  Be persistent.
+Pretend you are playing Adventure.  Also note that you can use a regular
+expression as the argument, for more flexibility (@pxref{Regexps}).
 
   Here is a set of arguments to give to @kbd{C-h a} that covers many
-classes of Emacs commands, since there are strong conventions for naming
-standard Emacs commands.  By giving you a feeling for the naming
-conventions, this set of arguments can also help you develop a
-technique for picking @code{apropos} strings.
+classes of XEmacs commands, since there are strong conventions for
+naming the standard XEmacs commands.  By giving you a feel for the
+naming conventions, this set should also serve to aid you in developing
+a technique for picking @code{apropos} strings.
 
 @quotation
 char, line, word, sentence, paragraph, region, page, sexp, list, defun,
-buffer, frame, window, file, dir, register, mode,
-beginning, end, forward, backward, next, previous, up, down, search, goto,
-kill, delete, mark, insert, yank, fill, indent, case,
-change, set, what, list, find, view, describe.
+rect, buffer, frame, window, face, file, dir, register, mode, beginning,
+end, forward, backward, next, previous, up, down, search, goto, kill,
+delete, mark, insert, yank, fill, indent, case, change, set, what, list,
+find, view, describe, default.
 @end quotation
 
 @findex apropos
   To list all Lisp symbols that contain a match for a regexp, not just
 the ones that are defined as commands, use the command @kbd{M-x apropos}
-instead of @kbd{C-h a}.
+instead of @kbd{C-h A}.  This command does not check key bindings by
+default; specify a numeric argument if you want it to check them.
+
+@findex apropos-documentation
+  The @code{apropos-documentation} command is like @code{apropos} except
+that it searches documentation strings for matches for the specified
+regular expression.
+
+@findex apropos-value
+  The @code{apropos-value} command is like @code{apropos} except that it
+searches symbols' values for matches for the specified regular
+expression.  This command does not check function definitions or
+property lists by default; specify a numeric argument if you want it to
+check them.
+
+@vindex apropos-do-all
+  If the variable @code{apropos-do-all} is non-@code{nil}, the commands
+above all behave as if they had been given a prefix argument.
+
+  If you want more information about a function definition, variable or
+symbol property listed in the Apropos buffer, you can click on it with
+@kbd{Mouse-2} or move there and type @key{RET}.
+
+@node Library Keywords, Help Mode, Apropos, Help
+@section Keyword Search for Lisp Libraries
+
+@kindex C-h p
+@findex finder-by-keyword
+The @kbd{C-h p} command lets you search the standard Emacs Lisp
+libraries by topic keywords.  Here is a partial list of keywords you can
+use:
+
+@display
+abbrev        abbreviation handling, typing shortcuts, macros
+bib           code related to the `bib' bibliography processor
+c             C, C++, and Objective-C language support
+calendar      calendar and time management support
+comm          communications, networking, remote access to files
+data          support for editing files of data
+docs          support for Emacs documentation
+dumped        files preloaded into Emacs
+emulations    emulations of other editors
+extensions    Emacs Lisp language extensions
+faces         support for multiple fonts
+frames        support for Emacs frames and window systems
+games         games, jokes and amusements
+hardware      support for interfacing with exotic hardware
+help          support for on-line help systems
+hypermedia    support for links between text or other media types
+i18n          internationalization and alternate character-set support
+internal      code for Emacs internals, build process, defaults
+languages     specialized modes for editing programming languages
+lisp          Lisp support, including Emacs Lisp
+local         code local to your site
+maint         maintenance aids for the Emacs development group
+mail          modes for electronic-mail handling
+matching      various sorts of searching and matching
+mouse         mouse support
+mule          multi-language extensions
+news          support for netnews reading and posting
+oop           support for object-oriented programming
+outlines      support for hierarchical outlining
+processes     process, subshell, compilation, and job control support
+terminals     support for terminal types
+tex           code related to the TeX formatter
+tools         programming tools
+unix          front-ends/assistants for, or emulators of, UNIX features
+vms           support code for vms
+wp            word processing
+@end display
+
+@node Help Mode, Misc Help, Library Keywords, Help
+@section Help Mode Commands
+
+  Help buffers provide the commands of View mode (@pxref{Misc File
+Ops}), plus a few special commands of their own.
 
+@table @kbd
+@item @key{SPC}
+Scroll forward.
+@item @key{DEL}
+@itemx @key{BS}
+Scroll backward.
+@c @item @key{RET}
+@c Follow a cross reference at point.
+@c @item @key{TAB}
+@c Move point forward to the next cross reference.
+@c @item S-@key{TAB}
+@c Move point back to the previous cross reference.
+@c @item Mouse-2
+@c Follow a cross reference that you click on.
+@end table
+
+  When a command name (@pxref{M-x,, Running Commands by Name}) or
+variable name (@pxref{Variables}) appears in the documentation, it
+normally appears inside paired single-quotes.
+
+@node Misc Help,  , Help Mode, Help
 @section Other Help Commands
 
 @kindex C-h i
 @findex info
+@cindex Info
+@cindex manuals, on-line
+@cindex on-line manuals
   @kbd{C-h i} (@code{info}) runs the Info program, which is used for
-browsing through structured documentation files.  The entire Emacs manual
+browsing through structured documentation files.  The entire XEmacs manual
 is available within Info.  Eventually all the documentation of the GNU
 system will be available.  Type @kbd{h} after entering Info to run
 a tutorial on using Info.
 
+  If you specify a numeric argument, @kbd{C-h i} prompts for the name of
+a documentation file.  This way, you can browse a file which doesn't
+have an entry in the top-level Info menu.  It is also handy when you
+need to get to the documentation quickly, and you know the exact name of
+the file.
+
+@kindex C-h C-f
+@kindex C-h C-k
+@findex Info-elisp-ref
+@findex Info-goto-emacs-command-node
+  There are two special help commands for accessing XEmacs documentation
+through Info.  @kbd{C-h C-f @var{function} @key{RET}} enters Info and
+goes straight to the documentation of the XEmacs function
+@var{function}.  @kbd{C-h C-k @var{key}} enters Info and goes straight
+to the documentation of the key @var{key}.  These two keys run the
+commands @code{Info-elisp-ref} and
+@code{Info-goto-emacs-key-command-node}.
+
 @kindex C-h l
 @findex view-lossage
   If something surprising happens, and you are not sure what commands you
 typed, use @kbd{C-h l} (@code{view-lossage}).  @kbd{C-h l} prints the last
-100 command characters you typed.  If you see commands you don't
-know, use @kbd{C-h c} to find out what they do.
+100 command characters you typed in.  If you see commands that you don't
+know, you can use @kbd{C-h c} to find out what they do.
 
 @kindex C-h m
 @findex describe-mode
-  Emacs has several major modes. Each mode redefines a few keys and
+  XEmacs has several major modes.  Each mode redefines a few keys and
 makes a few other changes in how editing works.  @kbd{C-h m}
 (@code{describe-mode}) prints documentation on the current major mode,
 which normally describes all the commands that are changed in this mode.
@@ -234,13 +410,21 @@ which normally describes all the commands that are changed in this mode.
 @kindex C-h b
 @findex describe-bindings
   @kbd{C-h b} (@code{describe-bindings}) and @kbd{C-h s}
-(@code{describe-syntax}) present information about the current Emacs
+(@code{describe-syntax}) present information about the current XEmacs
 mode that is not covered by @kbd{C-h m}.  @kbd{C-h b} displays a list of
-all key bindings currently in effect, with the local bindings of the current
-major mode first, followed by the global bindings (@pxref{Key
+all the key bindings currently in effect, with the local bindings of the
+current major mode first, followed by the global bindings (@pxref{Key
 Bindings}).  @kbd{C-h s} displays the contents of the syntax table with
-explanations of each character's syntax (@pxref{Syntax}).@refill
+explanations of each character's syntax (@pxref{Syntax}).
+
+  You can get a similar list for a particular prefix key by typing
+@kbd{C-h} after the prefix key.  (There are a few prefix keys for which
+this does not work---those that provide their own bindings for
+@kbd{C-h}.  One of these is @key{ESC}, because @kbd{@key{ESC} C-h} is
+actually @kbd{C-M-h}, which marks a defun.)
 
+@kindex C-h F
+@findex xemacs-local-faq
 @kindex C-h n
 @findex view-emacs-news
 @kindex C-h t
@@ -252,14 +436,16 @@ explanations of each character's syntax (@pxref{Syntax}).@refill
 @kindex C-h C-w
 @findex describe-no-warranty
   The other @kbd{C-h} options display various files of useful
-information.  @kbd{C-h C-w} (@code{describe-no-warranty}) displays
-details on the complete absence of warranty for XEmacs.  @kbd{C-h n} 
-(@code{view-emacs-news}) displays the file @file{emacs/etc/NEWS}, which 
-contains documentation on Emacs changes arranged chronologically.  
-@kbd{C-h t} (@code{help-with-tutorial}) displays the learn-by-doing
-Emacs tutorial. @kbd{C-h C-c} (@code{describe-copying}) displays the file
-@file{emacs/etc/COPYING}, which tells you the conditions you must obey
-in distributing copies of Emacs.  @kbd{C-h C-d}
+information.  @kbd{C-h C-w} (@code{describe-no-warranty}) displays the
+full details on the complete absence of warranty for XEmacs.  @kbd{C-h
+n} (@code{view-emacs-news}) displays the file @file{xemacs/etc/NEWS},
+which contains documentation on XEmacs changes arranged chronologically.
+@kbd{C-h F} (@code{xemacs-local-faq}) displays local version of the
+XEmacs frequentliy-answered-questions-list.  @kbd{C-h t}
+(@code{help-with-tutorial}) displays the learn-by-doing XEmacs
+tutorial. @kbd{C-h C-c} (@code{describe-copying}) displays the file
+@file{xemacs/etc/COPYING}, which tells you the conditions you must obey
+in distributing copies of XEmacs.  @kbd{C-h C-d}
 (@code{describe-distribution}) displays another file named
-@file{emacs/etc/DISTRIB}, which tells you how you can order a copy of
-the latest version of Emacs.@refill
+@file{xemacs/etc/DISTRIB}, which tells you how you can order a copy of
+the latest version of XEmacs.