]> code.delx.au - gnu-emacs/blobdiff - doc/emacs/dired.texi
* doc/emacs/trouble.texi (Checklist): Mention not replying via news either.
[gnu-emacs] / doc / emacs / dired.texi
index afa4ffee2a793f804970acdda4116299ee7e7ea3..debc751fa44e9e44d89c79043fb67d729cf9d77d 100644 (file)
@@ -1,50 +1,57 @@
 @c This is part of the Emacs manual.
 @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
-@c   2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+@c   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+@c   Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Dired, Calendar/Diary, Rmail, Top
 @chapter Dired, the Directory Editor
+@c This node is referenced in the tutorial.  When renaming or deleting
+@c it, the tutorial needs to be adjusted.
 @cindex Dired
 @cindex file management
 
   Dired makes an Emacs buffer containing a listing of a directory, and
 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 files listed.
+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
-useful, so 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 line); other commands operate on the marked files or on
-the flagged files.  You first mark certain files in order to operate
-on all of them with on command.
+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
+line); other commands operate on the marked files or on the flagged
+files.  You first mark certain files in order to operate on all of
+them with one command.
 
   The Dired-X package provides various extra features for Dired mode.
 @xref{Top, Dired-X,,dired-x, Dired Extra Version 2 User's Manual}.
 
+  You can also view a list of files in a directory with @kbd{C-x C-d}
+(@code{list-directory}).  Unlike Dired, this command does not allow
+you to operate on the listed files.  @xref{Directories}.
+
 @menu
 * Enter: Dired Enter.         How to invoke Dired.
 * Navigation: Dired Navigation.   Special motion commands in the Dired buffer.
 * Deletion: Dired Deletion.   Deleting files with Dired.
 * Flagging Many Files::       Flagging files based on their names.
 * Visit: Dired Visiting.      Other file operations through Dired.
-* Marks vs Flags::           Flagging for deletion vs marking.
-* Operating on Files::       How to copy, rename, print, compress, etc.
-                               either one file or several files.
+* Marks vs Flags::            Flagging for deletion vs marking.
+* Operating on Files::        How to copy, rename, print, compress, etc.
+                                either one file or several files.
 * Shell Commands in Dired::   Running a shell command on the marked files.
 * Transforming File Names::   Using patterns to rename multiple files.
-* Comparison in Dired::              Running `diff' by way of Dired.
+* Comparison in Dired::       Running `diff' by way of Dired.
 * Subdirectories in Dired::   Adding subdirectories to the Dired buffer.
 @ifnottex
 * Subdir Switches::           Subdirectory switches in Dired.
 @end ifnottex
-* Subdirectory Motion::              Moving across subdirectories, and up and down.
+* Subdirectory Motion::       Moving across subdirectories, and up and down.
 * Hiding Subdirectories::     Making subdirectories visible or invisible.
 * Updating: Dired Updating.   Discarding lines for files of no interest.
-* Find: Dired and Find.              Using `find' to choose the files for Dired.
+* Find: Dired and Find.       Using `find' to choose the files for Dired.
 * Wdired::                    Operating on files by editing the Dired buffer.
-* Image-Dired::               Viewing image thumbnails in Dired
+* Image-Dired::               Viewing image thumbnails in Dired.
 * Misc: Misc Dired Features.  Various other features.
 @end menu
 
@@ -54,27 +61,30 @@ on all of them with on command.
 @findex dired
 @kindex C-x d
 @vindex dired-listing-switches
-  To invoke Dired, do @kbd{C-x d} or @kbd{M-x dired}.  The command
-reads a directory name or wildcard file name pattern as a minibuffer
-argument to specify the files to list.  @kbd{C-x C-f} given a
-directory name also invokes Dired.  Where @code{dired} differs from
-@code{list-directory} is that it puts the buffer into Dired mode, so
-that the special commands of Dired are available.
+  To invoke Dired, type @kbd{C-x d} (@code{dired}).  This reads a
+directory name using the minibuffer, and opens a @dfn{Dired buffer}
+listing the files in that directory.  You can also supply a wildcard
+file name pattern as the minibuffer argument, in which case the Dired
+buffer lists all files matching that pattern.  The usual history and
+completion commands can be used in the minibuffer; in particular,
+@kbd{M-n} puts the name of the visited file (if any) in the minibuffer
+(@pxref{Minibuffer History}).
+
+  You can also invoke Dired by giving @kbd{C-x C-f} (@code{find-file})
+a directory name.
 
   The variable @code{dired-listing-switches} specifies the options to
 give to @code{ls} for listing the directory; this string @emph{must}
-contain @samp{-l}.  If you use a numeric prefix argument with the
-@code{dired} command, you can specify the @code{ls} switches with the
-minibuffer before you enter the directory specification.  No matter
-how they are specified, the @code{ls} switches can include short
-options (that is, single characters) requiring no arguments, and long
-options (starting with @samp{--}) whose arguments are specified with
-@samp{=}.
+contain @samp{-l}.  If you use a prefix argument with the @code{dired}
+command, you can specify the @code{ls} switches with the minibuffer
+before you enter the directory specification.  No matter how they are
+specified, the @code{ls} switches can include short options (that is,
+single characters) requiring no arguments, and long options (starting
+with @samp{--}) whose arguments are specified with @samp{=}.
 
   On MS-Windows and MS-DOS systems, Emacs @emph{emulates} @code{ls};
 see @ref{ls in Lisp}, for options and peculiarities of that emulation.
 
-
 @findex dired-other-window
 @kindex C-x 4 d
 @findex dired-other-frame
@@ -96,14 +106,30 @@ the beginning of the line.
 
 @kindex SPC @r{(Dired)}
   For extra convenience, @key{SPC} and @kbd{n} in Dired are equivalent
-to @kbd{C-n}.  @kbd{p} is equivalent to @kbd{C-p}.  (Moving by lines is
-so common in Dired that it deserves to be easy to type.)  @key{DEL}
-(move up and unflag) is often useful simply for moving up.
+to @kbd{C-n}.  @kbd{p} is equivalent to @kbd{C-p}.  (Moving by lines
+is so common in Dired that it deserves to be easy to type.)  @key{DEL}
+(move up and unflag) is also often useful simply for moving up
+(@pxref{Dired Deletion}).
 
 @findex dired-goto-file
 @kindex j @r{(Dired)}
-  @kbd{j} (@code{dired-goto-file}) moves point to the line that
-describes a specified file or directory.
+  @kbd{j} (@code{dired-goto-file}) prompts for a file name using the
+minibuffer, and moves point to the line in the Dired buffer describing
+that file.
+
+@cindex searching Dired buffers
+@vindex dired-isearch-filenames
+  @kbd{M-s f C-s} (@code{dired-isearch-filenames}) performs a forward
+incremental search in the Dired buffer, looking for matches only
+amongst the file names and ignoring the rest of the text in the
+buffer.  @kbd{M-s f M-C-s} (@code{dired-isearch-filenames-regexp})
+does the same, using a regular expression search.  If you change the
+variable @code{dired-isearch-filenames} to @code{t}, then the
+usual search commands also limit themselves to the file names; for
+instance, @kbd{C-s} behaves like @kbd{M-s f C-s}.  If the value is
+@code{dwim}, then search commands match the file names only when point
+was on a file name initially.  @xref{Search}, for information about
+incremental search.
 
   Some additional navigation commands are available when the Dired
 buffer includes several directories.  @xref{Subdirectory Motion}.
@@ -149,14 +175,12 @@ like @kbd{u} with argument @minus{}1.
 
 @kindex x @r{(Dired)}
 @findex dired-do-flagged-delete
-@cindex expunging (Dired)
   To delete the flagged files, type @kbd{x}
-(@code{dired-do-flagged-delete}).  (This is also known as
-@dfn{expunging}.)  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 deletes their
-lines from the text of the Dired buffer.  The Dired buffer, with
-somewhat fewer lines, remains selected.
+(@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
+deletes their lines from the text of the Dired buffer.  The Dired
+buffer, with somewhat fewer lines, remains selected.
 
   If you answer @kbd{no} or quit with @kbd{C-g} when asked to confirm, you
 return immediately to Dired, with the deletion flags still present in
@@ -170,10 +194,21 @@ Dired cannot delete directories that are nonempty.  If the variable
 delete nonempty directories including all their contents.  That can
 be somewhat risky.
 
+@vindex delete-by-moving-to-trash
+  On some systems, there is a facility called the ``Trash'' or
+``Recycle Bin'', but Emacs does @emph{not} use it by default.  Thus,
+when you delete a file in Dired, it is gone forever.  However, you can
+tell Emacs to use the Trash for file deletion, by changing the
+variable @code{delete-by-moving-to-trash} to @code{t}.  @xref{Misc
+File Ops}, for more information about the Trash.
+
 @node Flagging Many Files
 @section Flagging Many Files at Once
 @cindex flagging many files for deletion (in Dired)
 
+  The @kbd{#}, @kbd{~}, @kbd{.}, @kbd{% &}, and @kbd{% d} commands
+flag many files for deletion, based on their file names:
+
 @table @kbd
 @item #
 Flag all auto-save files (files whose names start and end with @samp{#})
@@ -183,59 +218,43 @@ for deletion (@pxref{Auto Save}).
 Flag all backup files (files whose names end with @samp{~}) for deletion
 (@pxref{Backup}).
 
-@item &
-Flag for deletion all files with certain kinds of names which suggest
-you could easily create those files again.
-
 @item .@: @r{(Period)}
 Flag excess numeric backup files for deletion.  The oldest and newest
 few backup files of any one file are exempt; the middle ones are
 flagged.
 
+@item % &
+Flag for deletion all files with certain kinds of names which suggest
+you could easily create those files again.
+
 @item % d @var{regexp} @key{RET}
 Flag for deletion all files whose names match the regular expression
 @var{regexp}.
 @end table
 
-  The @kbd{#}, @kbd{~}, @kbd{&}, and @kbd{.} commands flag many files for
-deletion, based on their file names.  These commands are useful
-precisely because they do not themselves delete any files; you can
-remove the deletion flags from any flagged files that you really wish to
-keep.@refill
-
-@kindex & @r{(Dired)}
-@findex dired-flag-garbage-files
-@vindex dired-garbage-files-regexp
-@cindex deleting some backup files
-  @kbd{&} (@code{dired-flag-garbage-files}) flags files whose names
-match the regular expression specified by the variable
-@code{dired-garbage-files-regexp}.  By default, this matches certain
-files produced by @TeX{}, @samp{.bak} files, and the @samp{.orig} and
-@samp{.rej} files produced by @code{patch}.
-
 @kindex # @r{(Dired)}
 @findex dired-flag-auto-save-files
 @cindex deleting auto-save files
-  @kbd{#} (@code{dired-flag-auto-save-files}) flags for deletion all
-files whose names look like auto-save files---that is, files whose
-names begin and end with @samp{#}.  @xref{Auto Save}.
+  @kbd{#} (@code{dired-flag-auto-save-files}) flags all files whose
+names look like auto-save files---that is, files whose names begin and
+end with @samp{#}.  @xref{Auto Save}.
 
 @kindex ~ @r{(Dired)}
 @findex dired-flag-backup-files
-  @kbd{~} (@code{dired-flag-backup-files}) flags for deletion all
-files whose names say they are backup files---that is, files whose
-names end in @samp{~}.  @xref{Backup}.
+  @kbd{~} (@code{dired-flag-backup-files}) flags all files whose names
+say they are backup files---that is, files whose names end in
+@samp{~}.  @xref{Backup}.
 
 @kindex . @r{(Dired)}
 @vindex dired-kept-versions
 @findex dired-clean-directory
-  @kbd{.} (period, @code{dired-clean-directory}) flags just some of the
-backup files for deletion: all but the oldest few and newest few backups
-of any one file.  Normally @code{dired-kept-versions} (@strong{not}
-@code{kept-new-versions}; that applies only when saving) specifies the
-number of newest versions of each file to keep, and
-@code{kept-old-versions} specifies the number of oldest versions to
-keep.
+  @kbd{.} (period, @code{dired-clean-directory}) flags just some of
+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}.
 
   Period with a positive numeric argument, as in @kbd{C-u 3 .},
 specifies the number of newest versions to keep, overriding
@@ -243,14 +262,24 @@ specifies the number of newest versions to keep, overriding
 @code{kept-old-versions}, using minus the value of the argument to
 specify the number of oldest versions of each file to keep.
 
+@kindex % & @r{(Dired)}
+@findex dired-flag-garbage-files
+@vindex dired-garbage-files-regexp
+@cindex deleting some backup files
+  @kbd{% &} (@code{dired-flag-garbage-files}) flags files whose names
+match the regular expression specified by the variable
+@code{dired-garbage-files-regexp}.  By default, this matches certain
+files produced by @TeX{}, @samp{.bak} files, and the @samp{.orig} and
+@samp{.rej} files produced by @code{patch}.
+
 @findex dired-flag-files-regexp
 @kindex % d @r{(Dired)}
-  The @kbd{% d} command flags all files whose names match a specified
-regular expression (@code{dired-flag-files-regexp}).  Only the
-non-directory part of the file name is used in matching.  You can use
-@samp{^} and @samp{$} to anchor matches.  You can exclude certain
-subdirectories from marking by hiding them while you use @kbd{% d}.
-@xref{Hiding Subdirectories}.
+  @kbd{% d} flags all files whose names match a specified regular
+expression (@code{dired-flag-files-regexp}).  Only the non-directory
+part of the file name is used in matching.  You can use @samp{^} and
+@samp{$} to anchor matches.  You can exclude certain subdirectories
+from marking by hiding them while you use @kbd{% d}.  @xref{Hiding
+Subdirectories}.
 
 @node Dired Visiting
 @section Visiting Files in Dired
@@ -326,7 +355,7 @@ for @file{..} and typing @kbd{f} there.
   Instead of flagging a file with @samp{D}, you can @dfn{mark} the
 file with some other character (usually @samp{*}).  Most Dired
 commands to operate on files use the files marked with @samp{*}.  The
-only command that operates on flagged files is @kbd{x}, which expunges
+only command that operates on flagged files is @kbd{x}, which deletes
 them.
 
   Here are some commands for marking with @samp{*}, for unmarking, and
@@ -706,18 +735,25 @@ more matches.  @xref{Tags Search}.
 @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
-all the specified files.  (@kbd{X} is a synonym for @kbd{!}.)  You can
-specify the files to operate on in the usual ways for Dired commands
-(@pxref{Operating on Files}).
+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 working directory for the shell command is the top-level directory
-of the Dired buffer.
+  The command @kbd{&} (@code{dired-do-async-shell-command}) does the
+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.
 
-  There are two ways of applying a shell command to multiple files:
+  For both @kbd{!} and @kbd{&}, the working directory for the shell
+command is the top-level directory of the Dired buffer.
+
+  If you tell @kbd{!} or @kbd{&} to operate on more than one file, the
+shell command string determines how those files are passed to the
+shell command:
 
 @itemize @bullet
 @item
-If you use @samp{*} surrounded by whitespace in the shell command,
+If you use @samp{*} surrounded by whitespace in the command string,
 then the command runs just once, with the list of file names
 substituted for the @samp{*}.  The order of file names is the order of
 appearance in the Dired buffer.
@@ -727,22 +763,21 @@ list of file names, putting them into one tar file @file{foo.tar}.
 
 If you want to use @samp{*} as a shell wildcard with whitespace around
 it, write @samp{*""}.  In the shell, this is equivalent to @samp{*};
-but since the @samp{*} is not surrounded by whitespace, Dired does
-not treat it specially.
+but since the @samp{*} is not surrounded by whitespace, Dired does not
+treat it specially.
 
 @item
-If the command string doesn't contain @samp{*} surrounded by
-whitespace, then it runs once @emph{for each file}.  Normally the file
-name is added at the end.
-
-For example, @kbd{! uudecode @key{RET}} runs @code{uudecode} on each
-file.
+Otherwise, if the command string contains @samp{?} surrounded by
+whitespace, Emacs runs the shell command once @emph{for each file},
+substituting the current file name for @samp{?} each time.  You can
+use @samp{?} more than once in the command; the same file name
+replaces each occurrence.
 
 @item
-However, if the command string contains @samp{?} surrounded by
-whitespace, the current file name is substituted for @samp{?} (rather
-than added at the end).  You can use @samp{?} this way more than once
-in the command, and the same file name replaces each occurrence.
+If the command string contains neither @samp{*} nor @samp{?}, Emacs
+runs the shell command once for each file, adding the file name is
+added at the end.  For example, @kbd{! uudecode @key{RET}} runs
+@code{uudecode} on each file.
 @end itemize
 
   To iterate over the file names in a more complicated fashion, use an
@@ -754,11 +789,13 @@ name:
 for file in * ; do uuencode "$file" "$file" >"$file".uu; done
 @end example
 
-  The @kbd{!} command does not attempt to update the Dired buffer to
-show new or modified files, because it doesn't understand shell
-commands, and does not know what files the shell command changed.  Use
-the @kbd{g} command to update the Dired buffer (@pxref{Dired
-Updating}).
+  The @kbd{!} and @kbd{&} commands do not attempt to update the Dired
+buffer to show new or modified files, because they don't know what
+files will be changed.  Use the @kbd{g} command to update the Dired
+buffer (@pxref{Dired Updating}).
+
+  @xref{Single Shell}, for information about running shell commands
+outside Dired.
 
 @node Transforming File Names
 @section Transforming File Names in Dired
@@ -915,14 +952,13 @@ If the subdirectory's contents are already present in the buffer, the
 
 In either case, @kbd{i} sets the Emacs mark before moving, so @kbd{C-u
 C-@key{SPC}} takes you back to the old position in the buffer (the line
-describing that subdirectory).
+describing that subdirectory).  You can also use @samp{^} to return
+to the parent directory in the same Dired buffer.
 
 Use the @kbd{l} command (@code{dired-do-redisplay}) to update the
 subdirectory's contents.  Use @kbd{C-u k} on the subdirectory header
-line to delete the subdirectory.  @xref{Dired Updating}.
-
-
-
+line to delete the subdirectory (@pxref{Dired Updating}).  You can also
+hide and show inserted subdirectories (@pxref{Hiding Subdirectories}).
 
 @ifnottex
 @include dired-xtra.texi
@@ -981,8 +1017,9 @@ Move down to the next directory-file line (@code{dired-prev-dirline}).
 
 @node Hiding Subdirectories
 @section Hiding Subdirectories
+@cindex hiding subdirectories (Dired)
+@cindex showing hidden subdirectories (Dired)
 
-@cindex hiding in Dired (Dired)
   @dfn{Hiding} a subdirectory means to make it invisible, except for its
 header line.
 
@@ -990,9 +1027,9 @@ header line.
 @item $
 @findex dired-hide-subdir
 @kindex $ @r{(Dired)}
-Hide or reveal the subdirectory that point is in, and move point to the
-next subdirectory (@code{dired-hide-subdir}).  A numeric argument serves
-as a repeat count.
+Hide or show the subdirectory that point is in, and move point to the
+next subdirectory (@code{dired-hide-subdir}).  This is a toggle.  A
+numeric argument serves as a repeat count.
 
 @item M-$
 @findex dired-hide-all
@@ -1011,6 +1048,8 @@ can use hiding to temporarily exclude subdirectories from operations
 without having to remove the Dired marks on files in those
 subdirectories.
 
+@xref{Dired Updating}, for how to insert or delete a subdirectory listing.
+
 @node Dired Updating
 @section Updating the Dired Buffer
 @cindex updating Dired buffer
@@ -1060,6 +1099,15 @@ then updating their lines in the buffer to indicate that status.
   If you use @kbd{l} on a subdirectory header line, it updates the
 contents of the corresponding subdirectory.
 
+@vindex dired-auto-revert-buffer
+  If you use @kbd{C-x d} or some other Dired command to visit a
+directory that is already being shown in a Dired buffer, Dired
+switches to that buffer but does not update it.  If the buffer is not
+up-to-date, Dired displays a warning telling you to type @key{g} to
+update it.  You can also tell Emacs to revert each Dired buffer
+automatically when you revisit it, by setting the variable
+@code{dired-auto-revert-buffer} to a non-@code{nil} value.
+
 @kindex k @r{(Dired)}
 @findex dired-do-kill-lines
   To delete the specified @emph{file lines} from the buffer---not
@@ -1096,7 +1144,7 @@ indicates which way it is currently sorted---by name, or by date.
 @cindex @code{find} and Dired
 
   You can select a set of files for display in a Dired buffer more
-flexibly by using the @code{find} utility to choose the files.
+flexibly by using the @command{find} utility to choose the files.
 
 @findex find-name-dired
   To search for files with names matching a wildcard pattern use
@@ -1110,21 +1158,22 @@ ordinary Dired commands are available.
 @findex find-grep-dired
   If you want to test the contents of files, rather than their names,
 use @kbd{M-x find-grep-dired}.  This command reads two minibuffer
-arguments, @var{directory} and @var{regexp}; it chooses all the files in
-@var{directory} or its subdirectories that contain a match for
-@var{regexp}.  It works by running the programs @code{find} and
-@code{grep}.  See also @kbd{M-x grep-find}, in @ref{Grep Searching}.
-Remember to write the regular expression for @code{grep}, not for Emacs.
-(An alternative method of showing files whose contents match a given
-regexp is the @kbd{% g @var{regexp}} command, see @ref{Marks vs Flags}.)
+arguments, @var{directory} and @var{regexp}; it chooses all the files
+in @var{directory} or its subdirectories that contain a match for
+@var{regexp}.  It works by running the programs @command{find} and
+@command{grep}.  See also @kbd{M-x grep-find}, in @ref{Grep
+Searching}.  Remember to write the regular expression for
+@command{grep}, not for Emacs.  (An alternative method of showing
+files whose contents match a given regexp is the @kbd{% g
+@var{regexp}} command, see @ref{Marks vs Flags}.)
 
 @findex find-dired
-  The most general command in this series is @kbd{M-x find-dired}, which
-lets you specify any condition that @code{find} can test.  It takes two
-minibuffer arguments, @var{directory} and @var{find-args}; it runs
-@code{find} in @var{directory}, passing @var{find-args} to tell
-@code{find} what condition to test.  To use this command, you need to
-know how to use @code{find}.
+  The most general command in this series is @kbd{M-x find-dired},
+which lets you specify any condition that @command{find} can test.  It
+takes two minibuffer arguments, @var{directory} and @var{find-args};
+it runs @command{find} in @var{directory}, passing @var{find-args} to
+tell @command{find} what condition to test.  To use this command, you
+need to know how to use @command{find}.
 
 @vindex find-ls-option
   The format of listing produced by these commands is controlled by the
@@ -1137,7 +1186,7 @@ may need to change the value of this variable.
 @cindex file database (locate)
 @vindex locate-command
   The command @kbd{M-x locate} provides a similar interface to the
-@code{locate} program.  @kbd{M-x locate-with-filter} is similar, but
+@command{locate} program.  @kbd{M-x locate-with-filter} is similar, but
 keeps only files whose names match a given regular expression.
 
   These buffers don't work entirely like ordinary Dired buffers: file
@@ -1152,9 +1201,9 @@ 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} or @kbd{M-x
-wdired-change-to-wdired-mode} while in a Dired buffer.  Alternatively,
-use @samp{Edit File Names} in the @samp{Immediate} menu bar menu.
+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.
 
 @findex wdired-finish-edit
   While in Wdired mode, you can rename files by editing the file names
@@ -1231,8 +1280,8 @@ file configured by @code{image-dired-db-file}.
 
   To tag image files, mark them in the dired buffer (you can also mark
 files in Dired from the thumbnail buffer by typing @kbd{m}) and type
-@kbd{C-t t} (@code{image-dired-tag-files}).  You will be prompted for
-a tag.  To mark files having a certain tag, type @kbd{C-t f}
+@kbd{C-t t} (@code{image-dired-tag-files}).  This reads the tag name
+in the minibuffer.  To mark files having a certain tag, type @kbd{C-t f}
 (@code{image-dired-mark-tagged-files}).  After marking image files
 with a certain tag, you can use @kbd{C-t d} to view them.
 
@@ -1255,16 +1304,27 @@ rotation is lossless, and uses an external utility called JpegTRAN.
 
 @kindex + @r{(Dired)}
 @findex dired-create-directory
-  An unusual Dired file-operation command is @kbd{+}
-(@code{dired-create-directory}).  This command reads a directory name,
-and creates the directory if it does not already exist.
+  The command @kbd{+} (@code{dired-create-directory}) reads a
+directory name, and creates the directory if it does not already
+exist.
+
+@cindex searching multiple files via Dired
+  The command @kbd{M-s a C-s} (@code{dired-do-isearch}) begins a
+``multi-file'' incremental search on the marked files.  If a search
+fails at the end of a file, typing @kbd{C-s} advances to the next
+marked file and repeats the search; at the end of the last marked
+file, the search wraps around to the first marked file.  The command
+@kbd{M-s a M-C-s} (@code{dired-do-isearch-regexp}) does the same with
+a regular expression search.  @xref{Repeat Isearch}, for information
+about search repetition.
 
 @cindex Adding to the kill ring in Dired.
 @kindex w @r{(Dired)}
 @findex dired-copy-filename-as-kill
-  The @kbd{w} command (@code{dired-copy-filename-as-kill}) puts the
+  The command @kbd{w} (@code{dired-copy-filename-as-kill}) puts the
 names of the marked (or next @var{n}) files into the kill ring, as if
-you had killed them with @kbd{C-w}.  The names are separated by a space.
+you had killed them with @kbd{C-w}.  The names are separated by a
+space.
 
   With a zero prefix argument, this uses the absolute file name of
 each marked file.  With just @kbd{C-u} as the prefix argument, it uses
@@ -1279,6 +1339,11 @@ names into arguments for other Emacs commands.  It also displays what
 it added to the kill ring, so you can use it to display the list of
 currently marked files in the echo area.
 
+@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
+will operate on the selected files.
+
 @findex dired-compare-directories
   The command @kbd{M-x dired-compare-directories} is used to compare
 the current Dired buffer with another directory.  It marks all the files