В Emacs есть replace-regexp
который позволяет вам выполнять поиск и замену регулярными выражениями.
Я не знаю ни одного инструмента, который интерактивно просматривает замены, но есть несколько инструментов, которые позволяют вам интерактивно создавать регулярные выражения, используемые для поиска и замены:
Emacs поставляется с re-builder
. M-x re-builder
откроет небольшой буфер, в котором можно построить ваше регулярное выражение. Он будет подсвечивать все совпадения в вашем текущем буфере с каждой группой уникальным цветом. Вот хорошее резюме об этом.
Затем есть re-builder+, который позволяет вам вызывать команду replace с регулярным выражением, которое вы строите. Но замена не является интерактивной.
Последний инструмент, который я знаю, это regex-tool, который дает вам представление с тремя буферами с вашим текстом, вашим регулярным выражением и соответствующими группами.
Эти инструменты не предоставляют всего того, что делает Зло, согласно вашему описанию, но они охватывают то, что я считаю самой сложной частью поиска и замены регулярным выражением.
Если вы хотите запустить его только в области буфера, вы можете использовать C-x n n
для сужения выбранной области (между отметкой и точкой) или C-x n p
для сужения до текущей страницы. А затем C-x n w
снова расширить на весь буфер.