comparison man/files.texi @ 65532:1a6c78b455d7

(Saving Commands): New node, broken out of Saving. (Customize Save): New node, broken out of Saving. Clarify effect of write-region-inhibit-fsync. (Misc File Ops): Say write-region-inhibit-fsync affects write-region.
author Richard M. Stallman <rms@gnu.org>
date Thu, 15 Sep 2005 12:47:10 +0000
parents 1ebe69a133e6
children ef44a1524bc8
comparison
equal deleted inserted replaced
65531:18b565312060 65532:1a6c78b455d7
363 @node Saving 363 @node Saving
364 @section Saving Files 364 @section Saving Files
365 365
366 @dfn{Saving} a buffer in Emacs means writing its contents back into the file 366 @dfn{Saving} a buffer in Emacs means writing its contents back into the file
367 that was visited in the buffer. 367 that was visited in the buffer.
368
369 @menu
370 * Save Commands:: Commands for saving files.
371 * Backup:: How Emacs saves the old version of your file.
372 * Customize Save:: Customizing the saving of files.
373 * Interlocking:: How Emacs protects against simultaneous editing
374 of one file by two users.
375 * Shadowing: File Shadowing. Copying files to "shadows" automatically.
376 * Time Stamps:: Emacs can update time stamps on saved files.
377 @end menu
378
379 @node Saving Commands
380 @subsection Commands for Saving Files
381
382 These are the commands that relate to saving and writing files.
368 383
369 @table @kbd 384 @table @kbd
370 @item C-x C-s 385 @item C-x C-s
371 Save the current buffer in its visited file on disk (@code{save-buffer}). 386 Save the current buffer in its visited file on disk (@code{save-buffer}).
372 @item C-x s 387 @item C-x s
481 version on disk does not match what Emacs last read or wrote, Emacs 496 version on disk does not match what Emacs last read or wrote, Emacs
482 notifies you of this fact, because it probably indicates a problem caused 497 notifies you of this fact, because it probably indicates a problem caused
483 by simultaneous editing and requires your immediate attention. 498 by simultaneous editing and requires your immediate attention.
484 @xref{Interlocking,, Simultaneous Editing}. 499 @xref{Interlocking,, Simultaneous Editing}.
485 500
486 @vindex require-final-newline
487 If the value of the variable @code{require-final-newline} is
488 @code{t}, Emacs silently puts a newline at the end of any file that
489 doesn't already end in one, every time a file is saved or written. If
490 the value is @code{visit}, Emacs adds a newline at the end of any file
491 that doesn't have one, just after it visits the file. (This marks the
492 buffer as modified, and you can undo it.) If the value is
493 @code{visit-save}, that means to add newlines both on visiting and on
494 saving. If the value is @code{nil}, Emacs leaves the end of the file
495 unchanged; if it's neither @code{nil} nor @code{t}, Emacs asks you
496 whether to add a newline. The default is @code{nil}.
497
498 @vindex mode-require-final-newline
499 Many major modes are designed for specific kinds of files that are
500 always supposed to end in newlines. These major modes set the
501 variable @code{require-final-newline} according to
502 @code{mode-require-final-newline}. By setting the latter variable,
503 you can control how these modes handle final newlines.
504
505 @vindex write-region-inhibit-fsync
506 When Emacs saves a file to disk, it issues an @code{fsync} call to the
507 operating system to ensure that your data has indeed reached the media.
508 This is important for safety if the system crashes or in case of power
509 outage. However, it can be disruptive on laptops using power saving
510 because it forces the system to spin up the drive each time you save a
511 file; the variable @code{write-region-inhibit-fsync} disables this
512 synchronization. This may result in data loss, use with care!
513
514 @menu
515 * Backup:: How Emacs saves the old version of your file.
516 * Interlocking:: How Emacs protects against simultaneous editing
517 of one file by two users.
518 * Shadowing: File Shadowing. Copying files to "shadows" automatically.
519 * Time Stamps:: Emacs can update time stamps on saved files.
520 @end menu
521
522 @node Backup 501 @node Backup
523 @subsection Backup Files 502 @subsection Backup Files
524 @cindex backup file 503 @cindex backup file
525 @vindex make-backup-files 504 @vindex make-backup-files
526 @vindex vc-make-backup-files 505 @vindex vc-make-backup-files
723 making backups. One unfortunate similarity is that these operations 702 making backups. One unfortunate similarity is that these operations
724 typically break hard links, disconnecting the file name you visited from 703 typically break hard links, disconnecting the file name you visited from
725 any alternate names for the same file. This has nothing to do with 704 any alternate names for the same file. This has nothing to do with
726 Emacs---the version control system does it. 705 Emacs---the version control system does it.
727 706
707 @node Customize Save
708 @subsection Customizing Saving of Files
709
710 @vindex require-final-newline
711 If the value of the variable @code{require-final-newline} is
712 @code{t}, saving or writing a file silently puts a newline at the end
713 if there isn't already one there. If the value is @code{visit}, Emacs
714 adds a newline at the end of any file that doesn't have one, just
715 after it visits the file. (This marks the buffer as modified, and you
716 can undo it.) If the value is @code{visit-save}, that means to add
717 newlines both on visiting and on saving. If the value is @code{nil},
718 Emacs leaves the end of the file unchanged; if it's neither @code{nil}
719 nor @code{t}, Emacs asks you whether to add a newline. The default is
720 @code{nil}.
721
722 @vindex mode-require-final-newline
723 Many major modes are designed for specific kinds of files that are
724 always supposed to end in newlines. These major modes set the
725 variable @code{require-final-newline} according to
726 @code{mode-require-final-newline}. By setting the latter variable,
727 you can control how these modes handle final newlines.
728
729 @vindex write-region-inhibit-fsync
730 When Emacs saves a file, it invokes the @code{fsync} system call to
731 force the data immediately out to disk. This is important for safety
732 if the system crashes or in case of power outage. However, it can be
733 disruptive on laptops using power saving, because it requires the disk
734 to spin up each time you save a file. Setting
735 @code{write-region-inhibit-fsync} to a non-@code{nil} value disables
736 this synchronization. Be careful---this means increased risk of data
737 loss.
738
728 @node Interlocking 739 @node Interlocking
729 @subsection Protection against Simultaneous Editing 740 @subsection Protection against Simultaneous Editing
730 741
731 @cindex file dates 742 @cindex file dates
732 @cindex simultaneous editing 743 @cindex simultaneous editing
3006 leaving point unchanged before the contents and the mark after them. 3017 leaving point unchanged before the contents and the mark after them.
3007 3018
3008 @findex write-region 3019 @findex write-region
3009 @kbd{M-x write-region} is the inverse of @kbd{M-x insert-file}; it 3020 @kbd{M-x write-region} is the inverse of @kbd{M-x insert-file}; it
3010 copies the contents of the region into the specified file. @kbd{M-x 3021 copies the contents of the region into the specified file. @kbd{M-x
3011 append-to-file} adds the text of the region to the end of the specified 3022 append-to-file} adds the text of the region to the end of the
3012 file. @xref{Accumulating Text}. 3023 specified file. @xref{Accumulating Text}. The variable
3024 @code{write-region-inhibit-fsync} applies to these commands, as well
3025 as saving files; see @ref{Customize Save}.
3013 3026
3014 @findex delete-file 3027 @findex delete-file
3015 @cindex deletion (of files) 3028 @cindex deletion (of files)
3016 @kbd{M-x delete-file} deletes the specified file, like the @code{rm} 3029 @kbd{M-x delete-file} deletes the specified file, like the @code{rm}
3017 command in the shell. If you are deleting many files in one directory, it 3030 command in the shell. If you are deleting many files in one directory, it