|
|
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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.