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