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