Annotation of GNUtools/emacs/info/emacs-5, revision 1.1.1.1

1.1       root        1: This is Info file ../info/emacs, produced by Makeinfo-1.49 from the
                      2: input file emacs.texi.
                      3: 
                      4:    This file documents the GNU Emacs editor.
                      5: 
                      6:    Copyright (C) 1985, 1986, 1988, 1992 Richard M. Stallman.
                      7: 
                      8:    Permission is granted to make and distribute verbatim copies of this
                      9: manual provided the copyright notice and this permission notice are
                     10: preserved on all copies.
                     11: 
                     12:    Permission is granted to copy and distribute modified versions of
                     13: this manual under the conditions for verbatim copying, provided also
                     14: that the sections entitled "The GNU Manifesto", "Distribution" and "GNU
                     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
                     20: manual into another language, under the above conditions for modified
                     21: versions, except that the sections entitled "The GNU Manifesto",
                     22: "Distribution" and "GNU General Public License" may be included in a
                     23: translation approved by the author instead of in the original English.
                     24: 
                     25: 
                     26: File: emacs,  Node: File Names,  Next: Visiting,  Prev: Files,  Up: Files
                     27: 
                     28: File Names
                     29: ==========
                     30: 
                     31:    Most Emacs commands that operate on a file require you to specify the
                     32: file name.  (Saving and reverting are exceptions; the buffer knows which
                     33: file name to use for them.)  File names are specified using the
                     34: minibuffer (*note Minibuffer::.).  "Completion" is available, to make
                     35: it easier to specify long file names.  *Note Completion::.
                     36: 
                     37:    There is always a "default file name" which will be used if you type
                     38: just RET, entering an empty argument.  Normally the default file name
                     39: is the name of the file visited in the current buffer; this makes it
                     40: easy to operate on that file with any of the Emacs file commands.
                     41: 
                     42:    Each buffer has a default directory, normally the same as the
                     43: directory of the file visited in that buffer.  When Emacs reads a file
                     44: name, if you do not specify a directory, the default directory is used.
                     45:  If you specify a directory in a relative fashion, with a name that
                     46: does not start with a slash, it is interpreted with respect to the
                     47: default directory.  The default directory is kept in the variable
                     48: `default-directory', which has a separate value in every buffer.
                     49: 
                     50:    For example, if the default file name is `/u/rms/gnu/gnu.tasks' then
                     51: the default directory is `/u/rms/gnu/'.  If you type just `foo', which
                     52: does not specify a directory, it is short for `/u/rms/gnu/foo'.
                     53: `../.login' would stand for `/u/rms/.login'.  `new/foo' would stand for
                     54: the filename `/u/rms/gnu/new/foo'.
                     55: 
                     56:    The command `M-x pwd' prints the current buffer's default directory,
                     57: and the command `M-x cd' sets it (to a value read using the
                     58: minibuffer).  A buffer's default directory changes only when the `cd'
                     59: command is used.  A file-visiting buffer's default directory is
                     60: initialized to the directory of the file that is visited there.  If a
                     61: buffer is made randomly with `C-x b', its default directory is copied
                     62: from that of the buffer that was current at the time.
                     63: 
                     64:    The default directory actually appears in the minibuffer when the
                     65: minibuffer becomes active to read a file name.  This serves two
                     66: purposes: it shows you what the default is, so that you can type a
                     67: relative file name and know with certainty what it will mean, and it
                     68: allows you to edit the default to specify a different directory.  This
                     69: insertion of the default directory is inhibited if the variable
                     70: `insert-default-directory' is set to `nil'.
                     71: 
                     72:    Note that it is legitimate to type an absolute file name after you
                     73: enter the minibuffer, ignoring the presence of the default directory
                     74: name as part of the text.  The final minibuffer contents may look
                     75: invalid, but that is not so.  *Note Minibuffer File::.
                     76: 
                     77:    `$' in a file name is used to substitute environment variables.  For
                     78: example, if you have used the C shell command `setenv FOO rms/hacks' to
                     79: set up an environment variable named `FOO', then you can use
                     80: `/u/$FOO/test.c' or `/u/${FOO}/test.c' as an abbreviation for
                     81: `/u/rms/hacks/test.c'.  (In the Bourne-Again shell, write `export
                     82: FOO=rms/hacks' to define `FOO'.)  The environment variable name
                     83: consists of all the alphanumeric characters after the `$';
                     84: alternatively, it may be enclosed in braces after the `$'.  Note that
                     85: the `setenv' command affects Emacs only if done before Emacs is started.
                     86: 
                     87:    To access a file with `$' in its name, type `$$'.  This pair is
                     88: converted to a single `$' at the same time as variable substitution is
                     89: performed for single `$'.  The Lisp function that performs the
                     90: substitution is called `substitute-in-file-name'.  The substitution is
                     91: performed only on filenames read as such using the minibuffer.
                     92: 
                     93: 
                     94: File: emacs,  Node: Visiting,  Next: Saving,  Prev: File Names,  Up: Files
                     95: 
                     96: Visiting Files
                     97: ==============
                     98: 
                     99: `C-x C-f'
                    100:      Visit a file (`find-file').
                    101: 
                    102: `C-x C-v'
                    103:      Visit a different file instead of the one visited last
                    104:      (`find-alternate-file').
                    105: 
                    106: `C-x 4 C-f'
                    107:      Visit a file, in another window (`find-file-other-window').  Don't
                    108:      change this window.
                    109: 
                    110:    "Visiting" a file means copying its contents into Emacs where you can
                    111: edit them.  Emacs makes a new buffer for each file that you visit.  We
                    112: say that the buffer is visiting the file that it was created to hold. 
                    113: Emacs constructs the buffer name from the file name by throwing away the
                    114: directory, keeping just the name proper.  For example, a file named
                    115: `/usr/rms/emacs.tex' would get a buffer named `emacs.tex'.  If there is
                    116: already a buffer with that name, a unique name is constructed by
                    117: appending `<2>', `<3>', or so on, using the lowest number that makes a
                    118: name that is not already in use.
                    119: 
                    120:    Each window's mode line shows the name of the buffer that is being
                    121: displayed in that window, so you can always tell what buffer you are
                    122: editing.
                    123: 
                    124:    The changes you make with Emacs are made in the Emacs buffer.  They
                    125: do not take effect in the file that you visited, or any place
                    126: permanent, until you "save" the buffer.  Saving the buffer means that
                    127: Emacs writes the current contents of the buffer into its visited file. 
                    128: *Note Saving::.
                    129: 
                    130:    If a buffer contains changes that have not been saved, the buffer is
                    131: said to be "modified".  This is important because it implies that some
                    132: changes will be lost if the buffer is not saved.  The mode line displays
                    133: two stars near the left margin if the buffer is modified.
                    134: 
                    135:    To visit a file, use the command `C-x C-f' (`find-file').  Follow
                    136: the command with the name of the file you wish to visit, terminated by a
                    137: RET.
                    138: 
                    139:    The file name is read using the minibuffer (*note Minibuffer::.),
                    140: with defaulting and completion in the standard manner (*note File
                    141: Names::.). While in the minibuffer, you can abort `C-x C-f' by typing
                    142: `C-g'.
                    143: 
                    144:    Your confirmation that `C-x C-f' has completed successfully is the
                    145: appearance of new text on the screen and a new buffer name in the mode
                    146: line.  If the specified file does not exist and could not be created, or
                    147: cannot be read, then an error results.  The error message is printed in
                    148: the echo area, and includes the file name which Emacs was trying to
                    149: visit.
                    150: 
                    151:    If you visit a file that is already in Emacs, `C-x C-f' does not make
                    152: another copy.  It selects the existing buffer containing that file.
                    153: However, before doing so, it checks that the file itself has not changed
                    154: since you visited or saved it last.  If the file has changed, a warning
                    155: message is printed.  *Note Simultaneous Editing: Interlocking.
                    156: 
                    157:    What if you want to create a file?  Just visit it.  Emacs prints
                    158: `(New File)' in the echo area, but in other respects behaves as if you
                    159: had visited an existing empty file.  If you make any changes and save
                    160: them, the file is created.
                    161: 
                    162:    If you visit a nonexistent file unintentionally (because you typed
                    163: the wrong file name), use the `C-x C-v' (`find-alternate-file') command
                    164: to visit the file you wanted.  `C-x C-v' is similar to `C-x C-f', but
                    165: it kills the current buffer (after first offering to save it if it is
                    166: modified).  `C-x C-v' is allowed even if the current buffer is not
                    167: visiting a file.
                    168: 
                    169:    If the file you specify is actually a directory, Dired is called on
                    170: that directory (*note Dired::.).  This can be inhibited by setting the
                    171: variable `find-file-run-dired' to `nil'; then it is an error to try to
                    172: visit a directory.
                    173: 
                    174:    `C-x 4 f' (`find-file-other-window') is like `C-x C-f' except that
                    175: the buffer containing the specified file is selected in another window.
                    176:  The window that was selected before `C-x 4 f' continues to show the
                    177: same buffer it was already showing.  If this command is used when only
                    178: one window is being displayed, that window is split in two, with one
                    179: window showing the same before as before, and the other one showing the
                    180: newly requested file.  *Note Windows::.
                    181: 
                    182:    There are two hook variables that allow extensions to modify the
                    183: operation of visiting files.  Visiting a file that does not exist runs
                    184: the functions in the list `find-file-not-found-hooks'; the value of this
                    185: variable is expected to be a list of functions, and the functions are
                    186: called one by one until one of them returns non-`nil'.  Any visiting of
                    187: a file, whether extant or not, expects `find-file-hooks' to contain a
                    188: list of functions and calls them all, one by one.  In both cases the
                    189: functions receive no arguments.  Visiting a nonexistent file runs the
                    190: `find-file-not-found-hooks' first.
                    191: 
                    192:    You can put a local variable specification at the end of a file which
                    193: specifies values for Emacs local variables whenever you visit the file.
                    194: *Note File Variables::.
                    195: 
                    196: 
                    197: File: emacs,  Node: Saving,  Next: Reverting,  Prev: Visiting,  Up: Files
                    198: 
                    199: Saving Files
                    200: ============
                    201: 
                    202:    "Saving" a buffer in Emacs means writing its contents back into the
                    203: file that was visited in the buffer.
                    204: 
                    205: `C-x C-s'
                    206:      Save the current buffer in its visited file (`save-buffer').
                    207: 
                    208: `C-x s'
                    209:      Save any or all buffers in their visited files
                    210:      (`save-some-buffers').
                    211: 
                    212: `M-~'
                    213:      Forget that the current buffer has been changed
                    214:      (`not-modified').
                    215: 
                    216: `C-x C-w'
                    217:      Save the current buffer in a specified file, and record that file
                    218:      as the one visited in the buffer (`write-file').
                    219: 
                    220: `M-x set-visited-file-name'
                    221:      Change file the name under which the current buffer will be saved.
                    222: 
                    223:    When you wish to save the file and make your changes permanent, type
                    224: `C-x C-s' (`save-buffer').  After saving is finished, `C-x C-s' prints
                    225: a message such as
                    226: 
                    227:      Wrote /u/rms/gnu/gnu.tasks
                    228: 
                    229: If the selected buffer is not modified (no changes have been made in it
                    230: since the buffer was created or last saved), saving is not really done,
                    231: because it would have no effect.  Instead, `C-x C-s' prints a message
                    232: in the echo area saying
                    233: 
                    234:      (No changes need to be written)
                    235: 
                    236:    The command `C-x s' (`save-some-buffers') can save any or all
                    237: modified buffers.  First it asks, for each modified buffer, whether to
                    238: save it. These questions should be answered with `y' or `n'.  `C-x C-c',
                    239: the key that kills Emacs, invokes `save-some-buffers' and therefore
                    240: asks the same questions.
                    241: 
                    242:    If you have changed a buffer and do not want the changes to be
                    243: saved, you should take some action to prevent it.  Otherwise, each time
                    244: you use `save-some-buffers' you are liable to save it by mistake.  One
                    245: thing you can do is type `M-~' (`not-modified'), which clears out the
                    246: indication that the buffer is modified.  If you do this, none of the
                    247: save commands will believe that the buffer needs to be saved.  (`~' is
                    248: often used as a mathematical symbol for `not'; thus `Meta-~' is `not',
                    249: metafied.) You could also use `set-visited-file-name' (see below) to
                    250: mark the buffer as visiting a different file name, one which is not in
                    251: use for anything important.  Alternatively, you can undo all the
                    252: changes made since the file was visited or saved, by reading the text
                    253: from the file again. This is called "reverting".  *Note Reverting::. 
                    254: You could also undo all the changes by repeating the undo command `C-x
                    255: u' until you have undone all the changes; but this only works if you
                    256: have not made more changes than the undo mechanism can remember.
                    257: 
                    258:    `M-x set-visited-file-name' alters the name of the file that the
                    259: current buffer is visiting.  It reads the new file name using the
                    260: minibuffer.  It can be used on a buffer that is not visiting a file,
                    261: too. The buffer's name is changed to correspond to the file it is now
                    262: visiting in the usual fashion (unless the new name is in use already
                    263: for some other buffer; in that case, the buffer name is not changed).
                    264: `set-visited-file-name' does not save the buffer in the newly visited
                    265: file; it just alters the records inside Emacs so that, if you save the
                    266: buffer, it will be saved in that file.  It also marks the buffer as
                    267: "modified" so that `C-x C-s' will save.
                    268: 
                    269:    If you wish to mark the buffer as visiting a different file and save
                    270: it right away, use `C-x C-w' (`write-file').  It is precisely
                    271: equivalent to `set-visited-file-name' followed by `C-x C-s'. `C-x C-s'
                    272: used on a buffer that is not visiting with a file has the same effect
                    273: as `C-x C-w'; that is, it reads a file name, marks the buffer as
                    274: visiting that file, and saves it there.  The default file name in a
                    275: buffer that is not visiting a file is made by combining the buffer name
                    276: with the buffer's default directory.
                    277: 
                    278:    If Emacs is about to save a file and sees that the date of the latest
                    279: version on disk does not match what Emacs last read or wrote, Emacs
                    280: notifies you of this fact, because it probably indicates a problem
                    281: caused by simultaneous editing and requires your immediate attention.
                    282: *Note Simultaneous Editing: Interlocking.
                    283: 
                    284:    If the variable `require-final-newline' is non-`nil', Emacs puts a
                    285: newline at the end of any file that doesn't already end in one, every
                    286: time a file is saved or written.
                    287: 
                    288:    You can implement other ways to write files, and other things to be
                    289: done before writing them, using the hook variable `write-file-hooks'. 
                    290: The value of this variable should be a list of Lisp functions.  When a
                    291: file is to be written, the functions in the list are called, one by
                    292: one, with no arguments.  If one of them returns a non-`nil' value,
                    293: Emacs takes this to mean that the file has been written in some
                    294: suitable fashion; the rest of the functions are not called, and normal
                    295: writing is not done.
                    296: 
                    297: * Menu:
                    298: 
                    299: * Backup::       How Emacs saves the old version of your file.
                    300: * Interlocking:: How Emacs protects against simultaneous editing
                    301:                   of one file by two users.
                    302: 
                    303: 
                    304: File: emacs,  Node: Backup,  Next: Interlocking,  Prev: Saving,  Up: Saving
                    305: 
                    306: Backup Files
                    307: ------------
                    308: 
                    309:    Because Unix does not provide version numbers in file names,
                    310: rewriting a file in Unix automatically destroys all record of what the
                    311: file used to contain.  Thus, saving a file from Emacs throws away the
                    312: old contents of the file--or it would, except that Emacs carefully
                    313: copies the old contents to another file, called the "backup" file,
                    314: before actually saving (provided the variable `make-backup-files' is
                    315: non-`nil'; backup files are not written if this variable is `nil').
                    316: 
                    317:    At your option, Emacs can keep either a single backup file or a
                    318: series of numbered backup files for each file that you edit.
                    319: 
                    320:    Emacs makes a backup for a file only the first time the file is saved
                    321: from one buffer.  No matter how many times you save a file, its backup
                    322: file continues to contain the contents from before the file was visited.
                    323: Normally this means that the backup file contains the contents from
                    324: before the current editing session; however, if you kill the buffer and
                    325: then visit the file again, a new backup file will be made by the next
                    326: save.
                    327: 
                    328: * Menu:
                    329: 
                    330: * Names: Backup Names.         How backup files are named;
                    331:                                Choosing single or numbered backup files.
                    332: * Deletion: Backup Deletion.   Emacs deletes excess numbered backups.
                    333: * Copying: Backup Copying.     Backups can be made by copying or renaming.
                    334: 
                    335: 
                    336: File: emacs,  Node: Backup Names,  Next: Backup Deletion,  Prev: Backup,  Up: Backup
                    337: 
                    338: Single or Numbered Backups
                    339: ..........................
                    340: 
                    341:    If you choose to have a single backup file (this is the default),
                    342: the backup file's name is constructed by appending `~' to the file name
                    343: being edited; thus, the backup file for `eval.c' would be `eval.c~'.
                    344: 
                    345:    If you choose to have a series of numbered backup files, backup file
                    346: names are made by appending `.~', the number, and another `~' to the
                    347: original file name.  Thus, the backup files of `eval.c' would be called
                    348: `eval.c.~1~', `eval.c.~2~', and so on, through names like
                    349: `eval.c.~259~' and beyond.
                    350: 
                    351:    If protection stops you from writing backup files under the usual
                    352: names, the backup file is written as `%backup%~' in your home directory.
                    353: Only one such file can exist, so only the most recently made such
                    354: backup is available.
                    355: 
                    356:    The choice of single backup or numbered backups is controlled by the
                    357: variable `version-control'.  Its possible values are
                    358: 
                    359: `t'
                    360:      Make numbered backups.
                    361: 
                    362: `nil'
                    363:      Make numbered backups for files that have numbered backups already.
                    364:      Otherwise, make single backups.
                    365: 
                    366: `never'
                    367:      Do not in any case make numbered backups; always make single
                    368:      backups.
                    369: 
                    370: `version-control' may be set locally in an individual buffer to control
                    371: the making of backups for that buffer's file.  For example, Rmail mode
                    372: locally sets `version-control' to `never' to make sure that there is
                    373: only one backup for an Rmail file.  *Note Locals::.
                    374: 
                    375: 
                    376: File: emacs,  Node: Backup Deletion,  Next: Backup Copying,  Prev: Backup Names,  Up: Backup
                    377: 
                    378: Automatic Deletion of Backups
                    379: .............................
                    380: 
                    381:    To prevent unlimited consumption of disk space, Emacs can delete
                    382: numbered backup versions automatically.  Generally Emacs keeps the
                    383: first few backups and the latest few backups, deleting any in between. 
                    384: This happens every time a new backup is made.  The two variables that
                    385: control the deletion are `kept-old-versions' and `kept-new-versions'. 
                    386: Their values are, respectively the number of oldest (lowest-numbered)
                    387: backups to keep and the number of newest (highest-numbered) ones to
                    388: keep, each time a new backup is made. Recall that these values are used
                    389: just after a new backup version is made; that newly made backup is
                    390: included in the count in `kept-new-versions'. By default, both
                    391: variables are 2.
                    392: 
                    393:    If `trim-versions-without-asking' is non-`nil', the excess middle
                    394: versions are deleted without a murmur.  If it is `nil', the default,
                    395: then you are asked whether the excess middle versions should really be
                    396: deleted.
                    397: 
                    398:    Dired's `.' (Period) command can also be used to delete old versions.
                    399: *Note Dired::.
                    400: 
                    401: 
                    402: File: emacs,  Node: Backup Copying,  Prev: Backup Deletion,  Up: Backup
                    403: 
                    404: Copying vs. Renaming
                    405: ....................
                    406: 
                    407:    Backup files can be made by copying the old file or by renaming it. 
                    408: This makes a difference when the old file has multiple names.  If the
                    409: old file is renamed into the backup file, then the alternate names
                    410: become names for the backup file.  If the old file is copied instead,
                    411: then the alternate names remain names for the file that you are
                    412: editing, and the contents accessed by those names will be the new
                    413: contents.
                    414: 
                    415:    The method of making a backup file may also affect the file's owner
                    416: and group.  If copying is used, these do not change.  If renaming is
                    417: used, you become the file's owner, and the file's group becomes the
                    418: default (different operating systems have different defaults for the
                    419: group).
                    420: 
                    421:    Having the owner change is usually a good idea, because then the
                    422: owner always shows who last edited the file.  Also, the owners of the
                    423: backups show who produced those versions.  Occasionally there is a file
                    424: whose owner should not change; it is a good idea for such files to
                    425: contain local variable lists to set `backup-by-copying-when-mismatch'
                    426: for them alone (*note File Variables::.).
                    427: 
                    428:    The choice of renaming or copying is controlled by three variables.
                    429: Normally, renaming is done.  If the variable `backup-by-copying' is
                    430: non-`nil', copying is used.  Otherwise, if the variable
                    431: `backup-by-copying-when-linked' is non-`nil', then copying is done for
                    432: files that have multiple names, but renaming may still done when the
                    433: file being edited has only one name.  If the variable
                    434: `backup-by-copying-when-mismatch' is non-`nil', then copying is done if
                    435: renaming would cause the file's owner or group to change.
                    436: 
                    437: 
                    438: File: emacs,  Node: Interlocking,  Prev: Backup,  Up: Saving
                    439: 
                    440: Protection against Simultaneous Editing
                    441: ---------------------------------------
                    442: 
                    443:    Simultaneous editing occurs when two users visit the same file, both
                    444: make changes, and then both save them.  If nobody were informed that
                    445: this was happening, whichever user saved first would later find that
                    446: his changes were lost.  On some systems, Emacs notices immediately when
                    447: the second user starts to change the file, and issues an immediate
                    448: warning.  When this is not possible, or if the second user has gone on
                    449: to change the file despite the warning, Emacs checks later when the
                    450: file is saved, and issues a second warning when a user is about to
                    451: overwrite a file containing another user's changes.  If the editing
                    452: user takes the proper corrective action at this point, he can prevent
                    453: actual loss of work.
                    454: 
                    455:    When you make the first modification in an Emacs buffer that is
                    456: visiting a file, Emacs records that you have locked the file.  (It does
                    457: this by writing another file in a directory reserved for this purpose.)
                    458:  The lock is removed when you save the changes.  The idea is that the
                    459: file is locked whenever the buffer is modified.  If you begin to modify
                    460: the buffer while the visited file is locked by someone else, this
                    461: constitutes a collision, and Emacs asks you what to do.  It does this
                    462: by calling the Lisp function `ask-user-about-lock', which you can
                    463: redefine for the sake of customization.  The standard definition of
                    464: this function asks you a question and accepts three possible answers:
                    465: 
                    466: `s'
                    467:      Steal the lock.  Whoever was already changing the file loses the
                    468:      lock, and you gain the lock.
                    469: 
                    470: `p'
                    471:      Proceed.  Go ahead and edit the file despite its being locked by
                    472:      someone else.
                    473: 
                    474: `q'
                    475:      Quit.  This causes an error (`file-locked') and the modification
                    476:      you were trying to make in the buffer does not actually take place.
                    477: 
                    478:    Note that locking works on the basis of a file name; if a file has
                    479: multiple names, Emacs does not realize that the two names are the same
                    480: file and cannot prevent two user from editing it simultaneously under
                    481: different names.  However, basing locking on names means that Emacs can
                    482: interlock the editing of new files that will not really exist until
                    483: they are saved.
                    484: 
                    485:    Some systems are not configured to allow Emacs to make locks.  On
                    486: these systems, Emacs cannot detect trouble in advance, but it still can
                    487: detect it in time to prevent you from overwriting someone else's
                    488: changes.
                    489: 
                    490:    Every time Emacs saves a buffer, it first checks the
                    491: last-modification date of the existing file on disk to see that it has
                    492: not changed since the file was last visited or saved.  If the date does
                    493: not match, it implies that changes were made in the file in some other
                    494: way, and these changes are about to be lost if Emacs actually does
                    495: save.  To prevent this, Emacs prints a warning message and asks for
                    496: confirmation before saving. Occasionally you will know why the file was
                    497: changed and know that it does not matter; then you can answer `yes' and
                    498: proceed.  Otherwise, you should cancel the save with `C-g' and
                    499: investigate the situation.
                    500: 
                    501:    The first thing you should do when notified that simultaneous
                    502: editing has already taken place is to list the directory with `C-u C-x
                    503: C-d' (*note Directory Listing: ListDir.).  This will show the file's
                    504: current author.  You should attempt to contact that person to warn him
                    505: or her not to continue editing.  Often the next step is to save the
                    506: contents of your Emacs buffer under a different name, and use `diff' to
                    507: compare the two files.
                    508: 
                    509:    Simultaneous editing checks are also made when you visit with `C-x
                    510: C-f' a file that is already visited and when you start to modify a file.
                    511: This is not strictly necessary, but it can cause you to find out about
                    512: the problem earlier, when perhaps correction takes less work.
                    513: 
                    514: 
                    515: File: emacs,  Node: Reverting,  Next: Auto Save,  Prev: Saving,  Up: Files
                    516: 
                    517: Reverting a Buffer
                    518: ==================
                    519: 
                    520:    If you have made extensive changes to a file and then change your
                    521: mind about them, you can get rid of them by reading in the previous
                    522: version of the file.  To do this, use `M-x revert-buffer', which
                    523: operates on the current buffer.  Since this is a very dangerous thing
                    524: to do, you must confirm it with `yes'.
                    525: 
                    526:    If the current buffer has been auto-saved more recently than it has
                    527: been saved for real, `revert-buffer' offers to read the auto save file
                    528: instead of the visited file (*note Auto Save::.).  This question comes
                    529: before the usual request for confirmation, and demands `y' or `n' as an
                    530: answer.  If you have started to type `yes' for confirmation without
                    531: realizing that the other question was going to be asked, the `y' will
                    532: answer that question, but the `es' will not be valid confirmation.  So
                    533: you will have a chance to cancel the operation with `C-g' and try it
                    534: again with the answers that you really intend.
                    535: 
                    536:    `revert-buffer' keeps point at the same distance (measured in
                    537: characters) from the beginning of the file.  If the file was edited only
                    538: slightly, you will be at approximately the same piece of text after
                    539: reverting as before.  If you have made drastic changes, the same value
                    540: of point in the old file may address a totally different piece of text.
                    541: 
                    542:    A buffer reverted from its visited file is marked "not modified"
                    543: until another change is made.
                    544: 
                    545:    Some kinds of buffers whose contents reflect data bases other than
                    546: files, such as Dired buffers, can also be reverted.  For them,
                    547: reverting means recalculating their contents from the appropriate data
                    548: base.  Buffers created randomly with `C-x b' cannot be reverted;
                    549: `revert-buffer' reports an error when asked to do so.
                    550: 
                    551: 
                    552: File: emacs,  Node: Auto Save,  Next: ListDir,  Prev: Reverting,  Up: Files
                    553: 
                    554: Auto-Saving: Protection Against Disasters
                    555: =========================================
                    556: 
                    557:    Emacs saves all the visited files from time to time (based on
                    558: counting your keystrokes) without being asked.  This is called
                    559: "auto-saving". It prevents you from losing more than a limited amount
                    560: of work if the system crashes.
                    561: 
                    562:    When Emacs determines that it is time for auto-saving, each buffer is
                    563: considered, and is auto-saved if auto-saving is turned on for it and it
                    564: has been changed since the last time it was auto-saved.  If any
                    565: auto-saving is done, the message `Auto-saving...' is displayed in the
                    566: echo area until auto-saving is finished.  Errors occurring during
                    567: auto-saving are caught so that they do not interfere with the execution
                    568: of commands you have been typing.
                    569: 
                    570: * Menu:
                    571: 
                    572: * Files: Auto Save Files.
                    573: * Control: Auto Save Control.
                    574: * Recover::            Recovering text from auto-save files.
                    575: 
                    576: 
                    577: File: emacs,  Node: Auto Save Files,  Next: Auto Save Control,  Prev: Auto Save,  Up: Auto Save
                    578: 
                    579: Auto-Save Files
                    580: ---------------
                    581: 
                    582:    Auto-saving does not normally save in the files that you visited,
                    583: because it can be very undesirable to save a program that is in an
                    584: inconsistent state when you have made half of a planned change. 
                    585: Instead, auto-saving is done in a different file called the "auto-save
                    586: file", and the visited file is changed only when you request saving
                    587: explicitly (such as with `C-x C-s').
                    588: 
                    589:    Normally, the auto-save file name is made by appending `#' to the
                    590: front and rear of the visited file name.  Thus, a buffer visiting file
                    591: `foo.c' would be auto-saved in a file `#foo.c#'.  Most buffers that are
                    592: not visiting files are auto-saved only if you request it explicitly;
                    593: when they are auto-saved, the auto-save file name is made by appending
                    594: `#%' to the front and `#' to the rear of buffer name. For example, the
                    595: `*mail*' buffer in which you compose messages to be sent is auto-saved
                    596: in a file named `#%*mail*#'.  Auto-save file names are made this way
                    597: unless you reprogram parts of Emacs to do something different (the
                    598: functions `make-auto-save-file-name' and `auto-save-file-name-p').  The
                    599: file name to be used for auto-saving in a buffer is calculated when
                    600: auto-saving is turned on in that buffer.
                    601: 
                    602:    If you want auto-saving to be done in the visited file, set the
                    603: variable `auto-save-visited-file-name' to be non-`nil'.  In this mode,
                    604: there is really no difference between auto-saving and explicit saving.
                    605: 
                    606:    A buffer's auto-save file is deleted when you save the buffer in its
                    607: visited file.  To inhibit this, set the variable
                    608: `delete-auto-save-files' to `nil'.  Changing the visited file name with
                    609: `C-x C-w' or `set-visited-file-name' renames any auto-save file to go
                    610: with the new visited name.
                    611: 
                    612: 
                    613: File: emacs,  Node: Auto Save Control,  Next: Recover,  Prev: Auto Save Files,  Up: Auto Save
                    614: 
                    615: Controlling Auto-Saving
                    616: -----------------------
                    617: 
                    618:    Each time you visit a file, auto-saving is turned on for that file's
                    619: buffer if the variable `auto-save-default' is non-`nil' (but not in
                    620: batch mode; *note Entering Emacs::.).  The default for this variable is
                    621: `t', so auto-saving is the usual practice for file-visiting buffers.
                    622: Auto-saving can be turned on or off for any existing buffer with the
                    623: command `M-x auto-save-mode'.  Like other minor mode commands, `M-x
                    624: auto-save-mode' turns auto-saving on with a positive argument, off with
                    625: a zero or negative argument; with no argument, it toggles.
                    626: 
                    627:    Emacs does auto-saving periodically based on counting how many
                    628: characters you have typed since the last time auto-saving was done. 
                    629: The variable `auto-save-interval' specifies how many characters there
                    630: are between auto-saves.  By default, it is 300.  Emacs also auto-saves
                    631: whenever you call the function `do-auto-save'.
                    632: 
                    633:    Emacs also does auto-saving whenever it gets a fatal error.  This
                    634: includes killing the Emacs job with a shell command such as `kill
                    635: %emacs', or disconnecting a phone line or network connection.
                    636: 
                    637: 
                    638: File: emacs,  Node: Recover,  Prev: Auto Save Control,  Up: Auto Save
                    639: 
                    640: Recovering Data from Auto-Saves
                    641: -------------------------------
                    642: 
                    643:    The way to use the contents of an auto-save file to recover from a
                    644: loss of data is with the command `M-x recover-file RET FILE RET'.  This
                    645: visits FILE and then (after your confirmation) restores the contents
                    646: from its auto-save file `#FILE#'.  You can then save with `C-x C-s' to
                    647: put the recovered text into FILE itself.  For example, to recover file
                    648: `foo.c' from its auto-save file `#foo.c#', do:
                    649: 
                    650:      M-x recover-file RET foo.c RET
                    651:      C-x C-s
                    652: 
                    653:    Before asking for confirmation, `M-x recover-file' displays a
                    654: directory listing describing the specified file and the auto-save file,
                    655: so you can compare their sizes and dates.  If the auto-save file is
                    656: older, `M-x recover-file' does not offer to read it.
                    657: 
                    658:    Auto-saving is disabled by `M-x recover-file' because using this
                    659: command implies that the auto-save file contains valuable data from a
                    660: past session.  If you save the data in the visited file and then go on
                    661: to make new changes, you should turn auto-saving back on with `M-x
                    662: auto-save-mode'.
                    663: 
                    664: 
                    665: File: emacs,  Node: ListDir,  Next: Dired,  Prev: Auto Save,  Up: Files
                    666: 
                    667: Listing a File Directory
                    668: ========================
                    669: 
                    670:    Files are classified by Unix into "directories".  A "directory
                    671: listing" is a list of all the files in a directory.  Emacs provides
                    672: directory listings in brief format (file names only) and verbose format
                    673: (sizes, dates, and authors included).
                    674: 
                    675: `C-x C-d DIR-OR-PATTERN'
                    676:      Print a brief directory listing (`list-directory').
                    677: 
                    678: `C-u C-x C-d DIR-OR-PATTERN'
                    679:      Print a verbose directory listing.
                    680: 
                    681:    The command to print a directory listing is `C-x C-d'
                    682: (`list-directory'). It reads using the minibuffer a file name which is
                    683: either a directory to be listed or a wildcard-containing pattern for
                    684: the files to be listed.  For example,
                    685: 
                    686:      C-x C-d /u2/emacs/etc RET
                    687: 
                    688: lists all the files in directory `/u2/emacs/etc'.  An example of
                    689: specifying a file name pattern is
                    690: 
                    691:      C-x C-d /u2/emacs/src/*.c RET
                    692: 
                    693:    Normally, `C-x C-d' prints a brief directory listing containing just
                    694: file names.  A numeric argument (regardless of value) tells it to print
                    695: a verbose listing (like `ls -l').
                    696: 
                    697:    The text of a directory listing is obtained by running `ls' in an
                    698: inferior process.  Two Emacs variables control the switches passed to
                    699: `ls': `list-directory-brief-switches' is a string giving the switches
                    700: to use in brief listings (`"-CF"' by default), and
                    701: `list-directory-verbose-switches' is a string giving the switches to
                    702: use in a verbose listing (`"-l"' by default).
                    703: 
                    704: 
                    705: File: emacs,  Node: Dired,  Next: Misc File Ops,  Prev: ListDir,  Up: Files
                    706: 
                    707: Dired, the Directory Editor
                    708: ===========================
                    709: 
                    710:    Dired makes it easy to delete or visit many of the files in a single
                    711: directory at once.  It makes an Emacs buffer containing a listing of the
                    712: directory.  You can use the normal Emacs commands to move around in this
                    713: buffer, and special Dired commands to operate on the files.
                    714: 
                    715: * Menu:
                    716: 
                    717: * Enter: Dired Enter.         How to invoke Dired.
                    718: * Edit: Dired Edit.           Editing the Dired buffer.
                    719: * Deletion: Dired Deletion.   Deleting files with Dired.
                    720: * Immed: Dired Immed.         Other file operations through Dired.
                    721: 
                    722: 
                    723: File: emacs,  Node: Dired Enter,  Next: Dired Edit,  Prev: Dired,  Up: Dired
                    724: 
                    725: Entering Dired
                    726: --------------
                    727: 
                    728:    To invoke dired, do `C-x d' or `M-x dired'.  The command reads a
                    729: directory name or wildcard file name pattern as a minibuffer argument
                    730: just like the `list-directory' command, `C-x C-d'.  Where `dired'
                    731: differs from `list-directory' is in naming the buffer after the
                    732: directory name or the wildcard pattern used for the listing, and putting
                    733: the buffer into Dired mode so that the special commands of Dired are
                    734: available in it.  The variable `dired-listing-switches' is a string
                    735: used as an argument to `ls' in making the directory; this string must
                    736: contain `-l'.
                    737: 
                    738:    To display the Dired buffer in another window rather than in the
                    739: selected window, use `C-x 4 d' (`dired-other-window)' instead of `C-x
                    740: d'.
                    741: 
                    742: 
                    743: File: emacs,  Node: Dired Edit,  Next: Dired Deletion,  Prev: Dired Enter,  Up: Dired
                    744: 
                    745: Editing in Dired
                    746: ----------------
                    747: 
                    748:    Once the Dired buffer exists, you can switch freely between it and
                    749: other Emacs buffers.  Whenever the Dired buffer is selected, certain
                    750: special commands are provided that operate on files that are listed. 
                    751: The Dired buffer is "read-only", and inserting text in it is not
                    752: useful, so ordinary printing characters such as `d' and `x' are used
                    753: for Dired commands.  Most Dired commands operate on the file described
                    754: by the line that point is on.  Some commands perform operations
                    755: immediately; others "flag" the file to be operated on later.
                    756: 
                    757:    Most Dired commands that operate on the current line's file also
                    758: treat a numeric argument as a repeat count, meaning to act on the files
                    759: of the next few lines.  A negative argument means to operate on the
                    760: files of the preceding lines, and leave point on the first of those
                    761: lines.
                    762: 
                    763:    All the usual Emacs cursor motion commands are available in Dired
                    764: buffers.  Some special purpose commands are also provided.  The keys
                    765: `C-n' and `C-p' are redefined so that they try to position the cursor
                    766: at the beginning of the filename on the line, rather than at the
                    767: beginning of the line.
                    768: 
                    769:    For extra convenience, SPC and `n' in Dired are equivalent to `C-n'.
                    770:  `p' is equivalent to `C-p'.  Moving by lines is done so often in Dired
                    771: that it deserves to be easy to type.  DEL (move up and unflag) is often
                    772: useful simply for moving up.
                    773: 
                    774:    The `g' command in Dired runs `revert-buffer' to reinitialize the
                    775: buffer from the actual disk directory and show any changes made in the
                    776: directory by programs other than Dired.  All deletion flags in the Dired
                    777: buffer are lost when this is done.
                    778: 
                    779: 
                    780: File: emacs,  Node: Dired Deletion,  Next: Dired Immed,  Prev: Dired Edit,  Up: Dired
                    781: 
                    782: Deleting Files with Dired
                    783: -------------------------
                    784: 
                    785:    The primary use of Dired is to flag files for deletion and then
                    786: delete them.
                    787: 
                    788: `d'
                    789:      Flag this file for deletion.
                    790: 
                    791: `u'
                    792:      Remove deletion-flag on this line.
                    793: 
                    794: `DEL'
                    795:      Remove deletion-flag on previous line, moving point to that line.
                    796: 
                    797: `x'
                    798:      Delete the files that are flagged for deletion.
                    799: 
                    800: `#'
                    801:      Flag all auto-save files (files whose names start and end with `#')
                    802:      for deletion (*note Auto Save::.).
                    803: 
                    804: `~'
                    805:      Flag all backup files (files whose names end with `~') for deletion
                    806:      (*note Backup::.).
                    807: 
                    808: `. (Period)'
                    809:      Flag excess numeric backup files for deletion.  The oldest and
                    810:      newest few backup files of any one file are exempt; the middle
                    811:      ones are flagged.
                    812: 
                    813:    You can flag a file for deletion by moving to the line describing the
                    814: file and typing `d' or `C-d'.  The deletion flag is visible as a `D' at
                    815: the beginning of the line.  Point is moved to the beginning of the next
                    816: line, so that repeated `d' commands flag successive files.
                    817: 
                    818:    The files are flagged for deletion rather than deleted immediately to
                    819: avoid the danger of deleting a file accidentally.  Until you direct
                    820: Dired to delete the flagged files, you can remove deletion flags using
                    821: the commands `u' and DEL.  `u' works just like `d', but removes flags
                    822: rather than making flags.  DEL moves upward, removing flags; it is like
                    823: `u' with numeric argument automatically negated.
                    824: 
                    825:    To delete the flagged files, type `x'.  This command first displays a
                    826: list of all the file names flagged for deletion, and requests
                    827: confirmation with `yes'.  Once you confirm, all the flagged files are
                    828: deleted, and their lines are deleted from the text of the Dired buffer.
                    829:  The shortened Dired buffer remains selected.  If you answer `no' or
                    830: quit with `C-g', you return immediately to Dired, with the deletion
                    831: flags still present and no files actually deleted.
                    832: 
                    833:    The `#', `~' and `.' commands flag many files for deletion, based on
                    834: their names.  These commands are useful precisely because they do not
                    835: actually delete any files; you can remove the deletion flags from any
                    836: flagged files that you really wish to keep.
                    837: 
                    838:    `#' flags for deletion all files that appear to have been made by
                    839: auto-saving (that is, files whose names begin and end with `#'). `~'
                    840: flags for deletion all files that appear to have been made as backups
                    841: for files that were edited (that is, files whose names end with `~').
                    842: 
                    843:    `.' (Period) flags just some of the backup files for deletion: only
                    844: numeric backups that are not among the oldest few nor the newest few
                    845: backups of any one file.  Normally `dired-kept-versions' (not
                    846: `kept-new-versions'; that applies only when saving) specifies the
                    847: number of newest versions of each file to keep, and `kept-old-versions'
                    848: specifies the number of oldest versions to keep. Period with a positive
                    849: numeric argument, as in `C-u 3 .', specifies the number of newest
                    850: versions to keep, overriding `dired-kept-versions'. A negative numeric
                    851: argument overrides `kept-old-versions', using minus the value of the
                    852: argument to specify the number of oldest versions of each file to keep.
                    853: 
                    854: 
                    855: File: emacs,  Node: Dired Immed,  Prev: Dired Deletion,  Up: Dired
                    856: 
                    857: Immediate File Operations in Dired
                    858: ----------------------------------
                    859: 
                    860:    Some file operations in Dired take place immediately when they are
                    861: requested.
                    862: 
                    863: `c'
                    864:      Copies the file described on the current line.  You must supply a
                    865:      file name to copy to, using the minibuffer.
                    866: 
                    867: `f'
                    868:      Visits the file described on the current line.  It is just like
                    869:      typing `C-x C-f' and supplying that file name.  If the file on
                    870:      this line is a subdirectory, `f' actually causes Dired to be
                    871:      invoked on that subdirectory.  *Note Visiting::.
                    872: 
                    873: `o'
                    874:      Like `f', but uses another window to display the file's buffer. 
                    875:      The Dired buffer remains visible in the first window.  This is
                    876:      like using `C-x 4 C-f' to visit the file.  *Note Windows::.
                    877: 
                    878: `r'
                    879:      Renames the file described on the current line.  You must supply a
                    880:      file name to rename to, using the minibuffer.
                    881: 
                    882: `v'
                    883:      Views the file described on this line using `M-x view-file'. 
                    884:      Viewing a file is like visiting it, but is slanted toward moving
                    885:      around in the file conveniently and does not allow changing the
                    886:      file.  *Note View File: Misc File Ops.  Viewing a file that is a
                    887:      directory runs Dired on that directory.
                    888: 
                    889: 
                    890: File: emacs,  Node: Misc File Ops,  Prev: Dired,  Up: Files
                    891: 
                    892: Miscellaneous File Operations
                    893: =============================
                    894: 
                    895:    Emacs has commands for performing many other operations on files.
                    896: All operate on one file; they do not accept wild card file names.
                    897: 
                    898:    `M-x view-file' allows you to scan or read a file by sequential
                    899: screenfuls.  It reads a file name argument using the minibuffer.  After
                    900: reading the file into an Emacs buffer, `view-file' reads and displays
                    901: one windowful.  You can then type SPC to scroll forward one windowful,
                    902: or DEL to scroll backward.  Various other commands are provided for
                    903: moving around in the file, but none for changing it; type `C-h' while
                    904: viewing for a list of them.  They are mostly the same as normal Emacs
                    905: cursor motion commands.  To exit from viewing, type `C-c'.
                    906: 
                    907:    `M-x insert-file' inserts a copy of the contents of the specified
                    908: file into the current buffer at point, leaving point unchanged before
                    909: the contents and the mark after them.  *Note Mark::.
                    910: 
                    911:    `M-x write-region' is the inverse of `M-x insert-file'; it copies
                    912: the contents of the region into the specified file.  `M-x
                    913: append-to-file' adds the text of the region to the end of the specified
                    914: file.
                    915: 
                    916:    `M-x delete-file' deletes the specified file, like the `rm' command
                    917: in the shell.  If you are deleting many files in one directory, it may
                    918: be more convenient to use Dired (*note Dired::.).
                    919: 
                    920:    `M-x rename-file' reads two file names OLD and NEW using the
                    921: minibuffer, then renames file OLD as NEW.  If a file named NEW already
                    922: exists, you must confirm with `yes' or renaming is not done; this is
                    923: because renaming causes the old meaning of the name NEW to be lost.  If
                    924: OLD and NEW are on different file systems, the file OLD is copied and
                    925: deleted.
                    926: 
                    927:    The similar command `M-x add-name-to-file' is used to add an
                    928: additional name to an existing file without removing its old name. The
                    929: new name must belong on the same file system that the file is on.
                    930: 
                    931:    `M-x copy-file' reads the file OLD and writes a new file named NEW
                    932: with the same contents.  Confirmation is required if a file named NEW
                    933: already exists, because copying has the consequence of overwriting the
                    934: old contents of the file NEW.
                    935: 
                    936:    `M-x make-symbolic-link' reads two file names OLD and LINKNAME, and
                    937: then creates a symbolic link named LINKNAME and pointing at OLD. The
                    938: effect is that future attempts to open file LINKNAME will refer to
                    939: whatever file is named OLD at the time the opening is done, or will get
                    940: an error if the name OLD is not in use at that time. Confirmation is
                    941: required when creating the link if LINKNAME is in use.  Note that not
                    942: all systems support symbolic links.
                    943: 
                    944: 
                    945: File: emacs,  Node: Buffers,  Next: Windows,  Prev: Files,  Up: Top
                    946: 
                    947: Using Multiple Buffers
                    948: **********************
                    949: 
                    950:    The text you are editing in Emacs resides in an object called a
                    951: "buffer".  Each time you visit a file, a buffer is created to hold the
                    952: file's text.  Each time you invoke Dired, a buffer is created to hold
                    953: the directory listing.  If you send a message with `C-x m', a buffer
                    954: named `*mail*' is used to hold the text of the message.  When you ask
                    955: for a command's documentation, that appears in a buffer called `*Help*'.
                    956: 
                    957:    At any time, one and only one buffer is "selected".  It is also
                    958: called the "current buffer".  Often we say that a command operates on
                    959: "the buffer" as if there were only one; but really this means that the
                    960: command operates on the selected buffer (most commands do).
                    961: 
                    962:    When Emacs makes multiple windows, each window has a chosen buffer
                    963: which is displayed there, but at any time only one of the windows is
                    964: selected and its chosen buffer is the selected buffer.  Each window's
                    965: mode line displays the name of the buffer that the window is displaying
                    966: (*note Windows::.).
                    967: 
                    968:    Each buffer has a name, which can be of any length, and you can
                    969: select any buffer by giving its name.  Most buffers are made by
                    970: visiting files, and their names are derived from the files' names.  But
                    971: you can also create an empty buffer with any name you want.  A newly
                    972: started Emacs has a buffer named `*scratch*' which can be used for
                    973: evaluating Lisp expressions in Emacs.  The distinction between upper
                    974: and lower case matters in buffer names.
                    975: 
                    976:    Each buffer records individually what file it is visiting, whether
                    977: it is modified, and what major mode and minor modes are in effect in it
                    978: (*note Major Modes::.).  Any Emacs variable can be made "local to" a
                    979: particular buffer, meaning its value in that buffer can be different
                    980: from the value in other buffers.  *Note Locals::.
                    981: 
                    982: * Menu:
                    983: 
                    984: * Select Buffer::   Creating a new buffer or reselecting an old one.
                    985: * List Buffers::    Getting a list of buffers that exist.
                    986: * Misc Buffer::     Renaming; changing read-onliness; copying text.
                    987: * Kill Buffer::     Killing buffers you no longer need.
                    988: * Several Buffers:: How to go through the list of all buffers
                    989:                      and operate variously on several of them.
                    990: 
                    991: 
                    992: File: emacs,  Node: Select Buffer,  Next: List Buffers,  Prev: Buffers,  Up: Buffers
                    993: 
                    994: Creating and Selecting Buffers
                    995: ==============================
                    996: 
                    997: `C-x b BUFFER RET'
                    998:      Select or create a buffer named BUFFER (`switch-to-buffer').
                    999: 
                   1000: `C-x 4 b BUFFER RET'
                   1001:      Similar, but select a buffer named BUFFER in another window
                   1002:      (`switch-to-buffer-other-window').
                   1003: 
                   1004:    To select the buffer named BUFNAME, type `C-x b BUFNAME RET'.  This
                   1005: is the command `switch-to-buffer' with argument BUFNAME.  You can use
                   1006: completion on an abbreviation for the buffer name you want (*note
                   1007: Completion::.).  An empty argument to `C-x b' specifies the most
                   1008: recently selected buffer that is not displayed in any window.
                   1009: 
                   1010:    Most buffers are created by visiting files, or by Emacs commands that
                   1011: want to display some text, but you can also create a buffer explicitly
                   1012: by typing `C-x b BUFNAME RET'.  This makes a new, empty buffer which is
                   1013: not visiting any file, and selects it for editing.  Such buffers are
                   1014: used for making notes to yourself.  If you try to save one, you are
                   1015: asked for the file name to use.  The new buffer's major mode is
                   1016: determined by the value of `default-major-mode' (*note Major Modes::.).
                   1017: 
                   1018:    Note that `C-x C-f', and any other command for visiting a file, can
                   1019: also be used to switch buffers.  *Note Visiting::.
                   1020: 
                   1021: 
                   1022: File: emacs,  Node: List Buffers,  Next: Misc Buffer,  Prev: Select Buffer,  Up: Buffers
                   1023: 
                   1024: Listing Existing Buffers
                   1025: ========================
                   1026: 
                   1027: `C-x C-b'
                   1028:      List the existing buffers (`list-buffers').
                   1029: 
                   1030:    To print a list of all the buffers that exist, type `C-x C-b'. Each
                   1031: line in the list shows one buffer's name, major mode and visited file.
                   1032: `*' at the beginning of a line indicates the buffer is "modified". If
                   1033: several buffers are modified, it may be time to save some with `C-x s'
                   1034: (*note Saving::.).  `%' indicates a read-only buffer.  `.' marks the
                   1035: selected buffer.  Here is an example of a buffer list:
                   1036: 
                   1037:       MR Buffer         Size  Mode           File
                   1038:       -- ------         ----  ----           ----
                   1039:      .*  emacs.tex      383402 Texinfo       /u2/emacs/man/emacs.tex
                   1040:          *Help*         1287  Fundamental
                   1041:          files.el       23076 Emacs-Lisp     /u2/emacs/lisp/files.el
                   1042:        % RMAIL          64042 RMAIL          /u/rms/RMAIL
                   1043:       *% man            747   Dired
                   1044:          net.emacs      343885 Fundamental   /u/rms/net.emacs
                   1045:          fileio.c       27691 C              /u2/emacs/src/fileio.c
                   1046:          NEWS           67340 Text           /u2/emacs/etc/NEWS
                   1047:          *scratch*        0     Lisp Interaction
                   1048: 
                   1049: Note that the buffer `*Help*' was made by a help request; it is not
                   1050: visiting any file.  The buffer `man' was made by Dired on the directory
                   1051: `/u2/emacs/man/'.
                   1052: 
                   1053: 
                   1054: File: emacs,  Node: Misc Buffer,  Next: Kill Buffer,  Prev: List Buffers,  Up: Buffers
                   1055: 
                   1056: Miscellaneous Buffer Operations
                   1057: ===============================
                   1058: 
                   1059: `C-x C-q'
                   1060:      Toggle read-only status of buffer (`toggle-read-only').
                   1061: 
                   1062: `M-x rename-buffer'
                   1063:      Change the name of the current buffer.
                   1064: 
                   1065: `M-x view-buffer'
                   1066:      Scroll through a buffer.
                   1067: 
                   1068:    A buffer can be "read-only", which means that commands to change its
                   1069: text are not allowed.  Normally, read-only buffers are made by
                   1070: subsystems such as Dired and Rmail that have special commands to
                   1071: operate on the text; a read-only buffer is also made if you visit a
                   1072: file that is protected so you cannot write it.  If you wish to make
                   1073: changes in a read-only buffer, use the command `C-x C-q'
                   1074: (`toggle-read-only').  It makes a read-only buffer writable, and makes
                   1075: a writable buffer read-only.  This works by setting the variable
                   1076: `buffer-read-only', which has a local value in each buffer and makes
                   1077: the buffer read-only if its value is non-`nil'.
                   1078: 
                   1079:    `M-x rename-buffer' changes the name of the current buffer.  Specify
                   1080: the new name as a minibuffer argument.  There is no default.  If you
                   1081: specify a name that is in use for some other buffer, an error happens
                   1082: and no renaming is done.
                   1083: 
                   1084:    `M-x view-buffer' is much like `M-x view-file' (*note Misc File
                   1085: Ops::.) except that it examines an already existing Emacs buffer.  View
                   1086: mode provides commands for scrolling through the buffer conveniently
                   1087: but not for changing it. When you exit View mode, the value of point
                   1088: that resulted from your perusal remains in effect.
                   1089: 
                   1090:    The commands `C-x a' (`append-to-buffer') and `M-x insert-buffer'
                   1091: can be used to copy text from one buffer to another. *Note Accumulating
                   1092: Text::.
                   1093: 
                   1094: 
                   1095: File: emacs,  Node: Kill Buffer,  Next: Several Buffers,  Prev: Misc Buffer,  Up: Buffers
                   1096: 
                   1097: Killing Buffers
                   1098: ===============
                   1099: 
                   1100:    After you use Emacs for a while, you may accumulate a large number of
                   1101: buffers.  You may then find it convenient to eliminate the ones you no
                   1102: longer need.  There are several commands provided for doing this.
                   1103: 
                   1104: `C-x k'
                   1105:      Kill a buffer, specified by name (`kill-buffer').
                   1106: 
                   1107: `M-x kill-some-buffers'
                   1108:      Offer to kill each buffer, one by one.
                   1109: 
                   1110:    `C-x k' (`kill-buffer') kills one buffer, whose name you specify in
                   1111: the minibuffer.  The default, used if you type just RET in the
                   1112: minibuffer, is to kill the current buffer.  If the current buffer is
                   1113: killed, another buffer is selected; a buffer that has been selected
                   1114: recently but does not appear in any window now is chosen to be selected.
                   1115: If the buffer being killed is modified (has unsaved editing) then you
                   1116: are asked to confirm with `yes' before the buffer is killed.
                   1117: 
                   1118:    The command `M-x kill-some-buffers' asks about each buffer, one by
                   1119: one.  An answer of `y' means to kill the buffer.  Killing the current
                   1120: buffer or a buffer containing unsaved changes selects a new buffer or
                   1121: asks for confirmation just like `kill-buffer'.
                   1122: 
                   1123: 

unix.superglobalmegacorp.com

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