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