Annotation of 43BSDReno/contrib/emacs-18.55/info/emacs-5, revision 1.1.1.1

1.1       root        1: Info file emacs, produced by texinfo-format-buffer   -*-Text-*-
                      2: from file emacs.tex
                      3: 
                      4: This file documents the GNU Emacs editor.
                      5: 
                      6: Copyright (C) 1985, 1986 Richard M. Stallman.
                      7: 
                      8: Permission is granted to make and distribute verbatim copies of
                      9: this manual provided the copyright notice and this permission notice
                     10: are preserved on all copies.
                     11: 
                     12: Permission is granted to copy and distribute modified versions of this
                     13: manual under the conditions for verbatim copying, provided also that the
                     14: sections entitled "The GNU Manifesto", "Distribution" and "GNU Emacs
                     15: General Public License" are included exactly as in the original, and
                     16: provided that the entire resulting derived work is distributed under the
                     17: terms of a permission notice identical to this one.
                     18: 
                     19: Permission is granted to copy and distribute translations of this manual
                     20: into another language, under the above conditions for modified versions,
                     21: except that the sections entitled "The GNU Manifesto", "Distribution"
                     22: and "GNU Emacs General Public License" may be included in a translation
                     23: approved by the author instead of in the original English.
                     24: 
                     25: 
                     26: File: emacs  Node: Reverting, Prev: Saving, Up: Files, Next: Auto Save
                     27: 
                     28: Reverting a Buffer
                     29: ==================
                     30: 
                     31:   If you have made extensive changes to a file and then change your mind
                     32: about them, you can get rid of them by reading in the previous version of
                     33: the file.  To do this, use `M-x revert-buffer', which operates on the
                     34: current buffer.  Since this is a very dangerous thing to do, you must
                     35: confirm it with `yes'.
                     36: 
                     37:   If the current buffer has been auto-saved more recently than it has been
                     38: saved for real, `revert-buffer' offers to read the auto save file
                     39: instead of the visited file (*Note Auto Save::).  This question comes
                     40: before the usual request for confirmation, and demands `y' or `n'
                     41: as an answer.  If you have started to type `yes' for confirmation
                     42: without realizing that the other question was going to be asked, the
                     43: `y' will answer that question, but the `es' will not be valid
                     44: confirmation.  So you will have a chance to cancel the operation with
                     45: `C-g' and try it again with the answers that you really intend.
                     46: 
                     47:   `revert-buffer' keeps point at the same distance (measured in
                     48: characters) from the beginning of the file.  If the file was edited only
                     49: slightly, you will be at approximately the same piece of text after
                     50: reverting as before.  If you have made drastic changes, the same value of
                     51: point in the old file may address a totally different piece of text.
                     52: 
                     53:   A buffer reverted from its visited file is marked "not modified" until
                     54: another change is made.
                     55: 
                     56:   Some kinds of buffers whose contents reflect data bases other than files,
                     57: such as Dired buffers, can also be reverted.  For them, reverting means
                     58: recalculating their contents from the appropriate data base.  Buffers
                     59: created randomly with `C-x b' cannot be reverted; `revert-buffer'
                     60: reports an error when asked to do so.
                     61: 
                     62: 
                     63: File: emacs  Node: Auto Save, Prev: Reverting, Up: Files, Next: ListDir
                     64: 
                     65: Auto-Saving: Protection Against Disasters
                     66: =========================================
                     67: 
                     68:   Emacs saves all the visited files from time to time (based on counting
                     69: your keystrokes) without being asked.  This is called "auto-saving".
                     70: It prevents you from losing more than a limited amount of work if the
                     71: system crashes.
                     72: 
                     73:   When Emacs determines that it is time for auto-saving, each buffer is
                     74: considered, and is auto-saved if auto-saving is turned on for it and it has
                     75: been changed since the last time it was auto-saved.  If any auto-saving is
                     76: done, the message `Auto-saving...' is displayed in the echo area until
                     77: auto-saving is finished.  Errors occurring during auto-saving are caught
                     78: so that they do not interfere with the execution of commands you have been
                     79: typing.
                     80: 
                     81: * Menu:
                     82: 
                     83: * Files: Auto Save Files.
                     84: * Control: Auto Save Control.
                     85: * Recover::            Recovering text from auto-save files.
                     86: 
                     87: 
                     88: File: emacs  Node: Auto Save Files, Prev: Auto Save, Up: Auto Save, Next: Auto Save Control
                     89: 
                     90: Auto-Save Files
                     91: ---------------
                     92: 
                     93:   Auto-saving does not normally save in the files that you visited, because
                     94: it can be very undesirable to save a program that is in an inconsistent
                     95: state when you have made half of a planned change.  Instead, auto-saving
                     96: is done in a different file called the "auto-save file", and the
                     97: visited file is changed only when you request saving explicitly (such as
                     98: with `C-x C-s').
                     99: 
                    100:   Normally, the auto-save file name is made by appending `#' to the
                    101: front and rear of the visited file name.  Thus, a buffer visiting file
                    102: `foo.c' would be auto-saved in a file `#foo.c#'.  Most buffers
                    103: that are not visiting files are auto-saved only if you request it
                    104: explicitly; when they are auto-saved, the auto-save file name is made by
                    105: appending `#%' to the front and `#' to the rear of buffer name.
                    106: For example, the `*mail*' buffer in which you compose messages to be
                    107: sent is auto-saved in a file named `#%*mail*#'.  Auto-save file names
                    108: are made this way unless you reprogram parts of Emacs to do something
                    109: different (the functions `make-auto-save-file-name' and
                    110: `auto-save-file-name-p').  The file name to be used for auto-saving
                    111: in a buffer is calculated when auto-saving is turned on in that buffer.
                    112: 
                    113:   If you want auto-saving to be done in the visited file, set the variable
                    114: `auto-save-visited-file-name' to be non-`nil'.  In this mode,
                    115: there is really no difference between auto-saving and explicit saving.
                    116: 
                    117:   A buffer's auto-save file is deleted when you save the buffer in its
                    118: visited file.  To inhibit this, set the variable `delete-auto-save-files'
                    119: to `nil'.  Changing the visited file name with `C-x C-w' or
                    120: `set-visited-file-name' renames any auto-save file to go with
                    121: the new visited name.
                    122: 
                    123: 
                    124: File: emacs  Node: Auto Save Control, Prev: Auto Save Files, Up: Auto Save, Next: Recover
                    125: 
                    126: Controlling Auto-Saving
                    127: -----------------------
                    128: 
                    129:   Each time you visit a file, auto-saving is turned on for that file's
                    130: buffer if the variable `auto-save-default' is non-`nil' (but not
                    131: in batch mode; *Note Entering Emacs::).  The default for this variable is
                    132: `t', so auto-saving is the usual practice for file-visiting buffers.
                    133: Auto-saving can be turned on or off for any existing buffer with the
                    134: command `M-x auto-save-mode'.  Like other minor mode commands, `M-x
                    135: auto-save-mode' turns auto-saving on with a positive argument, off with a
                    136: zero or negative argument; with no argument, it toggles.
                    137: 
                    138:   Emacs does auto-saving periodically based on counting how many characters
                    139: you have typed since the last time auto-saving was done.  The variable
                    140: `auto-save-interval' specifies how many characters there are between
                    141: auto-saves.  By default, it is 300.  Emacs also auto-saves whenever you
                    142: call the function `do-auto-save'.
                    143: 
                    144:   Emacs also does auto-saving whenever it gets a fatal error.  This
                    145: includes killing the Emacs job with a shell command such as `kill
                    146: %emacs', or disconnecting a phone line or network connection.
                    147: 
                    148: 
                    149: File: emacs  Node: Recover, Prev: Auto Save Control, Up: Auto Save
                    150: 
                    151: Recovering Data from Auto-Saves
                    152: -------------------------------
                    153: 
                    154:   The way to use the contents of an auto-save file to recover from a loss
                    155: of data is with the command `M-x recover-file RET FILE RET'.  This visits
                    156: FILE and then (after your confirmation) restores the contents from from its
                    157: auto-save file `#FILE#'.  You can then save with `C-x C-s' to put the
                    158: recovered text into FILE itself.  For example, to recover file `foo.c' from
                    159: its auto-save file `#foo.c#', do:
                    160: 
                    161:      M-x recover-file RET foo.c RET
                    162:      C-x C-s
                    163: 
                    164:   Before asking for confirmation, `M-x recover-file' displays a
                    165: directory listing describing the specified file and the auto-save file,
                    166: so you can compare their sizes and dates.  If the auto-save file
                    167: is older, `M-x recover-file' does not offer to read it.
                    168: 
                    169:   Auto-saving is disabled by `M-x recover-file' because using
                    170: this command implies that the auto-save file contains valuable data
                    171: from a past session.  If you save the data in the visited file and
                    172: then go on to make new changes, you should turn auto-saving back on
                    173: with `M-x auto-save-mode'.
                    174: 
                    175: 
                    176: File: emacs  Node: ListDir, Prev: Auto Save, Up: Files, Next: Dired
                    177: 
                    178: Listing a File Directory
                    179: ========================
                    180: 
                    181:   Files are classified by Unix into "directories".  A "directory
                    182: listing" is a list of all the files in a directory.  Emacs provides
                    183: directory listings in brief format (file names only) and verbose format
                    184: (sizes, dates, and authors included).
                    185: 
                    186: `C-x C-d DIR-OR-PATTERN'     
                    187:      Print a brief directory listing (`list-directory').
                    188: `C-u C-x C-d DIR-OR-PATTERN'     
                    189:      Print a verbose directory listing.
                    190: 
                    191:   The command to print a directory listing is `C-x C-d' (`list-directory').
                    192: It reads using the minibuffer a file name which is either a directory to be
                    193: listed or a wildcard-containing pattern for the files to be listed.  For
                    194: example,
                    195: 
                    196:      C-x C-d /u2/emacs/etc RET
                    197: 
                    198: lists all the files in directory `/u2/emacs/etc'.  An example of
                    199: specifying a file name pattern is
                    200: 
                    201:      C-x C-d /u2/emacs/src/*.c RET
                    202: 
                    203:   Normally, `C-x C-d' prints a brief directory listing containing just
                    204: file names.  A numeric argument (regardless of value) tells it to print a
                    205: verbose listing (like `ls -l').
                    206: 
                    207:   The text of a directory listing is obtained by running `ls' in an
                    208: inferior process.  Two Emacs variables control the switches passed to
                    209: `ls': `list-directory-brief-switches' is a string giving the
                    210: switches to use in brief listings (`"-CF"' by default), and
                    211: `list-directory-verbose-switches' is a string giving the switches to
                    212: use in a verbose listing (`"-l"' by default).
                    213: 
                    214: 
                    215: File: emacs  Node: Dired, Prev: ListDir, Up: Files, Next: Misc File Ops
                    216: 
                    217: Dired, the Directory Editor
                    218: ===========================
                    219: 
                    220:   Dired makes it easy to delete or visit many of the files in a single
                    221: directory at once.  It makes an Emacs buffer containing a listing of the
                    222: directory.  You can use the normal Emacs commands to move around in this
                    223: buffer, and special Dired commands to operate on the files.
                    224: 
                    225: * Menu:
                    226: 
                    227: * Enter: Dired Enter.         How to invoke Dired.
                    228: * Edit: Dired Edit.           Editing the Dired buffer.
                    229: * Deletion: Dired Deletion.   Deleting files with Dired.
                    230: * Immed: Dired Immed.         Other file operations through Dired.
                    231: 
                    232: 
                    233: File: emacs  Node: Dired Enter, Prev: Dired, Up: Dired, Next: Dired Edit
                    234: 
                    235: Entering Dired
                    236: --------------
                    237: 
                    238:   To invoke dired, do `C-x d' or `M-x dired'.  The command reads a
                    239: directory name or wildcard file name pattern as a minibuffer argument just
                    240: like the `list-directory' command, `C-x C-d'.  Where `dired'
                    241: differs from `list-directory' is in naming the buffer after the
                    242: directory name or the wildcard pattern used for the listing, and putting
                    243: the buffer into Dired mode so that the special commands of Dired are
                    244: available in it.  The variable `dired-listing-switches' is a string
                    245: used as an argument to `ls' in making the directory; this string
                    246: must contain `-l'.
                    247: 
                    248:   To display the Dired buffer in another window rather than in the selected
                    249: window, use `C-x 4 d' (`dired-other-window)' instead of `C-x d'.
                    250: 
                    251: 
                    252: File: emacs  Node: Dired Edit, Prev: Dired Enter, Up: Dired, Next: Dired Deletion
                    253: 
                    254: Editing in Dired
                    255: ----------------
                    256: 
                    257:   Once the Dired buffer exists, you can switch freely between it and other
                    258: Emacs buffers.  Whenever the Dired buffer is selected, certain special
                    259: commands are provided that operate on files that are listed.  The Dired
                    260: buffer is "read-only", and inserting text in it is not useful, so
                    261: ordinary printing characters such as `d' and `x' are used for Dired
                    262: commands.  Most Dired commands operate on the file described by the line
                    263: that point is on.  Some commands perform operations immediately; others
                    264: "flag" the file to be operated on later.
                    265: 
                    266:   Most Dired commands that operate on the current line's file also treat a
                    267: numeric argument as a repeat count, meaning to act on the files of the
                    268: next few lines.  A negative argument means to operate on the files of the
                    269: preceding lines, and leave point on the first of those lines.
                    270: 
                    271:   All the usual Emacs cursor motion commands are available in Dired
                    272: buffers.  Some special purpose commands are also provided.  The keys
                    273: `C-n' and `C-p' are redefined so that they try to position
                    274: the cursor at the beginning of the filename on the line, rather than
                    275: at the beginning of the line.
                    276: 
                    277:   For extra convenience, SPC and `n' in Dired are equivalent to `C-n'.  `p'
                    278: is equivalent to `C-p'.  Moving by lines is done so often in Dired that it
                    279: deserves to be easy to type.  DEL (move up and unflag) is often useful
                    280: simply for moving up.
                    281: 
                    282:   The `g' command in Dired runs `revert-buffer' to reinitialize
                    283: the buffer from the actual disk directory and show any changes made in the
                    284: directory by programs other than Dired.  All deletion flags in the Dired
                    285: buffer are lost when this is done.
                    286: 
                    287: 
                    288: File: emacs  Node: Dired Deletion, Prev: Dired Edit, Up: Dired, Next: Dired Immed
                    289: 
                    290: Deleting Files with Dired
                    291: -------------------------
                    292: 
                    293:   The primary use of Dired is to flag files for deletion and then delete
                    294: them.
                    295: 
                    296: `d'     
                    297:      Flag this file for deletion.
                    298: `u'     
                    299:      Remove deletion-flag on this line.
                    300: `DEL'     
                    301:      Remove deletion-flag on previous line, moving point to that line.
                    302: `x'     
                    303:      Delete the files that are flagged for deletion.
                    304: `#'     
                    305:      Flag all auto-save files (files whose names start and end with `#')
                    306:      for deletion (*Note Auto Save::).
                    307: `~'     
                    308:      Flag all backup files (files whose names end with `~') for deletion
                    309:      (*Note Backup::).
                    310: `. (Period)'     
                    311:      Flag excess numeric backup files for deletion.  The oldest and newest
                    312:      few backup files of any one file are exempt; the middle ones are flagged.
                    313: 
                    314:   You can flag a file for deletion by moving to the line describing the
                    315: file and typing `d' or `C-d'.  The deletion flag is visible as a
                    316: `D' at the beginning of the line.  Point is moved to the beginning of
                    317: the next line, so that repeated `d' commands flag successive files.
                    318: 
                    319:   The files are flagged for deletion rather than deleted immediately to
                    320: avoid the danger of deleting a file accidentally.  Until you direct Dired
                    321: to delete the flagged files, you can remove deletion flags using the
                    322: commands `u' and DEL.  `u' works just like `d', but
                    323: removes flags rather than making flags.  DEL moves upward, removing
                    324: flags; it is like `u' with numeric argument automatically negated.
                    325: 
                    326:   To delete the flagged files, type `x'.  This command first displays a
                    327: list of all the file names flagged for deletion, and requests confirmation
                    328: with `yes'.  Once you confirm, all the flagged files are deleted, and their
                    329: lines are deleted from the text of the Dired buffer.  The shortened Dired
                    330: buffer remains selected.  If you answer `no' or quit with `C-g', you
                    331: return immediately to Dired, with the deletion flags still present and no
                    332: files actually deleted.
                    333: 
                    334:   The `#', `~' and `.' commands flag many files for deletion, based on
                    335: their names.  These commands are useful precisely because they do not
                    336: actually delete any files; you can remove the deletion flags from any
                    337: flagged files that you really wish to keep.
                    338: 
                    339:   `#' flags for deletion all files that appear to have been made by
                    340: auto-saving (that is, files whose names begin and end with `#').
                    341: `~' flags for deletion all files that appear to have been made as
                    342: backups for files that were edited (that is, files whose names end with
                    343: `~').
                    344: 
                    345:   `.' (Period) flags just some of the backup files for deletion: only
                    346: numeric backups that are not among the oldest few nor the newest few
                    347: backups of any one file.  Normally `dired-kept-versions' (not
                    348: `kept-new-versions'; that applies only when saving) specifies the number of
                    349: newest versions of each file to keep, and `kept-old-versions' specifies the
                    350: number of oldest versions to keep.  Period with a positive numeric
                    351: argument, as in `C-u 3 .', specifies the number of newest versions to keep,
                    352: overriding `dired-kept-versions'.  A negative numeric argument overrides
                    353: `kept-old-versions', using minus the value of the argument to specify the
                    354: number of oldest versions of each file to keep.
                    355: 
                    356: 
                    357: File: emacs  Node: Dired Immed, Prev: Dired Deletion, Up: Dired
                    358: 
                    359: Immediate File Operations in Dired
                    360: ----------------------------------
                    361: 
                    362:   Some file operations in Dired take place immediately when they are
                    363: requested.
                    364: 
                    365: `c'     
                    366:      Copies the file described on the current line.  You must supply a file name
                    367:      to copy to, using the minibuffer.
                    368: `f'     
                    369:      Visits the file described on the current line.  It is just like typing
                    370:      `C-x C-f' and supplying that file name.  If the file on this line is a
                    371:      subdirectory, `f' actually causes Dired to be invoked on that
                    372:      subdirectory.  *Note Visiting::.
                    373: `o'     
                    374:      Like `f', but uses another window to display the file's buffer.  The
                    375:      Dired buffer remains visible in the first window.  This is like using
                    376:      `C-x 4 C-f' to visit the file.  *Note Windows::.
                    377: `r'     
                    378:      Renames the file described on the current line.  You must supply a file
                    379:      name to rename to, using the minibuffer.
                    380: `v'     
                    381:      Views the file described on this line using `M-x view-file'.  Viewing
                    382:      a file is like visiting it, but is slanted toward moving around in the
                    383:      file conveniently and does not allow changing the file.  *Note View
                    384:      File: Misc File Ops.  Viewing a file that is a directory runs Dired on
                    385:      that directory.
                    386: 
                    387: 
                    388: File: emacs  Node: Misc File Ops, Prev: Dired, Up: Files
                    389: 
                    390: Miscellaneous File Operations
                    391: =============================
                    392: 
                    393:   Emacs has commands for performing many other operations on files.
                    394: All operate on one file; they do not accept wild card file names.
                    395: 
                    396:   `M-x view-file' allows you to scan or read a file by sequential
                    397: screenfuls.  It reads a file name argument using the minibuffer.  After
                    398: reading the file into an Emacs buffer, `view-file' reads and displays
                    399: one windowful.  You can then type SPC to scroll forward one windowful,
                    400: or DEL to scroll backward.  Various other commands are provided for
                    401: moving around in the file, but none for changing it; type `C-h' while
                    402: viewing for a list of them.  They are mostly the same as normal Emacs
                    403: cursor motion commands.  To exit from viewing, type `C-c'.
                    404: 
                    405:   `M-x insert-file' inserts a copy of the contents of the specified
                    406: file into the current buffer at point, leaving point unchanged before the
                    407: contents and the mark after them.  *Note Mark::.
                    408: 
                    409:   `M-x write-region' is the inverse of `M-x insert-file'; it copies
                    410: the contents of the region into the specified file.  `M-x append-to-file'
                    411: adds the text of the region to the end of the specified file.
                    412: 
                    413:   `M-x delete-file' deletes the specified file, like the `rm'
                    414: command in the shell.  If you are deleting many files in one directory, it
                    415: may be more convenient to use Dired (*Note Dired::).
                    416: 
                    417:   `M-x rename-file' reads two file names OLD and NEW using
                    418: the minibuffer, then renames file OLD as NEW.  If a file named
                    419: NEW already exists, you must confirm with `yes' or renaming is not
                    420: done; this is because renaming causes the old meaning of the name NEW
                    421: to be lost.  If OLD and NEW are on different file systems, the
                    422: file OLD is copied and deleted.
                    423: 
                    424:   The similar command `M-x add-name-to-file' is used to add an
                    425: additional name to an existing file without removing its old name.
                    426: The new name must belong on the same file system that the file is on.
                    427: 
                    428:   `M-x copy-file' reads the file OLD and writes a new file named
                    429: NEW with the same contents.  Confirmation is required if a file named
                    430: NEW already exists, because copying has the consequence of overwriting
                    431: the old contents of the file NEW.
                    432: 
                    433:   `M-x make-symbolic-link' reads two file names OLD and LINKNAME,
                    434: and then creates a symbolic link named LINKNAME and pointing at OLD.
                    435: The effect is that future attempts to open file LINKNAME will refer
                    436: to whatever file is named OLD at the time the opening is done, or
                    437: will get an error if the name OLD is not in use at that time.
                    438: Confirmation is required when creating the link if LINKNAME is in
                    439: use.  Note that not all systems support symbolic links.
                    440: 
                    441: 
                    442: File: emacs  Node: Buffers, Prev: Files, Up: Top, Next: Windows
                    443: 
                    444: Using Multiple Buffers
                    445: **********************
                    446: 
                    447:   The text you are editing in Emacs resides in an object called a
                    448: "buffer".  Each time you visit a file, a buffer is created to hold the
                    449: file's text.  Each time you invoke Dired, a buffer is created to hold the
                    450: directory listing.  If you send a message with `C-x m', a buffer named
                    451: `*mail*' is used to hold the text of the message.  When you ask for a
                    452: command's documentation, that appears in a buffer called `*Help*'.
                    453: 
                    454:   At any time, one and only one buffer is "selected".  It is also
                    455: called the "current buffer".  Often we say that a command operates on
                    456: "the buffer" as if there were only one; but really this means that the
                    457: command operates on the selected buffer (most commands do).
                    458: 
                    459:   When Emacs makes multiple windows, each window has a chosen buffer which
                    460: is displayed there, but at any time only one of the windows is selected and
                    461: its chosen buffer is the selected buffer.  Each window's mode line displays
                    462: the name of the buffer that the window is displaying (*Note Windows::).
                    463: 
                    464:   Each buffer has a name, which can be of any length, and you can select
                    465: any buffer by giving its name.  Most buffers are made by visiting files,
                    466: and their names are derived from the files' names.  But you can also create
                    467: an empty buffer with any name you want.  A newly started Emacs has a buffer
                    468: named `*scratch*' which can be used for evaluating Lisp expressions in
                    469: Emacs.  The distinction between upper and lower case matters in buffer
                    470: names.
                    471: 
                    472:   Each buffer records individually what file it is visiting, whether it is
                    473: modified, and what major mode and minor modes are in effect in it
                    474: (*Note Major Modes::).  Any Emacs variable can be made "local to" a
                    475: particular buffer, meaning its value in that buffer can be different from
                    476: the value in other buffers.  *Note Locals::.
                    477: 
                    478: * Menu:
                    479: 
                    480: * Select Buffer::   Creating a new buffer or reselecting an old one.
                    481: * List Buffers::    Getting a list of buffers that exist.
                    482: * Misc Buffer::     Renaming; changing read-onliness; copying text.
                    483: * Kill Buffer::     Killing buffers you no longer need.
                    484: * Several Buffers:: How to go through the list of all buffers
                    485:                      and operate variously on several of them.
                    486: 
                    487: 
                    488: File: emacs  Node: Select Buffer, Prev: Buffers, Up: Buffers, Next: List Buffers
                    489: 
                    490: Creating and Selecting Buffers
                    491: ==============================
                    492: 
                    493: `C-x b BUFFER RET'     
                    494:      Select or create a buffer named BUFFER (`switch-to-buffer').
                    495: `C-x 4 b BUFFER RET'     
                    496:      Similar but select a buffer named BUFFER in another window
                    497:      (`switch-to-buffer-other-window').
                    498: 
                    499:   To select the buffer named BUFNAME, type `C-x b BUFNAME RET'.  This is
                    500: the command `switch-to-buffer' with argument BUFNAME.  You can use
                    501: completion on an abbreviation for the buffer name you want (*Note
                    502: Completion::).  An empty argument to `C-x b' specifies the most recently
                    503: selected buffer that is not displayed in any window.
                    504: 
                    505:   Most buffers are created by visiting files, or by Emacs commands that
                    506: want to display some text, but you can also create a buffer explicitly by
                    507: typing `C-x b BUFNAME RET'.  This makes a new, empty buffer which
                    508: is not visiting any file, and selects it for editing.  Such buffers are
                    509: used for making notes to yourself.  If you try to save one, you are asked
                    510: for the file name to use.  The new buffer's major mode is determined by the
                    511: value of `default-major-mode' (*Note Major Modes::).
                    512: 
                    513:   Note that `C-x C-f', and any other command for visiting a file, can
                    514: also be used to switch buffers.  *Note Visiting::.
                    515: 
                    516: 
                    517: File: emacs  Node: List Buffers, Prev: Select Buffer, Up: Buffers, Next: Misc Buffer
                    518: 
                    519: Listing Existing Buffers
                    520: ========================
                    521: 
                    522: `C-x C-b'     
                    523:      List the existing buffers (`list-buffers').
                    524: 
                    525:   To print a list of all the buffers that exist, type `C-x C-b'.  Each line
                    526: in the list shows one buffer's name, major mode and visited file.  `*' at
                    527: the beginning of a line indicates the buffer is "modified".  If several
                    528: buffers are modified, it may be time to save some with `C-x s' (*Note
                    529: Saving::).  `%' indicates a read-only buffer.  `.'  marks the selected
                    530: buffer.  Here is an example of a buffer list:
                    531: 
                    532:       MR Buffer         Size  Mode           File
                    533:       -- ------         ----  ----           ----
                    534:      .*  emacs.tex      383402 Texinfo       /u2/emacs/man/emacs.tex
                    535:          *Help*         1287  Fundamental      
                    536:          files.el       23076 Emacs-Lisp     /u2/emacs/lisp/files.el
                    537:        % RMAIL          64042 RMAIL          /u/rms/RMAIL
                    538:       *% man            747   Dired            
                    539:          net.emacs      343885 Fundamental   /u/rms/net.emacs
                    540:          fileio.c       27691 C              /u2/emacs/src/fileio.c
                    541:          NEWS           67340 Text           /u2/emacs/etc/NEWS
                    542:          *scratch*        0     Lisp Interaction 
                    543: 
                    544: Note that the buffer `*Help*' was made by a help request; it is not
                    545: visiting any file.  The buffer `man' was made by Dired on the
                    546: directory `/u2/emacs/man/'.
                    547: 
                    548: 
                    549: File: emacs  Node: Misc Buffer, Prev: List Buffers, Up: Buffers, Next: Kill Buffer
                    550: 
                    551: Miscellaneous Buffer Operations
                    552: ===============================
                    553: 
                    554: `C-x C-q'     
                    555:      Toggle read-only status of buffer (`toggle-read-only').
                    556: `M-x rename-buffer'     
                    557:      Change the name of the current buffer.
                    558: `M-x view-buffer'     
                    559:      Scroll through a buffer.
                    560: 
                    561:   A buffer can be "read-only", which means that commands to change its
                    562: text are not allowed.  Normally, read-only buffers are made by subsystems
                    563: such as Dired and Rmail that have special commands to operate on the text;
                    564: a read-only buffer is also made if you visit a file that is protected so
                    565: you cannot write it.  If you wish to make changes in a read-only buffer,
                    566: use the command `C-x C-q' (`toggle-read-only').  It makes a
                    567: read-only buffer writable, and makes a writable buffer read-only.  This
                    568: works by setting the variable `buffer-read-only', which has a local
                    569: value in each buffer and makes the buffer read-only if its value is
                    570: non-`nil'.
                    571: 
                    572:   `M-x rename-buffer' changes the name of the current buffer.  Specify
                    573: the new name as a minibuffer argument.  There is no default.  If you
                    574: specify a name that is in use for some other buffer, an error happens and
                    575: no renaming is done.
                    576: 
                    577:   `M-x view-buffer' is much like `M-x view-file' (*Note Misc File Ops::)
                    578: except that it examines an already existing Emacs buffer.  View mode
                    579: provides commands for scrolling through the buffer conveniently but not
                    580: for changing it. When you exit View mode, the value of point that resulted
                    581: from your perusal remains in effect.
                    582: 
                    583:   The commands `C-x a' (`append-to-buffer') and `M-x insert-buffer' can be
                    584: used to copy text from one buffer to another.  *Note Accumulating Text::.
                    585: 
                    586: 
                    587: File: emacs  Node: Kill Buffer, Prev: Misc Buffer, Up: Buffers, Next: Several Buffers
                    588: 
                    589: Killing Buffers
                    590: ===============
                    591: 
                    592:   After you use Emacs for a while, you may accumulate a large number of
                    593: buffers.  You may then find it convenient to eliminate the ones you no
                    594: longer need.  There are several commands provided for doing this.
                    595: 
                    596: `C-x k'     
                    597:      Kill a buffer, specified by name (`kill-buffer').
                    598: `M-x kill-some-buffers'     
                    599:      Offer to kill each buffer, one by one.
                    600: 
                    601: 
                    602:   `C-x k' (`kill-buffer') kills one buffer, whose name you specify
                    603: in the minibuffer.  The default, used if you type just RET in the
                    604: minibuffer, is to kill the current buffer.  If the current buffer is
                    605: killed, another buffer is selected; a buffer that has been selected
                    606: recently but does not appear in any window now is chosen to be selected.
                    607: If the buffer being killed is modified (has unsaved editing) then you are
                    608: asked to confirm with `yes' before the buffer is killed.
                    609: 
                    610:   The command `M-x kill-some-buffers' asks about each buffer, one by
                    611: one.  An answer of `y' means to kill the buffer.  Killing the current
                    612: buffer or a buffer containing unsaved changes selects a new buffer or asks
                    613: for confirmation just like `kill-buffer'.
                    614: 
                    615: 
                    616: File: emacs  Node: Several Buffers, Prev: Kill Buffer, Up: Buffers
                    617: 
                    618: Operating on Several Buffers
                    619: ============================
                    620: 
                    621:   The "buffer-menu" facility is like a "Dired for buffers"; it allows
                    622: you to request operations on various Emacs buffers by editing an Emacs
                    623: buffer containing a list of them.  You can save buffers, kill them
                    624: (here called "deleting" them, for consistency with Dired), or display
                    625: them.
                    626: 
                    627: `M-x buffer-menu'     
                    628:      Begin editing a buffer listing all Emacs buffers.
                    629: 
                    630:   The command `buffer-menu' writes a list of all Emacs buffers into
                    631: the buffer `*Buffer List*', and selects that buffer in Buffer Menu
                    632: mode.  The buffer is read-only, and can only be changed through the special
                    633: commands described in this section.  Most of these commands are graphic
                    634: characters.  The usual Emacs cursor motion commands can be used in the
                    635: `*Buffer List*' buffer.  The following special commands apply to the
                    636: buffer described on the current line.
                    637: 
                    638: `d'     
                    639:      Request to delete (kill) the buffer, then move down.  The request
                    640:      shows as a `D' on the line, before the buffer name.  Requested
                    641:      deletions take place when the `x' command is used.
                    642: `k'     
                    643:      Synonym for `d'.
                    644: `C-d'     
                    645:      Like `d' but move up afterwards instead of down.
                    646: `s'     
                    647:      Request to save the buffer.  The request shows as an `S' on the
                    648:      line.  Requested saves take place when the `x' command is used.
                    649:      You may request both saving and deletion for the same buffer.
                    650: `~'     
                    651:      Mark buffer "unmodified".  The command `~' does this
                    652:      immediately when typed.
                    653: `x'     
                    654:      Perform previously requested deletions and saves.
                    655: `u'     
                    656:      Remove any request made for the current line, and move down.
                    657: `DEL'     
                    658:      Move to previous line and remove any request made for that line.
                    659: 
                    660:   All the commands that put in or remove flags to request later operations
                    661: also move down a line, and accept a numeric argument as a repeat count,
                    662: unless otherwise specified.
                    663: 
                    664:   There are also special commands to use the buffer list to select another
                    665: buffer, and to specify one or more other buffers for display in additional
                    666: windows.
                    667: 
                    668: `1'     
                    669:      Select the buffer in a full-screen window.  This command takes effect
                    670:      immediately.
                    671: `2'     
                    672:      Immediately set up two windows, with this buffer in one, and the
                    673:      previously selected buffer (aside from the buffer `*Buffer List*')
                    674:      in the other.
                    675: `f'     
                    676:      Immediately select the buffer in place of the `*Buffer List*' buffer.
                    677: `o'     
                    678:      Immediately select the buffer in another window as if by `C-x 4 b',
                    679:      leaving `*Buffer List*' visible.
                    680: `q'     
                    681:      Immediately select this buffer, and also display in other windows any
                    682:      buffers previously flagged with the `m' command.  If there are no
                    683:      such buffers, this command is equivalent to `1'.
                    684: `m'     
                    685:      Flag this buffer to be displayed in another window if the `q'
                    686:      command is used.  The request shows as a `>' at the beginning of
                    687:      the line.  The same buffer may not have both a delete request and a
                    688:      display request.
                    689: 
                    690:   All that `buffer-menu' does directly is create and select a suitable
                    691: buffer, and turn on Buffer Menu mode.  Everything else described above is
                    692: implemented by the special commands provided in Buffer Menu mode.  One
                    693: consequence of this is that you can switch from the `*Buffer List*'
                    694: buffer to another Emacs buffer, and edit there.  You can reselect the
                    695: `buffer-menu' buffer later, to perform the operations already
                    696: requested, or you can kill it, or pay no further attention to it.
                    697: 
                    698:   The only difference between `buffer-menu' and `list-buffers' is
                    699: that `buffer-menu' selects the `*Buffer List*' buffer and
                    700: `list-buffers' does not.  If you run `list-buffers' (that is,
                    701: type `C-x C-b') and select the buffer list manually, you can use all of
                    702: the commands described here.
                    703: 
                    704: 
                    705: File: emacs  Node: Windows, Prev: Buffers, Up: Top, Next: Major Modes
                    706: 
                    707: Multiple Windows
                    708: ****************
                    709: 
                    710:   Emacs can split the screen into two or many windows, which can display
                    711: parts of different buffers, or different parts of one buffer.
                    712: 
                    713: * Menu:
                    714: 
                    715: * Basic Window::     Introduction to Emacs windows.
                    716: * Split Window::     New windows are made by splitting existing windows.
                    717: * Other Window::     Moving to another window or doing something to it.
                    718: * Pop Up Window::    Finding a file or buffer in another window.
                    719: * Change Window::    Deleting windows and changing their sizes.
                    720: 
                    721: 
                    722: File: emacs  Node: Basic Window, Prev: Windows, Up: Windows, Next: Split Window
                    723: 
                    724: Concepts of Emacs Windows
                    725: =========================
                    726: 
                    727:   When multiple windows are being displayed, each window has an Emacs
                    728: buffer designated for display in it.  The same buffer may appear in more
                    729: than one window; if it does, any changes in its text are displayed in all
                    730: the windows where it appears.  But the windows showing the same buffer can
                    731: show different parts of it, because each window has its own value of point.
                    732: 
                    733:   At any time, one of the windows is the "selected window"; the buffer
                    734: this window is displaying is the current buffer.  The terminal's cursor
                    735: shows the location of point in this window.  Each other window has a
                    736: location of point as well, but since the terminal has only one cursor there
                    737: is no way to show where those locations are.
                    738: 
                    739:   Commands to move point affect the value of point for the selected Emacs
                    740: window only.  They do not change the value of point in any other Emacs
                    741: window, even one showing the same buffer.  The same is true for commands
                    742: such as `C-x b' to change the selected buffer in the selected window;
                    743: they do not affect other windows at all.  However, there are other commands
                    744: such as `C-x 4 b' that select a different window and switch buffers in
                    745: it.  Also, all commands that display information in a window, including
                    746: (for example) `C-h f' (`describe-function') and `C-x C-b'
                    747: (`list-buffers'), work by switching buffers in a nonselected window
                    748: without affecting the selected window.
                    749: 
                    750:   Each window has its own mode line, which displays the buffer name,
                    751: modification status and major and minor modes of the buffer that is
                    752: displayed in the window.  *Note Mode Line::, for full details on the mode
                    753: line.
                    754: 
                    755: 
                    756: File: emacs  Node: Split Window, Prev: Basic Window, Up: Windows, Next: Other Window
                    757: 
                    758: Splitting Windows
                    759: =================
                    760: 
                    761: `C-x 2'     
                    762:      Split the selected window into two windows, one above the other
                    763:      (`split-window-vertically').
                    764: `C-x 5'     
                    765:      Split the selected window into two windows positioned side by side
                    766:      (`split-window-horizontally').
                    767: 
                    768:   The command `C-x 2' (`split-window-vertically') breaks the
                    769: selected window into two windows, one above the other.  Both windows start
                    770: out displaying the same buffer, with the same value of point.  By default
                    771: the two windows each get half the height of the window that was split; a
                    772: numeric argument specifies how many lines to give to the top window.
                    773: 
                    774:   `C-x 5' (`split-window-horizontally') breaks the selected
                    775: window into two side-by-side windows.  A numeric argument specifies
                    776: how many columns to give the one on the left.  A line of vertical bars
                    777: separates the two windows.  Windows that are not the full width of the
                    778: screen have mode lines, but they are truncated; also, they do not
                    779: always appear in inverse video, because, the Emacs display routines
                    780: have not been taught how to display a region of inverse video that is
                    781: only part of a line on the screen.
                    782: 
                    783:   When a window is less than the full width, text lines too long to fit are
                    784: frequent.  Continuing all those lines might be confusing.  The variable
                    785: `truncate-partial-width-windows' can be set non-`nil' to force truncation
                    786: in all windows less than the full width of the screen, independent of the
                    787: buffer being displayed and its value for `truncate-lines'.  *Note
                    788: Continuation Lines::.
                    789: 
                    790:   Horizontal scrolling is often used in side-by-side windows.
                    791: *Note Display::.
                    792: 
                    793: 
                    794: File: emacs  Node: Other Window, Prev: Split Window, Up: Windows, Next: Pop Up Window
                    795: 
                    796: Using Other Windows
                    797: ===================
                    798: 
                    799: `C-x o'     
                    800:      Select another window (`other-window').  That is `o', not zero.
                    801: `C-M-v'     
                    802:      Scroll the next window (`scroll-other-window').
                    803: `M-x compare-windows'     
                    804:      Find next place where the text in the selected window does not match
                    805:      the text in the next window.
                    806: 
                    807:   To select a different window, use `C-x o' (`other-window').
                    808: That is an `o', for `other', not a zero.  When there are more than two
                    809: windows, this command moves through all the windows in a cyclic order,
                    810: generally top to bottom and left to right.  From the rightmost and
                    811: bottommost window, it goes back to the one at the upper left corner.  A
                    812: numeric argument means to move several steps in the cyclic order of
                    813: windows.  A negative argument moves around the cycle in the opposite order.
                    814: When the minibuffer is active, the minibuffer is the last window in the
                    815: cycle; you can switch from the minibuffer window to one of the other
                    816: windows, and later switch back and finish supplying the minibuffer argument
                    817: that is requested.  *Note Minibuffer Edit::.
                    818: 
                    819:   The usual scrolling commands (*Note Display::) apply to the selected
                    820: window only, but there is one command to scroll the next window.
                    821: `C-M-v' (`scroll-other-window') scrolls the window that `C-x o'
                    822: would select.  It takes arguments, positive and negative, like `C-v'.
                    823: 
                    824:   The command `M-x compare-windows' compares the text in the current
                    825: window with that in the next window.  Comparison starts at point in each
                    826: window.  Point moves forward in each window, a character at a time in each
                    827: window, until the next characters in the two windows are different.  Then
                    828: the command is finished.
                    829: 
                    830: 
                    831: File: emacs  Node: Pop Up Window, Prev: Other Window, Up: Windows, Next: Change Window
                    832: 
                    833: Displaying in Another Window
                    834: ============================
                    835: 
                    836:   `C-x 4' is a prefix key for commands that select another window
                    837: (splitting the window if there is only one) and select a buffer in that
                    838: window.  Different `C-x 4' commands have different ways of finding the
                    839: buffer to select.
                    840: 
                    841: `C-x 4 b BUFNAME RET'     
                    842:      Select buffer BUFNAME in another window.  This runs 
                    843:      `switch-to-buffer-other-window'.
                    844: `C-x 4 f FILENAME RET'     
                    845:      Visit file FILENAME and select its buffer in another window.  This
                    846:      runs `find-file-other-window'.  *Note Visiting::.
                    847: `C-x 4 d DIRECTORY RET'     
                    848:      Select a Dired buffer for directory DIRECTORY in another window.
                    849:      This runs `dired-other-window'.  *Note Dired::.
                    850: `C-x 4 m'     
                    851:      Start composing a mail message in another window.  This runs
                    852:      `mail-other-window', and its same-window version is `C-x m'
                    853:      (*Note Sending Mail::).
                    854: `C-x 4 .'     
                    855:      Find a tag in the current tag table in another window.  This runs
                    856:      `find-tag-other-window', the multiple-window variant of `M-.'
                    857:      (*Note Tags::).
                    858: 
                    859: 
                    860: File: emacs  Node: Change Window, Prev: Pop Up Window, Up: Windows
                    861: 
                    862: Deleting and Rearranging Windows
                    863: ================================
                    864: 
                    865: `C-x 0'     
                    866:      Get rid of the selected window (`kill-window').  That is a zero.
                    867: `C-x 1'     
                    868:      Get rid of all windows except the selected one (`delete-other-windows').
                    869: `C-x ^'     
                    870:      Make the selected window taller, at the expense of the other(s)
                    871:      (`enlarge-window').
                    872: `C-x }'     
                    873:      Make the selected window wider (`enlarge-window-horizontally').
                    874: 
                    875:   To delete a window, type `C-x 0' (`delete-window').  (That is a
                    876: zero.)  The space occupied by the deleted window is distributed among the
                    877: other active windows (but not the minibuffer window, even if that is active
                    878: at the time).  Once a window is deleted, its attributes are forgotten;
                    879: there is no automatic way to make another window of the same shape or
                    880: showing the same buffer.  But the buffer continues to exist, and you can
                    881: select it in any window with `C-x b'.
                    882: 
                    883:   `C-x 1' (`delete-other-windows') is more powerful than `C-x 0';
                    884: it deletes all the windows except the selected one (and the minibuffer);
                    885: the selected window expands to use the whole screen except for the echo
                    886: area.
                    887: 
                    888:   To readjust the division of space among existing windows, use `C-x ^'
                    889: (`enlarge-window').  It makes the currently selected window get one
                    890: line bigger, or as many lines as is specified with a numeric argument.
                    891: With a negative argument, it makes the selected window smaller.  `C-x
                    892: }' (`enlarge-window-horizontally') makes the selected window wider
                    893: by the specified number of columns.  The extra screen space given to a
                    894: window comes from one of its neighbors, if that is possible; otherwise, all
                    895: the competing windows are shrunk in the same proportion.  If this makes any
                    896: windows too small, those windows are deleted and their space is divided up.
                    897: The minimum size is specified by the variables `window-min-height' and
                    898: `window-min-width'.
                    899: 
                    900: 
                    901: File: emacs  Node: Major Modes, Prev: Windows, Up: Top, Next: Indentation
                    902: 
                    903: Major Modes
                    904: ***********
                    905: 
                    906:   Emacs has many different "major modes", each of which customizes
                    907: Emacs for editing text of a particular sort.  The major modes are mutually
                    908: exclusive, and each buffer has one major mode at any time.  The mode line
                    909: normally contains the name of the current major mode, in parentheses.
                    910: *Note Mode Line::.
                    911: 
                    912:   The least specialized major mode is called "Fundamental mode".  This
                    913: mode has no mode-specific redefinitions or variable settings, so that each
                    914: Emacs command behaves in its most general manner, and each option is in its
                    915: default state.  For editing any specific type of text, such as Lisp code or
                    916: English text, you should switch to the appropriate major mode, such as Lisp
                    917: mode or Text mode.
                    918: 
                    919:   Selecting a major mode changes the meanings of a few keys to become more
                    920: specifically adapted to the language being edited.  The ones which are
                    921: changed frequently are TAB, DEL, and LFD.  In addition,
                    922: the commands which handle comments use the mode to determine how comments
                    923: are to be delimited.  Many major modes redefine the syntactical properties
                    924: of characters appearing in the buffer.  *Note Syntax::.
                    925: 
                    926:   The major modes fall into three major groups.  Lisp mode (which has
                    927: several variants), C mode and Muddle mode are for specific programming
                    928: languages.  Text mode, Nroff mode, TeX mode and Outline mode are for
                    929: editing English text.  The remaining major modes are not intended for use
                    930: on users' files; they are used in buffers created for specific purposes by
                    931: Emacs, such as Dired mode for buffers made by Dired (*Note Dired::), and
                    932: Mail mode for buffers made by `C-x m' (*Note Sending Mail::), and Shell
                    933: mode for buffers used for communicating with an inferior shell process
                    934: (*Note Interactive Shell::).
                    935: 
                    936:   Most programming language major modes specify that only blank lines
                    937: separate paragraphs.  This is so that the paragraph commands remain useful.
                    938: *Note Paragraphs::.  They also cause Auto Fill mode to use the definition of
                    939: TAB to indent the new lines it creates.  This is because most lines
                    940: in a program are usually indented.  *Note Indentation::.
                    941: 
                    942: * Menu:
                    943: 
                    944: * Choosing Modes::     How major modes are specified or chosen.
                    945: 
                    946: 
                    947: File: emacs  Node: Choosing Modes, Prev: Major Modes, Up: Major Modes
                    948: 
                    949: How Major Modes are Chosen
                    950: ==========================
                    951: 
                    952:   You can select a major mode explicitly for the current buffer, but
                    953: most of the time Emacs determines which mode to use based on the file
                    954: name or some text in the file.
                    955: 
                    956:   Explicit selection of a new major mode is done with a `M-x' command.
                    957: From the name of a major mode, add `-mode' to get the name of a
                    958: command to select that mode.  Thus, you can enter Lisp mode by executing
                    959: `M-x lisp-mode'.
                    960: 
                    961:   When you visit a file, Emacs usually chooses the right major mode based
                    962: on the file's name.  For example, files whose names end in `.c' are
                    963: edited in C mode.  The correspondence between file names and major mode is
                    964: controlled by the variable `auto-mode-alist'.  Its value is a list in
                    965: which each element has the form
                    966: 
                    967:      (REGEXP . MODE-FUNCTION)
                    968: 
                    969: For example, one element normally found in the list has the form
                    970: `("\\.c$" . c-mode)', and it is responsible for selecting C mode
                    971: for files whose names end in `.c'.  (Note that `\\' is needed in
                    972: Lisp syntax to include a `\' in the string, which is needed to
                    973: suppress the special meaning of `.' in regexps.)  The only practical
                    974: way to change this variable is with Lisp code.
                    975: 
                    976:   You can specify which major mode should be used for editing a certain
                    977: file by a special sort of text in the first nonblank line of the file.  The
                    978: mode name should appear in this line both preceded and followed by
                    979: `-*-'.  Other text may appear on the line as well.  For example,
                    980: 
                    981:      ;-*-Lisp-*-
                    982: 
                    983: tells Emacs to use Lisp mode.  Note how the semicolon is used to make Lisp
                    984: treat this line as a comment.  Such an explicit specification overrides any
                    985: defaulting based on the file name.
                    986: 
                    987:   Another format of mode specification is
                    988: 
                    989:      -*-Mode: MODENAME;-*-
                    990: 
                    991: which allows other things besides the major mode name to be specified.
                    992: However, Emacs does not look for anything except the mode name.
                    993: 
                    994: The major mode can also be specified in a local variables list.
                    995: *Note File Variables::.
                    996: 
                    997:   When a file is visited that does not specify a major mode to use, or when
                    998: a new buffer is created with `C-x b', the major mode used is that
                    999: specified by the variable `default-major-mode'.  Normally this value
                   1000: is the symbol `fundamental-mode', which specifies Fundamental mode.
                   1001: If `default-major-mode' is `nil', the major mode is taken from
                   1002: the previously selected buffer.
                   1003: 
                   1004: 
                   1005: File: emacs  Node: Indentation, Prev: Major Modes, Up: Top, Next: Text
                   1006: 
                   1007: Indentation
                   1008: ***********
                   1009: 
                   1010: `TAB'     
                   1011:      Indent current line "appropriately" in a mode-dependent fashion.
                   1012: `LFD'     
                   1013:      Perform RET followed by TAB (`newline-and-indent').
                   1014: `M-^'     
                   1015:      Merge two lines (`delete-indentation').  This would cancel out
                   1016:      the effect of LFD.
                   1017: `C-M-o'     
                   1018:      Split line at point; text on the line after point becomes a new line
                   1019:      indented to the same column that it now starts in (`split-line').
                   1020: `M-m'     
                   1021:      Move (forward or back) to the first nonblank character on the current
                   1022:      line (`back-to-indentation').
                   1023: `C-M-\'     
                   1024:      Indent several lines to same column (`indent-region').
                   1025: `C-x TAB'     
                   1026:      Shift block of lines rigidly right or left (`indent-rigidly').
                   1027: `M-i'     
                   1028:      Indent from point to the next prespecified tab stop column
                   1029:      (`tab-to-tab-stop').
                   1030: `M-x indent-relative'     
                   1031:      Indent from point to under an indentation point in the previous line.
                   1032: 
                   1033:   Most programming languages have some indentation convention.  For Lisp
                   1034: code, lines are indented according to their nesting in parentheses.  The
                   1035: same general idea is used for C code, though many details are different.
                   1036: 
                   1037:   Whatever the language, to indent a line, use the TAB command.  Each
                   1038: major mode defines this command to perform the sort of indentation
                   1039: appropriate for the particular language.  In Lisp mode, TAB aligns
                   1040: the line according to its depth in parentheses.  No matter where in the
                   1041: line you are when you type TAB, it aligns the line as a whole.  In C
                   1042: mode, TAB implements a subtle and sophisticated indentation style that
                   1043: knows about many aspects of C syntax.
                   1044: 
                   1045:   In Text mode, TAB runs the command `tab-to-tab-stop', which
                   1046: indents to the next tab stop column.  You can set the tab stops with
                   1047: `M-x edit-tab-stops'.
                   1048: 
                   1049: * Menu:
                   1050: 
                   1051: * Indentation Commands:: Various commands and techniques for indentation.
                   1052: * Tab Stops::            You can set arbitrary "tab stops" and then
                   1053:                          indent to the next tab stop when you want to.
                   1054: * Just Spaces::          You can request indentation using just spaces.
                   1055: 
                   1056: 
                   1057: File: emacs  Node: Indentation Commands, Prev: Indentation, Up: Indentation, Next: Tab Stops
                   1058: 
                   1059: Indentation Commands and Techniques
                   1060: ===================================
                   1061: 
                   1062:   If you just want to insert a tab character in the buffer, you can type
                   1063: `C-q TAB'.
                   1064: 
                   1065:   To move over the indentation on a line, do `Meta-m'
                   1066: (`back-to-indentation').  This command, given anywhere on a line,
                   1067: positions point at the first nonblank character on the line.
                   1068: 
                   1069:   To insert an indented line before the current line, do `C-a C-o
                   1070: TAB'.  To make an indented line after the current line, use `C-e
                   1071: LFD'.
                   1072: 
                   1073:   `C-M-o' (`split-line') moves the text from point to the end of
                   1074: the line vertically down, so that the current line becomes two lines.
                   1075: `C-M-o' first moves point forward over any spaces and tabs.  Then it
                   1076: inserts after point a newline and enough indentation to reach the same
                   1077: column point is on.  Point remains before the inserted newline; in this
                   1078: regard, `C-M-o' resembles `C-o'.
                   1079: 
                   1080:   To join two lines cleanly, use the `Meta-^' (`delete-indentation')
                   1081: command to delete the indentation at the front of the current line, and the
                   1082: line boundary as well.  They are replaced by a single space, or by no space
                   1083: if at the beginning of a line or before a `)' or after a `('.  To
                   1084: delete just the indentation of a line, go to the beginning of the line and
                   1085: use `Meta-\' (`delete-horizontal-space'), which deletes all spaces
                   1086: and tabs around the cursor.
                   1087: 
                   1088:   There are also commands for changing the indentation of several lines at
                   1089: once.  `Control-Meta-\' (`indent-region') gives each line which begins in
                   1090: the region the "usual" indentation by invoking TAB at the beginning of the
                   1091: line.  A numeric argument specifies the column to indent to, and each line
                   1092: is shifted left or right so that its first nonblank character appears in
                   1093: that column.  `C-x TAB' (`indent-rigidly') moves all of the lines in the
                   1094: region right by its argument (left, for negative arguments).  The whole
                   1095: group of lines moves rigidly sideways, which is how the command gets its
                   1096: name.
                   1097: 
                   1098:   `M-x indent-relative' indents at point based on the previous line
                   1099: (actually, the last nonempty line.)  It inserts whitespace at point, moving
                   1100: point, until it is underneath an indentation point in the previous line.
                   1101: An indentation point is the end of a sequence of whitespace or the end of
                   1102: the line.  If point is farther right than any indentation point in the
                   1103: previous line, the whitespace before point is deleted and the first
                   1104: indentation point then applicable is used.  If no indentation point is
                   1105: applicable even then, `tab-to-tab-stop' is run (see next section).
                   1106: 
                   1107:   `indent-relative' is the definition of TAB in Indented Text
                   1108: mode.  *Note Text::.
                   1109: 
                   1110: 
                   1111: File: emacs  Node: Tab Stops, Prev: Indentation Commands, Up: Indentation, Next: Just Spaces
                   1112: 
                   1113: Tab Stops
                   1114: =========
                   1115: 
                   1116:   For typing in tables, you can use Text mode's definition of TAB,
                   1117: `tab-to-tab-stop'.  This command inserts indentation before point,
                   1118: enough to reach the next tab stop column.  If you are not in Text mode,
                   1119: this function can be found on `M-i' anyway.
                   1120: 
                   1121:   The tab stops used by `M-i' can be set arbitrarily by the user.
                   1122: They are stored in a variable called `tab-stop-list', as a list of
                   1123: column-numbers in increasing order.
                   1124: 
                   1125:   The convenient way to set the tab stops is using `M-x edit-tab-stops',
                   1126: which creates and selects a buffer containing a description of the tab stop
                   1127: settings.  You can edit this buffer to specify different tab stops, and
                   1128: then type `C-c C-c' to make those new tab stops take effect.  In the
                   1129: tab stop buffer, `C-c C-c' runs the function
                   1130: `edit-tab-stops-note-changes' rather than its usual definition
                   1131: `save-buffer'.  `edit-tab-stops' records which buffer was current
                   1132: when you invoked it, and stores the tab stops back in that buffer; normally
                   1133: all buffers share the same tab stops and changing them in one buffer
                   1134: affects all, but if you happen to make `tab-stop-list' local in one
                   1135: buffer then `edit-tab-stops' in that buffer will edit the local
                   1136: settings.
                   1137: 
                   1138:   Here is what the text representing the tab stops looks like for ordinary
                   1139: tab stops every eight columns.
                   1140: 
                   1141:              :       :       :       :       :       :
                   1142:      0         1         2         3         4        
                   1143:      0123456789012345678901234567890123456789012345678
                   1144:      To install changes, type C-c C-c
                   1145: 
                   1146:   The first line contains a colon at each tab stop.  The remaining lines
                   1147: are present just to help you see where the colons are and know what to do.
                   1148: 
                   1149:   Note that the tab stops that control `tab-to-tab-stop' have nothing
                   1150: to do with displaying tab characters in the buffer.  *Note Display Vars::,
                   1151: for more information on that.
                   1152: 
                   1153: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.