XEmacs 21.2.34 "Molpe".
[chise/xemacs-chise.git.1] / info / xemacs.info-3
1 This is ../info/xemacs.info, produced by makeinfo version 4.0 from
2 xemacs/xemacs.texi.
3
4 INFO-DIR-SECTION XEmacs Editor
5 START-INFO-DIR-ENTRY
6 * XEmacs: (xemacs).             XEmacs Editor.
7 END-INFO-DIR-ENTRY
8
9    This file documents the XEmacs editor.
10
11    Copyright (C) 1985, 1986, 1988 Richard M. Stallman.  Copyright (C)
12 1991, 1992, 1993, 1994 Lucid, Inc.  Copyright (C) 1993, 1994 Sun
13 Microsystems, Inc.  Copyright (C) 1995 Amdahl Corporation.
14
15    Permission is granted to make and distribute verbatim copies of this
16 manual provided the copyright notice and this permission notice are
17 preserved on all copies.
18
19    Permission is granted to copy and distribute modified versions of
20 this manual under the conditions for verbatim copying, provided also
21 that the sections entitled "The GNU Manifesto", "Distribution" and "GNU
22 General Public License" are included exactly as in the original, and
23 provided that the entire resulting derived work is distributed under the
24 terms of a permission notice identical to this one.
25
26    Permission is granted to copy and distribute translations of this
27 manual into another language, under the above conditions for modified
28 versions, except that the sections entitled "The GNU Manifesto",
29 "Distribution" and "GNU General Public License" may be included in a
30 translation approved by the author instead of in the original English.
31
32 \1f
33 File: xemacs.info,  Node: Exiting,  Next: Command Switches,  Prev: Entering Emacs,  Up: Top
34
35 Exiting Emacs
36 =============
37
38    There are two commands for exiting Emacs because there are two kinds
39 of exiting: "suspending" Emacs and "killing" Emacs.
40
41    "Suspending" means stopping Emacs temporarily and returning control
42 to its parent process (usually a shell), allowing you to resume editing
43 later in the same Emacs job, with the same buffers, same kill ring,
44 same undo history, and so on.  This is the usual way to exit.
45
46    "Killing" Emacs means destroying the Emacs job.  You can run Emacs
47 again later, but you will get a fresh Emacs; there is no way to resume
48 the same editing session after it has been killed.
49
50 `C-z'
51      Suspend Emacs or iconify a frame
52      (`suspend-emacs-or-iconify-frame').  If used under the X window
53      system, shrink the X window containing the Emacs frame to an icon
54      (see below).
55
56 `C-x C-c'
57      Kill Emacs (`save-buffers-kill-emacs').
58
59    If you use XEmacs under the X window system, `C-z' shrinks the X
60 window containing the Emacs frame to an icon.  The Emacs process is
61 stopped temporarily, and control is returned to the window manager.  If
62 more than one frame is associated with the Emacs process, only the
63 frame from which you used `C-z' is iconified.
64
65    To activate the "suspended" Emacs, use the appropriate window manager
66 mouse gestures.  Usually left-clicking on the icon reactivates and
67 reopens the X window containing the Emacs frame, but the window manager
68 you use determines what exactly happens.  To actually kill the Emacs
69 process, use `C-x C-c' or the Exit XEmacs item on the File menu.
70
71    To suspend Emacs, type `C-z' (`suspend-emacs').  This takes you back
72 to the shell from which you invoked Emacs.  You can resume Emacs with
73 the shell command `%xemacs' in most common shells.
74
75    On systems that do not support suspending programs, `C-z' starts an
76 inferior shell that communicates directly with the terminal.  Emacs
77 waits until you exit the subshell.  (The way to do that is probably
78 with `C-d' or `exit', but it depends on which shell you use.)  The only
79 way on these systems to get back to the shell from which Emacs was run
80 (to log out, for example) is to kill Emacs.
81
82    Suspending also fails if you run Emacs under a shell that doesn't
83 support suspending programs, even if the system itself does support it.
84 In such a case, you can set the variable `cannot-suspend' to a
85 non-`nil' value to force `C-z' to start an inferior shell.  (One might
86 also describe Emacs's parent shell as "inferior" for failing to support
87 job control properly, but that is a matter of taste.)
88
89    When Emacs communicates directly with an X server and creates its own
90 dedicated X windows, `C-z' has a different meaning.  Suspending an
91 applications that uses its own X windows is not meaningful or useful.
92 Instead, `C-z' runs the command `iconify-or-deiconify-frame', which
93 temporarily closes up the selected Emacs frame.  The way to get back to
94 a shell window is with the window manager.
95
96    To kill Emacs, type `C-x C-c' (`save-buffers-kill-emacs').  A
97 two-character key is used for this to make it harder to type.  Selecting
98 the Exit XEmacs option of the File menu is an alternate way of issuing
99 the command.
100
101    Unless a numeric argument is used, this command first offers to save
102 any modified file-visiting buffers.  If you do not save all buffers,
103 you are asked for reconfirmation with `yes' before killing Emacs, since
104 any changes not saved will be lost forever.  If any subprocesses are
105 still running, `C-x C-c' asks you to confirm killing them, since killing
106 Emacs will kill the subprocesses immediately.
107
108    There is no way to restart an Emacs session once you have killed it.
109 You can, however, arrange for Emacs to record certain session
110 information, such as which files are visited, when you kill it, so that
111 the next time you restart Emacs it will try to visit the same files and
112 so on.
113
114    The operating system usually listens for certain special characters
115 whose meaning is to kill or suspend the program you are running.  This
116 operating system feature is turned off while you are in Emacs.  The
117 meanings of `C-z' and `C-x C-c' as keys in Emacs were inspired by the
118 use of `C-z' and `C-c' on several operating systems as the characters
119 for stopping or killing a program, but that is their only relationship
120 with the operating system.  You can customize these keys to run any
121 commands of your choice (*note Keymaps::).
122
123 \1f
124 File: xemacs.info,  Node: Command Switches,  Next: Startup Paths,  Prev: Exiting,  Up: Top
125
126 Command Line Switches and Arguments
127 ===================================
128
129    XEmacs supports command line arguments you can use to request
130 various actions when invoking Emacs.  The commands are for compatibility
131 with other editors and for sophisticated activities.  If you are using
132 XEmacs under the X window system, you can also use a number of standard
133 Xt command line arguments. Command line arguments are not usually
134 needed for editing with Emacs; new users can skip this section.
135
136    Many editors are designed to be started afresh each time you want to
137 edit.  You start the editor to edit one file; then exit the editor.  The
138 next time you want to edit either another file or the same one, you
139 start the editor again.  Under these circumstances, it makes sense to
140 use a command line argument to say which file to edit.
141
142    The recommended way to use XEmacs is to start it only once, just
143 after you log in, and do all your editing in the same Emacs process.
144 Each time you want to edit a file, you visit it using the existing
145 Emacs.  Emacs creates a new buffer for each file, and (unless you kill
146 some of the buffers) Emacs eventually has many files in it ready for
147 editing.  Usually you do not kill the Emacs process until you are about
148 to log out.  Since you usually read files by typing commands to Emacs,
149 command line arguments for specifying a file when Emacs is started are
150 seldom needed.
151
152    Emacs accepts command-line arguments that specify files to visit,
153 functions to call, and other activities and operating modes.  If you are
154 running XEmacs under the X window system, a number of standard Xt
155 command line arguments are available as well.
156
157    The following subsections list:
158    * Command line arguments that you can always use
159
160    * Command line arguments that have to appear at the beginning of the
161      argument list
162
163    * Command line arguments that are only relevant if you are running
164      XEmacs under X
165
166 Command Line Arguments for Any Position
167 ---------------------------------------
168
169    Command line arguments are processed in the order they appear on the
170 command line; however, certain arguments (the ones in the second table)
171 must be at the front of the list if they are used.
172
173    Here are the arguments allowed:
174
175 `FILE'
176      Visit FILE using `find-file'.  *Note Visiting::.
177
178 `+LINENUM FILE'
179      Visit FILE using `find-file', then go to line number LINENUM in it.
180
181 `-load FILE'
182 `-l FILE'
183      Load a file FILE of Lisp code with the function `load'.  *Note
184      Lisp Libraries::.
185
186 `-funcall FUNCTION'
187 `-f FUNCTION'
188      Call Lisp function FUNCTION with no arguments.
189
190 `-eval FUNCTION'
191      Interpret the next argument as a Lisp expression, and evaluate it.
192      You must be very careful of the shell quoting here.
193
194 `-insert FILE'
195 `-i FILE'
196      Insert the contents of FILE into the current buffer.  This is like
197      what `M-x insert-buffer' does; *Note Misc File Ops::.
198
199 `-kill'
200      Exit from Emacs without asking for confirmation.
201
202 `-version'
203 `-V'
204      Prints version information.  This implies `-batch'.
205
206           % xemacs -version
207           XEmacs 19.13 of Mon Aug 21 1995 on willow (usg-unix-v) [formerly Lucid Emacs]
208
209 `-help'
210      Prints a summary of command-line options and then exits.
211
212 Command Line Arguments (Beginning of Line Only)
213 -----------------------------------------------
214
215    The following arguments are recognized only at the beginning of the
216 command line.  If more than one of them appears, they must appear in the
217 order in which they appear in this table.
218
219 `-t FILE'
220      Use FILE instead of the terminal for input and output.  This
221      implies the `-nw' option, documented below.
222
223 `-batch'
224      Run Emacs in "batch mode", which means that the text being edited
225      is not displayed and the standard Unix interrupt characters such as
226      `C-z' and `C-c' continue to have their normal effect.  Emacs in
227      batch mode outputs to `stderr' only what would normally be printed
228      in the echo area under program control.
229
230      Batch mode is used for running programs written in Emacs Lisp from
231      shell scripts, makefiles, and so on.  Normally the `-l' switch or
232      `-f' switch will be used as well, to invoke a Lisp program to do
233      the batch processing.
234
235      `-batch' implies `-q' (do not load an init file).  It also causes
236      Emacs to kill itself after all command switches have been
237      processed.  In addition, auto-saving is not done except in buffers
238      for which it has been explicitly requested.
239
240 `-nw'
241      Start up XEmacs in TTY mode (using the TTY XEmacs was started
242      from), rather than trying to connect to an X display.  Note that
243      this happens automatically if the `DISPLAY' environment variable
244      is not set.
245
246 `-debug-init'
247      Enter the debugger if an error in the init file occurs.
248
249 `-debug-paths'
250      Displays information on how XEmacs constructs the various paths
251      into its hierarchy on startup.  (See also *note Startup Paths::.)
252
253 `-unmapped'
254      Do not map the initial frame.  This is useful if you want to start
255      up XEmacs as a server (e.g. for gnuserv screens or external client
256      widgets).
257
258 `-no-init-file'
259 `-q'
260      Do not load your Emacs init file `~/.emacs'.
261
262 `-no-site-file'
263      Do not load the site-specific init file `lisp/site-start.el'.
264
265 `-no-autoloads'
266      Do not load global symbol files (`auto-autoloads') at startup.
267      This implies `-vanilla'.
268
269 `-no-early-packages'
270      Do not process early packages.  (For more information on startup
271      issues concerning the package system, *Note Startup Paths::.)
272
273 `-vanilla'
274      This is equivalent to `-q -no-site-file -no-early-packages'.
275
276 `-user-init-file FILE'
277      Load FILE as your Emacs init file instead of `~/.emacs'.
278
279 `-user-init-directory DIRECTORY'
280      Use DIRECTORY as the location of your early package hierarchies
281      and the various user-specific initialization files.
282
283 `-user USER'
284 `-u USER'
285      Equivalent to `-user-init-file ~USER/.emacs -user-init-directory
286      ~USER/.xemacs'.
287
288    Note that the init file can get access to the command line argument
289 values as the elements of a list in the variable `command-line-args'.
290 (The arguments in the second table above will already have been
291 processed and will not be in the list.)  The init file can override the
292 normal processing of the other arguments by setting this variable.
293
294    One way to use command switches is to visit many files automatically:
295
296      xemacs *.c
297
298 passes each `.c' file as a separate argument to Emacs, so that Emacs
299 visits each file (*note Visiting::).
300
301    Here is an advanced example that assumes you have a Lisp program file
302 called `hack-c-program.el' which, when loaded, performs some useful
303 operation on the current buffer, expected to be a C program.
304
305      xemacs -batch foo.c -l hack-c-program -f save-buffer -kill > log
306
307 Here Emacs is told to visit `foo.c', load `hack-c-program.el' (which
308 makes changes in the visited file), save `foo.c' (note that
309 `save-buffer' is the function that `C-x C-s' is bound to), and then
310 exit to the shell from which the command was executed.  `-batch'
311 guarantees there will be no problem redirecting output to `log',
312 because Emacs will not assume that it has a display terminal to work
313 with.
314
315 Command Line Arguments (for XEmacs Under X)
316 -------------------------------------------
317
318    If you are running XEmacs under X, a number of options are available
319 to control color, border, and window title and icon name:
320
321 `-title TITLE'
322 `-wn TITLE'
323 `-T TITLE'
324      Use TITLE as the window title. This sets the `frame-title-format'
325      variable, which controls the title of the X window corresponding
326      to the selected frame.  This is the same format as
327      `mode-line-format'.
328
329 `-iconname TITLE'
330 `-in TITLE'
331      Use TITLE as the icon name. This sets the
332      `frame-icon-title-format' variable, which controls the title of
333      the icon corresponding to the selected frame.
334
335 `-mc COLOR'
336      Use COLOR as the mouse color.
337
338 `-cr COLOR'
339      Use COLOR as the text-cursor foreground color.
340
341 `-private'
342      Install a private colormap for XEmacs.
343
344    In addition, XEmacs allows you to use a number of standard Xt
345 command line arguments.
346
347 `-background COLOR'
348 `-bg COLOR'
349      Use COLOR as the background color.
350
351 `-bordercolor COLOR'
352 `-bd COLOR'
353      Use COLOR as the border color.
354
355 `-borderwidth WIDTH'
356 `-bw WIDTH'
357      Use WIDTH as the border width.
358
359 `-display DISPLAY'
360 `-d DISPLAY'
361      When running under the X window system, create the window
362      containing the Emacs frame on the display named DISPLAY.
363
364 `-foreground COLOR'
365 `-fg COLOR'
366      Use COLOR as the foreground color.
367
368 `-font NAME'
369 `-fn NAME'
370      Use NAME as the default font.
371
372 `-geometry SPEC'
373 `-geom SPEC'
374 `-g SPEC'
375      Use the geometry (window size and/or position) specified by SPEC.
376
377 `-iconic'
378      Start up iconified.
379
380 `-rv'
381      Bring up Emacs in reverse video.
382
383 `-name NAME'
384      Use the resource manager resources specified by NAME.  The default
385      is to use the name of the program (`argv[0]') as the resource
386      manager name.
387
388 `-xrm'
389      Read something into the resource database for this invocation of
390      Emacs only.
391
392 \1f
393 File: xemacs.info,  Node: Startup Paths,  Next: Basic,  Prev: Command Switches,  Up: Top
394
395 How XEmacs finds Directories and Files
396 ======================================
397
398    XEmacs deals with a multitude of files during operation.  These files
399 are spread over many directories, and XEmacs determines the location of
400 most of these directories at startup and organizes them into various
401 paths.  (A "path", for the purposes of this section, is simply a list
402 of directories which XEmacs searches successively in order to locate a
403 file.)
404
405 XEmacs Directory Hierarchies
406 ----------------------------
407
408    Many of the files XEmacs looks for are located within the XEmacs
409 installation itself.  However, there are several views of what actually
410 constitutes the "XEmacs installation": XEmacs may be run from the
411 compilation directory, it may be installed into arbitrary directories,
412 spread over several directories unrelated to each other.  Moreover, it
413 may subsequently be moved to a different place.  (This last case is not
414 as uncommon as it sounds.  Binary kits work this way.)  Consequently,
415 XEmacs has quite complex procedures in place to find directories, no
416 matter where they may be hidden.
417
418    XEmacs will always respect directory options passed to `configure'.
419 However, if it cannot locate a directory at the configured place, it
420 will initiate a search for the directory in any of a number of
421 "hierarchies" rooted under a directory which XEmacs assumes contain
422 parts of the XEmacs installation; it may locate several such hierarchies
423 and search across them.  (Typically, there are just one or two
424 hierarchies: the hierarchy where XEmacs was or will be installed, and
425 the one where it is being built.)  Such a directory containing a
426 hierarchy is called a "root".  Whenever this section refers to a
427 directory using the shorthand `<root>', it means that XEmacs searches
428 for it under all hierarchies under all hierarchies XEmacs was able to
429 scrounge up.  In a running XEmacs, the hierarchy roots are stored in
430 the variable `emacs-roots'.
431
432 Package Hierarchies
433 -------------------
434
435    Many relevant directories and files XEmacs uses are actually not
436 part of the core installation.  They are part of any of the many
437 packages usually installed on top of an XEmacs installation.  (*Note
438 Packages::.)  Hence, they play a prominent role in the various paths
439 XEmacs sets up.
440
441    XEmacs locates packages in any of a number of package hierarchies.
442 Package hierarchies fall into three groups: "early", "late", and "last",
443 according to the relative location at which they show up in the various
444 XEmacs paths.  Early package hierarchies are at the very front, late
445 ones somewhere in the middle, and last hierarchies are (you guessed it)
446 last.
447
448    By default, XEmacs expects an early package hierarchy in the a
449 subdirectory `.xemacs' of the user's home directory.
450
451    Moreover, XEmacs expects late hierarchies in the subdirectories
452 `site-packages', `mule-packages', and `xemacs-packages' (in that order)
453 of the `<root>/lib/xemacs' subdirectory of one of the installation
454 hierarchies.  (If you run in-place, these are direct subdirectories of
455 the build directory.)  Furthermore, XEmacs will also search these
456 subdirectories in the `<root>/lib/xemacs-<VERSION>' subdirectory and
457 prefer directories found there.
458
459    By default, XEmacs does not have a pre-configured last package
460 hierarchy.  Last hierarchies are primarily for using package hierarchies
461 of outdated versions of XEmacs as a fallback option.  For example, it is
462 possible to run XEmacs 21.0 with the 20.4 package hierarchy as a last
463 hierarchy.
464
465    It is possible to specify at configure-time the location of the
466 various package hierarchies with the `--package-path' option to
467 configure.  The early, late, and last components of the package path
468 are separated by double instead of single colons.  If three components
469 are present, they are locate the early, late, and last package
470 hierarchies respectively.  If two components are present, they locate
471 the early and late hierarchies.  If only one component is present, it
472 locates the late hierarchy.  At run time, the package path may also be
473 specified via the `EMACSPACKAGEPATH' environment variable.
474
475    An XEmacs package is laid out just like a normal installed XEmacs
476 lisp directory.  It may have `lisp', `etc', `info', and `lib-src'
477 subdirectories.  XEmacs adds these at appropriate places within the
478 various system-wide paths.
479
480    There may be any number of package hierarchy directories.
481
482 Directories and Paths
483 ---------------------
484
485    Here is a list of the various directories and paths XEmacs tries to
486 locate during startup.  XEmacs distinguishes between directories and
487 paths specific to "version", "site", and "architecture" when looking
488 for them.
489
490 `version-specific'
491      directories are specific to the version of XEmacs they belong to
492      and typically reside under `<root>/lib/xemacs-<VERSION>'.
493
494 `site-specific'
495      directories are independent of the version of XEmacs they belong
496      to and typically reside under `<root>/lib/xemacs'
497
498 `architecture-specific'
499      directories are specific both to the version of XEmacs and the
500      architecture it runs on and typically reside under
501      `<root>/lib/xemacs-<VERSION>/<ARCHITECTURE>'.
502
503    During installation, all of these directories may also reside
504 directly under `<root>', because that is where they are in the XEmacs
505 tarball.
506
507    If XEmacs runs with the `-debug-paths' option (*note Command
508 Switches::), it will print the values of these variables, hopefully
509 aiding in debugging any problems which come up.
510
511 `lisp-directory'
512      Contains the version-specific location of the Lisp files that come
513      with the core distribution of XEmacs.  XEmacs will search it
514      recursively to a depth of 1 when setting up `load-path'.
515
516 `load-path'
517      Is where XEmacs searches for XEmacs Lisp files with commands like
518      `load-library'.  It contains the package lisp directories (see
519      further down) and the version-specific core Lisp directories.  If
520      the environment variable `EMACSLOADPATH' is set at startup, its
521      directories are prepended to `load-path'.
522
523 `Info-directory-list'
524      Contains the location of info files.  (See *Note (info)::.)  It
525      contains the package info directories and the version-specific core
526      documentation.  Moreover, XEmacs will add `/usr/info',
527      `/usr/local/info' as well as the directories of the environment
528      variable `INFOPATH' to `Info-directory-list'.
529
530 `exec-directory'
531      Is the directory of architecture-dependent files that come with
532      XEmacs, especially executable programs intended for XEmacs to
533      invoke.
534
535 `exec-path'
536      Is the path for executables which XEmacs may want to start.  It
537      contains the package executable paths as well as `exec-directory',
538      and the directories of the environment variables `PATH' and
539      `EMACSPATH'.
540
541 `doc-directory'
542      Is the directory containing the architecture-specific `DOC' file
543      that contains documentation for XEmacs' commands.
544
545 `data-directory'
546      Is the version-specific directory that contains core data files
547      XEmacs uses.  It may be initialized from the `EMACSDATA'
548      environment variable.
549
550 `data-directory-list'
551      Is the path where XEmacs looks for data files.  It contains
552      package data directories as well as `data-directory'.
553
554 \1f
555 File: xemacs.info,  Node: Basic,  Next: Undo,  Prev: Startup Paths,  Up: Top
556
557 Basic Editing Commands
558 **********************
559
560    We now give the basics of how to enter text, make corrections, and
561 save the text in a file.  If this material is new to you, you might
562 learn it more easily by running the Emacs learn-by-doing tutorial.  To
563 use the tutorial, run Emacs and type `Control-h t'
564 (`help-with-tutorial').  You can also use Tutorials item from the Help
565 menu.
566
567    XEmacs comes with many translations of tutorial.  If your XEmacs is
568 with MULE and you set up language environment correctly, XEmacs choses
569 right tutorial when available (*note Language Environments::).  If you
570 want specific translation, give `C-h t' a prefix argument, like `C-u
571 C-h t'.
572
573    To clear the screen and redisplay, type `C-l' (`recenter').
574
575 * Menu:
576
577
578 * Inserting Text::      Inserting text by simply typing it.
579 * Moving Point::        How to move the cursor to the place where you want to
580                           change something.
581 * Erasing::             Deleting and killing text.
582 * Files: Basic Files.   Visiting, creating, and saving files.
583 * Help: Basic Help.     Asking what a character does.
584 * Blank Lines::         Commands to make or delete blank lines.
585 * Continuation Lines::  Lines too wide for the screen.
586 * Position Info::       What page, line, row, or column is point on?
587 * Arguments::           Numeric arguments for repeating a command.
588
589 \1f
590 File: xemacs.info,  Node: Inserting Text,  Next: Moving Point,  Up: Basic
591
592 Inserting Text
593 ==============
594
595    To insert printing characters into the text you are editing, just
596 type them.  This inserts the characters you type into the buffer at the
597 cursor (that is, at "point"; *note Point::).  The cursor moves forward,
598 and any text after the cursor moves forward too.  If the text in the
599 buffer is `FOOBAR', with the cursor before the `B', then if you type
600 `XX', you get `FOOXXBAR', with the cursor still before the `B'.
601
602    To "delete" text you have just inserted, use <BS>.  <BS> deletes the
603 character _before_ the cursor (not the one that the cursor is on top of
604 or under; that is the character AFTER the cursor).  The cursor and all
605 characters after it move backwards.  Therefore, if you type a printing
606 character and then type <BS>, they cancel out.
607
608    To end a line and start typing a new one, type <RET>.  This inserts
609 a newline character in the buffer.  If point is in the middle of a
610 line, <RET> splits the line.  Typing <DEL> when the cursor is at the
611 beginning of a line deletes the preceding newline, thus joining the
612 line with the preceding line.
613
614    Emacs can split lines automatically when they become too long, if you
615 turn on a special minor mode called "Auto Fill" mode.  *Note Filling::,
616 for how to use Auto Fill mode.
617
618    If you prefer to have text characters replace (overwrite) existing
619 text rather than shove it to the right, you can enable Overwrite mode,
620 a minor mode.  *Note Minor Modes::.
621
622    Direct insertion works for printing characters and <SPC>, but other
623 characters act as editing commands and do not insert themselves.  If you
624 need to insert a control character or a character whose code is above
625 200 octal, you must "quote" it by typing the character `Control-q'
626 (`quoted-insert') first.  (This character's name is normally written
627 `C-q' for short.)  There are two ways to use `C-q':
628
629    * `C-q' followed by any non-graphic character (even `C-g') inserts
630      that character.
631
632    * `C-q' followed by a sequence of octal digits inserts the character
633      with the specified octal character code.  You can use any number of
634      octal digits; any non-digit terminates the sequence.  If the
635      terminating character is <RET>, it serves only to terminate the
636      sequence; any other non-digit is itself used as input after
637      terminating the sequence.  (The use of octal sequences is disabled
638      in ordinary non-binary Overwrite mode, to give you a convenient
639      way to insert a digit instead of overwriting with it.)
640
641 A numeric argument to `C-q' specifies how many copies of the quoted
642 character should be inserted (*note Arguments::).
643
644    Customization information: <DEL>, in most modes, runs the command
645 `backward-or-forward-delete-char'; <RET> runs the command `newline',
646 and self-inserting printing characters run the command `self-insert',
647 which inserts whatever character was typed to invoke it.  Some major
648 modes rebind <DEL> to other commands.
649
650 \1f
651 File: xemacs.info,  Node: Moving Point,  Next: Erasing,  Prev: Inserting Text,  Up: Basic
652
653 Changing the Location of Point
654 ==============================
655
656    To do more than insert characters, you have to know how to move point
657 (*note Point::).  The simplest way to do this is with arrow keys, or by
658 clicking the left mouse button where you want to move to.
659
660    NOTE: Many of the following commands have two versions, one that uses
661 the function keys (e.g. <LEFT> or <END>) and one that doesn't.  The
662 former versions may only be available on X terminals (i.e. not on
663 TTY's), but the latter are available on all terminals.
664
665 `C-a'
666 `HOME'
667      Move to the beginning of the line (`beginning-of-line').
668
669 `C-e'
670 `END'
671      Move to the end of the line (`end-of-line').
672
673 `C-f'
674 `RIGHT'
675      Move forward one character (`forward-char').
676
677 `C-b'
678 `LEFT'
679      Move backward one character (`backward-char').
680
681 `M-f'
682 `C-RIGHT'
683      Move forward one word (`forward-word').
684
685 `M-b'
686 `C-LEFT'
687      Move backward one word (`backward-word').
688
689 `C-n'
690 `DOWN'
691      Move down one line, vertically (`next-line').  This command
692      attempts to keep the horizontal position unchanged, so if you
693      start in the middle of one line, you end in the middle of the
694      next.  When on the last line of text, `C-n' creates a new line and
695      moves onto it.
696
697 `C-p'
698 `UP'
699      Move up one line, vertically (`previous-line').
700
701 `C-v'
702 `PGDN'
703      Move down one page, vertically (`scroll-up').
704
705 `M-v'
706 `PGUP'
707      Move up one page, vertically (`scroll-down').
708
709 `C-l'
710      Clear the frame and reprint everything (`recenter').  Text moves
711      on the frame to bring point to the center of the window.
712
713 `M-r'
714      Move point to left margin, vertically centered in the window
715      (`move-to-window-line').  Text does not move on the screen.
716
717      A numeric argument says which screen line to place point on.  It
718      counts screen lines down from the top of the window (zero for the
719      top line).  A negative argument counts lines from the bottom (-1
720      for the bottom line).
721
722 `C-t'
723      Transpose two characters, the ones before and after the cursor
724      (`transpose-chars').
725
726 `M-<'
727 `C-HOME'
728      Move to the top of the buffer (`beginning-of-buffer').  With
729      numeric argument N, move to N/10 of the way from the top.  *Note
730      Arguments::, for more information on numeric arguments.
731
732 `M->'
733 `C-END'
734      Move to the end of the buffer (`end-of-buffer').
735
736 `M-x goto-char'
737      Read a number N and move point to buffer position N.  Position 1
738      is the beginning of the buffer.
739
740 `M-g'
741      Read a number N and move point to line number N (`goto-line').
742      Line 1 is the beginning of the buffer.
743
744 `M-x set-goal-column'
745      Use the current column of point as the "semi-permanent goal
746      column" for `C-n' and `C-p' (`set-goal-column').  Henceforth, those
747      commands always move to this column in each line moved into, or as
748      close as possible given the contents of the line.  This goal
749      column remains in effect until canceled.
750
751 `C-u M-x set-goal-column'
752      Cancel the goal column.  Henceforth, `C-n' and `C-p' once again
753      try to avoid changing the horizontal position, as usual.
754
755    If you set the variable `track-eol' to a non-`nil' value, then `C-n'
756 and `C-p' when at the end of the starting line move to the end of
757 another line.  Normally, `track-eol' is `nil'.  *Note Variables::, for
758 how to set variables such as `track-eol'.
759
760    Normally, `C-n' on the last line of a buffer appends a newline to
761 it.  If the variable `next-line-add-newlines' is `nil', then `C-n' gets
762 an error instead (like `C-p' on the first line).
763
764 \1f
765 File: xemacs.info,  Node: Erasing,  Next: Basic Files,  Prev: Moving Point,  Up: Basic
766
767 Erasing Text
768 ============
769
770 `<DEL>'
771      Delete the character before or after point
772      (`backward-or-forward-delete-char').  You can customize this
773      behavior by setting the variable `delete-key-deletes-forward'.
774
775 `C-d'
776      Delete the character after point (`delete-char').
777
778 `C-k'
779      Kill to the end of the line (`kill-line').
780
781 `M-d'
782      Kill forward to the end of the next word (`kill-word').
783
784 `M-<DEL>'
785      Kill back to the beginning of the previous word
786      (`backward-kill-word').
787
788    You already know about the <DEL> key which deletes the character
789 before point (that is, before the cursor).  Another key, `Control-d'
790 (`C-d' for short), deletes the character after point (that is, the
791 character that the cursor is on).  This shifts the rest of the text on
792 the line to the left.  If you type `C-d' at the end of a line, it joins
793 together that line and the next line.
794
795    To erase a larger amount of text, use the `C-k' key, which kills a
796 line at a time.  If you type `C-k' at the beginning or middle of a
797 line, it kills all the text up to the end of the line.  If you type
798 `C-k' at the end of a line, it joins that line and the next line.
799
800    *Note Killing::, for more flexible ways of killing text.
801
802 \1f
803 File: xemacs.info,  Node: Basic Files,  Next: Basic Help,  Prev: Erasing,  Up: Basic
804
805 Files
806 =====
807
808    The commands described above are sufficient for creating and altering
809 text in an Emacs buffer; the more advanced Emacs commands just make
810 things easier.  But to keep any text permanently you must put it in a
811 "file".  Files are named units of text which are stored by the
812 operating system for you to retrieve later by name.  To look at or use
813 the contents of a file in any way, including editing the file with
814 Emacs, you must specify the file name.
815
816    Consider a file named `/usr/rms/foo.c'.  To begin editing this file
817 from Emacs, type:
818
819      C-x C-f /usr/rms/foo.c <RET>
820
821 Here the file name is given as an "argument" to the command `C-x C-f'
822 (`find-file').  That command uses the "minibuffer" to read the
823 argument, and you type <RET> to terminate the argument (*note
824 Minibuffer::).
825
826    You can also use the Open... menu item from the File menu, then type
827 the name of the file to the prompt.
828
829    Emacs obeys the command by "visiting" the file: creating a buffer,
830 copying the contents of the file into the buffer, and then displaying
831 the buffer for you to edit.  If you alter the text, you can "save" the
832 new text in the file by typing `C-x C-s' (`save-buffer') or choosing
833 Save Buffer from the File menu.  This makes the changes permanent by
834 copying the altered buffer contents back into the file
835 `/usr/rms/foo.c'.  Until you save, the changes exist only inside Emacs,
836 and the file `foo.c' is unaltered.
837
838    To create a file, visit the file with `C-x C-f' as if it already
839 existed or choose Open... from the File menu and provide the name for
840 the new file.  Emacs will create an empty buffer in which you can
841 insert the text you want to put in the file.  When you save the buffer
842 with `C-x C-s', or by choosing Save Buffer from the File menu, the file
843 is created.
844
845    To learn more about using files, *Note Files::.
846
847 \1f
848 File: xemacs.info,  Node: Basic Help,  Next: Blank Lines,  Prev: Basic Files,  Up: Basic
849
850 Help
851 ====
852
853    If you forget what a key does, you can find out with the Help
854 character, which is `C-h' (or <F1>, which is an alias for `C-h').  Type
855 `C-h k' followed by the key you want to know about; for example, `C-h k
856 C-n' tells you all about what `C-n' does.  `C-h' is a prefix key; `C-h
857 k' is just one of its subcommands (the command `describe-key').  The
858 other subcommands of `C-h' provide different kinds of help.  Type `C-h'
859 twice to get a description of all the help facilities.  *Note Help::.
860
861 \1f
862 File: xemacs.info,  Node: Blank Lines,  Next: Continuation Lines,  Prev: Basic Help,  Up: Basic
863
864 Blank Lines
865 ===========
866
867    Here are special commands and techniques for putting in and taking
868 out blank lines.
869
870 `C-o'
871      Insert one or more blank lines after the cursor (`open-line').
872
873 `C-x C-o'
874      Delete all but one of many consecutive blank lines
875      (`delete-blank-lines').
876
877    When you want to insert a new line of text before an existing line,
878 you can do it by typing the new line of text, followed by <RET>.
879 However, it may be easier to see what you are doing if you first make a
880 blank line and then insert the desired text into it.  This is easy to do
881 using the key `C-o' (`open-line'), which inserts a newline after point
882 but leaves point in front of the newline.  After `C-o', type the text
883 for the new line.  `C-o F O O' has the same effect as `F O O <RET>',
884 except for the final location of point.
885
886    You can make several blank lines by typing `C-o' several times, or
887 by giving it a numeric argument to tell it how many blank lines to make.
888 *Note Arguments::, for how.  If you have a fill prefix, then `C-o'
889 command inserts the fill prefix on the new line, when you use it at the
890 beginning of a line.  *Note Fill Prefix::.
891
892    The easy way to get rid of extra blank lines is with the command
893 `C-x C-o' (`delete-blank-lines').  `C-x C-o' in a run of several blank
894 lines deletes all but one of them.  `C-x C-o' on a solitary blank line
895 deletes that blank line.  When point is on a nonblank line, `C-x C-o'
896 deletes any blank lines following that nonblank line.
897
898 \1f
899 File: xemacs.info,  Node: Continuation Lines,  Next: Position Info,  Prev: Blank Lines,  Up: Basic
900
901 Continuation Lines
902 ==================
903
904    If you add too many characters to one line without breaking it with
905 <RET>, the line will grow to occupy two (or more) lines on the screen,
906 with a curved arrow at the extreme right margin of all but the last of
907 them.  The curved arrow says that the following screen line is not
908 really a distinct line in the text, but just the "continuation" of a
909 line too long to fit the screen.  Continuation is also called "line
910 wrapping".
911
912    Sometimes it is nice to have Emacs insert newlines automatically when
913 a line gets too long.  Continuation on the screen does not do that.  Use
914 Auto Fill mode (*note Filling::) if that's what you want.
915
916    Instead of continuation, long lines can be displayed by "truncation".
917 This means that all the characters that do not fit in the width of the
918 frame or window do not appear at all.  They remain in the buffer,
919 temporarily invisible.  Right arrow in the last column (instead of the
920 curved arrow) inform you that truncation is in effect.
921
922    Truncation instead of continuation happens whenever horizontal
923 scrolling is in use, and optionally in all side-by-side windows (*note
924 Windows::).  You can enable truncation for a particular buffer by
925 setting the variable `truncate-lines' to non-`nil' in that buffer.
926 (*Note Variables::.)  Altering the value of `truncate-lines' makes it
927 local to the current buffer; until that time, the default value is in
928 effect.  The default is initially `nil'.  *Note Locals::.
929
930    *Note Display Vars::, for additional variables that affect how text
931 is displayed.
932
933 \1f
934 File: xemacs.info,  Node: Position Info,  Next: Arguments,  Prev: Continuation Lines,  Up: Basic
935
936 Cursor Position Information
937 ===========================
938
939    If you are accustomed to other display editors, you may be surprised
940 that Emacs does not always display the page number or line number of
941 point in the mode line.  In Emacs, this information is only rarely
942 needed, and a number of commands are available to compute and print it.
943 Since text is stored in a way that makes it difficult to compute the
944 information, it is not displayed all the time.
945
946 `M-x what-page'
947      Print page number of point, and line number within page.
948
949 `M-x what-line'
950      Print line number of point in the buffer.
951
952 `M-x line-number-mode'
953      Toggle automatic display of current line number.
954
955 `M-='
956      Print number of lines and characters in the current region
957      (`count-lines-region').  *Note Mark::, for information about the
958      region.
959
960 `C-x ='
961      Print character code of character after point, character position
962      of point, and column of point (`what-cursor-position').
963
964    There are several commands for printing line numbers:
965
966    * `M-x what-line' counts lines from the beginning of the file and
967      prints the line number point is on.  The first line of the file is
968      line number 1.  You can use these numbers as arguments to `M-x
969      goto-line'.
970
971    * `M-x what-page' counts pages from the beginning of the file, and
972      counts lines within the page, printing both of them.  *Note
973      Pages::, for the command `C-x l', which counts the lines in the
974      current page.
975
976    * `M-=' (`count-lines-region') prints the number of lines in the
977      region (*note Mark::).  *Note Pages::, for the command `C-x l'
978      which counts the lines in the
979
980    The command `C-x =' (`what-cursor-position') can be used to find out
981 the column that the cursor is in, and other miscellaneous information
982 about point.  It prints a line in the echo area that looks like this:
983
984      Char: c (0143, 99, 0x63)  point=18862 of 24800(76%)  column 53
985
986 (In fact, this is the output produced when point is before `column 53'
987 in the example.)
988
989    The four values after `Char:' describe the character that follows
990 point, first by showing it and then by giving its character code in
991 octal, decimal and hex.
992
993    `point=' is followed by the position of point expressed as a
994 character count.  The front of the buffer counts as position 1, one
995 character later as 2, and so on.  The next, larger number is the total
996 number of characters in the buffer.  Afterward in parentheses comes the
997 position expressed as a percentage of the total size.
998
999    `column' is followed by the horizontal position of point, in columns
1000 from the left edge of the window.
1001
1002    If the buffer has been narrowed, making some of the text at the
1003 beginning and the end temporarily invisible, `C-x =' prints additional
1004 text describing the current visible range.  For example, it might say:
1005
1006      Char: c (0143, 99, 0x63)  point=19674 of 24575(80%) <19591 - 19703>  column 69
1007
1008 where the two extra numbers give the smallest and largest character
1009 position that point is allowed to assume.  The characters between those
1010 two positions are the visible ones.  *Note Narrowing::.
1011
1012    If point is at the end of the buffer (or the end of the visible
1013 part), `C-x =' omits any description of the character after point.  The
1014 output looks like
1015
1016      point=563026 of 563025(100%)  column 0
1017
1018 \1f
1019 File: xemacs.info,  Node: Arguments,  Prev: Position Info,  Up: Basic
1020
1021 Numeric Arguments
1022 =================
1023
1024    In mathematics and computer usage, the word "argument" means "data
1025 provided to a function or operation."  Any Emacs command can be given a
1026 "numeric argument" (also called a "prefix argument").  Some commands
1027 interpret the argument as a repetition count.  For example, giving an
1028 argument of ten to the key `C-f' (the command `forward-char', move
1029 forward one character) moves forward ten characters.  With these
1030 commands, no argument is equivalent to an argument of one.  Negative
1031 arguments are allowed.  Often they tell a command to move or act  in
1032 the opposite direction.
1033
1034    If your keyboard has a <META> key (labelled with a diamond on
1035 Sun-type keyboards and labelled `Alt' on some other keyboards), the
1036 easiest way to specify a numeric argument is to type digits and/or a
1037 minus sign while holding down the <META> key.  For example,
1038      M-5 C-n
1039
1040 would move down five lines.  The characters `Meta-1', `Meta-2', and so
1041 on, as well as `Meta--', do this because they are keys bound to
1042 commands (`digit-argument' and `negative-argument') that are defined to
1043 contribute to an argument for the next command.  Digits and `-'
1044 modified with Control, or Control and Meta, also specify numeric
1045 arguments.
1046
1047    Another way of specifying an argument is to use the `C-u'
1048 (`universal-argument') command followed by the digits of the argument.
1049 With `C-u', you can type the argument digits without holding down
1050 modifier keys; `C-u' works on all terminals.  To type a negative
1051 argument, type a minus sign after `C-u'.  Just a minus sign without
1052 digits normally means -1.
1053
1054    `C-u' followed by a character which is neither a digit nor a minus
1055 sign has the special meaning of "multiply by four".  It multiplies the
1056 argument for the next command by four.  `C-u' twice multiplies it by
1057 sixteen.  Thus, `C-u C-u C-f' moves forward sixteen characters.  This
1058 is a good way to move forward "fast", since it moves about 1/5 of a line
1059 in the usual size frame.  Other useful combinations are `C-u C-n', `C-u
1060 C-u C-n' (move down a good fraction of a frame), `C-u C-u C-o' (make "a
1061 lot" of blank lines), and `C-u C-k' (kill four lines).
1062
1063    Some commands care only about whether there is an argument and not
1064 about its value.  For example, the command `M-q' (`fill-paragraph') with
1065 no argument fills text; with an argument, it justifies the text as well.
1066 (*Note Filling::, for more information on `M-q'.)  Just `C-u' is a
1067 handy way of providing an argument for such commands.
1068
1069    Some commands use the value of the argument as a repeat count, but do
1070 something peculiar when there is no argument.  For example, the command
1071 `C-k' (`kill-line') with argument N kills N lines, including their
1072 terminating newlines.  But `C-k' with no argument is special: it kills
1073 the text up to the next newline, or, if point is right at the end of
1074 the line, it kills the newline itself.  Thus, two `C-k' commands with
1075 no arguments can kill a non-blank line, just like `C-k' with an
1076 argument of one.  (*Note Killing::, for more information on `C-k'.)
1077
1078    A few commands treat a plain `C-u' differently from an ordinary
1079 argument.  A few others may treat an argument of just a minus sign
1080 differently from an argument of -1.  These unusual cases are described
1081 when they come up; they are always for reasons of convenience of use of
1082 the individual command.
1083
1084    You can use a numeric argument to insert multiple copies of a
1085 character.  This is straightforward unless the character is a digit; for
1086 example, `C-u 6 4 a' inserts 64 copies of the character `a'.  But this
1087 does not work for inserting digits; `C-u 6 4 1' specifies an argument
1088 of 641, rather than inserting anything.  To separate the digit to
1089 insert from the argument, type another `C-u'; for example, `C-u 6 4 C-u
1090 1' does insert 64 copies of the character `1'.
1091
1092    We use the term "prefix argument" as well as "numeric argument" to
1093 emphasize that you type the argument before the command, and to
1094 distinguish these arguments from minibuffer arguments that come after
1095 the command.
1096
1097 \1f
1098 File: xemacs.info,  Node: Undo,  Next: Minibuffer,  Prev: Basic,  Up: Top
1099
1100 Undoing Changes
1101 ***************
1102
1103    Emacs allows you to undo all changes you make to the text of a
1104 buffer, up to a certain amount of change (8000 characters).  Each
1105 buffer records changes individually, and the undo command always
1106 applies to the current buffer.  Usually each editing command makes a
1107 separate entry in the undo records, but some commands such as
1108 `query-replace' make many entries, and very simple commands such as
1109 self-inserting characters are often grouped to make undoing less
1110 tedious.
1111
1112 `C-x u'
1113      Undo one batch of changes (usually, one command's worth) (`undo').
1114
1115 `C-_'
1116      The same.
1117
1118    The command `C-x u' or `C-_' allows you to undo changes.  The first
1119 time you give this command, it undoes the last change.  Point moves to
1120 the text affected by the undo, so you can see what was undone.
1121
1122    Consecutive repetitions of the `C-_' or `C-x u' commands undo
1123 earlier and earlier changes, back to the limit of what has been
1124 recorded.  If all recorded changes have already been undone, the undo
1125 command prints an error message and does nothing.
1126
1127    Any command other than an undo command breaks the sequence of undo
1128 commands.  Starting at this moment, the previous undo commands are
1129 considered ordinary changes that can themselves be undone.  Thus, you
1130 can redo changes you have undone by typing `C-f' or any other command
1131 that have no important effect, and then using more undo commands.
1132
1133    If you notice that a buffer has been modified accidentally, the
1134 easiest way to recover is to type `C-_' repeatedly until the stars
1135 disappear from the front of the mode line.  When that happens, all the
1136 modifications you made have been canceled.  If you do not remember
1137 whether you changed the buffer deliberately, type `C-_' once. When you
1138 see Emacs undo the last change you made, you probably remember why you
1139 made it.  If the change was an accident, leave it undone.  If it was
1140 deliberate, redo the change as described in the preceding paragraph.
1141
1142    Whenever an undo command makes the stars disappear from the mode
1143 line, the buffer contents is the same as it was when the file was last
1144 read in or saved.
1145
1146    Not all buffers record undo information.  Buffers whose names start
1147 with spaces don't; these buffers are used internally by Emacs and its
1148 extensions to hold text that users don't normally look at or edit.
1149 Minibuffers, help buffers, and documentation buffers also don't record
1150 undo information.
1151
1152    Emacs can remember at most 8000 or so characters of deleted or
1153 modified text in any one buffer for reinsertion by the undo command.
1154 There is also a limit on the number of individual insert, delete, or
1155 change actions that Emacs can remember.
1156
1157    There are two keys to run the `undo' command, `C-x u' and `C-_',
1158 because on some keyboards, it is not obvious how to type `C-_'. `C-x u'
1159 is an alternative you can type in the same fashion on any terminal.
1160
1161 \1f
1162 File: xemacs.info,  Node: Minibuffer,  Next: M-x,  Prev: Undo,  Up: Top
1163
1164 The Minibuffer
1165 **************
1166
1167    The "minibuffer" is the facility used by XEmacs commands to read
1168 arguments more complicated than a single number.  Minibuffer arguments
1169 can be file names, buffer names, Lisp function names, XEmacs command
1170 names, Lisp expressions, and many other things, depending on the command
1171 reading the argument.  You can use the usual XEmacs editing commands in
1172 the minibuffer to edit the argument text.
1173
1174    When the minibuffer is in use, it appears in the echo area, and the
1175 cursor moves there.  The beginning of the minibuffer line displays a
1176 "prompt" which says what kind of input you should supply and how it
1177 will be used.  Often this prompt is derived from the name of the command
1178 that the argument is for.  The prompt normally ends with a colon.
1179
1180    Sometimes a "default argument" appears in parentheses after the
1181 colon; it, too, is part of the prompt.  The default is used as the
1182 argument value if you enter an empty argument (e.g., by just typing
1183 <RET>).  For example, commands that read buffer names always show a
1184 default, which is the name of the buffer that will be used if you type
1185 just <RET>.
1186
1187    The simplest way to enter a minibuffer argument is to type the text
1188 you want, terminated by <RET> which exits the minibuffer.  You can
1189 cancel the command that wants the argument, and get out of the
1190 minibuffer, by typing `C-g'.
1191
1192    Since the minibuffer uses the screen space of the echo area, it can
1193 conflict with other ways XEmacs customarily uses the echo area.  Here is
1194 how XEmacs handles such conflicts:
1195
1196    * If a command gets an error while you are in the minibuffer, this
1197      does not cancel the minibuffer.  However, the echo area is needed
1198      for the error message and therefore the minibuffer itself is
1199      hidden for a while.  It comes back after a few seconds, or as soon
1200      as you type anything.
1201
1202    * If in the minibuffer you use a command whose purpose is to print a
1203      message in the echo area, such as `C-x =', the message is printed
1204      normally, and the minibuffer is hidden for a while.  It comes back
1205      after a few seconds, or as soon as you type anything.
1206
1207    * Echoing of keystrokes does not take place while the minibuffer is
1208      in use.
1209
1210 * Menu:
1211
1212 * File: Minibuffer File.  Entering file names with the minibuffer.
1213 * Edit: Minibuffer Edit.  How to edit in the minibuffer.
1214 * Completion::            An abbreviation facility for minibuffer input.
1215 * Minibuffer History::    Reusing recent minibuffer arguments.
1216 * Repetition::            Re-executing commands that used the minibuffer.
1217