Chciałbym zmienić wszystkie wystąpienia ciągu (powiedzmy string1) na inny ciąg (powiedzmy string2) i odwrotnie. Mówiąc dokładniej, mam długi dokument i ciągi te występują wiele razy. To, co obecnie robię, to zamiana string1 -> string3, następnie string2 -> string1 i wreszcie string3 -> string2.
Zastanawiam się, czy w emacsie jest już funkcja, która to robi. Inne rozwiązania są mile widziane.
Edycja : W rzeczywistości jest to duplikat pytania połączonego w komentarzu. Problem polega jednak na tym, że zaakceptowana odpowiedź na to pytanie nie zawsze działa (patrz komentarz poniżej). Myślę, że lepiej poczekać, aż autor tej zaakceptowanej odpowiedzi poprawi swoją odpowiedź lub wyjdzie jakieś inne rozwiązanie. Po drugie, zanim opublikowałem moje pytanie, przeszukałem go i to pytanie się nie pojawiło. Wydaje mi się, że posiadanie dwóch zduplikowanych pytań jest czasem przydatne, ponieważ używają innego sformułowania, a jeśli użytkownik znajdzie duplikat, może znaleźć właściwe.
Edycja 2: Wydaje się, że akceptowana odpowiedź funkcji wyszukiwania / zamiany na zamianę tekstu jest teraz w porządku.
backwards
i region-noncontiguous-p
) w wywołaniu perform-replace
sprawia, że tutaj działa (emacs 24.3). Przetestuję to na emacs 25, kiedy dostanę okazję przed edycją drugiej odpowiedzi.