(Fontsets): Correction to fontset-standard description.
[bpt/emacs.git] / doc / emacs / help.texi
CommitLineData
8cf51b2c
GM
1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
6ed161e1 3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
8cf51b2c
GM
4@c See file emacs.texi for copying conditions.
5@node Help, Mark, M-x, Top
6@chapter Help
7@kindex Help
8@cindex help
9@cindex self-documentation
10@findex help-command
11@kindex C-h
12@kindex F1
13
14 Emacs provides extensive help features, all accessible through the
15@dfn{help character}, @kbd{C-h}. This is a prefix key that is used
16for commands that display documentation; the next character you type
9de15963 17should be a @dfn{help option}, to ask for a particular kind of help.
8cf51b2c
GM
18You can cancel the @kbd{C-h} command with @kbd{C-g}. The function key
19@key{F1} is equivalent to @kbd{C-h}.
20
21@kindex C-h C-h
22@findex help-for-help
23 @kbd{C-h} itself is one of the help options; @kbd{C-h C-h} displays
24a list of help options, with a brief description of each one
25(@code{help-for-help}). You can scroll the list with @key{SPC} and
26@key{DEL}, then type the help option you want. To cancel, type
27@kbd{C-g}.
28
29 @kbd{C-h} or @key{F1} means ``help'' in various other contexts as
30well. For instance, you can type them after a prefix key to display
9de15963 31a list of the keys that can follow the prefix key. (A few prefix keys
8cf51b2c
GM
32don't support @kbd{C-h} in this way, because they define other
33meanings for it, but they all support @key{F1} for help.)
34
35 Most help buffers use a special major mode, Help mode, which lets
36you scroll conveniently with @key{SPC} and @key{DEL}. You can also
37follow hyperlinks to URLs, and to other facilities including Info
38nodes and customization buffers. @xref{Help Mode}.
39
40@cindex searching documentation efficiently
41@cindex looking for a subject in documentation
42 If you are looking for a certain feature, but don't know what it is
43called or where to look, we recommend three methods. First, try an
44apropos command, then try searching the manual index, then look in the
45FAQ and the package keywords.
46
47@table @kbd
48@item C-h a @var{topics} @key{RET}
49This searches for commands whose names match the argument
50@var{topics}. The argument can be a keyword, a list of keywords, or a
9de15963 51regular expression (@pxref{Regexps}). @xref{Apropos}.
8cf51b2c
GM
52
53@item C-h i d m emacs @key{RET} i @var{topic} @key{RET}
54This searches for @var{topic} in the indices of the on-line Emacs
55manual, and displays the first match found. Press @kbd{,} to see
56subsequent matches. You can use a regular expression as @var{topic}.
57
58@item C-h i d m emacs @key{RET} s @var{topic} @key{RET}
59Similar, but searches the @emph{text} of the manual rather than the
60indices.
61
62@item C-h C-f
63This displays the Emacs FAQ. You can use the Info commands
64to browse it.
65
66@item C-h p
67This displays the available Emacs packages based on keywords.
68@xref{Library Keywords}.
69@end table
70
71@menu
72* Help Summary:: Brief list of all Help commands.
73* Key Help:: Asking what a key does in Emacs.
74* Name Help:: Asking about a command, variable or function name.
75* Apropos:: Asking what pertains to a given topic.
76* Help Mode:: Special features of Help mode and Help buffers.
77* Library Keywords:: Finding Lisp libraries by keywords (topics).
78* Language Help:: Help relating to international language support.
79* Misc Help:: Other help commands.
80* Help Files:: Commands to display pre-written help files.
81* Help Echo:: Help on active text and tooltips (`balloon help')
82@end menu
83
84@iftex
85@node Help Summary
86@end iftex
87@ifnottex
88@node Help Summary
89@section Help Summary
90@end ifnottex
91
92 Here is a summary of the Emacs interactive help commands. (The
9de15963
MR
93character that follows @kbd{C-h} is the ``help option.'') See
94@ref{Help Files}, for other help commands that display fixed files
95of information.
8cf51b2c
GM
96
97@table @kbd
98@item C-h a @var{topics} @key{RET}
99Display a list of commands whose names match @var{topics}
100(@code{apropos-command}; @pxref{Apropos}).
101@item C-h b
102Display all active key bindings; minor mode bindings first, then those
103of the major mode, then global bindings (@code{describe-bindings}).
104@item C-h c @var{key}
105Given a key sequence @var{key}, show the name of the command that it
106runs (@code{describe-key-briefly}). Here @kbd{c} stands for
107``character.'' For more extensive information on @var{key}, use
108@kbd{C-h k}.
109@item C-h d @var{topics} @key{RET}
110Display the commands and variables whose documentation matches
111@var{topics} (@code{apropos-documentation}).
112@item C-h e
113Display the @code{*Messages*} buffer
114(@code{view-echo-area-messages}).
115@item C-h f @var{function} @key{RET}
116Display documentation on the Lisp function named @var{function}
117(@code{describe-function}). Since commands are Lisp functions,
118this works for commands too.
119@item C-h h
120Display the @file{HELLO} file, which shows examples of various character
121sets.
122@item C-h i
123Run Info, the GNU documentation browser (@code{info}).
124The complete Emacs manual is available on-line in Info.
125@item C-h k @var{key}
126Display the name and documentation of the command that @var{key} runs
127(@code{describe-key}).
128@item C-h l
9de15963 129Display a description of your last 300 keystrokes
8cf51b2c
GM
130(@code{view-lossage}).
131@item C-h m
132Display documentation of the current major mode (@code{describe-mode}).
9de15963
MR
133@item C-h n
134Display news of recent Emacs changes (@code{view-emacs-news}).
8cf51b2c
GM
135@item C-h p
136Find packages by topic keyword (@code{finder-by-keyword}).
9de15963
MR
137@item C-h r
138Display the Emacs manual in Info (@code{info-emacs-manual}).
8cf51b2c
GM
139@item C-h s
140Display the current contents of the syntax table, with an explanation of
141what they mean (@code{describe-syntax}). @xref{Syntax}.
142@item C-h t
143Enter the Emacs interactive tutorial (@code{help-with-tutorial}).
144@item C-h v @var{var} @key{RET}
145Display the documentation of the Lisp variable @var{var}
146(@code{describe-variable}).
147@item C-h w @var{command} @key{RET}
148Show which keys run the command named @var{command} (@code{where-is}).
149@item C-h C @var{coding} @key{RET}
150Describe the coding system @var{coding}
151(@code{describe-coding-system}).
152@item C-h C @key{RET}
153Describe the coding systems currently in use.
9de15963
MR
154@item C-h F @var{command} @key{RET}
155Enter Info and go to the node that documents the Emacs command
156@var{command} (@code{Info-goto-emacs-command-node}).
8cf51b2c
GM
157@item C-h I @var{method} @key{RET}
158Describe the input method @var{method} (@code{describe-input-method}).
9de15963
MR
159@item C-h K @var{key}
160Enter Info and go to the node that documents the key sequence
161@var{key} (@code{Info-goto-emacs-key-command-node}).
8cf51b2c
GM
162@item C-h L @var{language-env} @key{RET}
163Display information on the character sets, coding systems, and input
164methods used in language environment @var{language-env}
165(@code{describe-language-environment}).
8cf51b2c
GM
166@item C-h S @var{symbol} @key{RET}
167Display the Info documentation on symbol @var{symbol} according to the
168programming language you are editing (@code{info-lookup-symbol}).
169@item C-h .
170Display the help message for a special text area, if point is in one
171(@code{display-local-help}). (These include, for example, links in
172@samp{*Help*} buffers.)
173@end table
174
175@node Key Help
176@section Documentation for a Key
177
178@kindex C-h c
179@findex describe-key-briefly
180 The help commands to get information about a key sequence are
181@kbd{C-h c} and @w{@kbd{C-h k}}. @kbd{C-h c @var{key}} displays in
182the echo area the name of the command that @var{key} is bound to. For
183example, @kbd{C-h c C-f} displays @samp{forward-char}. Since command
184names are chosen to describe what the commands do, this gives you a
185very brief description of what @var{key} does.
186
187@kindex C-h k
188@findex describe-key
189 @kbd{C-h k @var{key}} is similar but gives more information: it
190displays the documentation string of the command as well as its name.
191It displays this information in a window, since it may not fit in the
192echo area.
193
194@kindex C-h K
195@findex Info-goto-emacs-key-command-node
196 To find the documentation of a key sequence @var{key}, type @kbd{C-h
197K @var{key}}. This displays the appropriate manual section which
198contains the documentation of @var{key}.
199
200 @kbd{C-h c}, @kbd{C-h k} and @kbd{C-h K} work for any sort of key
201sequences, including function keys, menus, and mouse events. For
202instance, after @kbd{C-h k} you can select a menu item from the menu
203bar, to view the documentation string of the command it runs.
204
205@kindex C-h w
206@findex where-is
207 @kbd{C-h w @var{command} @key{RET}} lists the keys that are bound to
208@var{command}. It displays the list in the echo area. If it says the
209command is not on any key, that means you must use @kbd{M-x} to run
210it. @kbd{C-h w} runs the command @code{where-is}.
211
212@node Name Help
213@section Help by Command or Variable Name
214
215@kindex C-h f
216@findex describe-function
217 @kbd{C-h f @var{function} @key{RET}} (@code{describe-function})
218displays the documentation of Lisp function @var{function}, in a
219window. Since commands are Lisp functions, you can use this method to
220view the documentation of any command whose name you know. For
221example,
222
223@example
224C-h f auto-fill-mode @key{RET}
225@end example
226
227@noindent
228displays the documentation of @code{auto-fill-mode}. This is the only
229way to get the documentation of a command that is not bound to any key
230(one which you would normally run using @kbd{M-x}).
231
232 @kbd{C-h f} is also useful for Lisp functions that you use in a Lisp
233program. For example, if you have just written the expression
234@code{(make-vector len)} and want to check that you are using
235@code{make-vector} properly, type @kbd{C-h f make-vector @key{RET}}.
236Because @kbd{C-h f} allows all function names, not just command names,
237you may find that some of your favorite completion abbreviations that
238work in @kbd{M-x} don't work in @kbd{C-h f}. An abbreviation that is
239unique among command names may not be unique among all function names.
240
241 If you type @kbd{C-h f @key{RET}}, it describes the function called
242by the innermost Lisp expression in the buffer around point,
243@emph{provided} that function name is a valid, defined Lisp function.
244(That name appears as the default while you enter the argument.) For
245example, if point is located following the text @samp{(make-vector
246(car x)}, the innermost list containing point is the one that starts
247with @samp{(make-vector}, so @kbd{C-h f @key{RET}} will describe the
248function @code{make-vector}.
249
250 @kbd{C-h f} is also useful just to verify that you spelled a
251function name correctly. If the minibuffer prompt for @kbd{C-h f}
252shows the function name from the buffer as the default, it means that
253name is defined as a Lisp function. Type @kbd{C-g} to cancel the
254@kbd{C-h f} command if you don't really want to view the
255documentation.
256
257@kindex C-h v
258@findex describe-variable
259 @kbd{C-h v} (@code{describe-variable}) is like @kbd{C-h f} but
260describes Lisp variables instead of Lisp functions. Its default is
261the Lisp symbol around or before point, if that is the name of a
262defined Lisp variable. @xref{Variables}.
263
264 Help buffers that describe Emacs variables and functions normally
265have hyperlinks to the corresponding source definition, if you have
266the source files installed. (@xref{Hyperlinking}.) If you know Lisp
267(or C), this provides the ultimate documentation. If you don't know
268Lisp, you should learn it. (The Introduction to Emacs Lisp
269Programming, available from the FSF through fsf.org, is a good way to
270get started.) If Emacs feels you are just @emph{using} it, treating
271it as an object program, its feelings may be hurt. For real intimacy,
272read the Emacs source code.
273
274@kindex C-h F
275@findex Info-goto-emacs-command-node
9de15963 276 To find a command's documentation in a manual, use @kbd{C-h F}
8cf51b2c
GM
277(@code{Info-goto-emacs-command-node}). This knows about various
278manuals, not just the Emacs manual, and finds the right one.
279
280@node Apropos
281@section Apropos
282
283 The @dfn{apropos} commands answer questions like, ``What are the
284commands for working with files?'' More precisely, you specify an
285@dfn{apropos pattern}, which means either a word, a list of words, or
286a regular expression. Each apropos command displays a list of items
287that match the pattern, in a separate buffer.
288
289@table @kbd
290@item C-h a @var{pattern} @key{RET}
291Search for commands whose names match @var{pattern}.
292
293@item M-x apropos @key{RET} @var{pattern} @key{RET}
294Search for functions and variables whose names match @var{pattern}.
295Both interactive functions (commands) and noninteractive functions can
296be found by this command.
297
298@item M-x apropos-variable @key{RET} @var{pattern} @key{RET}
299Search for user-option variables whose names match @var{pattern}.
300
301@item M-x apropos-value @key{RET} @var{pattern} @key{RET}
ff98e024
MR
302Search for functions whose definitions match @var{pattern}, and
303variables whose values match @var{pattern}.
8cf51b2c
GM
304
305@item C-h d @var{pattern} @key{RET}
306Search for functions and variables whose @strong{documentation
307strings} match @var{pattern}.
308@end table
309
310@kindex C-h a
311@findex apropos-command
312@cindex apropos
313 The simplest kind of apropos pattern is one word. Anything which
314contains that word matches the pattern. Thus, to find the commands
315that work on files, type @kbd{C-h a file @key{RET}}. This displays a
316list of all command names that contain @samp{file}, including
317@code{copy-file}, @code{find-file}, and so on. Each command name
318comes with a brief description and a list of keys you can currently
319invoke it with. In our example, it would say that you can invoke
320@code{find-file} by typing @kbd{C-x C-f}.
321
322 The @kbd{a} in @kbd{C-h a} stands for ``Apropos''; @kbd{C-h a}
323runs the command @code{apropos-command}. This command normally checks
324only commands (interactive functions); if you specify a prefix
325argument, it checks noninteractive functions as well.
326
327 For more information about a function definition, variable or symbol
328property listed in the apropos buffer, you can click on it with
329@kbd{Mouse-1} or @kbd{Mouse-2}, or move there and type @key{RET}.
330
331 When you specify more than one word in the apropos pattern, a name
332must contain at least two of the words in order to match. Thus, if
333you are looking for commands to kill a chunk of text before point, you
334could try @kbd{C-h a kill back backward behind before @key{RET}}. The
335real command name @code{kill-backward} will match that; if there were
336a command @code{kill-text-before}, it would also match, since it
337contains two of the specified words.
338
339 For even greater flexibility, you can specify a regular expression
340(@pxref{Regexps}). An apropos pattern is interpreted as a regular
341expression if it contains any of the regular expression special
342characters, @samp{^$*+?.\[}.
343
344 Following the conventions for naming Emacs commands, here are some
345words that you'll find useful in apropos patterns. By using them in
346@kbd{C-h a}, you will also get a feel for the naming conventions.
347
348@quotation
349char, line, word, sentence, paragraph, region, page, sexp, list, defun,
350rect, buffer, frame, window, face, file, dir, register, mode, beginning, end,
351forward, backward, next, previous, up, down, search, goto, kill, delete,
352mark, insert, yank, fill, indent, case, change, set, what, list, find,
353view, describe, default.
354@end quotation
355
356@findex apropos
357 Use @kbd{M-x apropos} instead of @kbd{C-h a} to list all the Lisp
358symbols that match an apropos pattern, not just the symbols that are
359commands. This command does not list key bindings by default; specify
360a numeric argument if you want it to list them.
361
362@findex apropos-variable
363 Use @kbd{M-x apropos-variable} to list user-customizable variables
364that match an apropos pattern. If you specify a prefix argument, it
365lists all matching variables.
366
367@kindex C-h d
368@findex apropos-documentation
369 The @code{apropos-documentation} command is like @code{apropos}
370except that it searches documentation strings instead of symbol names
371for matches.
372
373@findex apropos-value
374 The @code{apropos-value} command is like @code{apropos} except that
375it searches variables' values for matches for the apropos pattern.
376With a prefix argument, it also checks symbols' function definitions
377and property lists.
378
379@vindex apropos-do-all
380 If the variable @code{apropos-do-all} is non-@code{nil}, the apropos
381commands always behave as if they had been given a prefix argument.
382
383@vindex apropos-sort-by-scores
384@cindex apropos search results, order by score
385 By default, apropos lists the search results in alphabetical order.
386If the variable @code{apropos-sort-by-scores} is non-@code{nil}, the
387apropos commands try to guess the relevance of each result, and
388display the most relevant ones first.
389
390@vindex apropos-documentation-sort-by-scores
391 By default, apropos lists the search results for
392@code{apropos-documentation} in order of relevance of the match. If
393the variable @code{apropos-documentation-sort-by-scores} is
394@code{nil}, apropos lists the symbols found in alphabetical order.
395
396@node Help Mode
397@section Help Mode Commands
398
399 Help buffers provide the same commands as View mode (@pxref{Misc File
400Ops}), plus a few special commands of their own.
401
402@table @kbd
403@item @key{SPC}
404Scroll forward.
405@item @key{DEL}
406Scroll backward.
407@item @key{RET}
408Follow a cross reference at point.
409@item @key{TAB}
410Move point forward to the next cross reference.
411@item S-@key{TAB}
412Move point back to the previous cross reference.
413@item Mouse-1
414@itemx Mouse-2
415Follow a cross reference that you click on.
416@item C-c C-c
417Show all documentation about the symbol at point.
418@end table
419
420 When a function name (@pxref{M-x,, Running Commands by Name}),
421variable name (@pxref{Variables}), or face name (@pxref{Faces})
422appears in the documentation, it normally appears inside paired
423single-quotes. To view the documentation of that command, variable or
424face, you can click on the name with @kbd{Mouse-1} or @kbd{Mouse-2},
425or move point there and type @key{RET}. Use @kbd{C-c C-b} to retrace
426your steps.
427
428@cindex URL, viewing in help
429@cindex help, viewing web pages
430@cindex viewing web pages in help
431@cindex web pages, viewing in help
432@findex browse-url
433 You can follow cross references to URLs (web pages) also. This uses
434the @code{browse-url} command to view the page in the browser you
435choose. @xref{Browse-URL}.
436
437@kindex @key{TAB} @r{(Help mode)}
438@findex help-next-ref
439@kindex S-@key{TAB} @r{(Help mode)}
440@findex help-previous-ref
441 There are convenient commands to move point to cross references in
442the help text. @key{TAB} (@code{help-next-ref}) moves point down to
443the next cross reference. @kbd{S-@key{TAB}} moves up to the previous
444cross reference (@code{help-previous-ref}).
445
446 To view all documentation about any symbol name that appears in the
447text, move point to the symbol name and type @kbd{C-c C-c}
448(@code{help-follow-symbol}). This shows all available documentation
449about the symbol as a variable, function and/or face. As above, use
450@kbd{C-c C-b} to retrace your steps.
451
452@node Library Keywords
453@section Keyword Search for Lisp Libraries
454
455@kindex C-h p
456@findex finder-by-keyword
457The @kbd{C-h p} command lets you search the standard Emacs Lisp
458libraries by topic keywords. Here is a partial list of keywords you can
459use:
460
461@multitable {convenience} {aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}
462@item abbrev@tab abbreviation handling, typing shortcuts, macros.
463@item bib@tab code related to the @code{bib} bibliography processor.
464@item c@tab support for the C language and related languages.
465@item calendar@tab calendar and time management support.
466@item comm@tab communications, networking, remote access to files.
467@item convenience@tab convenience features for faster editing.
468@item data@tab support for editing files of data.
469@item docs@tab support for Emacs documentation.
470@item emulations@tab emulations of other editors.
471@item extensions@tab Emacs Lisp language extensions.
472@item faces@tab support for multiple fonts.
473@item files@tab support for editing and manipulating files.
474@item frames@tab support for Emacs frames and window systems.
475@item games@tab games, jokes and amusements.
476@item hardware@tab support for interfacing with exotic hardware.
477@item help@tab support for on-line help systems.
478@item hypermedia@tab support for links between text or other media types.
479@item i18n@tab internationalization and alternate character-set support.
480@item internal@tab code for Emacs internals, build process, defaults.
481@item languages@tab specialized modes for editing programming languages.
482@item lisp@tab Lisp support, including Emacs Lisp.
483@item local@tab code local to your site.
484@item maint@tab maintenance aids for the Emacs development group.
485@item mail@tab modes for electronic-mail handling.
486@item matching@tab various sorts of searching and matching.
487@item mouse@tab mouse support.
488@item multimedia@tab images and sound support.
489@item news@tab support for netnews reading and posting.
490@item oop@tab support for object-oriented programming.
491@item outlines@tab support for hierarchical outlining.
492@item processes@tab process, subshell, compilation, and job control support.
493@item terminals@tab support for terminal types.
494@item tex@tab supporting code for the @TeX{} formatter.
495@item tools@tab programming tools.
496@item unix@tab front-ends/assistants for, or emulators of, UNIX-like features.
497@item wp@tab word processing.
498@end multitable
499
500@node Language Help
501@section Help for International Language Support
502
503 You can use the command @kbd{C-h L}
504(@code{describe-language-environment}) to get information about a
505specific language environment. @xref{Language Environments}. This
506tells you which languages this language environment supports. It also
507lists the character sets, coding systems, and input methods that work
508with this language environment, and finally shows some sample text to
509illustrate scripts.
510
511 The command @kbd{C-h h} (@code{view-hello-file}) displays the file
512@file{etc/HELLO}, which shows how to say ``hello'' in many languages.
513
514 The command @kbd{C-h I} (@code{describe-input-method}) describes an
515input method---either a specified input method, or by default the
516input method currently in use. @xref{Input Methods}.
517
518 The command @kbd{C-h C} (@code{describe-coding-system}) describes
519coding systems---either a specified coding system, or the ones
520currently in use. @xref{Coding Systems}.
521
522@node Misc Help
523@section Other Help Commands
524
525@kindex C-h i
526@findex info
527@cindex Info
528@cindex manuals, on-line
529@cindex on-line manuals
530 @kbd{C-h i} (@code{info}) runs the Info program, which browses
531structured documentation files. The entire Emacs manual is available
532within Info, along with many other manuals for the GNU system. Type
533@kbd{h} after entering Info to run a tutorial on using Info.
534
535@cindex find Info manual by its file name
536 With a numeric argument @var{n}, @kbd{C-h i} selects the Info buffer
537@samp{*info*<@var{n}>}. This is useful if you want to browse multiple
538Info manuals simultaneously. If you specify just @kbd{C-u} as the
539prefix argument, @kbd{C-h i} prompts for the name of a documentation
540file, so you can browse a file which doesn't have an entry in the
541top-level Info menu.
542
543 The help commands @kbd{C-h F @var{function} @key{RET}} and @kbd{C-h
544K @var{key}}, described above, enter Info and go straight to the
545documentation of @var{function} or @var{key}.
546
547@kindex C-h S
548@findex info-lookup-symbol
549 When editing a program, if you have an Info version of the manual
550for the programming language, you can use @kbd{C-h S}
ff98e024
MR
551(@code{info-lookup-symbol}) to find an entry for a symbol (keyword,
552function or variable) in the proper manual. The details of how this
553command works depend on the major mode.
8cf51b2c
GM
554
555@kindex C-h l
556@findex view-lossage
9de15963
MR
557 If something surprising happens, and you are not sure what you typed,
558use @kbd{C-h l} (@code{view-lossage}). @kbd{C-h l} displays your last
559300 input keystrokes. If you see commands that you don't know, you can
560use @kbd{C-h c} to find out what they do.
8cf51b2c
GM
561
562@kindex C-h e
563@findex view-echo-area-messages
564 To review recent echo area messages, use @kbd{C-h e}
565(@code{view-echo-area-messages}). This displays the buffer
566@code{*Messages*}, where those messages are kept.
567
568@kindex C-h m
569@findex describe-mode
570 Each Emacs major mode typically redefines a few keys and makes other
571changes in how editing works. @kbd{C-h m} (@code{describe-mode})
572displays documentation on the current major mode, which normally
573describes the commands and features that are changed in this mode.
574
575@kindex C-h b
576@findex describe-bindings
577 @kbd{C-h b} (@code{describe-bindings}) and @kbd{C-h s}
578(@code{describe-syntax}) show other information about the current
579environment within Emacs. @kbd{C-h b} displays a list of all the key
580bindings now in effect: first the local bindings of the current minor
581modes, then the local bindings defined by the current major mode, and
582finally the global bindings (@pxref{Key Bindings}). @kbd{C-h s}
583displays the contents of the syntax table, with explanations of each
584character's syntax (@pxref{Syntax}).
585
586 You can get a list of subcommands for a particular prefix key by
587typing @kbd{C-h} after the prefix key. (There are a few prefix keys
588for which this does not work---those that provide their own bindings
589for @kbd{C-h}. One of these is @key{ESC}, because @kbd{@key{ESC} C-h}
590is actually @kbd{C-M-h}, which marks a defun.)
591
592@node Help Files
593@section Help Files
594
595 The Emacs help commands described above display dynamic help based
596on the current state within Emacs, or refer to manuals. Other help
087a8fdc
KS
597commands display pre-written, static help files.
598
599 Except for @kbd{C-h g}, these commands all have the form @kbd{C-h
600C-@var{char}}; that is, @kbd{C-h} followed by a control character.
8cf51b2c
GM
601
602@kindex C-h C-c
603@findex describe-copying
604@kindex C-h C-d
087a8fdc 605@findex view-emacs-debugging
8cf51b2c 606@kindex C-h C-e
087a8fdc 607@findex view-external-packages
8cf51b2c
GM
608@kindex C-h C-f
609@findex view-emacs-FAQ
087a8fdc
KS
610@kindex C-h g
611@findex describe-gnu-project
612@kindex C-h C-m
613@findex view-order-manuals
8cf51b2c
GM
614@kindex C-h C-n
615@findex view-emacs-news
087a8fdc
KS
616@kindex C-h C-o
617@findex describe-distribution
8cf51b2c 618@kindex C-h C-p
087a8fdc 619@findex view-emacs-problems
8cf51b2c
GM
620@kindex C-h C-t
621@findex view-emacs-todo
622@kindex C-h C-w
623@findex describe-no-warranty
624
625@table @kbd
626@item C-h C-c
627Display the Emacs copying conditions (@code{describe-copying}).
628These are the rules under which you can copy and redistribute Emacs.
629@item C-h C-d
087a8fdc 630Display how to debug Emacs problems (@code{view-emacs-debugging}).
8cf51b2c
GM
631@item C-h C-f
632Display the Emacs frequently-answered-questions list (@code{view-emacs-FAQ}).
087a8fdc
KS
633@item C-h g
634Display general information about the GNU Project
635(@code{describe-gnu-project}).
636@item C-h C-m
637Display how to order printed copies of Emacs manuals
638(@code{view-order-manuals}).
8cf51b2c
GM
639@item C-h C-n
640Display the Emacs ``news'' file, which lists new features in the most
641recent version of Emacs (@code{view-emacs-news}).
087a8fdc
KS
642@item C-h C-o
643Display how to order or download the latest version of
644Emacs and other GNU software (@code{describe-distribution}).
8cf51b2c 645@item C-h C-p
087a8fdc
KS
646Display the list of known Emacs problems, sometimes with suggested
647workarounds (@code{view-emacs-problems}).
8cf51b2c 648@item C-h C-t
087a8fdc 649Display the Emacs to-do list (@code{view-emacs-todo}).
8cf51b2c
GM
650@item C-h C-w
651Display the full details on the complete absence of warranty for GNU
652Emacs (@code{describe-no-warranty}).
653@end table
654
655@node Help Echo
656@section Help on Active Text and Tooltips
657
658@cindex tooltips
659@cindex balloon help
a67cf2bb
RS
660 When text on the screen is ``active'', so that it does something
661special in response to mouse clicks or @kbd{RET}, it often has associated
662help text. For instance, most parts of the mode line have help text. On
663terminals that support mouse tracking, Emacs displays the help text as a
664``tooltip'' (sometimes known as ``balloon help'') or in the echo area,
665whenever you leave the mouse stationary over the active text.
666@xref{Tooltips}.
8cf51b2c
GM
667
668@kindex C-h .
669@findex display-local-help
670@vindex help-at-pt-display-when-idle
a67cf2bb
RS
671 If your terminal doesn't support mouse-tracking, you can display the
672help text for active buffer text using the keyboard. @kbd{C-h .}
673(@code{display-local-help}) displays any help text associated with the
674character after point, using the echo area. To display help text
675automatically whenever it is available on the character after point, set
676the variable @code{help-at-pt-display-when-idle} to @code{t}.
8cf51b2c
GM
677
678@ignore
679 arch-tag: 6f33ab62-bc75-4367-8057-fd67cc15c3a1
680@end ignore