Je me retrouve fréquemment à essayer de remplacer par exemple fooavec baret baravec foodans un tampon.
La façon dont je le fais habituellement est soit:
- 3-requête remplace:
aaa -> @@@,bbb -> aaa,@@@ -> bbb - abandonnez l'automatisation et faites simplement le remplacement à la main
Je suppose qu'il est possible de faire fonctionner quelque chose en utilisant la ,syntaxe query-replace-regexppour tester si la chaîne correspondante est aaaou bbb. Mais la syntaxe résultante serait trop lourde, donc je ne l'ai jamais vraiment essayée.
Le fait est que, étant donné la fréquence d'une tâche, je pense qu'il doit y avoir une meilleure façon de procéder en une seule étape, soit intégrée, soit dans un package existant. Y a-t-il?
query-replace, je sais que c'est généralement plus rapide M-% str1 str2que de déplacer le point et de faire le changement à la main. C'est bien, car je n'ai pas à perdre de temps à penser à ce qui sera le plus rapide, même s'il n'y a qu'une seule occurrence de str1. Idéalement, j'aimerais que l'inversion de texte soit tout aussi rapide, afin de pouvoir l'utiliser sans y penser également.
(setq a (prog1 b (setq b a))). Et il peut même y avoir un moyen plus simple.
\,(if \1 "b" "a")particulièrement moche (contre une expression régulière de \(a\)\|b), mais les mots doivent quand même être tapés deux fois, si cela vous dérange.
\(aaa\)\|bbb?