Je me retrouve fréquemment à essayer de remplacer par exemple foo
avec bar
et bar
avec foo
dans 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-regexp
pour tester si la chaîne correspondante est aaa
ou 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 str2
que 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
?