]> code.delx.au - gnu-emacs/blob - doc/emacs/help.texi
6fb62cf78271b92ce0c21367e34700c779f87745
[gnu-emacs] / doc / emacs / help.texi
1 @c This is part of the Emacs manual.
2 @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
3 @c 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
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
16 for commands that display documentation; the next character you type
17 should be a @dfn{help option}, to ask for a particular kind of help.
18 You 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
24 a 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
30 well. For instance, you can type them after a prefix key to display
31 a list of the keys that can follow the prefix key. (A few prefix keys
32 don't support @kbd{C-h} in this way, because they define other
33 meanings for it, but they all support @key{F1} for help.)
34
35 Most help buffers use a special major mode, Help mode, which lets
36 you scroll conveniently with @key{SPC} and @key{DEL}. You can also
37 follow hyperlinks to URLs, and to other facilities including Info
38 nodes 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
43 called or where to look, we recommend three methods. First, try an
44 apropos command, then try searching the manual index, then look in the
45 FAQ and the package keywords.
46
47 @table @kbd
48 @item C-h a @var{topics} @key{RET}
49 This searches for commands whose names match the argument
50 @var{topics}. The argument can be a keyword, a list of keywords, or a
51 regular expression (@pxref{Regexps}). @xref{Apropos}.
52
53 @item C-h i d m emacs @key{RET} i @var{topic} @key{RET}
54 This searches for @var{topic} in the indices of the on-line Emacs
55 manual, and displays the first match found. Press @kbd{,} to see
56 subsequent 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}
59 Similar, but searches the @emph{text} of the manual rather than the
60 indices.
61
62 @item C-h C-f
63 This displays the Emacs FAQ. You can use the Info commands
64 to browse it.
65
66 @item C-h p
67 This 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
93 character that follows @kbd{C-h} is the ``help option.'') See
94 @ref{Help Files}, for other help commands that display fixed files
95 of information.
96
97 @table @kbd
98 @item C-h a @var{topics} @key{RET}
99 Display a list of commands whose names match @var{topics}
100 (@code{apropos-command}; @pxref{Apropos}).
101 @item C-h b
102 Display all active key bindings; minor mode bindings first, then those
103 of the major mode, then global bindings (@code{describe-bindings}).
104 @item C-h c @var{key}
105 Given a key sequence @var{key}, show the name of the command that it
106 runs (@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}
110 Display the commands and variables whose documentation matches
111 @var{topics} (@code{apropos-documentation}).
112 @item C-h e
113 Display the @code{*Messages*} buffer
114 (@code{view-echo-area-messages}).
115 @item C-h f @var{function} @key{RET}
116 Display documentation on the Lisp function named @var{function}
117 (@code{describe-function}). Since commands are Lisp functions,
118 this works for commands too.
119 @item C-h h
120 Display the @file{HELLO} file, which shows examples of various character
121 sets.
122 @item C-h i
123 Run Info, the GNU documentation browser (@code{info}).
124 The complete Emacs manual is available on-line in Info.
125 @item C-h k @var{key}
126 Display the name and documentation of the command that @var{key} runs
127 (@code{describe-key}).
128 @item C-h l
129 Display a description of your last 300 keystrokes
130 (@code{view-lossage}).
131 @item C-h m
132 Display documentation of the current major mode (@code{describe-mode}).
133 @item C-h n
134 Display news of recent Emacs changes (@code{view-emacs-news}).
135 @item C-h p
136 Find packages by topic keyword (@code{finder-by-keyword}).
137 @item C-h r
138 Display the Emacs manual in Info (@code{info-emacs-manual}).
139 @item C-h s
140 Display the current contents of the syntax table, with an explanation of
141 what they mean (@code{describe-syntax}). @xref{Syntax}.
142 @item C-h t
143 Enter the Emacs interactive tutorial (@code{help-with-tutorial}).
144 @item C-h v @var{var} @key{RET}
145 Display the documentation of the Lisp variable @var{var}
146 (@code{describe-variable}).
147 @item C-h w @var{command} @key{RET}
148 Show which keys run the command named @var{command} (@code{where-is}).
149 @item C-h C @var{coding} @key{RET}
150 Describe the coding system @var{coding}
151 (@code{describe-coding-system}).
152 @item C-h C @key{RET}
153 Describe the coding systems currently in use.
154 @item C-h F @var{command} @key{RET}
155 Enter Info and go to the node that documents the Emacs command
156 @var{command} (@code{Info-goto-emacs-command-node}).
157 @item C-h I @var{method} @key{RET}
158 Describe the input method @var{method} (@code{describe-input-method}).
159 @item C-h K @var{key}
160 Enter Info and go to the node that documents the key sequence
161 @var{key} (@code{Info-goto-emacs-key-command-node}).
162 @item C-h L @var{language-env} @key{RET}
163 Display information on the character sets, coding systems, and input
164 methods used in language environment @var{language-env}
165 (@code{describe-language-environment}).
166 @item C-h S @var{symbol} @key{RET}
167 Display the Info documentation on symbol @var{symbol} according to the
168 programming language you are editing (@code{info-lookup-symbol}).
169 @item C-h .
170 Display 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
182 the echo area the name of the command that @var{key} is bound to. For
183 example, @kbd{C-h c C-f} displays @samp{forward-char}. Since command
184 names are chosen to describe what the commands do, this gives you a
185 very 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
190 displays the documentation string of the command as well as its name.
191 It displays this information in a window, since it may not fit in the
192 echo 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
197 K @var{key}}. This displays the appropriate manual section which
198 contains 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
201 sequences, including function keys, menus, and mouse events. For
202 instance, after @kbd{C-h k} you can select a menu item from the menu
203 bar, 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
209 command is not on any key, that means you must use @kbd{M-x} to run
210 it. @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})
218 displays the documentation of Lisp function @var{function}, in a
219 window. Since commands are Lisp functions, you can use this method to
220 view the documentation of any command whose name you know. For
221 example,
222
223 @example
224 C-h f auto-fill-mode @key{RET}
225 @end example
226
227 @noindent
228 displays the documentation of @code{auto-fill-mode}. This is the only
229 way 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
233 program. 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}}.
236 Because @kbd{C-h f} allows all function names, not just command names,
237 you may find that some of your favorite completion abbreviations that
238 work in @kbd{M-x} don't work in @kbd{C-h f}. An abbreviation that is
239 unique 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
242 by 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
245 example, if point is located following the text @samp{(make-vector
246 (car x)}, the innermost list containing point is the one that starts
247 with @samp{(make-vector}, so @kbd{C-h f @key{RET}} will describe the
248 function @code{make-vector}.
249
250 @kbd{C-h f} is also useful just to verify that you spelled a
251 function name correctly. If the minibuffer prompt for @kbd{C-h f}
252 shows the function name from the buffer as the default, it means that
253 name 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
255 documentation.
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
260 describes Lisp variables instead of Lisp functions. Its default is
261 the Lisp symbol around or before point, if that is the name of a
262 defined Lisp variable. @xref{Variables}.
263
264 Help buffers that describe Emacs variables and functions normally
265 have hyperlinks to the corresponding source definition, if you have
266 the source files installed. (@xref{Hyperlinking}.) If you know Lisp
267 (or C), this provides the ultimate documentation. If you don't know
268 Lisp, you should learn it. (The Introduction to Emacs Lisp
269 Programming, available from the FSF through fsf.org, is a good way to
270 get started.) If Emacs feels you are just @emph{using} it, treating
271 it as an object program, its feelings may be hurt. For real intimacy,
272 read the Emacs source code.
273
274 @kindex C-h F
275 @findex Info-goto-emacs-command-node
276 To find a command's documentation in a manual, use @kbd{C-h F}
277 (@code{Info-goto-emacs-command-node}). This knows about various
278 manuals, 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
284 commands for working with files?'' More precisely, you specify an
285 @dfn{apropos pattern}, which means either a word, a list of words, or
286 a regular expression. Each apropos command displays a list of items
287 that match the pattern, in a separate buffer.
288
289 @table @kbd
290 @item C-h a @var{pattern} @key{RET}
291 Search for commands whose names match @var{pattern}.
292
293 @item M-x apropos @key{RET} @var{pattern} @key{RET}
294 Search for functions and variables whose names match @var{pattern}.
295 Both interactive functions (commands) and noninteractive functions can
296 be found by this command.
297
298 @item M-x apropos-variable @key{RET} @var{pattern} @key{RET}
299 Search for user-option variables whose names match @var{pattern}.
300
301 @item M-x apropos-value @key{RET} @var{pattern} @key{RET}
302 Search for functions whose definitions match @var{pattern}, and
303 variables whose values match @var{pattern}.
304
305 @item C-h d @var{pattern} @key{RET}
306 Search for functions and variables whose @strong{documentation
307 strings} 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
314 contains that word matches the pattern. Thus, to find the commands
315 that work on files, type @kbd{C-h a file @key{RET}}. This displays a
316 list of all command names that contain @samp{file}, including
317 @code{copy-file}, @code{find-file}, and so on. Each command name
318 comes with a brief description and a list of keys you can currently
319 invoke 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}
323 runs the command @code{apropos-command}. This command normally checks
324 only commands (interactive functions); if you specify a prefix
325 argument, it checks noninteractive functions as well.
326
327 For more information about a function definition, variable or symbol
328 property 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
332 must contain at least two of the words in order to match. Thus, if
333 you are looking for commands to kill a chunk of text before point, you
334 could try @kbd{C-h a kill back backward behind before @key{RET}}. The
335 real command name @code{kill-backward} will match that; if there were
336 a command @code{kill-text-before}, it would also match, since it
337 contains 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
341 expression if it contains any of the regular expression special
342 characters, @samp{^$*+?.\[}.
343
344 Following the conventions for naming Emacs commands, here are some
345 words 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
349 char, line, word, sentence, paragraph, region, page, sexp, list, defun,
350 rect, buffer, frame, window, face, file, dir, register, mode, beginning, end,
351 forward, backward, next, previous, up, down, search, goto, kill, delete,
352 mark, insert, yank, fill, indent, case, change, set, what, list, find,
353 view, 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
358 symbols that match an apropos pattern, not just the symbols that are
359 commands. This command does not list key bindings by default; specify
360 a 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
364 that match an apropos pattern. If you specify a prefix argument, it
365 lists all matching variables.
366
367 @kindex C-h d
368 @findex apropos-documentation
369 The @code{apropos-documentation} command is like @code{apropos}
370 except that it searches documentation strings instead of symbol names
371 for matches.
372
373 @findex apropos-value
374 The @code{apropos-value} command is like @code{apropos} except that
375 it searches variables' values for matches for the apropos pattern.
376 With a prefix argument, it also checks symbols' function definitions
377 and property lists.
378
379 @vindex apropos-do-all
380 If the variable @code{apropos-do-all} is non-@code{nil}, the apropos
381 commands 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.
386 If the variable @code{apropos-sort-by-scores} is non-@code{nil}, the
387 apropos commands try to guess the relevance of each result, and
388 display 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
393 the 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
400 Ops}), plus a few special commands of their own.
401
402 @table @kbd
403 @item @key{SPC}
404 Scroll forward.
405 @item @key{DEL}
406 Scroll backward.
407 @item @key{RET}
408 Follow a cross reference at point.
409 @item @key{TAB}
410 Move point forward to the next cross reference.
411 @item S-@key{TAB}
412 Move point back to the previous cross reference.
413 @item Mouse-1
414 @itemx Mouse-2
415 Follow a cross reference that you click on.
416 @item C-c C-c
417 Show all documentation about the symbol at point.
418 @end table
419
420 When a function name (@pxref{M-x,, Running Commands by Name}),
421 variable name (@pxref{Variables}), or face name (@pxref{Faces})
422 appears in the documentation, it normally appears inside paired
423 single-quotes. To view the documentation of that command, variable or
424 face, you can click on the name with @kbd{Mouse-1} or @kbd{Mouse-2},
425 or move point there and type @key{RET}. Use @kbd{C-c C-b} to retrace
426 your 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
434 the @code{browse-url} command to view the page in the browser you
435 choose. @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
442 the help text. @key{TAB} (@code{help-next-ref}) moves point down to
443 the next cross reference. @kbd{S-@key{TAB}} moves up to the previous
444 cross reference (@code{help-previous-ref}).
445
446 To view all documentation about any symbol name that appears in the
447 text, move point to the symbol name and type @kbd{C-c C-c}
448 (@code{help-follow-symbol}). This shows all available documentation
449 about 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
457 The @kbd{C-h p} command lets you search the standard Emacs Lisp
458 libraries by topic keywords. Here is a partial list of keywords you can
459 use:
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
505 specific language environment. @xref{Language Environments}. This
506 tells you which languages this language environment supports. It also
507 lists the character sets, coding systems, and input methods that work
508 with this language environment, and finally shows some sample text to
509 illustrate 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
515 input method---either a specified input method, or by default the
516 input method currently in use. @xref{Input Methods}.
517
518 The command @kbd{C-h C} (@code{describe-coding-system}) describes
519 coding systems---either a specified coding system, or the ones
520 currently 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
531 structured documentation files. The entire Emacs manual is available
532 within 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
538 Info manuals simultaneously. If you specify just @kbd{C-u} as the
539 prefix argument, @kbd{C-h i} prompts for the name of a documentation
540 file, so you can browse a file which doesn't have an entry in the
541 top-level Info menu.
542
543 The help commands @kbd{C-h F @var{function} @key{RET}} and @kbd{C-h
544 K @var{key}}, described above, enter Info and go straight to the
545 documentation 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
550 for the programming language, you can use @kbd{C-h S}
551 (@code{info-lookup-symbol}) to find an entry for a symbol (keyword,
552 function or variable) in the proper manual. The details of how this
553 command works depend on the major mode.
554
555 @kindex C-h l
556 @findex view-lossage
557 If something surprising happens, and you are not sure what you typed,
558 use @kbd{C-h l} (@code{view-lossage}). @kbd{C-h l} displays your last
559 300 input keystrokes. If you see commands that you don't know, you can
560 use @kbd{C-h c} to find out what they do.
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
571 changes in how editing works. @kbd{C-h m} (@code{describe-mode})
572 displays documentation on the current major mode, which normally
573 describes 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
579 environment within Emacs. @kbd{C-h b} displays a list of all the key
580 bindings now in effect: first the local bindings of the current minor
581 modes, then the local bindings defined by the current major mode, and
582 finally the global bindings (@pxref{Key Bindings}). @kbd{C-h s}
583 displays the contents of the syntax table, with explanations of each
584 character's syntax (@pxref{Syntax}).
585
586 You can get a list of subcommands for a particular prefix key by
587 typing @kbd{C-h} after the prefix key. (There are a few prefix keys
588 for which this does not work---those that provide their own bindings
589 for @kbd{C-h}. One of these is @key{ESC}, because @kbd{@key{ESC} C-h}
590 is 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
596 on the current state within Emacs, or refer to manuals. Other help
597 commands display pre-written, static help files.
598
599 Except for @kbd{C-h g}, these commands all have the form @kbd{C-h
600 C-@var{char}}; that is, @kbd{C-h} followed by a control character.
601
602 @kindex C-h C-c
603 @findex describe-copying
604 @kindex C-h C-d
605 @findex view-emacs-debugging
606 @kindex C-h C-e
607 @findex view-external-packages
608 @kindex C-h C-f
609 @findex view-emacs-FAQ
610 @kindex C-h g
611 @findex describe-gnu-project
612 @kindex C-h C-m
613 @findex view-order-manuals
614 @kindex C-h C-n
615 @findex view-emacs-news
616 @kindex C-h C-o
617 @findex describe-distribution
618 @kindex C-h C-p
619 @findex view-emacs-problems
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
627 Display the Emacs copying conditions (@code{describe-copying}).
628 These are the rules under which you can copy and redistribute Emacs.
629 @item C-h C-d
630 Display how to debug Emacs problems (@code{view-emacs-debugging}).
631 @item C-h C-f
632 Display the Emacs frequently-answered-questions list (@code{view-emacs-FAQ}).
633 @item C-h g
634 Display general information about the GNU Project
635 (@code{describe-gnu-project}).
636 @item C-h C-m
637 Display how to order printed copies of Emacs manuals
638 (@code{view-order-manuals}).
639 @item C-h C-n
640 Display the Emacs ``news'' file, which lists new features in the most
641 recent version of Emacs (@code{view-emacs-news}).
642 @item C-h C-o
643 Display how to order or download the latest version of
644 Emacs and other GNU software (@code{describe-distribution}).
645 @item C-h C-p
646 Display the list of known Emacs problems, sometimes with suggested
647 workarounds (@code{view-emacs-problems}).
648 @item C-h C-t
649 Display the Emacs to-do list (@code{view-emacs-todo}).
650 @item C-h C-w
651 Display the full details on the complete absence of warranty for GNU
652 Emacs (@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
660 When text on the screen is ``active'', so that it does something
661 special in response to mouse clicks or @kbd{RET}, it often has associated
662 help text. For instance, most parts of the mode line have help text. On
663 terminals that support mouse tracking, Emacs displays the help text as a
664 ``tooltip'' (sometimes known as ``balloon help'') or in the echo area,
665 whenever you leave the mouse stationary over the active text.
666 @xref{Tooltips}.
667
668 @kindex C-h .
669 @findex display-local-help
670 @vindex help-at-pt-display-when-idle
671 If your terminal doesn't support mouse-tracking, you can display the
672 help text for active buffer text using the keyboard. @kbd{C-h .}
673 (@code{display-local-help}) displays any help text associated with the
674 character after point, using the echo area. To display help text
675 automatically whenever it is available on the character after point, set
676 the variable @code{help-at-pt-display-when-idle} to @code{t}.
677
678 @ignore
679 arch-tag: 6f33ab62-bc75-4367-8057-fd67cc15c3a1
680 @end ignore