Я часто ловлю себя пытается заменить , например , fooс barи barс fooв буфере.
Я обычно делаю это либо:
- 3 запроса-Заменяет:
aaa -> @@@,bbb -> aaa,@@@ -> bbb - отказаться от автоматизации и просто сделать замену вручную
Я предполагаю, что можно заставить что-то работать, используя ,синтаксис, query-replace-regexpчтобы проверить, соответствует ли строка aaaили bbb. Но полученный синтаксис был бы слишком громоздким, поэтому я никогда не пробовал его.
Дело в том, что с учетом того, насколько распространена задача, я думаю, что должен быть лучший, одношаговый, способ сделать это, встроенный или в существующем пакете. Есть?
query-replace, я знаю, что это обычно быстрее, M-% str1 str2чем перемещать точку и делать изменения вручную. Это приятно, потому что мне не нужно тратить время на размышления о том, что будет быстрее, даже если есть только один случай str1. В идеале я хотел бы, чтобы инверсия текста была такой же быстрой, чтобы я мог использовать ее, не задумываясь об этом.
(setq a (prog1 b (setq b a))). И может быть даже проще.
\,(if \1 "b" "a")особенно уродливым (против регулярного выражения \(a\)\|b), но все же слова нужно вводить дважды, если это вас беспокоит.
\(aaa\)\|bbb?