Я хотел бы изменить все вхождения строки (скажем, string1) с другой строкой (скажем, string2) и наоборот. Если быть точным, у меня длинный документ, и эти строки встречаются много раз. В настоящее время я заменяю string1 -> string3, затем string2 -> string1 и, наконец, string3 -> string2.
Мне интересно, если в Emacs уже есть функция, которая делает это. Другие решения приветствуются.
Изменить : Это на самом деле дубликат вопроса, указанного в комментарии. Но проблема в том, что принятый ответ на этот вопрос не всегда работает (см. Комментарий ниже). Я думаю, что лучше подождать, пока автор этого принятого ответа не исправит свой ответ или не появится какое-либо другое решение. Во-вторых, прежде чем опубликовать свой вопрос, я гуглил вопрос, и этот вопрос не появился. Я думаю, что иметь два дублирующих вопроса иногда полезно, так как они используют разные формулировки, и если пользователь найдет дублирующий, он / она сможет найти правильный.
Редактировать 2: приемлемый ответ функции поиска / замены для замены текста теперь, кажется, в порядке.
backwards
и region-noncontiguous-p
) в вызове perform-replace
заставляет его работать здесь (emacs 24.3). Я протестирую его на emacs 25, когда у меня будет повод, прежде чем редактировать другой ответ.