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.
refactoring
The Unfun Cat
źródło
źródło
ropemacs
.Odpowiedzi:
Teraz używam
helm-ag
do znajdowania wszystkich instancji nazwy funkcji (wyszukiwanie we wszystkich plikach, w tym w podkatalogach, nie tylko w otwartych buforach), a następnie używamC-c C-e
do wprowadzenia bufora, który wyświetla wszystkie dopasowania, i tam zmieniam nazwę funkcji. PoC-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ść.
źródło
Ponieważ nie określono języka, trudno jest podać lepsze odpowiedzi niż „Wyszukaj i zamień”.
Korzystanie wgrep
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-regexp
lub aquery-replace-regexp
w tym buforze, aby dokonać refaktoryzacji.M-x wgrep-save-all-buffers
iM-x wgrep-finish-edit
.źródło
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 .
źródło
Możesz użyć,
counsel-rg
a następnie, C-c C-oaby uzyskać listę wszystkich kandydatów w buforze. Naciśnij, waby edytować je za pomocąwgrep
. Polecamiedit
do zmiany nazw symboli. naciśnijC-c C-c aby zatwierdzić.Zależności:
counsel
,wgrep
,iedit
Są na MELPAźródło