This commit was generated by cvs2svn to compensate for changes in r1705,
[chise/xemacs-chise.git.1] / man / xemacs / help.texi
1
2 @node Help, Mark, M-x, Top
3 @chapter Help
4 @kindex Help
5 @cindex help
6 @cindex self-documentation
7 @findex help-command
8 @kindex C-h
9 @kindex F1
10
11   XEmacs provides extensive help features accessible through a single
12 character, @kbd{C-h}.  @kbd{C-h} is a prefix key that is used only for
13 documentation-printing commands.  The characters that you can type after
14 @kbd{C-h} are called @dfn{help options}.  One help option is @kbd{C-h};
15 that is how you ask for help about using @kbd{C-h}.  To cancel, type
16 @kbd{C-g}.  The function key @key{F1} is equivalent to @kbd{C-h}.
17
18 @kindex C-h C-h
19 @findex help-for-help
20   @kbd{C-h C-h} (@code{help-for-help}) displays a list of the possible
21 help options, and then asks you to type the desired option.  It prompts
22 with the string:
23
24 @smallexample
25 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:
26 @end smallexample
27
28 @noindent
29 You should type one of those characters.
30
31   Typing a third @kbd{C-h} displays a description of what the options mean;
32 Emacs still waits for you to type an option.  To cancel, type @kbd{C-g}.
33
34   Most help buffers use a special major mode, Help mode, which lets you
35 scroll conveniently with @key{SPC} and @key{DEL} or @key{BS}.
36
37 @menu
38 * Help Summary::        Brief list of all Help commands.
39 * Key Help::            Asking what a key does in XEmacs.
40 * Name Help::           Asking about a command, variable or function name.
41 * Apropos::             Asking what pertains to a given topic.
42 * Library Keywords::    Finding Lisp libraries by keywords (topics).
43 * Help Mode::           Special features of Help mode and Help buffers.
44 * Misc Help::           Other help commands.
45 @end menu
46
47 @iftex
48 @node Help Summary, Help Summary, Help, Help
49 @end iftex
50 @ifinfo
51 @node Help Summary, Key Help, Help, Help
52 @section Help Summary
53 @end ifinfo
54
55   Here is a summary of the defined help commands.
56
57 @table @kbd
58 @item C-h a @var{regexp} @key{RET}
59 Display a list of functions and variables whose names match @var{regexp}
60 (@code{hyper-apropos}).
61 @item C-h A @var{regexp}
62 Show all commands whose names contain matches for @var{regexp}
63 (@code{command-apropos}).
64 @item C-h b
65 Display a table of all key bindings currently in effect, with local
66 bindings of the current major mode first, followed by all global
67 bindings (@code{describe-bindings}).
68 @item C-h c @var{key}
69 Print the name of the command that @var{key} runs
70 (@code{describe-key-briefly}).  Here @kbd{c} stands for `character'.  For more
71 extensive information on @var{key}, use @kbd{C-h k}.
72 @item C-h d @var{function} @key{RET}
73 @itemx C-h f @var{function} @key{RET}
74 Display documentation on the Lisp function named @var{function}
75 (@code{describe-function}).  Since commands are Lisp functions,
76 a command name may be used.
77 @item C-h i
78 Run Info, the program for browsing documentation files (@code{info}).
79 The complete XEmacs manual is available online in Info.
80 @item C-h k @var{key}
81 Display the name and documentation of the command that @var{key} runs
82 (@code{describe-key}).
83 @item C-h l
84 Display a description of the last 100 characters you typed
85 (@code{view-lossage}).
86 @item C-h m
87 Display documentation of the current major mode (@code{describe-mode}).
88 @item C-h n
89 @itemx C-h C-n
90 Display documentation of XEmacs changes, most recent first
91 (@code{view-emacs-news}).
92 @item C-h p
93 Find packages by topic keyword (@code{finder-by-keyword}).
94 @item C-h C-p
95 Display a table of all mouse bindings currently in effect now, with
96 local bindings of the current major mode first, followed by all global
97 bindings (@code{describe-pointer}).
98 @item C-h s
99 Display current contents of the syntax table, plus an explanation of
100 what they mean (@code{describe-syntax}).  @xref{Syntax}.
101 @item C-h t
102 Enter the XEmacs interactive tutorial (@code{help-with-tutorial}).
103 @item C-h v @var{var} @key{RET}
104 Display the documentation of the Lisp variable @var{var}
105 (@code{describe-variable}).
106 @item C-h w @var{command} @key{RET}
107 Print which keys run the command named @var{command} (@code{where-is}).
108 @item C-h B @key{RET}
109 Display info on how to deal with Beta versions of XEmacs
110 (@code{describe-beta}).
111 @item C-h C @var{group} @key{RET}
112 Select customization buffer for @var{group} (@code{customize}).
113 @item C-h F @key{RET}
114 View the local copy of the XEmacs FAQ (@code{xemacs-local-faq}).
115 @item C-h C-i @var{file} @key{RET}
116 Read Info file @var{file} with Info browser (@code{Info-query}).
117 @item C-h C-c @var{command} @key{RET}
118 Look up an Emacs command @var{command} in the Emacs manual in the Info
119 system (@code{Info-goto-emacs-command-node}).
120 @item C-h C-f @var{function} @key{RET}
121 Look up an Emacs Lisp function @var{function} in the Elisp manual in the
122 Info system (@code{Info-elisp-ref}).
123 @end table
124
125 @node Key Help, Name Help, Help Summary, Help
126 @section Documentation for a Key
127
128 @kindex C-h c
129 @findex describe-key-briefly
130   The most basic @kbd{C-h} options are @kbd{C-h c}
131 (@code{describe-key-briefly}) and @w{@kbd{C-h k}} (@code{describe-key}).
132 @kbd{C-h c @var{key}} prints in the echo area the name of the command
133 that @var{key} is bound to.  For example, @kbd{C-h c C-f} prints
134 @samp{forward-char}.  Since command names are chosen to describe what
135 the commands do, this is a good way to get a very brief description of
136 what @var{key} does.
137
138 @kindex C-h k
139 @findex describe-key
140   @kbd{C-h k @var{key}} is similar to @kbd{C-h c} but gives more
141 information.  It displays the documentation string of the function
142 @var{key} is bound to as well as its name.  @var{key} is a string or
143 vector of events.  When called interactively, @var{key} may also be a menu
144 selection.  This information does not usually fit into the echo area, so a
145 window is used for the display.
146
147   @kbd{C-h c} and @kbd{C-h k} work for any sort of key sequences,
148 including function keys and mouse events.
149
150 @node Name Help, Apropos, Key Help, Help
151 @section Help by Command or Variable Name
152
153 @kindex C-h f
154 @findex describe-function
155 @vindex describe-function-show-arglist
156   @kbd{C-h f} (@code{describe-function}) reads the name of a Lisp
157 function using the minibuffer, then displays that function's
158 documentation string in a window.  Since commands are Lisp functions,
159 you can use the argument @var{function} to get the documentation of a
160 command that you know by name.  For example,
161
162 @example
163 C-h f auto-fill-mode @key{RET}
164 @end example
165
166 @noindent
167 displays the documentation for @code{auto-fill-mode}. Using @kbd{C-h f}
168 is the only way to see the documentation of a command that is not bound
169 to any key, that is, a command you would normally call using @kbd{M-x}.
170 If the variable @code{describe-function-show-arglist} is @code{t},
171 @code{describe-function} shows its arglist if the @var{function} is not
172 an autoload function.
173
174   @kbd{C-h f} is also useful for Lisp functions that you are planning to
175 use in a Lisp program.  For example, if you have just written the
176 expression @code{(make-vector len)} and want to make sure you are using
177 @code{make-vector} properly, type @kbd{C-h f make-vector @key{RET}}.
178 Because @kbd{C-h f} allows all function names, not just command names,
179 you may find that some of your favorite abbreviations that work in
180 @kbd{M-x} don't work in @kbd{C-h f}.  An abbreviation may be unique
181 among command names, yet fail to be unique when other function names are
182 allowed.
183
184   The function name for @kbd{C-h f} to describe has a default which is
185 used if you type @key{RET} leaving the minibuffer empty.  The default is
186 the function called by the innermost Lisp expression in the buffer
187 around point, @emph{provided} that is a valid, defined Lisp function
188 name.  For example, if point is located following the text
189 @samp{(make-vector (car x)}, the innermost list containing point is the
190 one that starts with @samp{(make-vector}, so the default is to describe the
191 function @code{make-vector}.
192
193   @kbd{C-h f} is often useful just to verify that you have the right
194 spelling for the function name.  If @kbd{C-h f} mentions a name from the
195 buffer as the default, that name must be defined as a Lisp function.  If
196 that is all you want to know, just type @kbd{C-g} to cancel the @kbd{C-h
197 f} command, then go on editing.
198
199 @kindex C-h w
200 @findex where-is
201   @kbd{C-h w @var{command} @key{RET}} (@code{where-is}) tells you what
202 keys are bound to @var{command}.  It prints a list of the keys in the
203 echo area. Alternatively, it informs you that a command is not bound to
204 any keys, which implies that you must use @kbd{M-x} to call the
205 command.
206
207 @kindex C-h v
208 @findex describe-variable
209   @kbd{C-h v} (@code{describe-variable}) is like @kbd{C-h f} but
210 describes Lisp variables instead of Lisp functions.  Its default is the
211 Lisp symbol around or before point, if that is the name of a known Lisp
212 variable.  @xref{Variables}.
213
214 @node Apropos, Library Keywords, Name Help, Help
215 @section Apropos
216
217 @kindex C-h A
218 @findex command-apropos
219 @cindex apropos
220
221 @table @kbd
222 @item C-h A
223 Show only symbols that are names of commands
224 (@code{command-apropos}).
225
226 @item M-x apropos @var{regexp}
227 Show all symbols whose names contain matches for @var{regexp}.
228 @end table
229
230   A more sophisticated sort of question to ask is, ``What are the
231 commands for working with files?''  To ask this question, type @kbd{C-h
232 a file @key{RET}}, which displays a list of all command names that
233 contain @samp{file}, including @code{copy-file}, @code{find-file}, and
234 so on.  With each command name appears a brief description of how to use
235 the command, and what keys you can currently invoke it with.  For
236 example, it would say that you can invoke @code{find-file} by typing
237 @kbd{C-x C-f}.  The @kbd{A} in @kbd{C-h A} stands for `Apropos';
238 @kbd{C-h A} runs the command @code{command-apropos}.  This command
239 normally checks only commands (interactive functions); if you specify a
240 prefix argument, it checks noninteractive functions as well.
241
242   Because @kbd{C-h A} looks only for functions whose names contain the
243 string you specify, you must use ingenuity in choosing the string.  If
244 you are looking for commands for killing backwards and @kbd{C-h a
245 kill-backwards @key{RET}} doesn't reveal any, don't give up.  Try just
246 @kbd{kill}, or just @kbd{backwards}, or just @kbd{back}.  Be persistent.
247 Pretend you are playing Adventure.  Also note that you can use a regular
248 expression as the argument, for more flexibility (@pxref{Regexps}).
249
250   Here is a set of arguments to give to @kbd{C-h a} that covers many
251 classes of XEmacs commands, since there are strong conventions for
252 naming the standard XEmacs commands.  By giving you a feel for the
253 naming conventions, this set should also serve to aid you in developing
254 a technique for picking @code{apropos} strings.
255
256 @quotation
257 char, line, word, sentence, paragraph, region, page, sexp, list, defun,
258 rect, buffer, frame, window, face, file, dir, register, mode, beginning,
259 end, forward, backward, next, previous, up, down, search, goto, kill,
260 delete, mark, insert, yank, fill, indent, case, change, set, what, list,
261 find, view, describe, default.
262 @end quotation
263
264 @findex apropos
265   To list all Lisp symbols that contain a match for a regexp, not just
266 the ones that are defined as commands, use the command @kbd{M-x apropos}
267 instead of @kbd{C-h A}.  This command does not check key bindings by
268 default; specify a numeric argument if you want it to check them.
269
270 @findex apropos-documentation
271   The @code{apropos-documentation} command is like @code{apropos} except
272 that it searches documentation strings for matches for the specified
273 regular expression.
274
275 @findex apropos-value
276   The @code{apropos-value} command is like @code{apropos} except that it
277 searches symbols' values for matches for the specified regular
278 expression.  This command does not check function definitions or
279 property lists by default; specify a numeric argument if you want it to
280 check them.
281
282 @vindex apropos-do-all
283   If the variable @code{apropos-do-all} is non-@code{nil}, the commands
284 above all behave as if they had been given a prefix argument.
285
286   If you want more information about a function definition, variable or
287 symbol property listed in the Apropos buffer, you can click on it with
288 @kbd{Mouse-2} or move there and type @key{RET}.
289
290 @node Library Keywords, Help Mode, Apropos, Help
291 @section Keyword Search for Lisp Libraries
292
293 @kindex C-h p
294 @findex finder-by-keyword
295 The @kbd{C-h p} command lets you search the standard Emacs Lisp
296 libraries by topic keywords.  Here is a partial list of keywords you can
297 use:
298
299 @display
300 abbrev        abbreviation handling, typing shortcuts, macros
301 bib           code related to the `bib' bibliography processor
302 c             C, C++, and Objective-C language support
303 calendar      calendar and time management support
304 comm          communications, networking, remote access to files
305 data          support for editing files of data
306 docs          support for Emacs documentation
307 dumped        files preloaded into Emacs
308 emulations    emulations of other editors
309 extensions    Emacs Lisp language extensions
310 faces         support for multiple fonts
311 frames        support for Emacs frames and window systems
312 games         games, jokes and amusements
313 hardware      support for interfacing with exotic hardware
314 help          support for on-line help systems
315 hypermedia    support for links between text or other media types
316 i18n          internationalization and alternate character-set support
317 internal      code for Emacs internals, build process, defaults
318 languages     specialized modes for editing programming languages
319 lisp          Lisp support, including Emacs Lisp
320 local         code local to your site
321 maint         maintenance aids for the Emacs development group
322 mail          modes for electronic-mail handling
323 matching      various sorts of searching and matching
324 mouse         mouse support
325 mule          multi-language extensions
326 news          support for netnews reading and posting
327 oop           support for object-oriented programming
328 outlines      support for hierarchical outlining
329 processes     process, subshell, compilation, and job control support
330 terminals     support for terminal types
331 tex           code related to the TeX formatter
332 tools         programming tools
333 unix          front-ends/assistants for, or emulators of, UNIX features
334 vms           support code for vms
335 wp            word processing
336 @end display
337
338 @node Help Mode, Misc Help, Library Keywords, Help
339 @section Help Mode Commands
340
341   Help buffers provide the commands of View mode (@pxref{Misc File
342 Ops}), plus a few special commands of their own.
343
344 @table @kbd
345 @item @key{SPC}
346 Scroll forward.
347 @item @key{DEL}
348 @itemx @key{BS}
349 Scroll backward.
350 @c @item @key{RET}
351 @c Follow a cross reference at point.
352 @c @item @key{TAB}
353 @c Move point forward to the next cross reference.
354 @c @item S-@key{TAB}
355 @c Move point back to the previous cross reference.
356 @c @item Mouse-2
357 @c Follow a cross reference that you click on.
358 @end table
359
360   When a command name (@pxref{M-x,, Running Commands by Name}) or
361 variable name (@pxref{Variables}) appears in the documentation, it
362 normally appears inside paired single-quotes.
363
364 @node Misc Help,  , Help Mode, Help
365 @section Other Help Commands
366
367 @kindex C-h i
368 @findex info
369 @cindex Info
370 @cindex manuals, on-line
371 @cindex on-line manuals
372   @kbd{C-h i} (@code{info}) runs the Info program, which is used for
373 browsing through structured documentation files.  The entire XEmacs manual
374 is available within Info.  Eventually all the documentation of the GNU
375 system will be available.  Type @kbd{h} after entering Info to run
376 a tutorial on using Info.
377
378   If you specify a numeric argument, @kbd{C-h i} prompts for the name of
379 a documentation file.  This way, you can browse a file which doesn't
380 have an entry in the top-level Info menu.  It is also handy when you
381 need to get to the documentation quickly, and you know the exact name of
382 the file.
383
384 @kindex C-h C-f
385 @kindex C-h C-k
386 @findex Info-elisp-ref
387 @findex Info-goto-emacs-command-node
388   There are two special help commands for accessing XEmacs documentation
389 through Info.  @kbd{C-h C-f @var{function} @key{RET}} enters Info and
390 goes straight to the documentation of the XEmacs function
391 @var{function}.  @kbd{C-h C-k @var{key}} enters Info and goes straight
392 to the documentation of the key @var{key}.  These two keys run the
393 commands @code{Info-elisp-ref} and
394 @code{Info-goto-emacs-key-command-node}.
395
396 @kindex C-h l
397 @findex view-lossage
398   If something surprising happens, and you are not sure what commands you
399 typed, use @kbd{C-h l} (@code{view-lossage}).  @kbd{C-h l} prints the last
400 100 command characters you typed in.  If you see commands that you don't
401 know, you can use @kbd{C-h c} to find out what they do.
402
403 @kindex C-h m
404 @findex describe-mode
405   XEmacs has several major modes.  Each mode redefines a few keys and
406 makes a few other changes in how editing works.  @kbd{C-h m}
407 (@code{describe-mode}) prints documentation on the current major mode,
408 which normally describes all the commands that are changed in this mode.
409
410 @kindex C-h b
411 @findex describe-bindings
412   @kbd{C-h b} (@code{describe-bindings}) and @kbd{C-h s}
413 (@code{describe-syntax}) present information about the current XEmacs
414 mode that is not covered by @kbd{C-h m}.  @kbd{C-h b} displays a list of
415 all the key bindings currently in effect, with the local bindings of the
416 current major mode first, followed by the global bindings (@pxref{Key
417 Bindings}).  @kbd{C-h s} displays the contents of the syntax table with
418 explanations of each character's syntax (@pxref{Syntax}).
419
420   You can get a similar list for a particular prefix key by typing
421 @kbd{C-h} after the prefix key.  (There are a few prefix keys for which
422 this does not work---those that provide their own bindings for
423 @kbd{C-h}.  One of these is @key{ESC}, because @kbd{@key{ESC} C-h} is
424 actually @kbd{C-M-h}, which marks a defun.)
425
426 @kindex C-h F
427 @findex xemacs-local-faq
428 @kindex C-h n
429 @findex view-emacs-news
430 @kindex C-h t
431 @findex help-with-tutorial
432 @kindex C-h C-c
433 @findex describe-copying
434 @kindex C-h C-d
435 @findex describe-distribution
436 @kindex C-h C-w
437 @findex describe-no-warranty
438   The other @kbd{C-h} options display various files of useful
439 information.  @kbd{C-h C-w} (@code{describe-no-warranty}) displays the
440 full details on the complete absence of warranty for XEmacs.  @kbd{C-h
441 n} (@code{view-emacs-news}) displays the file @file{xemacs/etc/NEWS},
442 which contains documentation on XEmacs changes arranged chronologically.
443 @kbd{C-h F} (@code{xemacs-local-faq}) displays local version of the
444 XEmacs frequently-answered-questions-list.  @kbd{C-h t}
445 (@code{help-with-tutorial}) displays the learn-by-doing XEmacs
446 tutorial. @kbd{C-h C-c} (@code{describe-copying}) displays the file
447 @file{xemacs/etc/COPYING}, which tells you the conditions you must obey
448 in distributing copies of XEmacs.  @kbd{C-h C-d}
449 (@code{describe-distribution}) displays another file named
450 @file{xemacs/etc/DISTRIB}, which tells you how you can order a copy of
451 the latest version of XEmacs.