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