Emacs Find&Replace on files

Replacing on entiere set of files is hard in Emacs. But I find the correct mumbo-magic procedure, and gifted it to you:

  • Call dired to list files in dir, or call find-dired if you need all sub directories.
  • Mark the files you want. You can mark by regex by typing 【%m】.
  • Type Q to call dired-do-query-replace-regexp.
  • Type your find regex and replace string. (➲ common elisp regex pattern)
  • For each occurrence, type y to replace, n to skip. Type 【Ctrl+g】 to abort the whole operation.
  • Type ! to replace all occurrences in current file without asking, N to skip all possible replacement for rest of the current file. (N is emacs 23 only)
  • To do the replacement on all files without further asking, type Y. (Emacs 23 only)
  • Call ibuffer to list all opened files.
  • Type 【*u】 to mark all unsaved files, type S to save all marked files, type D to close them all.

See this great article for more information

Leave a Reply