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