Chcę przepisać części projektu typu open source. Obejmuje to zmiany nazw metod. Jak mogę to zrobić skutecznie w emacach w całym projekcie?
Wolałbym nie używać hacków takich jak wyszukiwanie i zamiana w każdym buforze.
ropemacs.
Chcę przepisać części projektu typu open source. Obejmuje to zmiany nazw metod. Jak mogę to zrobić skutecznie w emacach w całym projekcie?
Wolałbym nie używać hacków takich jak wyszukiwanie i zamiana w każdym buforze.
ropemacs.
Odpowiedzi:
Teraz używam helm-agdo znajdowania wszystkich instancji nazwy funkcji (wyszukiwanie we wszystkich plikach, w tym w podkatalogach, nie tylko w otwartych buforach), a następnie używam C-c C-edo wprowadzenia bufora, który wyświetla wszystkie dopasowania, i tam zmieniam nazwę funkcji. Po C-c C-c (helm-ag--edit-commit)zakończeniu naciskam, aby zapisać zmiany we wszystkich otwartych plikach.
Może to zabrzmieć myląco, ale proszę zobaczyć https://github.com/ShingoFukuyama/helm-swoop
Kiedy będziesz go smucić, będziesz płakać łzami radości, że istnieje taka cudowna funkcjonalność.
Ponieważ nie określono języka, trudno jest podać lepsze odpowiedzi niż „Wyszukaj i zamień”.
Jeśli chcesz (interaktywnie) zastąpić wszystkie wystąpienia symbolu innym, najlepszym rozwiązaniem jest wgrep. Pozwala interaktywnie edytować bufor wyników grep.
M-x package-install RET wgrep.M-x rgrep. Zadaje ci kilka prostych pytań, a następnie przeprowadza rekurencyjne wyszukiwanie wyszukiwanego terminu w określonym katalogu.M-x wgrep-change-to-wgrep-mode. Ten bufor można teraz edytować. Wszelkie wprowadzone tutaj zmiany zostaną odzwierciedlone w samych plikach.replace-regexplub a query-replace-regexpw tym buforze, aby dokonać refaktoryzacji.M-x wgrep-save-all-buffersiM-x wgrep-finish-edit .W przypadku niektórych ogólnych podejść sprawdź „ nagłówek Zamień pliki ” na stronie wyszukiwania Emacs Wiki i zamień: http://www.emacswiki.org/emacs/CategorySearchAndReplace
Zobacz także odpowiedzi na: Używanie Emacsa do rekurencyjnego znajdowania i zastępowania w plikach tekstowych, które nie są jeszcze otwarte .