Multi-file Search and Replace in Emacs
Emacs can perform multi-file search and replace in a variety of ways.
This is a simple way to do it:
- Get a Dired-like listing of the files to perform the search on, using one
of these commands:
find-name-dired
, which searches for all the files matching a pattern from a given dirfind-grep-dired
, which searches for a regular expression in all files from a given dir
- Mark all the files using either one of these Dired commands:
% m
and then a regular expression matching the name of the files to perform the search on% g
and then the string/regular expression being searched
- Use
dired-do-query-replace-regexp
to perform the actual search and replace
Thus, for instance:
M-x find-name-dired ~/Sources/rails_app .*\.rb % m .*\.rb M-x dired-do-query-replace-regexp
The Search Across Files section in the Emacs Wiki lists many other options, similar to the one I described above. If you are looking for an approach more similar to the function provided by IDEs, you might want to have a look at Projectile.