Ich versuche häufig, zB foo
durch bar
und bar
mit foo
in einem Puffer zu ersetzen .
Die Art, wie ich es normalerweise mache, ist entweder:
- 3 abfrage ersetzt:
aaa -> @@@
,bbb -> aaa
,@@@ -> bbb
- Geben Sie die Automatisierung auf und tauschen Sie sie einfach von Hand aus
Ich nehme an, dass es möglich ist, mithilfe der ,
Syntax in etwas zum Funktionieren zu bringen, um query-replace-regexp
zu testen, ob die übereinstimmende Zeichenfolge aaa
oder ist bbb
. Aber die resultierende Syntax wäre zu umständlich, so dass ich es nie wirklich ausprobiert habe.
Angesichts der Tatsache, wie häufig eine Aufgabe ist, muss es meiner Meinung nach eine bessere, einstufige Methode geben, die entweder integriert oder in ein vorhandenes Paket integriert ist. Gibt es?
query-replace
weiß ich, dass es normalerweise schneller geht, M-% str1 str2
als den Punkt zu verschieben und die Änderung von Hand vorzunehmen . Es ist schön, weil ich keine Zeit damit verschwenden muss, darüber nachzudenken, was am schnellsten sein wird, auch wenn es nur ein einziges Mal vorkommt str1
. Idealerweise möchte ich, dass die Textumkehrung genauso schnell erfolgt, damit ich sie verwenden kann, ohne auch darüber nachzudenken.
(setq a (prog1 b (setq b a)))
. Und vielleicht gibt es sogar einen einfacheren Weg.
\,(if \1 "b" "a")
besonders hässlich (gegen einen Regexp von \(a\)\|b
), aber trotzdem müssen die Wörter zweimal getippt werden, wenn dich das stört.
\(aaa\)\|bbb
?