Con frecuencia me encuentro tratando de reemplazar, por ejemplo, foo
con bar
y bar
con foo
en un búfer.
La forma en que lo hago generalmente es:
- 3-consulta Reemplaza:
aaa -> @@@
,bbb -> aaa
,@@@ -> bbb
- renunciar a la automatización y simplemente hacer el reemplazo a mano
Supongo que es posible hacer que algo funcione usando la ,
sintaxis query-replace-regexp
para probar si la cadena coincidente es aaa
o bbb
. Pero la sintaxis resultante sería demasiado engorrosa, por lo que nunca lo intenté realmente.
La cuestión es que, dada la frecuencia de la tarea, creo que debe haber una mejor manera de hacerlo en un solo paso, ya sea integrada o en un paquete existente. ¿Esta ahí?
query-replace
, sé que generalmente es más rápido M-% str1 str2
que mover el punto y hacer el cambio a mano. Es bueno, porque no tengo que perder el tiempo pensando en lo que será más rápido, incluso si solo ocurre una vez str1
. Idealmente, me gustaría que la inversión de texto sea igual de rápida, de modo que pueda usarla sin pensarlo también.
(setq a (prog1 b (setq b a)))
. E incluso puede haber una forma más simple.
\,(if \1 "b" "a")
especialmente feo (en contra de una expresión regular de \(a\)\|b
), pero aún así las palabras deben escribirse dos veces, si eso te molesta.
\(aaa\)\|bbb
?