]> code.delx.au - gnu-emacs/blobdiff - doc/emacs/dired.texi
Merge from emacs-24; up to 2012-12-08T12:11:29Z!eliz@gnu.org
[gnu-emacs] / doc / emacs / dired.texi
index 7dd290939fe6c1e31f87a3d5b597313bacfca439..f4ca6c30a5a25a627e6a48c4f0560e4f52fc344d 100644 (file)
@@ -1,6 +1,6 @@
 @c This is part of the Emacs manual.
-@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012
-@c   Free Software Foundation, Inc.
+@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2013 Free Software
+@c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Dired
 @chapter Dired, the Directory Editor
@@ -14,7 +14,7 @@ optionally some of its subdirectories as well.  You can use the normal
 Emacs commands to move around in this buffer, and special Dired
 commands to operate on the listed files.
 
-    The Dired buffer is ``read-only,'' and inserting text in it is not
+    The Dired buffer is ``read-only'', and inserting text in it is not
 allowed.  Ordinary printing characters such as @kbd{d} and @kbd{x} are
 redefined for special Dired commands.  Some Dired commands @dfn{mark}
 or @dfn{flag} the @dfn{current file} (that is, the file on the current
@@ -104,7 +104,7 @@ use the @samp{--dired} option.
 @findex dired-other-frame
 @kindex C-x 5 d
   To display the Dired buffer in another window, use @kbd{C-x 4 d}
-(@code{dired-other-window}) instead of @kbd{C-x d}.  @kbd{C-x 5 d}
+(@code{dired-other-window}).  @kbd{C-x 5 d}
 (@code{dired-other-frame}) displays the Dired buffer in a separate
 frame.
 
@@ -167,13 +167,14 @@ deletion, then delete the files that were flagged.
 
 @table @kbd
 @item d
-Flag this file for deletion.
+Flag this file for deletion (@code{dired-flag-file-deletion}).
 @item u
-Remove deletion flag on this line.
+Remove the deletion flag (@code{dired-unmark}).
 @item @key{DEL}
-Move point to previous line and remove the deletion flag on that line.
+Move point to previous line and remove the deletion flag on that line
+(@code{dired-unmark-backward}).
 @item x
-Delete the files that are flagged for deletion.
+Delete files flagged for deletion (@code{dired-do-flagged-delete}).
 @end table
 
 @kindex d @r{(Dired)}
@@ -182,8 +183,12 @@ Delete the files that are flagged for deletion.
 the file and typing @kbd{d} (@code{dired-flag-file-deletion}).  The
 deletion flag is visible as a @samp{D} at the beginning of the line.
 This command moves point to the next line, so that repeated @kbd{d}
-commands flag successive files.  A numeric argument serves as a repeat
-count.
+commands flag successive files.  A numeric prefix argument serves as a
+repeat count; a negative count means to flag preceding files.
+
+  If the region is active, the @kbd{d} command flags all files in the
+region for deletion; in this case, the command does not move point,
+and ignores any prefix argument.
 
 @kindex u @r{(Dired deletion)}
 @kindex DEL @r{(Dired)}
@@ -194,14 +199,17 @@ can remove deletion flags using the commands @kbd{u} and @key{DEL}.
 @kbd{u} (@code{dired-unmark}) works just like @kbd{d}, but removes
 flags rather than making flags.  @key{DEL}
 (@code{dired-unmark-backward}) moves upward, removing flags; it is
-like @kbd{u} with argument @minus{}1.
+like @kbd{u} with argument @minus{}1.  A numeric prefix argument to
+either command serves as a repeat count, with a negative count meaning
+to unflag in the opposite direction.  If the region is active, these
+commands instead unflag all files in the region, without moving point.
 
 @kindex x @r{(Dired)}
 @findex dired-do-flagged-delete
-  To delete the flagged files, type @kbd{x}
-(@code{dired-do-flagged-delete}).  This command first displays a list
-of all the file names flagged for deletion, and requests confirmation
-with @kbd{yes}.  If you confirm, Dired deletes the flagged files, then
+  To delete flagged files, type @kbd{x}
+(@code{dired-do-flagged-delete}).  This command displays a list of all
+the file names flagged for deletion, and requests confirmation with
+@kbd{yes}.  If you confirm, Dired deletes the flagged files, then
 deletes their lines from the text of the Dired buffer.  The Dired
 buffer, with somewhat fewer lines, remains selected.
 
@@ -387,10 +395,11 @@ and unflag files.)
 @kindex m @r{(Dired)}
 @kindex * m @r{(Dired)}
 @findex dired-mark
