001: @c This is part of the Emacs manual.
002: @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2019 Free Software
003: @c Foundation, Inc.
004: @c See file emacs.texi for copying conditions.
005: @node Help
006: @chapter Help
007: @cindex help
008: @cindex self-documentation
009: @findex help-command
010: @kindex C-h
011: @kindex F1
012: 
013: @kindex C-h C-h
014: @findex help-for-help
015:   Emacs provides a wide variety of help commands, all accessible
016: through the prefix key @kbd{C-h} (or, equivalently, the function key
017: @key{F1}).  These help commands are described in the following
018: sections.  You can also type @kbd{C-h C-h} to view a list of help
019: commands (@code{help-for-help}).  You can scroll the list with
020: @key{SPC} and @key{DEL}, then type the help command you want.  To
021: cancel, type @kbd{C-g}.
022: 
023:   Many help commands display their information in a special @dfn{help
024: buffer}.  In this buffer, you can type @key{SPC} and @key{DEL} to
025: scroll and type @key{RET} to follow hyperlinks.  @xref{Help Mode}.
026: 
027: @cindex searching documentation efficiently
028: @cindex looking for a subject in documentation
029:   If you are looking for a certain feature, but don't know what it is
030: called or where to look, we recommend three methods.  First, try an
031: apropos command, then try searching the manual index, then look in the
032: FAQ and the package keywords.
033: 
034: @table @kbd
035: @item C-h a @var{topics} @key{RET}
036: This searches for commands whose names match the argument
037: @var{topics}.  The argument can be a keyword, a list of keywords, or a
038: regular expression (@pxref{Regexps}).  @xref{Apropos}.
039: 
040: @item C-h i d m emacs @key{RET} i @var{topic} @key{RET}
041: This searches for @var{topic} in the indices of the Emacs Info manual,
042: displaying the first match found.  Press @kbd{,} to see subsequent
043: matches.  You can use a regular expression as @var{topic}.
044: 
045: @item C-h i d m emacs @key{RET} s @var{topic} @key{RET}
046: Similar, but searches the @emph{text} of the manual rather than the
047: indices.
048: 
049: @item C-h C-f
050: This displays the Emacs FAQ, using Info.
051: 
052: @item C-h p
053: This displays the available Emacs packages based on keywords.
054: @xref{Package Keywords}.
055: @end table
056: 
057:   @kbd{C-h} or @key{F1} mean ``help'' in various other contexts as
058: well.  For instance, you can type them after a prefix key to view a
059: list of the keys that can follow the prefix key.  (You can also use
060: @kbd{?} in this context.  A few prefix keys don't support @kbd{C-h}
061: or @kbd{?} in this way, because they define other meanings for those
062: inputs, but they all support @key{F1}.)
063: 
064: @menu
065: * Help Summary::        Brief list of all Help commands.
066: * Key Help::            Asking what a key does in Emacs.
067: * Name Help::           Asking about a command, variable or function name.
068: * Apropos::             Asking what pertains to a given topic.
069: * Help Mode::           Special features of Help mode and Help buffers.
070: * Package Keywords::    Finding Lisp libraries by keywords (topics).
071: * Language Help::       Help relating to international language support.
072: * Misc Help::           Other help commands.
073: * Help Files::          Commands to display auxiliary help files.
074: * Help Echo::           Help on active text and tooltips (``balloon help'').
075: @end menu
076: 
077: @iftex
078: @node Help Summary
079: @end iftex
080: @ifnottex
081: @node Help Summary
082: @section Help Summary
083: @end ifnottex
084: 
085:   Here is a summary of help commands for accessing the built-in
086: documentation.  Most of these are described in more detail in the
087: following sections.
088: 
089: @table @kbd
090: @item C-h a @var{topics} @key{RET}
091: Display a list of commands whose names match @var{topics}
092: (@code{apropos-command}).
093: @item C-h b
094: Display all active key bindings; minor mode bindings first, then those
095: of the major mode, then global bindings (@code{describe-bindings}).
096: @item C-h c @var{key}
097: Show the name of the command that the key sequence @var{key} is bound
098: to (@code{describe-key-briefly}).  Here @kbd{c} stands for
099: ``character''.  For more extensive information on @var{key}, use
100: @kbd{C-h k}.
101: @item C-h d @var{topics} @key{RET}
102: Display the commands and variables whose documentation matches
103: @var{topics} (@code{apropos-documentation}).
104: @item C-h e
105: Display the @file{*Messages*} buffer
106: (@code{view-echo-area-messages}).
107: @item C-h f @var{function} @key{RET}
108: Display documentation on the Lisp function named @var{function}
109: (@code{describe-function}).  Since commands are Lisp functions,
110: this works for commands too.
111: @item C-h h
112: Display the @file{HELLO} file, which shows examples of various character
113: sets.
114: @item C-h i
115: Run Info, the GNU documentation browser (@code{info}).  The Emacs
116: manual is available in Info.
117: @item C-h k @var{key}
118: Display the name and documentation of the command that @var{key} runs
119: (@code{describe-key}).
120: @item C-h l
121: Display a description of your last 300 keystrokes
122: (@code{view-lossage}).
123: @item C-h m
124: Display documentation of the current major mode and minor modes
125: (@code{describe-mode}).
126: @item C-h n
127: Display news of recent Emacs changes (@code{view-emacs-news}).
128: @item C-h o @var{symbol}
129: Display documentation of the Lisp symbol named @var{symbol}
130: (@code{describe-symbol}).  This will show the documentation of all
131: kinds of symbols: functions, variables, and faces.
132: @item C-h p
133: Find packages by topic keyword (@code{finder-by-keyword}).  This lists
134: packages using a package menu buffer.  @xref{Packages}.
135: @item C-h P @var{package} @key{RET}
136: Display documentation about the specified package
137: (@code{describe-package}).
138: @item C-h r
139: Display the Emacs manual in Info (@code{info-emacs-manual}).
140: @item C-h s
141: Display the contents of the current @dfn{syntax table}
142: (@code{describe-syntax}).  The syntax table says which characters are
143: opening delimiters, which are parts of words, and so on.  @xref{Syntax
144: Tables,, Syntax Tables, elisp, The Emacs Lisp Reference Manual}, for
145: details.
146: @item C-h t
147: Enter the Emacs interactive tutorial (@code{help-with-tutorial}).
148: @item C-h v @var{var} @key{RET}
149: Display the documentation of the Lisp variable @var{var}
150: (@code{describe-variable}).
151: @item C-h w @var{command} @key{RET}
152: Show which keys run the command named @var{command} (@code{where-is}).
153: @item C-h C @var{coding} @key{RET}
154: Describe the coding system @var{coding}
155: (@code{describe-coding-system}).
156: @item C-h C @key{RET}
157: Describe the coding systems currently in use.
158: @item C-h F @var{command} @key{RET}
159: Enter Info and go to the node that documents the Emacs command
160: @var{command} (@code{Info-goto-emacs-command-node}).
161: @item C-h I @var{method} @key{RET}
162: Describe the input method @var{method} (@code{describe-input-method}).
163: @item C-h K @var{key}
164: Enter Info and go to the node that documents the key sequence
165: @var{key} (@code{Info-goto-emacs-key-command-node}).
166: @item C-h L @var{language-env} @key{RET}
167: Display information on the character sets, coding systems, and input
168: methods used in language environment @var{language-env}
169: (@code{describe-language-environment}).
170: @item C-h S @var{symbol} @key{RET}
171: Display the Info documentation on symbol @var{symbol} according to the
172: programming language you are editing (@code{info-lookup-symbol}).
173: @item C-h .
174: Display the help message for a special text area, if point is in one
175: (@code{display-local-help}).  (These include, for example, links in
176: @file{*Help*} buffers.)
177: @end table
178: 
179: @node Key Help
180: @section Documentation for a Key
181: 
182: @findex describe-key-briefly
183: @findex describe-key
184:   The help commands to get information about a key sequence are
185: @kbd{C-h c} (@code{describe-key-briefly}) and @kbd{C-h k}
186: (@code{describe-key}).
187: 
188: @kindex C-h c
189:   @kbd{C-h c @var{key}} displays in the echo area the name of the
190: command that @var{key} is bound to.  For example, @kbd{C-h c C-f}
191: displays @samp{forward-char}.
192: 
193: @cindex documentation string
194: @kindex C-h k
195:   @kbd{C-h k @var{key}} is similar but gives more information: it
196: displays a help buffer containing the command's @dfn{documentation
197: string}, which describes exactly what the command does.
198: 
199: @kindex C-h K
200: @findex Info-goto-emacs-key-command-node
201:   @kbd{C-h K @var{key}} displays the section of the Emacs manual that
202: describes the command corresponding to @var{key}.
203: 
204:   @kbd{C-h c}, @kbd{C-h k} and @kbd{C-h K} work for any sort of key
205: sequences, including function keys, menus, and mouse events (except
206: that @kbd{C-h c} ignores mouse movement events).  For instance, after
207: @kbd{C-h k} you can select a menu item from the menu bar, to view the
208: documentation string of the command it runs.
209: 
210: @kindex C-h w
211: @findex where-is
212:   @kbd{C-h w @var{command} @key{RET}} lists the keys that are bound to
213: @var{command}.  It displays the list in the echo area.  If it says the
214: command is not on any key, that means you must use @kbd{M-x} to run
215: it.  @kbd{C-h w} runs the command @code{where-is}.
216: 
217: @node Name Help
218: @section Help by Command or Variable Name
219: 
220: @kindex C-h f
221: @findex describe-function
222:   @kbd{C-h f @var{function} @key{RET}} (@code{describe-function})
223: displays the documentation of Lisp function @var{function}, in a
224: window.  Since commands are Lisp functions, you can use this method to
225: view the documentation of any command whose name you know.  For
226: example,
227: 
228: @example
229: C-h f auto-fill-mode @key{RET}
230: @end example
231: 
232: @noindent
233: displays the documentation of @code{auto-fill-mode}.  This is the only
234: way 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: 
237:   @kbd{C-h f} is also useful for Lisp functions that you use in a Lisp
238: program.  For example, if you have just written the expression
239: @code{(make-vector len)} and want to check that you are using
240: @code{make-vector} properly, type @kbd{C-h f make-vector @key{RET}}.
241: Because @kbd{C-h f} allows all function names, not just command names,
242: you may find that some of your favorite completion abbreviations that
243: work in @kbd{M-x} don't work in @kbd{C-h f}.  An abbreviation that is
244: unique among command names may not be unique among all function names.
245: 
246:   If you type @kbd{C-h f @key{RET}}, it describes the function called
247: by the innermost Lisp expression in the buffer around point,
248: @emph{provided} that function name is a valid, defined Lisp function.
249: (That name appears as the default while you enter the argument.)  For
250: example, if point is located following the text @samp{(make-vector
251: (car x)}, the innermost list containing point is the one that starts
252: with @samp{(make-vector}, so @kbd{C-h f @key{RET}} describes the
253: function @code{make-vector}.
254: 
255:   @kbd{C-h f} is also useful just to verify that you spelled a
256: function name correctly.  If the minibuffer prompt for @kbd{C-h f}
257: shows the function name from the buffer as the default, it means that
258: name is defined as a Lisp function.  Type @kbd{C-g} to cancel the
259: @kbd{C-h f} command if you don't really want to view the
260: documentation.
261: 
262: @kindex C-h v
263: @findex describe-variable
264:   @kbd{C-h v} (@code{describe-variable}) is like @kbd{C-h f} but
265: describes Lisp variables instead of Lisp functions.  Its default is
266: the Lisp symbol around or before point, if that is the name of a
267: defined Lisp variable.  @xref{Variables}.
268: 
269:   Help buffers that describe Emacs variables and functions normally
270: have hyperlinks to the corresponding source code, if you have the
271: source files installed (@pxref{Hyperlinking}).
272: 
273: @kindex C-h F
274: @findex Info-goto-emacs-command-node
275:   To find a command's documentation in a manual, use @kbd{C-h F}
276: (@code{Info-goto-emacs-command-node}).  This knows about various
277: manuals, not just the Emacs manual, and finds the right one.
278: 
279: @kindex C-h o
280: @findex describe-symbol
281:   @kbd{C-h o} (@code{describe-symbol}) is like @kbd{C-h f} and
282: @kbd{C-h v}, but it describes any symbol, be it a function, a
283: variable, or a face.  If the symbol has more than one definition, like
284: it has both definition as a function and as a variable, this command
285: will show the documentation of all of them, one after the other.
286: 
287: @node Apropos
288: @section Apropos
289: @cindex apropos
290: 
291:   The @dfn{apropos} commands answer questions like, ``What are the
292: commands for working with files?''  More precisely, you specify an
293: @dfn{apropos pattern}, which means either a word, a list of words, or
294: a regular expression.
295: 
296:   Each of the following apropos commands reads an apropos pattern in
297: the minibuffer, searches for items that match the pattern, and
298: displays the results in a different window.
299: 
300: @table @kbd
301: @item C-h a
302: @kindex C-h a
303: @findex apropos-command
304: Search for commands (@code{apropos-command}).  With a prefix argument,
305: search for noninteractive functions too.
306: 
307: @item M-x apropos
308: @findex apropos
309: Search for functions and variables.  Both interactive functions
310: (commands) and noninteractive functions can be found by this.
311: 
312: @item M-x apropos-user-option
313: @findex apropos-user-option
314: Search for user-customizable variables.  With a prefix argument,
315: search for non-customizable variables too.
316: 
317: @item M-x apropos-variable
318: @findex apropos-variable
319: Search for variables.  With a prefix argument, search for
320: customizable variables only.
321: 
322: @item M-x apropos-local-variable
323: @findex apropos-local-variable
324: Search for buffer-local variables.
325: 
326: @item M-x apropos-value
327: @findex apropos-value
328: Search for variables whose values match the specified pattern.  With a
329: prefix argument, search also for functions with definitions matching
330: the pattern, and Lisp symbols with properties matching the pattern.
331: 
332: @item M-x apropos-local-value
333: @findex apropos-local-value
334: Search for buffer-local variables whose values match the specified
335: pattern.
336: 
337: @item C-h d
338: @kindex C-h d
339: @findex apropos-documentation
340: Search for functions and variables whose documentation strings match
341: the specified pattern (@code{apropos-documentation}).
342: @end table
343: 
344:   The simplest kind of apropos pattern is one word.  Anything
345: containing that word matches the pattern.  Thus, to find commands that
346: work on files, type @kbd{C-h a file @key{RET}}.  This displays a list
347: of all command names that contain @samp{file}, including
348: @code{copy-file}, @code{find-file}, and so on.  Each command name
349: comes with a brief description and a list of keys you can currently
350: invoke it with.  In our example, it would say that you can invoke
351: @code{find-file} by typing @kbd{C-x C-f}.
352: 
353:   For more information about a function definition, variable or symbol
354: property listed in an apropos buffer, you can click on it with
355: @kbd{mouse-1} or @kbd{mouse-2}, or move there and type @key{RET}.
356: 
357:   When you specify more than one word in the apropos pattern, a name
358: must contain at least two of the words in order to match.  Thus, if
359: you are looking for commands to kill a chunk of text before point, you
360: could try @kbd{C-h a kill back backward behind before @key{RET}}.  The
361: real command name @code{kill-backward} will match that; if there were
362: a command @code{kill-text-before}, it would also match, since it
363: contains two of the specified words.
364: 
365:   For even greater flexibility, you can specify a regular expression
366: (@pxref{Regexps}).  An apropos pattern is interpreted as a regular
367: expression if it contains any of the regular expression special
368: characters, @samp{^$*+?.\[}.
369: 
370:   Following the conventions for naming Emacs commands, here are some
371: words that you'll find useful in apropos patterns.  By using them in
372: @kbd{C-h a}, you will also get a feel for the naming conventions.
373: 
374: @quotation
375: char, line, word, sentence, paragraph, region, page, sexp, list, defun,
376: rect, buffer, frame, window, face, file, dir, register, mode, beginning, end,
377: forward, backward, next, previous, up, down, search, goto, kill, delete,
378: mark, insert, yank, fill, indent, case, change, set, what, list, find,
379: view, describe, default.
380: @end quotation
381: 
382: @vindex apropos-do-all
383:   If the variable @code{apropos-do-all} is non-@code{nil}, most
384: apropos commands behave as if they had been given a prefix argument.
385: There is one exception: @code{apropos-variable} without a prefix
386: argument will always search for all variables, no matter what the
387: value of @code{apropos-do-all} is.
388: 
389: @vindex apropos-sort-by-scores
390: @cindex apropos search results, order by score
391: @vindex apropos-documentation-sort-by-scores
392:   By default, all apropos commands except @code{apropos-documentation}
393: list their results in alphabetical order.  If the variable
394: @code{apropos-sort-by-scores} is non-@code{nil}, these commands
395: instead try to guess the relevance of each result, and display the
396: most relevant ones first.  The @code{apropos-documentation} command
397: lists its results in order of relevance by default; to list them in
398: alphabetical order, change the variable
399: @code{apropos-documentation-sort-by-scores} to @code{nil}.
400: 
401: @node Help Mode
402: @section Help Mode Commands
403: 
404:   Help buffers provide the same commands as View mode (@pxref{View
405: Mode}); for instance, @key{SPC} scrolls forward, and @key{DEL} or
406: @kbd{S-@key{SPC}} scrolls backward.  A few special commands are also
407: provided:
408: 
409: @table @kbd
410: @item @key{RET}
411: Follow a cross reference at point (@code{help-follow}).
412: @item @key{TAB}
413: Move point forward to the next hyperlink (@code{forward-button}).
414: @item S-@key{TAB}
415: Move point back to the previous hyperlink (@code{backward-button}).
416: @item mouse-1
417: @itemx mouse-2
418: Follow a hyperlink that you click on.
419: @item C-c C-c
420: Show all documentation about the symbol at point
421: (@code{help-follow-symbol}).
422: @item C-c C-f
423: @itemx r
424: Go forward to the next help topic (@code{help-go-forward}).
425: @item C-c C-b
426: @itemx l
427: Go back to the previous help topic (@code{help-go-back}).
428: @end table
429: 
430: @cindex hyperlink
431: @findex help-follow
432: @findex help-go-back
433: @findex help-go-forward
434: @kindex RET @r{(Help mode)}
435: @kindex C-c C-b @r{(Help mode)}
436: @kindex l @r{(Help mode)}
437: @kindex C-c C-f @r{(Help mode)}
438: @kindex r @r{(Help mode)}
439:   When a function name, variable name, or face name (@pxref{Faces})
440: appears in the documentation in the help buffer, it is normally an
441: underlined @dfn{hyperlink}.  To view the associated documentation,
442: move point there and type @key{RET} (@code{help-follow}), or click on
443: the hyperlink with @kbd{mouse-1} or @kbd{mouse-2}.  Doing so replaces
444: the contents of the help buffer; to retrace your steps, type @kbd{C-c
445: C-b} or @kbd{l} (@code{help-go-back}).  While retracing your steps,
446: you can go forward by using @kbd{C-c C-f} or @kbd{r}
447: (@code{help-go-forward}).
448: 
449: @cindex URL, viewing in help
450: @cindex help, viewing web pages
451: @cindex viewing web pages in help
452: @cindex web pages, viewing in help
453:   A help buffer can also contain hyperlinks to Info manuals, source
454: code definitions, and URLs (web pages).  The first two are opened in
455: Emacs, and the third using a web browser via the @code{browse-url}
456: command (@pxref{Browse-URL}).
457: 
458: @kindex TAB @r{(Help mode)}
459: @findex forward-button
460: @kindex S-TAB @r{(Help mode)}
461: @findex backward-button
462:   In a help buffer, @key{TAB} (@code{forward-button}) moves point
463: forward to the next hyperlink, while @kbd{S-@key{TAB}}
464: (@code{backward-button}) moves point back to the previous hyperlink.
465: These commands act cyclically; for instance, typing @key{TAB} at the
466: last hyperlink moves back to the first hyperlink.
467: 
468:   To view all documentation about any symbol in the text, move point
469: to the symbol and type @kbd{C-c C-c} (@code{help-follow-symbol}).
470: This shows the documentation for all the meanings of the symbol---as a
471: variable, as a function, and/or as a face.
472: 
473: @node Package Keywords
474: @section Keyword Search for Packages
475: @cindex finder
476: 
477: Most optional features in Emacs are grouped into @dfn{packages}.
478: Emacs contains several hundred built-in packages, and more can be
479: installed over the network (@pxref{Packages}).
480: 
481: @kindex C-h p
482: @findex finder-by-keyword
483:   To make it easier to find packages related to a topic, most packages
484: are associated with one or more @dfn{keywords} based on what they do.
485: Type @kbd{C-h p} (@code{finder-by-keyword}) to bring up a list of
486: package keywords, together with a description of what the keywords
487: mean.  To view a list of packages for a given keyword, type @key{RET}
488: on that line; this displays the list of packages in a Package Menu
489: buffer (@pxref{Package Menu}).
490: 
491: @findex describe-package
492: @kindex C-h P
493:   @kbd{C-h P} (@code{describe-package}) prompts for the name of a
494: package (@pxref{Packages}), and displays a help buffer describing the
495: attributes of the package and the features that it implements.  The
496: buffer lists the keywords that relate to the package in the form of
497: buttons.  Click on a button with @kbd{mouse-1} or @kbd{mouse-2} to see
498: the list of other packages related to that keyword.
499: 
500: @node Language Help
501: @section Help for International Language Support
502: 
503:   For information on a specific language environment (@pxref{Language
504: Environments}), type @kbd{C-h L}
505: (@code{describe-language-environment}).  This displays a help buffer
506: describing the languages supported by the language environment, and
507: listing the associated character sets, coding systems, and input
508: methods, as well as some sample text for that language environment.
509: 
510:   The command @kbd{C-h h} (@code{view-hello-file}) displays the file
511: @file{etc/HELLO}, which demonstrates various character sets by showing
512: 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: @kindex C-h 4 i
527: @findex info
528: @findex info-other-window
529: @cindex Info
530: @cindex manuals, included
531:   @kbd{C-h i} (@code{info}) runs the Info program, which browses
532: structured documentation files.  @kbd{C-h 4 i}
533: (@code{info-other-window}) does the same, but shows the Info buffer in
534: another window.  The entire Emacs manual is available within Info,
535: along with many other manuals for the GNU system.  Type @kbd{h} after
536: entering Info to run a tutorial on using Info.
537: 
538: @cindex find Info manual by its file name
539:   With a numeric argument @var{n}, @kbd{C-h i} selects the Info buffer
540: @samp{*info*<@var{n}>}.  This is useful if you want to browse multiple
541: Info manuals simultaneously.  If you specify just @kbd{C-u} as the
542: prefix argument, @kbd{C-h i} prompts for the name of a documentation
543: file, so you can browse a file which doesn't have an entry in the
544: top-level Info menu.
545: 
546:   The help commands @kbd{C-h F @var{function} @key{RET}} and @kbd{C-h
547: K @var{key}}, described above, enter Info and go straight to the
548: documentation of @var{function} or @var{key}.
549: 
550: @kindex C-h S
551: @findex info-lookup-symbol
552:   When editing a program, if you have an Info version of the manual
553: for the programming language, you can use @kbd{C-h S}
554: (@code{info-lookup-symbol}) to find an entry for a symbol (keyword,
555: function or variable) in the proper manual.  The details of how this
556: command works depend on the major mode.
557: 
558: @kindex C-h l
559: @findex view-lossage
560:   If something surprising happens, and you are not sure what you typed,
561: use @kbd{C-h l} (@code{view-lossage}).  @kbd{C-h l} displays your last
562: 300 input keystrokes and the commands they invoked.  If you see
563: commands that you are not familiar with, you can use @kbd{C-h k} or
564: @kbd{C-h f} to find out what they do.
565: 
566: @kindex C-h e
567: @findex view-echo-area-messages
568:   To review recent echo area messages, use @kbd{C-h e}
569: (@code{view-echo-area-messages}).  This displays the buffer
570: @file{*Messages*}, where those messages are kept.
571: 
572: @kindex C-h m
573: @findex describe-mode
574:   Each Emacs major mode typically redefines a few keys and makes other
575: changes in how editing works.  @kbd{C-h m} (@code{describe-mode})
576: displays documentation on the current major mode, which normally
577: describes the commands and features that are changed in this mode, and
578: also its key bindings.
579: 
580: @kindex C-h b
581: @findex describe-bindings
582: @kindex C-h s
583: @findex describe-syntax
584:   @kbd{C-h b} (@code{describe-bindings}) and @kbd{C-h s}
585: (@code{describe-syntax}) show other information about the current
586: environment within Emacs.  @kbd{C-h b} displays a list of all the key
587: bindings now in effect: first the local bindings of the current minor
588: modes, then the local bindings defined by the current major mode, and
589: finally the global bindings (@pxref{Key Bindings}).  @kbd{C-h s}
590: displays the contents of the syntax table, with explanations of each
591: character's syntax (@pxref{Syntax Tables,, Syntax Tables, elisp, The
592: Emacs Lisp Reference Manual}).
593: 
594: @findex describe-prefix-bindings
595:   You can get a list of subcommands for a particular prefix key by
596: typing @kbd{C-h}, @kbd{?}, or @key{F1}
597: (@code{describe-prefix-bindings}) after the prefix key.  (There are a
598: few prefix keys for which not all of these keys work---those that
599: provide their own bindings for that key.  One of these prefix keys
600: is @key{ESC}, because @kbd{@key{ESC} C-h} is actually @kbd{C-M-h},
601: which marks a defun.  However, @w{@kbd{@key{ESC} @key{F1}}} and
602: @w{@kbd{@key{ESC} ?}} work fine.)
603: 
604: @node Help Files
605: @section Help Files
606: 
607:   Apart from the built-in documentation and manuals, Emacs contains
608: several other files describing topics like copying conditions, release
609: notes, instructions for debugging and reporting bugs, and so forth.
610: You can use the following commands to view these files.  Apart from
611: @kbd{C-h g}, they all have the form @kbd{C-h C-@var{char}}.
612: 
613: @kindex C-h C-c
614: @findex describe-copying
615: @kindex C-h C-d
616: @findex view-emacs-debugging
617: @kindex C-h C-e
618: @findex view-external-packages
619: @kindex C-h C-f
620: @findex view-emacs-FAQ
621: @kindex C-h g
622: @findex describe-gnu-project
623: @kindex C-h C-m
624: @findex view-order-manuals
625: @kindex C-h C-n
626: @findex view-emacs-news
627: @kindex C-h C-o
628: @findex describe-distribution
629: @kindex C-h C-p
630: @findex view-emacs-problems
631: @kindex C-h C-t
632: @findex view-emacs-todo
633: @kindex C-h C-w
634: @findex describe-no-warranty
635: 
636: @table @kbd
637: @item C-h C-c
638: Display the rules under which you can copy and redistribute Emacs
639: (@code{describe-copying}).
640: @item C-h C-d
641: Display help for debugging Emacs (@code{view-emacs-debugging}).
642: @item C-h C-e
643: Display information about where to get external packages
644: (@code{view-external-packages}).
645: @item C-h C-f
646: Display the Emacs frequently-answered-questions list (@code{view-emacs-FAQ}).
647: @item C-h g
648: Visit the @uref{https://www.gnu.org, page} with information about the GNU
649: Project (@code{describe-gnu-project}).
650: @item C-h C-m
651: Display information about ordering printed copies of Emacs manuals
652: (@code{view-order-manuals}).
653: @item C-h C-n
654: Display the news, which lists the new features in this
655: version of Emacs (@code{view-emacs-news}).
656: @item C-h C-o
657: Display how to order or download the latest version of
658: Emacs and other GNU software (@code{describe-distribution}).
659: @item C-h C-p
660: Display the list of known Emacs problems, sometimes with suggested
661: workarounds (@code{view-emacs-problems}).
662: @item C-h C-t
663: Display the Emacs to-do list (@code{view-emacs-todo}).
664: @item C-h C-w
665: Display the full details on the complete absence of warranty for GNU
666: Emacs (@code{describe-no-warranty}).
667: @end table
668: 
669: @node Help Echo
670: @section Help on Active Text and Tooltips
671: 
672: @cindex tooltip help
673: @cindex balloon help
674: @cindex active text
675:   In Emacs, stretches of @dfn{active text} (text that does something
676: special in response to mouse clicks or @key{RET}) often have
677: associated help text.  This includes hyperlinks in Emacs buffers, as
678: well as parts of the mode line.  On graphical displays, as well as
679: some text terminals which support mouse tracking, moving the mouse
680: over the active text displays the help text as a @dfn{tooltip}.
681: @xref{Tooltips}.
682: 
683: @kindex C-h .
684: @findex display-local-help
685: @vindex help-at-pt-display-when-idle
686:   On terminals that don't support mouse-tracking, you can display the
687: help text for active buffer text at point by typing @kbd{C-h .}
688: (@code{display-local-help}).  This shows the help text in the echo
689: area.  To display help text automatically whenever it is available at
690: point, set the variable @code{help-at-pt-display-when-idle} to
691: @code{t}.
692: