Commit | Line | Data |
---|---|---|
8cf51b2c | 1 | @c This is part of the Emacs manual. |
ba318903 | 2 | @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2014 Free Software |
ab422c4d | 3 | @c Foundation, Inc. |
8cf51b2c | 4 | @c See file emacs.texi for copying conditions. |
abb9615e | 5 | @node Help |
8cf51b2c GM |
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 | ||
8cf51b2c GM |
14 | @kindex C-h C-h |
15 | @findex help-for-help | |
3dc62b2b CY |
16 | Emacs provides a wide variety of help commands, all accessible |
17 | through the prefix key @kbd{C-h} (or, equivalently, the function key | |
18 | @key{F1}). These help commands are described in the following | |
19 | sections. You can also type @kbd{C-h C-h} to view a list of help | |
20 | commands (@code{help-for-help}). You can scroll the list with | |
21 | @key{SPC} and @key{DEL}, then type the help command you want. To | |
22 | cancel, type @kbd{C-g}. | |
23 | ||
24 | Many help commands display their information in a special @dfn{help | |
25 | buffer}. In this buffer, you can type @key{SPC} and @key{DEL} to | |
26 | scroll and type @key{RET} to follow hyperlinks. @xref{Help Mode}. | |
8cf51b2c GM |
27 | |
28 | @cindex searching documentation efficiently | |
29 | @cindex looking for a subject in documentation | |
30 | If you are looking for a certain feature, but don't know what it is | |
31 | called or where to look, we recommend three methods. First, try an | |
32 | apropos command, then try searching the manual index, then look in the | |
33 | FAQ and the package keywords. | |
34 | ||
35 | @table @kbd | |
36 | @item C-h a @var{topics} @key{RET} | |
37 | This searches for commands whose names match the argument | |
38 | @var{topics}. The argument can be a keyword, a list of keywords, or a | |
9de15963 | 39 | regular expression (@pxref{Regexps}). @xref{Apropos}. |
8cf51b2c GM |
40 | |
41 | @item C-h i d m emacs @key{RET} i @var{topic} @key{RET} | |
3dc62b2b CY |
42 | This searches for @var{topic} in the indices of the Emacs Info manual, |
43 | displaying the first match found. Press @kbd{,} to see subsequent | |
44 | matches. You can use a regular expression as @var{topic}. | |
8cf51b2c GM |
45 | |
46 | @item C-h i d m emacs @key{RET} s @var{topic} @key{RET} | |
47 | Similar, but searches the @emph{text} of the manual rather than the | |
48 | indices. | |
49 | ||
50 | @item C-h C-f | |
3dc62b2b | 51 | This displays the Emacs FAQ, using Info. |
8cf51b2c GM |
52 | |
53 | @item C-h p | |
54 | This displays the available Emacs packages based on keywords. | |
3dc62b2b | 55 | @xref{Package Keywords}. |
8cf51b2c GM |
56 | @end table |
57 | ||
a34a0ac8 TH |
58 | @kbd{C-h}, @key{F1}, or @kbd{?} means ``help'' in various other |
59 | contexts as well. For instance, you can type them after a prefix key | |
60 | to view a list of the keys that can follow the prefix key. (A few | |
61 | prefix keys don't support @kbd{C-h} or @kbd{?} in this way, because | |
62 | they define other meanings for it, but they all support @key{F1} for | |
63 | help.) | |
3dc62b2b | 64 | |
8cf51b2c | 65 | @menu |
8838673e GM |
66 | * Help Summary:: Brief list of all Help commands. |
67 | * Key Help:: Asking what a key does in Emacs. | |
68 | * Name Help:: Asking about a command, variable or function name. | |
69 | * Apropos:: Asking what pertains to a given topic. | |
8cf51b2c | 70 | * Help Mode:: Special features of Help mode and Help buffers. |
3dc62b2b | 71 | * Package Keywords:: Finding Lisp libraries by keywords (topics). |
8cf51b2c | 72 | * Language Help:: Help relating to international language support. |
8838673e | 73 | * Misc Help:: Other help commands. |
bfd779dd | 74 | * Help Files:: Commands to display auxiliary help files. |
775b55af | 75 | * Help Echo:: Help on active text and tooltips ("balloon help"). |
8cf51b2c GM |
76 | @end menu |
77 | ||
78 | @iftex | |
79 | @node Help Summary | |
80 | @end iftex | |
81 | @ifnottex | |
82 | @node Help Summary | |
83 | @section Help Summary | |
84 | @end ifnottex | |
85 | ||
3dc62b2b CY |
86 | Here is a summary of help commands for accessing the built-in |
87 | documentation. Most of these are described in more detail in the | |
88 | following sections. | |
8cf51b2c GM |
89 | |
90 | @table @kbd | |
91 | @item C-h a @var{topics} @key{RET} | |
92 | Display a list of commands whose names match @var{topics} | |
3dc62b2b | 93 | (@code{apropos-command}). |
8cf51b2c GM |
94 | @item C-h b |
95 | Display all active key bindings; minor mode bindings first, then those | |
96 | of the major mode, then global bindings (@code{describe-bindings}). | |
97 | @item C-h c @var{key} | |
3dc62b2b CY |
98 | Show the name of the command that the key sequence @var{key} is bound |
99 | to (@code{describe-key-briefly}). Here @kbd{c} stands for | |
16152b76 | 100 | ``character''. For more extensive information on @var{key}, use |
8cf51b2c GM |
101 | @kbd{C-h k}. |
102 | @item C-h d @var{topics} @key{RET} | |
103 | Display the commands and variables whose documentation matches | |
104 | @var{topics} (@code{apropos-documentation}). | |
105 | @item C-h e | |
1c64e6ed | 106 | Display the @file{*Messages*} buffer |
8cf51b2c GM |
107 | (@code{view-echo-area-messages}). |
108 | @item C-h f @var{function} @key{RET} | |
109 | Display documentation on the Lisp function named @var{function} | |
110 | (@code{describe-function}). Since commands are Lisp functions, | |
111 | this works for commands too. | |
112 | @item C-h h | |
113 | Display the @file{HELLO} file, which shows examples of various character | |
114 | sets. | |
115 | @item C-h i | |
3dc62b2b CY |
116 | Run Info, the GNU documentation browser (@code{info}). The Emacs |
117 | manual is available in Info. | |
8cf51b2c GM |
118 | @item C-h k @var{key} |
119 | Display the name and documentation of the command that @var{key} runs | |
120 | (@code{describe-key}). | |
121 | @item C-h l | |
d43f5a42 | 122 | Display a description of your last 300 keystrokes |
8cf51b2c GM |
123 | (@code{view-lossage}). |
124 | @item C-h m | |
125 | Display documentation of the current major mode (@code{describe-mode}). | |
9de15963 MR |
126 | @item C-h n |
127 | Display news of recent Emacs changes (@code{view-emacs-news}). | |
8cf51b2c | 128 | @item C-h p |
d43f5a42 | 129 | Find packages by topic keyword (@code{finder-by-keyword}). This lists |
3dc62b2b | 130 | packages using a package menu buffer. @xref{Packages}. |
d43f5a42 CY |
131 | @item C-h P @var{package} @key{RET} |
132 | Display documentation about the package named @var{package} | |
3dc62b2b | 133 | (@code{describe-package}). |
9de15963 MR |
134 | @item C-h r |
135 | Display the Emacs manual in Info (@code{info-emacs-manual}). | |
8cf51b2c | 136 | @item C-h s |
3dc62b2b CY |
137 | Display the contents of the current @dfn{syntax table} |
138 | (@code{describe-syntax}). The syntax table says which characters are | |
139 | opening delimiters, which are parts of words, and so on. @xref{Syntax | |
140 | Tables,, Syntax Tables, elisp, The Emacs Lisp Reference Manual}, for | |
141 | details. | |
8cf51b2c GM |
142 | @item C-h t |
143 | Enter the Emacs interactive tutorial (@code{help-with-tutorial}). | |
144 | @item C-h v @var{var} @key{RET} | |
145 | Display the documentation of the Lisp variable @var{var} | |
146 | (@code{describe-variable}). | |
147 | @item C-h w @var{command} @key{RET} | |
148 | Show which keys run the command named @var{command} (@code{where-is}). | |
149 | @item C-h C @var{coding} @key{RET} | |
150 | Describe the coding system @var{coding} | |
151 | (@code{describe-coding-system}). | |
152 | @item C-h C @key{RET} | |
153 | Describe the coding systems currently in use. | |
9de15963 MR |
154 | @item C-h F @var{command} @key{RET} |
155 | Enter Info and go to the node that documents the Emacs command | |
156 | @var{command} (@code{Info-goto-emacs-command-node}). | |
8cf51b2c GM |
157 | @item C-h I @var{method} @key{RET} |
158 | Describe the input method @var{method} (@code{describe-input-method}). | |
9de15963 MR |
159 | @item C-h K @var{key} |
160 | Enter Info and go to the node that documents the key sequence | |
161 | @var{key} (@code{Info-goto-emacs-key-command-node}). | |
8cf51b2c GM |
162 | @item C-h L @var{language-env} @key{RET} |
163 | Display information on the character sets, coding systems, and input | |
164 | methods used in language environment @var{language-env} | |
165 | (@code{describe-language-environment}). | |
8cf51b2c GM |
166 | @item C-h S @var{symbol} @key{RET} |
167 | Display the Info documentation on symbol @var{symbol} according to the | |
168 | programming language you are editing (@code{info-lookup-symbol}). | |
169 | @item C-h . | |
170 | Display the help message for a special text area, if point is in one | |
171 | (@code{display-local-help}). (These include, for example, links in | |
1c64e6ed | 172 | @file{*Help*} buffers.) |
8cf51b2c GM |
173 | @end table |
174 | ||
175 | @node Key Help | |
176 | @section Documentation for a Key | |
177 | ||
8cf51b2c | 178 | @findex describe-key-briefly |
3dc62b2b | 179 | @findex describe-key |
8cf51b2c | 180 | The help commands to get information about a key sequence are |
3dc62b2b CY |
181 | @kbd{C-h c} (@code{describe-key-briefly}) and @kbd{C-h k} |
182 | (@code{describe-key}). | |
8cf51b2c | 183 | |
3dc62b2b CY |
184 | @kindex C-h c |
185 | @kbd{C-h c @var{key}} displays in the echo area the name of the | |
186 | command that @var{key} is bound to. For example, @kbd{C-h c C-f} | |
187 | displays @samp{forward-char}. | |
188 | ||
189 | @cindex documentation string | |
8cf51b2c | 190 | @kindex C-h k |
8cf51b2c | 191 | @kbd{C-h k @var{key}} is similar but gives more information: it |
3dc62b2b CY |
192 | displays a help buffer containing the command's @dfn{documentation |
193 | string}, which describes exactly what the command does. | |
8cf51b2c GM |
194 | |
195 | @kindex C-h K | |
196 | @findex Info-goto-emacs-key-command-node | |
3dc62b2b CY |
197 | @kbd{C-h K @var{key}} displays the section of the Emacs manual that |
198 | describes the command corresponding to @var{key}. | |
8cf51b2c GM |
199 | |
200 | @kbd{C-h c}, @kbd{C-h k} and @kbd{C-h K} work for any sort of key | |
201 | sequences, including function keys, menus, and mouse events. For | |
202 | instance, after @kbd{C-h k} you can select a menu item from the menu | |
203 | bar, to view the documentation string of the command it runs. | |
204 | ||
205 | @kindex C-h w | |
206 | @findex where-is | |
207 | @kbd{C-h w @var{command} @key{RET}} lists the keys that are bound to | |
208 | @var{command}. It displays the list in the echo area. If it says the | |
209 | command is not on any key, that means you must use @kbd{M-x} to run | |
210 | it. @kbd{C-h w} runs the command @code{where-is}. | |
211 | ||
212 | @node Name Help | |
213 | @section Help by Command or Variable Name | |
214 | ||
215 | @kindex C-h f | |
216 | @findex describe-function | |
217 | @kbd{C-h f @var{function} @key{RET}} (@code{describe-function}) | |
218 | displays the documentation of Lisp function @var{function}, in a | |
219 | window. Since commands are Lisp functions, you can use this method to | |
220 | view the documentation of any command whose name you know. For | |
221 | example, | |
222 | ||
223 | @example | |
224 | C-h f auto-fill-mode @key{RET} | |
225 | @end example | |
226 | ||
227 | @noindent | |
228 | displays the documentation of @code{auto-fill-mode}. This is the only | |
229 | way to get the documentation of a command that is not bound to any key | |
230 | (one which you would normally run using @kbd{M-x}). | |
231 | ||
232 | @kbd{C-h f} is also useful for Lisp functions that you use in a Lisp | |
233 | program. For example, if you have just written the expression | |
234 | @code{(make-vector len)} and want to check that you are using | |
235 | @code{make-vector} properly, type @kbd{C-h f make-vector @key{RET}}. | |
236 | Because @kbd{C-h f} allows all function names, not just command names, | |
237 | you may find that some of your favorite completion abbreviations that | |
238 | work in @kbd{M-x} don't work in @kbd{C-h f}. An abbreviation that is | |
239 | unique among command names may not be unique among all function names. | |
240 | ||
241 | If you type @kbd{C-h f @key{RET}}, it describes the function called | |
242 | by the innermost Lisp expression in the buffer around point, | |
243 | @emph{provided} that function name is a valid, defined Lisp function. | |
244 | (That name appears as the default while you enter the argument.) For | |
245 | example, if point is located following the text @samp{(make-vector | |
246 | (car x)}, the innermost list containing point is the one that starts | |
48de8b12 | 247 | with @samp{(make-vector}, so @kbd{C-h f @key{RET}} describes the |
8cf51b2c GM |
248 | function @code{make-vector}. |
249 | ||
250 | @kbd{C-h f} is also useful just to verify that you spelled a | |
251 | function name correctly. If the minibuffer prompt for @kbd{C-h f} | |
252 | shows the function name from the buffer as the default, it means that | |
253 | name is defined as a Lisp function. Type @kbd{C-g} to cancel the | |
254 | @kbd{C-h f} command if you don't really want to view the | |
255 | documentation. | |
256 | ||
257 | @kindex C-h v | |
258 | @findex describe-variable | |
259 | @kbd{C-h v} (@code{describe-variable}) is like @kbd{C-h f} but | |
260 | describes Lisp variables instead of Lisp functions. Its default is | |
261 | the Lisp symbol around or before point, if that is the name of a | |
262 | defined Lisp variable. @xref{Variables}. | |
263 | ||
264 | Help buffers that describe Emacs variables and functions normally | |
3dc62b2b CY |
265 | have hyperlinks to the corresponding source code, if you have the |
266 | source files installed (@pxref{Hyperlinking}). | |
8cf51b2c GM |
267 | |
268 | @kindex C-h F | |
269 | @findex Info-goto-emacs-command-node | |
9de15963 | 270 | To find a command's documentation in a manual, use @kbd{C-h F} |
8cf51b2c GM |
271 | (@code{Info-goto-emacs-command-node}). This knows about various |
272 | manuals, not just the Emacs manual, and finds the right one. | |
273 | ||
274 | @node Apropos | |
275 | @section Apropos | |
3dc62b2b | 276 | @cindex apropos |
8cf51b2c GM |
277 | |
278 | The @dfn{apropos} commands answer questions like, ``What are the | |
279 | commands for working with files?'' More precisely, you specify an | |
280 | @dfn{apropos pattern}, which means either a word, a list of words, or | |
3dc62b2b CY |
281 | a regular expression. |
282 | ||
283 | Each of the following apropos commands reads an apropos pattern in | |
284 | the minibuffer, searches for items that match the pattern, and | |
285 | displays the results in a different window. | |
8cf51b2c GM |
286 | |
287 | @table @kbd | |
3dc62b2b CY |
288 | @item C-h a |
289 | @kindex C-h a | |
290 | @findex apropos-command | |
291 | Search for commands (@code{apropos-command}). With a prefix argument, | |
292 | search for noninteractive functions too. | |
8cf51b2c | 293 | |
3dc62b2b CY |
294 | @item M-x apropos |
295 | @findex apropos | |
296 | Search for functions and variables. Both interactive functions | |
297 | (commands) and noninteractive functions can be found by this. | |
8cf51b2c | 298 | |
acfe10b7 BG |
299 | @item M-x apropos-user-option |
300 | @findex apropos-user-option | |
3dc62b2b CY |
301 | Search for user-customizable variables. With a prefix argument, |
302 | search for non-customizable variables too. | |
8cf51b2c | 303 | |
acfe10b7 BG |
304 | @item M-x apropos-variable |
305 | @findex apropos-variable | |
306 | Search for variables. With a prefix argument, search for | |
307 | customizable variables only. | |
308 | ||
3dc62b2b CY |
309 | @item M-x apropos-value |
310 | @findex apropos-value | |
311 | Search for variables whose values match the specified pattern. With a | |
312 | prefix argument, search also for functions with definitions matching | |
313 | the pattern, and Lisp symbols with properties matching the pattern. | |
8cf51b2c | 314 | |
3dc62b2b CY |
315 | @item C-h d |
316 | @kindex C-h d | |
317 | @findex apropos-documentation | |
318 | Search for functions and variables whose documentation strings match | |
319 | the specified pattern (@code{apropos-documentation}). | |
8cf51b2c GM |
320 | @end table |
321 | ||
3dc62b2b CY |
322 | The simplest kind of apropos pattern is one word. Anything |
323 | containing that word matches the pattern. Thus, to find commands that | |
324 | work on files, type @kbd{C-h a file @key{RET}}. This displays a list | |
325 | of all command names that contain @samp{file}, including | |
8cf51b2c GM |
326 | @code{copy-file}, @code{find-file}, and so on. Each command name |
327 | comes with a brief description and a list of keys you can currently | |
328 | invoke it with. In our example, it would say that you can invoke | |
329 | @code{find-file} by typing @kbd{C-x C-f}. | |
330 | ||
8cf51b2c | 331 | For more information about a function definition, variable or symbol |
3dc62b2b | 332 | property listed in an apropos buffer, you can click on it with |
8cf51b2c GM |
333 | @kbd{Mouse-1} or @kbd{Mouse-2}, or move there and type @key{RET}. |
334 | ||
335 | When you specify more than one word in the apropos pattern, a name | |
336 | must contain at least two of the words in order to match. Thus, if | |
337 | you are looking for commands to kill a chunk of text before point, you | |
338 | could try @kbd{C-h a kill back backward behind before @key{RET}}. The | |
339 | real command name @code{kill-backward} will match that; if there were | |
340 | a command @code{kill-text-before}, it would also match, since it | |
341 | contains two of the specified words. | |
342 | ||
343 | For even greater flexibility, you can specify a regular expression | |
344 | (@pxref{Regexps}). An apropos pattern is interpreted as a regular | |
345 | expression if it contains any of the regular expression special | |
346 | characters, @samp{^$*+?.\[}. | |
347 | ||
348 | Following the conventions for naming Emacs commands, here are some | |
349 | words that you'll find useful in apropos patterns. By using them in | |
350 | @kbd{C-h a}, you will also get a feel for the naming conventions. | |
351 | ||
352 | @quotation | |
353 | char, line, word, sentence, paragraph, region, page, sexp, list, defun, | |
354 | rect, buffer, frame, window, face, file, dir, register, mode, beginning, end, | |
355 | forward, backward, next, previous, up, down, search, goto, kill, delete, | |
356 | mark, insert, yank, fill, indent, case, change, set, what, list, find, | |
357 | view, describe, default. | |
358 | @end quotation | |
359 | ||
8cf51b2c GM |
360 | @vindex apropos-do-all |
361 | If the variable @code{apropos-do-all} is non-@code{nil}, the apropos | |
362 | commands always behave as if they had been given a prefix argument. | |
363 | ||
364 | @vindex apropos-sort-by-scores | |
365 | @cindex apropos search results, order by score | |
8cf51b2c | 366 | @vindex apropos-documentation-sort-by-scores |
3dc62b2b CY |
367 | By default, all apropos commands except @code{apropos-documentation} |
368 | list their results in alphabetical order. If the variable | |
369 | @code{apropos-sort-by-scores} is non-@code{nil}, these commands | |
370 | instead try to guess the relevance of each result, and display the | |
371 | most relevant ones first. The @code{apropos-documentation} command | |
372 | lists its results in order of relevance by default; to list them in | |
373 | alphabetical order, change the variable | |
374 | @code{apropos-documentation-sort-by-scores} to @code{nil}. | |
8cf51b2c GM |
375 | |
376 | @node Help Mode | |
377 | @section Help Mode Commands | |
378 | ||
e2aeef63 | 379 | Help buffers provide the same commands as View mode (@pxref{View |
30aafaf5 TH |
380 | Mode}); for instance, @key{SPC} scrolls forward, and @key{DEL} or |
381 | @kbd{S-SPC} scrolls backward. A few special commands are also | |
382 | provided: | |
8cf51b2c GM |
383 | |
384 | @table @kbd | |
8cf51b2c | 385 | @item @key{RET} |
3dc62b2b | 386 | Follow a cross reference at point (@code{help-follow}). |
8cf51b2c | 387 | @item @key{TAB} |
3dc62b2b | 388 | Move point forward to the next hyperlink (@code{forward-button}). |
8cf51b2c | 389 | @item S-@key{TAB} |
3dc62b2b | 390 | Move point back to the previous hyperlink (@code{backward-button}). |
8cf51b2c GM |
391 | @item Mouse-1 |
392 | @itemx Mouse-2 | |
3dc62b2b | 393 | Follow a hyperlink that you click on. |
8cf51b2c | 394 | @item C-c C-c |
3dc62b2b CY |
395 | Show all documentation about the symbol at point |
396 | (@code{help-follow-symbol}). | |
397 | @item C-c C-b | |
398 | Go back to the previous help topic (@code{help-go-back}). | |
8cf51b2c GM |
399 | @end table |
400 | ||
3dc62b2b CY |
401 | @cindex hyperlink |
402 | @findex help-follow | |
403 | @findex help-go-back | |
404 | @kindex RET @r{(Help mode)} | |
405 | @kindex C-c C-b @r{(Help mode)} | |
406 | When a function name, variable name, or face name (@pxref{Faces}) | |
407 | appears in the documentation in the help buffer, it is normally an | |
408 | underlined @dfn{hyperlink}. To view the associated documentation, | |
409 | move point there and type @key{RET} (@code{help-follow}), or click on | |
410 | the hyperlink with @kbd{Mouse-1} or @kbd{Mouse-2}. Doing so replaces | |
411 | the contents of the help buffer; to retrace your steps, type @kbd{C-c | |
412 | C-b} (@code{help-go-back}). | |
8cf51b2c GM |
413 | |
414 | @cindex URL, viewing in help | |
415 | @cindex help, viewing web pages | |
416 | @cindex viewing web pages in help | |
417 | @cindex web pages, viewing in help | |
418 | @findex browse-url | |
3dc62b2b CY |
419 | A help buffer can also contain hyperlinks to Info manuals, source |
420 | code definitions, and URLs (web pages). The first two are opened in | |
421 | Emacs, and the third using a web browser via the @code{browse-url} | |
422 | command (@pxref{Browse-URL}). | |
8cf51b2c | 423 | |
27a16462 | 424 | @kindex TAB @r{(Help mode)} |
3dc62b2b | 425 | @findex forward-button |
27a16462 | 426 | @kindex S-TAB @r{(Help mode)} |
3dc62b2b CY |
427 | @findex backward-button |
428 | In a help buffer, @key{TAB} (@code{forward-button}) moves point | |
429 | forward to the next hyperlink, while @kbd{S-@key{TAB}} | |
430 | (@code{backward-button}) point back to the previous hyperlink. These | |
431 | commands act cyclically; for instance, typing @key{TAB} at the last | |
432 | hyperlink moves back to the first hyperlink. | |
433 | ||
434 | To view all documentation about any symbol in the text, move point | |
435 | to there and type @kbd{C-c C-c} (@code{help-follow-symbol}). This | |
436 | shows all available documentation about the symbol---as a variable, | |
437 | function and/or face. | |
438 | ||
439 | @node Package Keywords | |
440 | @section Keyword Search for Packages | |
441 | @cindex finder | |
442 | ||
443 | Most optional features in Emacs are grouped into @dfn{packages}. | |
444 | Emacs contains several hundred built-in packages, and more can be | |
445 | installed over the network (@pxref{Packages}). | |
8cf51b2c GM |
446 | |
447 | @kindex C-h p | |
448 | @findex finder-by-keyword | |
3dc62b2b CY |
449 | To make it easier to find packages related to a topic, most packages |
450 | are associated with one or more @dfn{keywords} based on what they do. | |
451 | Type @kbd{C-h p} (@code{finder-by-keyword}) to bring up a list of | |
452 | package keywords, together with a description of what the keywords | |
453 | mean. To view a list of packages for a given keyword, type @key{RET} | |
454 | on that line; this displays the list of packages in a Package Menu | |
455 | buffer (@pxref{Package Menu}). | |
456 | ||
457 | @findex describe-package | |
458 | @kindex C-h P | |
459 | @kbd{C-h P} (@code{describe-package}) prompts for the name of a | |
460 | package, and displays a help buffer describing the attributes of the | |
461 | package and the features that it implements. | |
8cf51b2c GM |
462 | |
463 | @node Language Help | |
464 | @section Help for International Language Support | |
465 | ||
3dc62b2b CY |
466 | For information on a specific language environment (@pxref{Language |
467 | Environments}), type @kbd{C-h L} | |
468 | (@code{describe-language-environment}). This displays a help buffer | |
469 | describing the languages supported by the language environment, and | |
470 | listing the associated character sets, coding systems, and input | |
471 | methods, as well as some sample text for that language environment. | |
8cf51b2c GM |
472 | |
473 | The command @kbd{C-h h} (@code{view-hello-file}) displays the file | |
66ecdc9e GM |
474 | @file{etc/HELLO}, which demonstrates various character sets by showing |
475 | how to say ``hello'' in many languages. | |
8cf51b2c GM |
476 | |
477 | The command @kbd{C-h I} (@code{describe-input-method}) describes an | |
478 | input method---either a specified input method, or by default the | |
479 | input method currently in use. @xref{Input Methods}. | |
480 | ||
481 | The command @kbd{C-h C} (@code{describe-coding-system}) describes | |
482 | coding systems---either a specified coding system, or the ones | |
483 | currently in use. @xref{Coding Systems}. | |
484 | ||
485 | @node Misc Help | |
486 | @section Other Help Commands | |
487 | ||
488 | @kindex C-h i | |
489 | @findex info | |
490 | @cindex Info | |
491 | @cindex manuals, on-line | |
492 | @cindex on-line manuals | |
493 | @kbd{C-h i} (@code{info}) runs the Info program, which browses | |
494 | structured documentation files. The entire Emacs manual is available | |
495 | within Info, along with many other manuals for the GNU system. Type | |
496 | @kbd{h} after entering Info to run a tutorial on using Info. | |
497 | ||
498 | @cindex find Info manual by its file name | |
499 | With a numeric argument @var{n}, @kbd{C-h i} selects the Info buffer | |
500 | @samp{*info*<@var{n}>}. This is useful if you want to browse multiple | |
501 | Info manuals simultaneously. If you specify just @kbd{C-u} as the | |
502 | prefix argument, @kbd{C-h i} prompts for the name of a documentation | |
503 | file, so you can browse a file which doesn't have an entry in the | |
504 | top-level Info menu. | |
505 | ||
506 | The help commands @kbd{C-h F @var{function} @key{RET}} and @kbd{C-h | |
507 | K @var{key}}, described above, enter Info and go straight to the | |
508 | documentation of @var{function} or @var{key}. | |
509 | ||
510 | @kindex C-h S | |
511 | @findex info-lookup-symbol | |
512 | When editing a program, if you have an Info version of the manual | |
513 | for the programming language, you can use @kbd{C-h S} | |
ff98e024 MR |
514 | (@code{info-lookup-symbol}) to find an entry for a symbol (keyword, |
515 | function or variable) in the proper manual. The details of how this | |
516 | command works depend on the major mode. | |
8cf51b2c GM |
517 | |
518 | @kindex C-h l | |
519 | @findex view-lossage | |
9de15963 MR |
520 | If something surprising happens, and you are not sure what you typed, |
521 | use @kbd{C-h l} (@code{view-lossage}). @kbd{C-h l} displays your last | |
522 | 300 input keystrokes. If you see commands that you don't know, you can | |
523 | use @kbd{C-h c} to find out what they do. | |
8cf51b2c GM |
524 | |
525 | @kindex C-h e | |
526 | @findex view-echo-area-messages | |
527 | To review recent echo area messages, use @kbd{C-h e} | |
528 | (@code{view-echo-area-messages}). This displays the buffer | |
1c64e6ed | 529 | @file{*Messages*}, where those messages are kept. |
8cf51b2c GM |
530 | |
531 | @kindex C-h m | |
532 | @findex describe-mode | |
533 | Each Emacs major mode typically redefines a few keys and makes other | |
534 | changes in how editing works. @kbd{C-h m} (@code{describe-mode}) | |
535 | displays documentation on the current major mode, which normally | |
536 | describes the commands and features that are changed in this mode. | |
537 | ||
538 | @kindex C-h b | |
539 | @findex describe-bindings | |
253e30aa GM |
540 | @kindex C-h s |
541 | @findex describe-syntax | |
8cf51b2c GM |
542 | @kbd{C-h b} (@code{describe-bindings}) and @kbd{C-h s} |
543 | (@code{describe-syntax}) show other information about the current | |
544 | environment within Emacs. @kbd{C-h b} displays a list of all the key | |
545 | bindings now in effect: first the local bindings of the current minor | |
546 | modes, then the local bindings defined by the current major mode, and | |
547 | finally the global bindings (@pxref{Key Bindings}). @kbd{C-h s} | |
548 | displays the contents of the syntax table, with explanations of each | |
6cfd0fa2 CY |
549 | character's syntax (@pxref{Syntax Tables,, Syntax Tables, elisp, The |
550 | Emacs Lisp Reference Manual}). | |
8cf51b2c | 551 | |
89671e16 | 552 | @findex describe-prefix-bindings |
8cf51b2c | 553 | You can get a list of subcommands for a particular prefix key by |
a34a0ac8 TH |
554 | typing @kbd{C-h}, @kbd{?}, or @kbd{F1} |
555 | (@code{describe-prefix-bindings}) after the prefix key. (There are a | |
556 | few prefix keys for which not all of these keys work---those that | |
557 | provide their own bindings for one of them. One of these prefix keys | |
558 | is @key{ESC} in combination with @kbd{C-h}, because @kbd{ESC C-h} is | |
559 | actually @kbd{C-M-h}, which marks a defun. However, @kbd{ESC F1} and | |
560 | @kbd{ESC ?} work fine.) | |
8cf51b2c GM |
561 | |
562 | @node Help Files | |
563 | @section Help Files | |
564 | ||
3dc62b2b CY |
565 | Apart from the built-in documentation and manuals, Emacs contains |
566 | several other files describing topics like copying conditions, release | |
567 | notes, instructions for debugging and reporting bugs, and so forth. | |
568 | You can use the following commands to view these files. Apart from | |
569 | @kbd{C-h g}, they all have the form @kbd{C-h C-@var{char}}. | |
8cf51b2c GM |
570 | |
571 | @kindex C-h C-c | |
572 | @findex describe-copying | |
573 | @kindex C-h C-d | |
087a8fdc | 574 | @findex view-emacs-debugging |
8cf51b2c | 575 | @kindex C-h C-e |
087a8fdc | 576 | @findex view-external-packages |
8cf51b2c GM |
577 | @kindex C-h C-f |
578 | @findex view-emacs-FAQ | |
087a8fdc KS |
579 | @kindex C-h g |
580 | @findex describe-gnu-project | |
581 | @kindex C-h C-m | |
582 | @findex view-order-manuals | |
8cf51b2c GM |
583 | @kindex C-h C-n |
584 | @findex view-emacs-news | |
087a8fdc KS |
585 | @kindex C-h C-o |
586 | @findex describe-distribution | |
8cf51b2c | 587 | @kindex C-h C-p |
087a8fdc | 588 | @findex view-emacs-problems |
8cf51b2c GM |
589 | @kindex C-h C-t |
590 | @findex view-emacs-todo | |
591 | @kindex C-h C-w | |
592 | @findex describe-no-warranty | |
593 | ||
594 | @table @kbd | |
595 | @item C-h C-c | |
3dc62b2b CY |
596 | Display the rules under which you can copy and redistribute Emacs |
597 | (@code{describe-copying}). | |
8cf51b2c | 598 | @item C-h C-d |
ae742cb5 | 599 | Display help for debugging Emacs (@code{view-emacs-debugging}). |
31976bd5 | 600 | @item C-h C-e |
3dc62b2b | 601 | Display information about where to get external packages |
31976bd5 | 602 | (@code{view-external-packages}). |
8cf51b2c GM |
603 | @item C-h C-f |
604 | Display the Emacs frequently-answered-questions list (@code{view-emacs-FAQ}). | |
087a8fdc | 605 | @item C-h g |
3dc62b2b | 606 | Display information about the GNU Project (@code{describe-gnu-project}). |
087a8fdc | 607 | @item C-h C-m |
3dc62b2b | 608 | Display information about ordering printed copies of Emacs manuals |
087a8fdc | 609 | (@code{view-order-manuals}). |
8cf51b2c | 610 | @item C-h C-n |
3dc62b2b CY |
611 | Display the ``news'' file, which lists the new features in this |
612 | version of Emacs (@code{view-emacs-news}). | |
087a8fdc KS |
613 | @item C-h C-o |
614 | Display how to order or download the latest version of | |
615 | Emacs and other GNU software (@code{describe-distribution}). | |
8cf51b2c | 616 | @item C-h C-p |
087a8fdc KS |
617 | Display the list of known Emacs problems, sometimes with suggested |
618 | workarounds (@code{view-emacs-problems}). | |
8cf51b2c | 619 | @item C-h C-t |
087a8fdc | 620 | Display the Emacs to-do list (@code{view-emacs-todo}). |
8cf51b2c GM |
621 | @item C-h C-w |
622 | Display the full details on the complete absence of warranty for GNU | |
623 | Emacs (@code{describe-no-warranty}). | |
624 | @end table | |
625 | ||
626 | @node Help Echo | |
627 | @section Help on Active Text and Tooltips | |
628 | ||
629 | @cindex tooltips | |
630 | @cindex balloon help | |
3dc62b2b CY |
631 | In Emacs, stretches of ``active text'' (text that does something |
632 | special in response to mouse clicks or @key{RET}) often have | |
633 | associated help text. This includes hyperlinks in Emacs buffers, as | |
634 | well as parts of the mode line. On graphical displays, as well as | |
635 | some text terminals which support mouse tracking, moving the mouse | |
636 | over the active text displays the help text as a @dfn{tooltip}. | |
a67cf2bb | 637 | @xref{Tooltips}. |
8cf51b2c GM |
638 | |
639 | @kindex C-h . | |
640 | @findex display-local-help | |
641 | @vindex help-at-pt-display-when-idle | |
3dc62b2b CY |
642 | On terminals that don't support mouse-tracking, you can display the |
643 | help text for active buffer text at point by typing @kbd{C-h .} | |
644 | (@code{display-local-help}). This shows the help text in the echo | |
645 | area. To display help text automatically whenever it is available at | |
646 | point, set the variable @code{help-at-pt-display-when-idle} to | |
647 | @code{t}. |