-Mark the current file with @samp{*} (@code{dired-mark}).  With a numeric
-argument @var{n}, mark the next @var{n} files starting with the current
-file.  (If @var{n} is negative, mark the previous @minus{}@var{n}
-files.)
+Mark the current file with @samp{*} (@code{dired-mark}).  If the
+region is active, mark all files in the region instead; otherwise, if
+a numeric argument @var{n} is supplied, mark the next @var{n} files
+instead, starting with the current file (if @var{n} is negative, mark
+the previous @minus{}@var{n} files).
 
 @item * *
 @kindex * * @r{(Dired)}
@@ -426,7 +435,11 @@ and @file{..} (@code{dired-mark-subdir-files}).
 @kindex u @r{(Dired)}
 @kindex * u @r{(Dired)}
 @findex dired-unmark
-Remove any mark on this line (@code{dired-unmark}).
+Remove any mark on this line (@code{dired-unmark}).  If the region is
+active, unmark all files in the region instead; otherwise, if a
+numeric argument @var{n} is supplied, unmark the next @var{n} files
+instead, starting with the current file (if @var{n} is negative,
+unmark the previous @minus{}@var{n} files).
 
 @item @key{DEL}
 @itemx * @key{DEL}
@@ -434,7 +447,11 @@ Remove any mark on this line (@code{dired-unmark}).
 @findex dired-unmark-backward
 @cindex unmarking files (in Dired)
 Move point to previous line and remove any mark on that line
-(@code{dired-unmark-backward}).
+(@code{dired-unmark-backward}).  If the region is active, unmark all
+files in the region instead; otherwise, if a numeric argument @var{n}
+is supplied, unmark the @var{n} preceding files instead, starting with
+the current file (if @var{n} is negative, unmark the next
+@minus{}@var{n} files).
 
 @item * !
 @itemx U
@@ -610,7 +627,7 @@ the copy, like @samp{cp -p}.
 @cindex recursive copying
 The variable @code{dired-recursive-copies} controls whether to copy
 directories recursively (like @samp{cp -r}).  The default is
-@code{nil}, which means that directories cannot be copied.
+@code{top}, which means to ask before recursively copying a directory.
 
 @item D
 @findex dired-do-delete
@@ -782,15 +799,20 @@ more matches.  @xref{Tags Search}.
 @kindex ! @r{(Dired)}
 @kindex X @r{(Dired)}
 The Dired command @kbd{!} (@code{dired-do-shell-command}) reads a
-shell command string in the minibuffer and runs that shell command on
+shell command string in the minibuffer, and runs that shell command on
 one or more files.  The files that the shell command operates on are
 determined in the usual way for Dired commands (@pxref{Operating on
 Files}).  The command @kbd{X} is a synonym for @kbd{!}.
 
   The command @kbd{&} (@code{dired-do-async-shell-command}) does the
-same, except that it runs the shell command asynchronously.  You can
+same, except that it runs the shell command asynchronously.  (You can
 also do this with @kbd{!}, by appending a @samp{&} character to the
-end of the shell command.
+end of the shell command.)  When the command operates on more than one
+file, it runs multiple parallel copies of the specified shell command,
+one for each file.  As an exception, if the specified shell command
+ends in @samp{;} or @samp{;&}, the shell command is run in the
+background on each file sequentially; Emacs waits for each invoked
+shell command to terminate before running the next one.
 
   For both @kbd{!} and @kbd{&}, the working directory for the shell
 command is the top-level directory of the Dired buffer.
@@ -936,32 +958,19 @@ default.
 @cindex file comparison (in Dired)
 @cindex compare files (in Dired)
 
-  Here are two Dired commands that compare specified files using
-@code{diff}.  They show the output in a buffer using Diff mode
-(@pxref{Comparing Files}).
-
-@table @kbd
-@item =
 @findex dired-diff
 @kindex = @r{(Dired)}
