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