@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-2014 Free Software
+@c Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Dired
@chapter Dired, the Directory Editor
@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)}
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)}
@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.
the backup files for deletion: all but the oldest few and newest few
backups of any one file. Normally, the number of newest versions kept
for each file is given by the variable @code{dired-kept-versions}
-(@strong{not} @code{kept-new-versions}; that applies only when
-saving). The number of oldest versions to keep is given by the
-variable @code{kept-old-versions}.
+(@emph{not} @code{kept-new-versions}; that applies only when saving).
+The number of oldest versions to keep is given by the variable
+@code{kept-old-versions}.
Period with a positive numeric argument, as in @kbd{C-u 3 .},
specifies the number of newest versions to keep, overriding
@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)}
@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}
@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
@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.
@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
without having to remove the Dired marks on files in those
subdirectories.
-@xref{Dired Updating}, for how to insert or delete a subdirectory listing.
+@xref{Subdirectories in Dired}, for how to insert a subdirectory
+listing, and @pxref{Dired Updating} for how delete it.
@node Dired Updating
@section Updating the Dired Buffer
@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
asks for confirmation if the number of image files exceeds
@code{image-dired-show-all-from-dir-max-files}.
- With point in the thumbnail buffer, you can type @kbd{RET}
+ With point in the thumbnail buffer, you can type @key{RET}
(@code{image-dired-display-thumbnail-original-image}) to display a
sized version of it in another window. This sizes the image to fit
the window. Use the arrow keys to move around in the buffer. For
-easy browsing, use @kbd{SPC}
+easy browsing, use @key{SPC}
(@code{image-dired-display-next-thumbnail-original}) to advance and
-display the next image. Typing @kbd{DEL}
+display the next image. Typing @key{DEL}
(@code{image-dired-display-previous-thumbnail-original}) backs up to
the previous thumbnail and displays that instead.
@vindex image-dired-external-viewer
To view and the image in its original size, either provide a prefix
-argument (@kbd{C-u}) before pressing @kbd{RET}, or type
+argument (@kbd{C-u}) before pressing @key{RET}, or type
@kbd{C-@key{RET}} (@code{image-dired-thumbnail-display-external}) to
display the image in an external viewer. You must first configure
@code{image-dired-external-viewer}.
a regular expression search. @xref{Repeat Isearch}, for information
about search repetition.
-@cindex Adding to the kill ring in Dired.
+@cindex adding to the kill ring in Dired
@kindex w @r{(Dired)}
@findex dired-copy-filename-as-kill
The command @kbd{w} (@code{dired-copy-filename-as-kill}) puts the
it added to the kill ring, so you can use it to display the list of
currently marked files in the echo area.
+@kindex ( @r{(Dired)}
+@findex dired-hide-details-mode
+@vindex dired-hide-details-hide-symlink-targets
+@vindex dired-hide-details-hide-information-lines
+@cindex hiding details in Dired
+ The command @kbd{(} (@code{dired-hide-details-mode}) toggles whether
+details, such as ownership or file permissions, are visible in the
+current Dired buffer. By default, it also hides the targets of
+symbolic links, and all lines other than the header line and
+file/directory listings. To change this, customize the options
+@code{dired-hide-details-hide-symlink-targets} and
+@code{dired-hide-details-hide-information-lines}, respectively.
+
@cindex Dired and version control
If the directory you are visiting is under version control
(@pxref{Version Control}), then the normal VC diff and log commands