-Compare the current file (the file at point) with another file (the
-file at the mark) using the @code{diff} program (@code{dired-diff}).
-The file at the mark is the first argument of @code{diff}, and the
-file at point is the second argument.  This refers to the ordinary
-Emacs mark, not Dired marks; use @kbd{C-@key{SPC}}
-(@code{set-mark-command}) to set the mark at the first file's line
-(@pxref{Setting Mark}).
-
-@findex dired-backup-diff
-@kindex M-= @r{(Dired)}
-@item M-=
-Compare the current file with its latest backup file
-(@code{dired-backup-diff}).  If the current file is itself a backup,
-compare it with the file it is a backup of; this way, you can compare
-a file with any one of its backups.
-
-The backup file is the first file given to @code{diff}.
-@end table
+  The @kbd{=} (@code{dired-diff}) command compares the current file
+(the file at point) with another file (read using the minibuffer)
+using the @command{diff} program.  The file specified with the
+minibuffer is the first argument of @command{diff}, and file at point
+is the second argument.  The output of the @command{diff} program is
+shown in a buffer using Diff mode (@pxref{Comparing Files}).
+
+  If the region is active, the default for the file read using the
+minibuffer is the file at the mark (i.e., the ordinary Emacs mark,
+not a Dired mark; @pxref{Setting Mark}).  Otherwise, if the file at
+point has a backup file (@pxref{Backup}), that is the default.
 
 @node Subdirectories in Dired
 @section Subdirectories in Dired
@@ -1161,17 +1170,17 @@ automatically when you revisit it, by setting the variable
 
 @kindex k @r{(Dired)}
 @findex dired-do-kill-lines
-  To delete the specified @emph{file lines} from the buffer---not
-delete the files---type @kbd{k} (@code{dired-do-kill-lines}).  Like
+  To delete @emph{file lines} from the buffer---without actually
+deleting the files---type @kbd{k} (@code{dired-do-kill-lines}).  Like
 the file-operating commands, this command operates on the next @var{n}
-files, or on the marked files if any; but it does not operate on the
-current file as a last resort.
+files, or on the marked files if any.  However, it does not operate on
+the current file, since otherwise mistyping @kbd{k} could be annoying.
 
-  If you use @kbd{k} with a numeric prefix argument to kill the line
-for a file that is a directory, which you have inserted in the Dired
-buffer as a subdirectory, it removed that subdirectory line from the
-buffer as well.  Typing @kbd{C-u k} on the header line for a
-subdirectory also removes the subdirectory line from the Dired buffer.
+  If you use @kbd{k} to kill the line for a directory file which you
+had inserted in the Dired buffer as a subdirectory
+(@pxref{Subdirectories in Dired}), it removes the subdirectory listing
+as well.  Typing @kbd{C-u k} on the header line for a subdirectory
+also removes the subdirectory line from the Dired buffer.
 
   The @kbd{g} command brings back any individual lines that you have
 killed in this way, but not subdirectories---you must use @kbd{i} to
@@ -1252,7 +1261,7 @@ and erases all flags and marks.
 @findex wdired-change-to-wdired-mode
   Wdired is a special mode that allows you to perform file operations
 by editing the Dired buffer directly (the ``W'' in ``Wdired'' stands
-for ``writable.'')  To enter Wdired mode, type @kbd{C-x C-q}
+for ``writable''.)  To enter Wdired mode, type @kbd{C-x C-q}
 (@code{dired-toggle-read-only}) while in a Dired buffer.
 Alternatively, use the @samp{Immediate / Edit File Names} menu item.
 
@@ -1297,7 +1306,7 @@ buffer containing image-dired, corresponding to the marked files.
   You can also enter Image-Dired directly by typing @kbd{M-x
 image-dired}.  This prompts for a directory; specify one that has
 image files.  This creates thumbnails for all the images in that
-directory, and displays them all in the ``thumbnail buffer.''  This
+directory, and displays them all in the ``thumbnail buffer''.  This
 takes a long time if the directory contains many image files, and it
 asks for confirmation if the number of image files exceeds
 @code{image-dired-show-all-from-dir-max-files}.
@@ -1408,7 +1417,7 @@ the current buffer.
 
   The default comparison method (used if you type @key{RET} at the
 prompt) is to compare just the file names---each file name that does
-not appear in the other directory is ``different.''  You can specify
+not appear in the other directory is ``different''.  You can specify
 more stringent comparisons by entering a Lisp expression, which can
 refer to the variables @code{size1} and @code{size2}, the respective
 file sizes; @code{mtime1} and @code{mtime2}, the last modification
@@ -1416,7 +1425,7 @@ times in seconds, as floating point numbers; and @code{fa1} and
 @code{fa2}, the respective file attribute lists (as returned by the
 function @code{file-attributes}).  This expression is evaluated for
 each pair of like-named files, and if the expression's value is
-non-@code{nil}, those files are considered ``different.''
+non-@code{nil}, those files are considered ``different''.
 
   For instance, the sequence @code{M-x dired-compare-directories
 @key{RET} (> mtime1 mtime2) @key{RET}} marks files newer in this