¿Cómo puedo "M-x replace-string" en todos los buffers en emacs?¿Cómo puedo "M-x replace-string" en todos los buffers en emacs?
Respuesta
Mxibuffer
RETtT
Pero es probable que desee ser un poco más restrictiva que, porque va a abortar si no se puede hacer un reemplazo - p.ej encuentra un búfer directo de solo lectura que contiene un nombre de archivo coincidente.
Chm dentro ibuffer a leer la ayuda modo, y aprender cómo marcar fácilmente sólo las memorias intermedias que le interesan
Editar:. una versión no expreg de ibuffer-do-replace-regexp
puede fácilmente escribirse mediante la modificación de la definición original:
;; defines ibuffer-do-replace-string
(define-ibuffer-op replace-string (from-str to-str)
"Perform a `replace-string' in marked buffers."
(:interactive
(let* ((from-str (read-from-minibuffer "Replace string: "))
(to-str (read-from-minibuffer (concat "Replace " from-str
" with: "))))
(list from-str to-str))
:opstring "replaced in"
:complex t
:modifier-p :maybe)
(save-window-excursion
(switch-to-buffer buf)
(save-excursion
(goto-char (point-min))
(let ((case-fold-search ibuffer-case-fold-search))
(while (search-forward from-str nil t)
(replace-match to-str nil t))))
t))
Hay un montón de opciones diferentes, que tipo de depende de cómo desea hacerlo.
Echa un vistazo a Wiki de Emacs para SearchBuffers. De interés sería moccur-edit y carámbanos.
Gracias a Trey por mencionar Icicles buffer searching en este sentido.
Permítanme mencionar también Q (dired-do-query-replace
) en Dired. Muy útil. Y ser conscientes de que se puede marcar fácilmente conjuntos de archivos en Dired utilizando las teclas de este tipo (y hay más):
- % m (
dired-mark-files-regexp
) - Marque los archivos cuyos nombres coincidan con una expresión regular - % g (
dired-mark-files-containing-regexp
) - marque los archivos cuyo texto (contenido) coincida con una expresión regular - *. (
dired-mark-extension
) - Marque los archivos cuyos nombres tienen la misma extensión (por ejemplo,.el
)
Asegúrese de cargar la biblioteca estándar dired-x.el
(y tal vez dired-aux.el
).
Encontré esto en un sitio web hace mucho tiempo, lo siento, no recuerdo la fuente. Si encuentra un búfer de solo lectura, se detendrá, así que tenga cuidado.
Sólo tiene que colocar esto en su .emacs
(defun query-replace-in-open-buffers (arg1 arg2)
"query-replace in open files"
(interactive "sQuery Replace in open Buffers: \nsquery with: ")
(mapcar
(lambda (x)
(find-file x)
(save-excursion
(beginning-of-buffer)
(query-replace arg1 arg2)))
(delq
nil
(mapcar
(lambda (x)
(buffer-file-name x))
(buffer-list)))))
- 1. Emacs líneas truncadas en todos los buffers
- 2. Aplicar una función a todos los buffers en emacs
- 3. Cerrar todos los buffers además del actual en Emacs
- 4. ¿Cómo formatear todos los archivos bajo un directorio en emacs?
- 5. Cómo hacer commit de git en los buffers de Emacs
- 6. vim - ¿cómo cerrar todos los buffers en la pestaña actual?
- 7. Emacs busca y abre múltiples archivos y busca en todos los buffers
- 8. ¿Cómo enumero todos los yanks en emacs?
- 9. pareja windows/buffers juntos en emacs?
- 10. Ejecutar una macro en todos los buffers en vim
- 11. emacs follow-mode en todos los marcos
- 12. Emacs: ¿reabre buffers desde la última sesión en el inicio?
- 13. Comandos Emacs Mx para invocar menús "GUI-style"
- 14. Fijar buffers de Emacs en ventanas (para cscope)
- 15. Emacs buffer-menu: ¿cómo mostrar solo el archivo + dired buffers?
- 16. ¿Cómo habilitar el modo flyspell en emacs para todos los archivos y todos los modos principales?
- 17. vim: buscar sustituir más de todos los buffers de escritura
- 18. ¿Cómo prefiere cambiar entre buffers en Vim?
- 19. emacs quita todos los códigos de color ansi en shells
- 20. ¿Hay alguna forma de cerrar automáticamente los buffers de compleción de nombre de archivo en Emacs?
- 21. Recargar .emacs para todos los búferes activos
- 22. ¿Cómo puedo doblar los bloques # ifdef/# ifndef en Emacs?
- 23. Buffers por tabulación en vim
- 24. ¿Cómo puedo desarrollar para Android en Emacs?
- 25. C++ cout y cin buffers, y buffers en general
- 26. ¿Cómo puedo desactivar todos los eventos táctiles en todos los elementos secundarios de un ViewGroup?
- 27. ¿Cómo puedo encontrar todos los métodos de extensión en solución?
- 28. ¿Cómo puedo registrar todos los correos salientes en Django?
- 29. WPF: ¿cómo puedo centrar todos los artículos en un WrapPanel?
- 30. ¿Cómo puedo acceder a todos los objetos extraíbles en Android?
Gracias, pero esto no parece completamente igual a replace-string. r-s lee \ literalmente, U como regexp-sintaxis. –
Muy cierto, es una función de reexpresión regexp, y no hay una variante de cadena incorporada, por lo que debe tratar con las expresiones regulares, o bien podría definir la función análoga. Añadiré uno a la respuesta. – phils
Además, 'M-x ibuffer RET t Q' hará lo mismo de forma interactiva, dándole la oportunidad de confirmar cada reemplazo. –