where you can navigate between matches and display them as needed
using the commands described in @ref{Xref Commands}.
+@vindex grep-find-ignored-files @r{(Dired)}
+@vindex vc-directory-exclusion-list @r{(Dired)}
+If any of the marked files are directories, then this command searches
+all of the files in those directories, and any of their
+subdirectories, recursively, except files whose names match
+@code{grep-find-ignored-files} and subdirectories whose names match
+@code{vc-directory-exclusion-list}.
+
@kindex Q @r{(Dired)}
@findex dired-do-find-regexp-and-replace
@cindex search and replace in multiple files (in Dired)
Commands}). In particular, if you exit the query replace loop, you
can use @kbd{r} in that buffer to replace more matches.
@xref{Identifier Search}.
+
+Like with @code{dired-do-find-regexp}, if any of the marked files are
+directories, this command performs replacements in all of the files in
+those directories, and in any of their subdirectories, recursively,
+except for files whose names match @code{grep-find-ignored-files} and
+subdirectories whose names match @code{vc-directory-exclusion-list}.
@end table
@node Shell Commands in Dired
;;;###autoload
(defun dired-do-find-regexp (regexp)
"Find all matches for REGEXP in all marked files.
-For any marked directory, all of its files are searched recursively."
+For any marked directory, all of its files are searched recursively.
+However, files matching `grep-find-ignored-files' and subdirectories
+matching `vc-directory-exclusion-list' are skipped in the marked
+directories.
+
+REGEXP should use constructs supported by your local `grep' command."
(interactive "sSearch marked files (regexp): ")
(require 'grep)
(defvar grep-find-ignored-files)
(defun dired-do-find-regexp-and-replace (from to)
"Replace matches of FROM with TO, in all marked files.
For any marked directory, matches in all of its files are replaced,
-recursively."
+recursively. However, files matching `grep-find-ignored-files'
+and subdirectories matching `vc-directory-exclusion-list' are skipped
+in the marked directories.
+
+REGEXP should use constructs supported by your local `grep' command."
(interactive
(let ((common
(query-replace-read-args
(autoload 'dired-do-find-regexp "dired-aux" "\
Find all matches for REGEXP in all marked files.
For any marked directory, all of its files are searched recursively.
+However, files matching `grep-find-ignored-files' and subdirectories
+matching `vc-directory-exclusion-list' are skipped in the marked
+directories.
+
+REGEXP should use constructs supported by your local `grep' command.
\(fn REGEXP)" t nil)
(autoload 'dired-do-find-regexp-and-replace "dired-aux" "\
Replace matches of FROM with TO, in all marked files.
For any marked directory, matches in all of its files are replaced,
-recursively.
+recursively. However, files matching `grep-find-ignored-files'
+and subdirectories matching `vc-directory-exclusion-list' are skipped
+in the marked directories.
+
+REGEXP should use constructs supported by your local `grep' command.
\(fn FROM TO)" t nil)