我经常发现自己试图取代如foo
与bar
和bar
与foo
在缓冲区中。
我通常的方式是:
- 3查询-替换:
aaa -> @@@
,bbb -> aaa
,@@@ -> bbb
- 放弃自动化,只需要手工更换
我想可以使用,
语法query-replace-regexp
来测试匹配的字符串是否为aaa
或bbb
。但是产生的语法太麻烦了,所以我从来没有真正尝试过。
问题是,考虑到任务的普遍性,我认为必须有更好的单步执行方式,无论是内置的还是现有的程序包。在那儿?
可能有一个单一步骤,但是您的第一个方法还不错。而且,如果您选择正确的替换字符串,则可以对第二遍进行无查询替换。
—
德鲁
@Drew对于Regular
—
T. Verron
query-replace
,我知道通常M-% str1 str2
比移动点并手动进行更改要快。很好,因为我不必浪费时间思考最快的是什么,即使仅发生一次str1
。理想情况下,我希望文本反转同样快,这样我就可以使用它而无需考虑它。
有人会提供一个简单的答案。毫无疑问,您可以按照自己的要求进行操作,例如,使用Lisp表达式进行替换,引用要替换的文本。例如,使用类似于swap惯用语的东西
—
提请2016年
(setq a (prog1 b (setq b a)))
。甚至可能有一种更简单的方法。
我觉得不是
—
politza
\,(if \1 "b" "a")
特别难看(针对的正则表达式\(a\)\|b
),但是如果打扰您,这些单词仍然必须键入两次。
为什么不
—
politza '16
\(aaa\)\|bbb
呢?