0
+ − 1
+ − 2 @node Help, Mark, M-x, Top
+ − 3 @chapter Help
442
+ − 4 @kindex Help
0
+ − 5 @cindex help
+ − 6 @cindex self-documentation
442
+ − 7 @findex help-command
+ − 8 @kindex C-h
+ − 9 @kindex F1
0
+ − 10
442
+ − 11 XEmacs provides extensive help features accessible through a single
0
+ − 12 character, @kbd{C-h}. @kbd{C-h} is a prefix key that is used only for
442
+ − 13 documentation-printing commands. The characters that you can type after
0
+ − 14 @kbd{C-h} are called @dfn{help options}. One help option is @kbd{C-h};
442
+ − 15 that is how you ask for help about using @kbd{C-h}. To cancel, type
+ − 16 @kbd{C-g}. The function key @key{F1} is equivalent to @kbd{C-h}.
0
+ − 17
442
+ − 18 @kindex C-h C-h
+ − 19 @findex help-for-help
+ − 20 @kbd{C-h C-h} (@code{help-for-help}) displays a list of the possible
+ − 21 help options, and then asks you to type the desired option. It prompts
+ − 22 with the string:
0
+ − 23
+ − 24 @smallexample
442
+ − 25 A B C F I K L M N P S T V W C-c C-d C-f C-i C-k C-n C-w; ? for more help:
0
+ − 26 @end smallexample
+ − 27
+ − 28 @noindent
+ − 29 You should type one of those characters.
+ − 30
+ − 31 Typing a third @kbd{C-h} displays a description of what the options mean;
+ − 32 Emacs still waits for you to type an option. To cancel, type @kbd{C-g}.
+ − 33
442
+ − 34 Most help buffers use a special major mode, Help mode, which lets you
+ − 35 scroll conveniently with @key{SPC} and @key{DEL} or @key{BS}.
+ − 36
+ − 37 @menu
+ − 38 * Help Summary:: Brief list of all Help commands.
+ − 39 * Key Help:: Asking what a key does in XEmacs.
+ − 40 * Name Help:: Asking about a command, variable or function name.
+ − 41 * Apropos:: Asking what pertains to a given topic.
+ − 42 * Library Keywords:: Finding Lisp libraries by keywords (topics).
+ − 43 * Help Mode:: Special features of Help mode and Help buffers.
+ − 44 * Misc Help:: Other help commands.
+ − 45 @end menu
+ − 46
+ − 47 @iftex
+ − 48 @node Help Summary, Help Summary, Help, Help
+ − 49 @end iftex
+ − 50 @ifinfo
+ − 51 @node Help Summary, Key Help, Help, Help
+ − 52 @section Help Summary
+ − 53 @end ifinfo
+ − 54
0
+ − 55 Here is a summary of the defined help commands.
+ − 56
+ − 57 @table @kbd
442
+ − 58 @item C-h a @var{regexp} @key{RET}
+ − 59 Display a list of functions and variables whose names match @var{regexp}
+ − 60 (@code{hyper-apropos}).
+ − 61 @item C-h A @var{regexp}
+ − 62 Show all commands whose names contain matches for @var{regexp}
+ − 63 (@code{command-apropos}).
0
+ − 64 @item C-h b
442
+ − 65 Display a table of all key bindings currently in effect, with local
+ − 66 bindings of the current major mode first, followed by all global
+ − 67 bindings (@code{describe-bindings}).
0
+ − 68 @item C-h c @var{key}
442
+ − 69 Print the name of the command that @var{key} runs
+ − 70 (@code{describe-key-briefly}). Here @kbd{c} stands for `character'. For more
+ − 71 extensive information on @var{key}, use @kbd{C-h k}.
+ − 72 @item C-h d @var{function} @key{RET}
+ − 73 @itemx C-h f @var{function} @key{RET}
0
+ − 74 Display documentation on the Lisp function named @var{function}
442
+ − 75 (@code{describe-function}). Since commands are Lisp functions,
0
+ − 76 a command name may be used.
+ − 77 @item C-h i
+ − 78 Run Info, the program for browsing documentation files (@code{info}).
442
+ − 79 The complete XEmacs manual is available online in Info.
0
+ − 80 @item C-h k @var{key}
442
+ − 81 Display the name and documentation of the command that @var{key} runs
+ − 82 (@code{describe-key}).
0
+ − 83 @item C-h l
+ − 84 Display a description of the last 100 characters you typed
+ − 85 (@code{view-lossage}).
+ − 86 @item C-h m
+ − 87 Display documentation of the current major mode (@code{describe-mode}).
+ − 88 @item C-h n
442
+ − 89 @itemx C-h C-n
+ − 90 Display documentation of XEmacs changes, most recent first
0
+ − 91 (@code{view-emacs-news}).
+ − 92 @item C-h p
442
+ − 93 Find packages by topic keyword (@code{finder-by-keyword}).
+ − 94 @item C-h C-p
0
+ − 95 Display a table of all mouse bindings currently in effect now, with
442
+ − 96 local bindings of the current major mode first, followed by all global
+ − 97 bindings (@code{describe-pointer}).
0
+ − 98 @item C-h s
+ − 99 Display current contents of the syntax table, plus an explanation of
442
+ − 100 what they mean (@code{describe-syntax}). @xref{Syntax}.
0
+ − 101 @item C-h t
442
+ − 102 Enter the XEmacs interactive tutorial (@code{help-with-tutorial}).
0
+ − 103 @item C-h v @var{var} @key{RET}
+ − 104 Display the documentation of the Lisp variable @var{var}
442
+ − 105 (@code{describe-variable}).
0
+ − 106 @item C-h w @var{command} @key{RET}
+ − 107 Print which keys run the command named @var{command} (@code{where-is}).
442
+ − 108 @item C-h B @key{RET}
+ − 109 Display info on how to deal with Beta versions of XEmacs
+ − 110 (@code{describe-beta}).
+ − 111 @item C-h C @var{group} @key{RET}
+ − 112 Select customization buffer for @var{group} (@code{customize}).
+ − 113 @item C-h F @key{RET}
+ − 114 View the local copy of the XEmacs FAQ (@code{xemacs-local-faq}).
+ − 115 @item C-h C-i @var{file} @key{RET}
+ − 116 Read Info file @var{file} with Info browser (@code{Info-query}).
+ − 117 @item C-h C-c @var{command} @key{RET}
+ − 118 Look up an Emacs command @var{command} in the Emacs manual in the Info
+ − 119 system (@code{Info-goto-emacs-command-node}).
+ − 120 @item C-h C-f @var{function} @key{RET}
+ − 121 Look up an Emacs Lisp function @var{function} in the Elisp manual in the
+ − 122 Info system (@code{Info-elisp-ref}).
0
+ − 123 @end table
+ − 124
442
+ − 125 @node Key Help, Name Help, Help Summary, Help
0
+ − 126 @section Documentation for a Key
+ − 127
+ − 128 @kindex C-h c
+ − 129 @findex describe-key-briefly
+ − 130 The most basic @kbd{C-h} options are @kbd{C-h c}
442
+ − 131 (@code{describe-key-briefly}) and @w{@kbd{C-h k}} (@code{describe-key}).
+ − 132 @kbd{C-h c @var{key}} prints in the echo area the name of the command
+ − 133 that @var{key} is bound to. For example, @kbd{C-h c C-f} prints
0
+ − 134 @samp{forward-char}. Since command names are chosen to describe what
442
+ − 135 the commands do, this is a good way to get a very brief description of
+ − 136 what @var{key} does.
0
+ − 137
+ − 138 @kindex C-h k
+ − 139 @findex describe-key
+ − 140 @kbd{C-h k @var{key}} is similar to @kbd{C-h c} but gives more
+ − 141 information. It displays the documentation string of the function
+ − 142 @var{key} is bound to as well as its name. @var{key} is a string or
+ − 143 vector of events. When called interactively, @var{key} may also be a menu
+ − 144 selection. This information does not usually fit into the echo area, so a
+ − 145 window is used for the display.
+ − 146
442
+ − 147 @kbd{C-h c} and @kbd{C-h k} work for any sort of key sequences,
+ − 148 including function keys and mouse events.
+ − 149
+ − 150 @node Name Help, Apropos, Key Help, Help
0
+ − 151 @section Help by Command or Variable Name
+ − 152
+ − 153 @kindex C-h f
+ − 154 @findex describe-function
+ − 155 @vindex describe-function-show-arglist
+ − 156 @kbd{C-h f} (@code{describe-function}) reads the name of a Lisp
+ − 157 function using the minibuffer, then displays that function's
+ − 158 documentation string in a window. Since commands are Lisp functions,
+ − 159 you can use the argument @var{function} to get the documentation of a
+ − 160 command that you know by name. For example,
+ − 161
+ − 162 @example
+ − 163 C-h f auto-fill-mode @key{RET}
+ − 164 @end example
+ − 165
+ − 166 @noindent
+ − 167 displays the documentation for @code{auto-fill-mode}. Using @kbd{C-h f}
+ − 168 is the only way to see the documentation of a command that is not bound
+ − 169 to any key, that is, a command you would normally call using @kbd{M-x}.
+ − 170 If the variable @code{describe-function-show-arglist} is @code{t},
+ − 171 @code{describe-function} shows its arglist if the @var{function} is not
+ − 172 an autoload function.
+ − 173
442
+ − 174 @kbd{C-h f} is also useful for Lisp functions that you are planning to
+ − 175 use in a Lisp program. For example, if you have just written the
+ − 176 expression @code{(make-vector len)} and want to make sure you are using
+ − 177 @code{make-vector} properly, type @kbd{C-h f make-vector @key{RET}}.
+ − 178 Because @kbd{C-h f} allows all function names, not just command names,
+ − 179 you may find that some of your favorite abbreviations that work in
+ − 180 @kbd{M-x} don't work in @kbd{C-h f}. An abbreviation may be unique
+ − 181 among command names, yet fail to be unique when other function names are
+ − 182 allowed.
0
+ − 183
442
+ − 184 The function name for @kbd{C-h f} to describe has a default which is
+ − 185 used if you type @key{RET} leaving the minibuffer empty. The default is
+ − 186 the function called by the innermost Lisp expression in the buffer
+ − 187 around point, @emph{provided} that is a valid, defined Lisp function
+ − 188 name. For example, if point is located following the text
0
+ − 189 @samp{(make-vector (car x)}, the innermost list containing point is the
442
+ − 190 one that starts with @samp{(make-vector}, so the default is to describe the
+ − 191 function @code{make-vector}.
0
+ − 192
+ − 193 @kbd{C-h f} is often useful just to verify that you have the right
442
+ − 194 spelling for the function name. If @kbd{C-h f} mentions a name from the
+ − 195 buffer as the default, that name must be defined as a Lisp function. If
+ − 196 that is all you want to know, just type @kbd{C-g} to cancel the @kbd{C-h
+ − 197 f} command, then go on editing.
0
+ − 198
+ − 199 @kindex C-h w
+ − 200 @findex where-is
442
+ − 201 @kbd{C-h w @var{command} @key{RET}} (@code{where-is}) tells you what
0
+ − 202 keys are bound to @var{command}. It prints a list of the keys in the
442
+ − 203 echo area. Alternatively, it informs you that a command is not bound to
+ − 204 any keys, which implies that you must use @kbd{M-x} to call the
+ − 205 command.
0
+ − 206
+ − 207 @kindex C-h v
+ − 208 @findex describe-variable
+ − 209 @kbd{C-h v} (@code{describe-variable}) is like @kbd{C-h f} but
+ − 210 describes Lisp variables instead of Lisp functions. Its default is the
+ − 211 Lisp symbol around or before point, if that is the name of a known Lisp
442
+ − 212 variable. @xref{Variables}.
0
+ − 213
442
+ − 214 @node Apropos, Library Keywords, Name Help, Help
0
+ − 215 @section Apropos
+ − 216
442
+ − 217 @kindex C-h A
0
+ − 218 @findex command-apropos
442
+ − 219 @cindex apropos
0
+ − 220
+ − 221 @table @kbd
442
+ − 222 @item C-h A
0
+ − 223 Show only symbols that are names of commands
442
+ − 224 (@code{command-apropos}).
0
+ − 225
+ − 226 @item M-x apropos @var{regexp}
442
+ − 227 Show all symbols whose names contain matches for @var{regexp}.
0
+ − 228 @end table
+ − 229
442
+ − 230 A more sophisticated sort of question to ask is, ``What are the
+ − 231 commands for working with files?'' To ask this question, type @kbd{C-h
+ − 232 a file @key{RET}}, which displays a list of all command names that
+ − 233 contain @samp{file}, including @code{copy-file}, @code{find-file}, and
+ − 234 so on. With each command name appears a brief description of how to use
+ − 235 the command, and what keys you can currently invoke it with. For
+ − 236 example, it would say that you can invoke @code{find-file} by typing
+ − 237 @kbd{C-x C-f}. The @kbd{A} in @kbd{C-h A} stands for `Apropos';
+ − 238 @kbd{C-h A} runs the command @code{command-apropos}. This command
+ − 239 normally checks only commands (interactive functions); if you specify a
+ − 240 prefix argument, it checks noninteractive functions as well.
0
+ − 241
442
+ − 242 Because @kbd{C-h A} looks only for functions whose names contain the
0
+ − 243 string you specify, you must use ingenuity in choosing the string. If
+ − 244 you are looking for commands for killing backwards and @kbd{C-h a
442
+ − 245 kill-backwards @key{RET}} doesn't reveal any, don't give up. Try just
+ − 246 @kbd{kill}, or just @kbd{backwards}, or just @kbd{back}. Be persistent.
+ − 247 Pretend you are playing Adventure. Also note that you can use a regular
+ − 248 expression as the argument, for more flexibility (@pxref{Regexps}).
0
+ − 249
+ − 250 Here is a set of arguments to give to @kbd{C-h a} that covers many
442
+ − 251 classes of XEmacs commands, since there are strong conventions for
+ − 252 naming the standard XEmacs commands. By giving you a feel for the
+ − 253 naming conventions, this set should also serve to aid you in developing
+ − 254 a technique for picking @code{apropos} strings.
0
+ − 255
+ − 256 @quotation
+ − 257 char, line, word, sentence, paragraph, region, page, sexp, list, defun,
442
+ − 258 rect, buffer, frame, window, face, file, dir, register, mode, beginning,
+ − 259 end, forward, backward, next, previous, up, down, search, goto, kill,
+ − 260 delete, mark, insert, yank, fill, indent, case, change, set, what, list,
+ − 261 find, view, describe, default.
0
+ − 262 @end quotation
+ − 263
+ − 264 @findex apropos
+ − 265 To list all Lisp symbols that contain a match for a regexp, not just
+ − 266 the ones that are defined as commands, use the command @kbd{M-x apropos}
442
+ − 267 instead of @kbd{C-h A}. This command does not check key bindings by
+ − 268 default; specify a numeric argument if you want it to check them.
+ − 269
+ − 270 @findex apropos-documentation
+ − 271 The @code{apropos-documentation} command is like @code{apropos} except
+ − 272 that it searches documentation strings for matches for the specified
+ − 273 regular expression.
+ − 274
+ − 275 @findex apropos-value
+ − 276 The @code{apropos-value} command is like @code{apropos} except that it
+ − 277 searches symbols' values for matches for the specified regular
+ − 278 expression. This command does not check function definitions or
+ − 279 property lists by default; specify a numeric argument if you want it to
+ − 280 check them.
+ − 281
+ − 282 @vindex apropos-do-all
+ − 283 If the variable @code{apropos-do-all} is non-@code{nil}, the commands
+ − 284 above all behave as if they had been given a prefix argument.
+ − 285
+ − 286 If you want more information about a function definition, variable or
+ − 287 symbol property listed in the Apropos buffer, you can click on it with
+ − 288 @kbd{Mouse-2} or move there and type @key{RET}.
+ − 289
+ − 290 @node Library Keywords, Help Mode, Apropos, Help
+ − 291 @section Keyword Search for Lisp Libraries
+ − 292
+ − 293 @kindex C-h p
+ − 294 @findex finder-by-keyword
+ − 295 The @kbd{C-h p} command lets you search the standard Emacs Lisp
+ − 296 libraries by topic keywords. Here is a partial list of keywords you can
+ − 297 use:
0
+ − 298
442
+ − 299 @display
+ − 300 abbrev abbreviation handling, typing shortcuts, macros
+ − 301 bib code related to the `bib' bibliography processor
+ − 302 c C, C++, and Objective-C language support
+ − 303 calendar calendar and time management support
+ − 304 comm communications, networking, remote access to files
+ − 305 data support for editing files of data
+ − 306 docs support for Emacs documentation
+ − 307 dumped files preloaded into Emacs
+ − 308 emulations emulations of other editors
+ − 309 extensions Emacs Lisp language extensions
+ − 310 faces support for multiple fonts
+ − 311 frames support for Emacs frames and window systems
+ − 312 games games, jokes and amusements
+ − 313 hardware support for interfacing with exotic hardware
+ − 314 help support for on-line help systems
+ − 315 hypermedia support for links between text or other media types
+ − 316 i18n internationalization and alternate character-set support
+ − 317 internal code for Emacs internals, build process, defaults
+ − 318 languages specialized modes for editing programming languages
+ − 319 lisp Lisp support, including Emacs Lisp
+ − 320 local code local to your site
+ − 321 maint maintenance aids for the Emacs development group
+ − 322 mail modes for electronic-mail handling
+ − 323 matching various sorts of searching and matching
+ − 324 mouse mouse support
+ − 325 mule multi-language extensions
+ − 326 news support for netnews reading and posting
+ − 327 oop support for object-oriented programming
+ − 328 outlines support for hierarchical outlining
+ − 329 processes process, subshell, compilation, and job control support
+ − 330 terminals support for terminal types
+ − 331 tex code related to the TeX formatter
+ − 332 tools programming tools
+ − 333 unix front-ends/assistants for, or emulators of, UNIX features
+ − 334 vms support code for vms
+ − 335 wp word processing
+ − 336 @end display
+ − 337
+ − 338 @node Help Mode, Misc Help, Library Keywords, Help
+ − 339 @section Help Mode Commands
+ − 340
+ − 341 Help buffers provide the commands of View mode (@pxref{Misc File
+ − 342 Ops}), plus a few special commands of their own.
+ − 343
+ − 344 @table @kbd
+ − 345 @item @key{SPC}
+ − 346 Scroll forward.
+ − 347 @item @key{DEL}
+ − 348 @itemx @key{BS}
+ − 349 Scroll backward.
+ − 350 @c @item @key{RET}
+ − 351 @c Follow a cross reference at point.
+ − 352 @c @item @key{TAB}
+ − 353 @c Move point forward to the next cross reference.
+ − 354 @c @item S-@key{TAB}
+ − 355 @c Move point back to the previous cross reference.
+ − 356 @c @item Mouse-2
+ − 357 @c Follow a cross reference that you click on.
+ − 358 @end table
+ − 359
+ − 360 When a command name (@pxref{M-x,, Running Commands by Name}) or
+ − 361 variable name (@pxref{Variables}) appears in the documentation, it
+ − 362 normally appears inside paired single-quotes.
+ − 363
+ − 364 @node Misc Help, , Help Mode, Help
0
+ − 365 @section Other Help Commands
+ − 366
+ − 367 @kindex C-h i
+ − 368 @findex info
442
+ − 369 @cindex Info
+ − 370 @cindex manuals, on-line
+ − 371 @cindex on-line manuals
0
+ − 372 @kbd{C-h i} (@code{info}) runs the Info program, which is used for
442
+ − 373 browsing through structured documentation files. The entire XEmacs manual
0
+ − 374 is available within Info. Eventually all the documentation of the GNU
+ − 375 system will be available. Type @kbd{h} after entering Info to run
+ − 376 a tutorial on using Info.
+ − 377
442
+ − 378 If you specify a numeric argument, @kbd{C-h i} prompts for the name of
+ − 379 a documentation file. This way, you can browse a file which doesn't
+ − 380 have an entry in the top-level Info menu. It is also handy when you
+ − 381 need to get to the documentation quickly, and you know the exact name of
+ − 382 the file.
+ − 383
+ − 384 @kindex C-h C-f
+ − 385 @kindex C-h C-k
+ − 386 @findex Info-elisp-ref
+ − 387 @findex Info-goto-emacs-command-node
2215
+ − 388 @findex Info-goto-emacs-key-command-node
442
+ − 389 There are two special help commands for accessing XEmacs documentation
+ − 390 through Info. @kbd{C-h C-f @var{function} @key{RET}} enters Info and
+ − 391 goes straight to the documentation of the XEmacs function
+ − 392 @var{function}. @kbd{C-h C-k @var{key}} enters Info and goes straight
+ − 393 to the documentation of the key @var{key}. These two keys run the
+ − 394 commands @code{Info-elisp-ref} and
2215
+ − 395 @code{Info-goto-emacs-key-command-node}. (GNU Emacs binds @kbd{C-h C-f}
+ − 396 to @code{Info-goto-emacs-command-node}, but this is less helpful to
+ − 397 programmers.)
442
+ − 398
0
+ − 399 @kindex C-h l
+ − 400 @findex view-lossage
+ − 401 If something surprising happens, and you are not sure what commands you
+ − 402 typed, use @kbd{C-h l} (@code{view-lossage}). @kbd{C-h l} prints the last
442
+ − 403 100 command characters you typed in. If you see commands that you don't
+ − 404 know, you can use @kbd{C-h c} to find out what they do.
0
+ − 405
+ − 406 @kindex C-h m
+ − 407 @findex describe-mode
442
+ − 408 XEmacs has several major modes. Each mode redefines a few keys and
0
+ − 409 makes a few other changes in how editing works. @kbd{C-h m}
+ − 410 (@code{describe-mode}) prints documentation on the current major mode,
+ − 411 which normally describes all the commands that are changed in this mode.
+ − 412
+ − 413 @kindex C-h b
+ − 414 @findex describe-bindings
+ − 415 @kbd{C-h b} (@code{describe-bindings}) and @kbd{C-h s}
442
+ − 416 (@code{describe-syntax}) present information about the current XEmacs
0
+ − 417 mode that is not covered by @kbd{C-h m}. @kbd{C-h b} displays a list of
442
+ − 418 all the key bindings currently in effect, with the local bindings of the
+ − 419 current major mode first, followed by the global bindings (@pxref{Key
0
+ − 420 Bindings}). @kbd{C-h s} displays the contents of the syntax table with
442
+ − 421 explanations of each character's syntax (@pxref{Syntax}).
0
+ − 422
442
+ − 423 You can get a similar list for a particular prefix key by typing
+ − 424 @kbd{C-h} after the prefix key. (There are a few prefix keys for which
+ − 425 this does not work---those that provide their own bindings for
+ − 426 @kbd{C-h}. One of these is @key{ESC}, because @kbd{@key{ESC} C-h} is
+ − 427 actually @kbd{C-M-h}, which marks a defun.)
+ − 428
+ − 429 @kindex C-h F
+ − 430 @findex xemacs-local-faq
0
+ − 431 @kindex C-h n
+ − 432 @findex view-emacs-news
+ − 433 @kindex C-h t
+ − 434 @findex help-with-tutorial
+ − 435 @kindex C-h C-c
+ − 436 @findex describe-copying
+ − 437 @kindex C-h C-d
+ − 438 @findex describe-distribution
+ − 439 @kindex C-h C-w
+ − 440 @findex describe-no-warranty
+ − 441 The other @kbd{C-h} options display various files of useful
442
+ − 442 information. @kbd{C-h C-w} (@code{describe-no-warranty}) displays the
+ − 443 full details on the complete absence of warranty for XEmacs. @kbd{C-h
+ − 444 n} (@code{view-emacs-news}) displays the file @file{xemacs/etc/NEWS},
2537
+ − 445 which contains documentation on XEmacs changes arranged
+ − 446 chronologically. @kbd{C-h F} (@code{xemacs-local-faq}) displays the
+ − 447 local version of the XEmacs FAQ (Frequently Answered Questions list).
+ − 448 @kbd{C-h t} (@code{help-with-tutorial}) displays the learn-by-doing
+ − 449 XEmacs tutorial. @kbd{C-h C-c} (@code{describe-copying}) displays the
+ − 450 file @file{xemacs/etc/COPYING}, which tells you the conditions you
+ − 451 must obey in distributing copies of XEmacs. @kbd{C-h C-d}
+ − 452 (@code{describe-distribution} displays the section of the FAQ that
+ − 453 tells you how you can get the latest version of XEmacs.