Fuente de información: 1
Para usuarios de emacs pro:
- Llame a dired para listar archivos en dir, o llame a find-dired si necesita todos los subdirectorios.
- Marque los archivos que desee. Puede marcar con expresiones regulares escribiendo 【% m】.
- Escriba Q para llamar a dired-do-query-replace-regexp.
- Escriba su regex de búsqueda y reemplace la cadena. 〔☛ patrón de expresión regular de elisp〕
- Para cada aparición, escriba y para reemplazar, n para omitir. Escribe 【Ctrl + g】 para cancelar toda la operación.
- Tipo ! para reemplazar todas las ocurrencias en el archivo actual sin preguntar, N para omitir todos los reemplazos posibles para el resto del archivo actual. (N es solo emacs 23)
- Para hacer el reemplazo en todos los archivos sin más preguntas, escriba Y. (solo Emacs 23)
- Llame a ibuffer para enumerar todos los archivos abiertos. Escriba u * u】 para marcar todos los archivos no guardados, escriba S para guardar todos los archivos marcados, escriba D para cerrarlos todos.
Guía paso a paso para principiantes de Emacs
Seleccionar archivos de destino
Inicie emacs escribiendo "emacs" en el indicador de la interfaz de línea de comandos. (O haga doble clic en el icono de Emacs si se encuentra en un entorno de interfaz gráfica de usuario)
Seleccionar archivos en un directorio
Primero debe seleccionar los archivos que desea reemplazar. Use el menú gráfico 〖Archivo ▸ Abrir directorio〗. Emacs le pedirá una ruta de directorio. Escriba la ruta del directorio, luego presione Entrar.
Ahora, se le mostrará la lista de archivos, y ahora debe marcar los archivos en los que desea que funcione la búsqueda / reemplazo de expresiones regulares. Marque un archivo moviendo el cursor al archivo que desee y luego presione m. Desmarque presionando u. (Para enumerar subdirectorios, mueva el cursor al directorio y presione i. El contenido del subdirectorio aparecerá en la parte inferior.) Para marcar todos los archivos por una expresión regular, escriba 【% m】, luego escriba su patrón de expresión regular. Por ejemplo, si desea marcar todos los archivos HTML, escriba 【% m】 y luego .html $. (Puede encontrar una lista de los comandos de marca en el menú gráfico "Marcar" (este menú aparece cuando está en el modo directo).)
Selección de archivos en un directorio y todos sus subdirectorios
Si desea buscar / reemplazar en archivos dentro de un directorio, incluidos cientos de subdirectorios, aquí hay un método para seleccionar todos estos archivos.
Llame a find-dired. (puede llamar a un comando presionando 【Alt + x】) Luego, escriba un nombre de directorio, ⁖ / Users / mary / myfiles
Nota: si está utilizando emacs en un terminal de texto no gráfico de Unix, y si 【Alt + x】 no funciona, la pulsación de tecla equivalente es 【Esc x】.
Emacs le preguntará con el mensaje "Ejecutar find (con args):". Si necesita reemplazar los archivos HTML, escriba -name "* html". Si no le importa qué tipo de archivo, sino simplemente todos los archivos que se encuentran en ese directorio, escriba "-tipo f".
Ahora, marque los archivos como se describe arriba.
Buscar / reemplazar interactivo
Ahora, está listo para hacer el reemplazo interactivo de búsqueda. Para simplificar, supongamos que solo desea reemplazar la palabra "rápido" por "super". Ahora, llame a dired-do-query-replace-regexp. Le pedirá la cadena de expresiones regulares y la cadena de reemplazo. Escriba "rápido", ingrese, luego "super".
Ahora, emacs usará su patrón y verificará los archivos, y se detendrá y le mostrará cada vez que ocurra una coincidencia. Cuando esto sucede, emacs le avisará, y usted tiene la opción de hacer el cambio o saltear el cambio. Para hacer el cambio, escriba y. Para omitir, escriba n. Si simplemente desea que emacs continúe y realice todos los cambios en el archivo actual, escriba!.
Si desea cancelar toda la operación sin guardar los cambios que haya realizado, escriba 【Ctrl + g】, luego salga de emacs usando el menú 〖Archivo ▸ Salir de Emacs〗.
Guardar los archivos modificados
Ahora, después de pasar por la prueba anterior, hay un paso más que debe hacer, y es guardar los archivos modificados.
Si está utilizando emacs versión 22 o posterior, llame a ibuffer para ingresar al modo de listado de búfer, luego escriba 【* u】 para marcar todos los archivos no guardados, luego escriba S para guardarlos a todos. (eso es shift-s)
Si está utilizando una versión 21 de emacs, puede hacer esto: llamar a los buffers de lista, luego mover el cursor al archivo que desea guardar y escribir s. Marcará el archivo para guardarlo más tarde. Escriba u para desmarcar. Una vez que haya terminado, escriba x para ejecutar el almacenamiento de todos los archivos marcados para guardar. (en emacs, el archivo abierto se llama "búfer". No tenga en cuenta otras cosas allí).
Alternativa a las opciones anteriores, también puede llamar a save-some-buffers 【Ctrl + xs】. Luego, emacs mostrará cada archivo no guardado y le preguntará si desea guardarlo.
Nota: la expresión regular de emacs no es la misma que Perl o Python, pero es similar. Para un resumen y patrones comunes, vea: Emacs Regex.