Я хотів би змінити всі входження рядка (скажімо, string1) на інший рядок (скажімо, string2) і навпаки. Якщо бути точним, у мене довгий документ, і ці рядки трапляються багато разів. Що я зараз роблю, це замінити string1 -> string3, потім string2 -> string1 і нарешті string3 -> string2.
Мені цікаво, чи є вже функція в emacs, яка це робить. Інші рішення вітаються.
Редагувати : це фактично дублікат питання, пов’язаний у коментарі. Але проблема полягає в тому, що прийнята відповідь на це питання не завжди працює (див. Коментар нижче). Я думаю, що краще почекати, поки автор тієї прийнятої відповіді виправить свою відповідь чи якесь інше рішення. По-друге, перш ніж публікувати своє запитання, я погукнув це питання, і це питання не з’явилося. Я думаю, що два дублікати питання іноді корисні, оскільки вони використовують різні формулювання, і якщо користувач знайде дублікат, він / вона може знайти правильне.
Редагувати 2: Прийнята відповідь функції пошуку / заміни як для заміни тексту, здається, зараз добре.
backwards
та region-noncontiguous-p
) у виклику perform-replace
змушує це працювати тут (emacs 24.3). Я перевірю його на Emacs 25, коли отримаю привід, перш ніж редагувати іншу відповідь.