GNU Emacs: Reemplazar texto en múltiples ficheros

emacs

Una utilidad muy interesante que incorpora el modo “dired” de Emacs

Selección de ficheros

Lo primero es abrir el directorio dónde están los ficheros a modificar. Lo puedes hacer con C-x d o bien con el menú en “File-> Open Directory”.

A continuación puedes mover el cursor sobre la lista de ficheros y marcar (m) o “desmarcar” (u) los ficheros que quieras.

Si quieres seleccionar con comodines, escribe % m y escribe un patrón, por ejemplo, para marcar todos los ficheros que acaban en “html”:

% m html$

Reemplazando

Ahora ejecuta el comando:

M-x dired-do-query-replace-regexp

En su lugar puedes utilizar la opción de menú: “Operate->Query Replace in Files” o simplemente pulsar Q.

Y emacs te pedirá el texto original y el que deseas poner es su lugar. Para cada ocurrencia que encuentre en cada uno de los ficheros marcados, deberás respondes si quieres reemplazar (y/n). Si quieres reemplazar todas pulsa !.

Para guardar los cambios, lo más fácil es:

M-x save-some-buffers

Referencias