Zgadzam się z paradygmatem „Vim nie jest IDE”. Ale są chwile, kiedy nie ma IDE. Oto, czego używam w takich sytuacjach:
: grep,: vimgrep,: Ag,: Ggrep
Refaktoryzacja, która ma więcej wspólnego z regularnymi zamianami, zwykle używam : grep w moim drzewie projektu, a następnie nagrywam makro, aby wykonać refaktor -: g i: s nie wymagają myślenia. Zwykle pozwala mi to szybko zmodyfikować dużą liczbę plików przy niewielkim wysiłku. Szczerze mówiąc, używam tej metody częściej niż innych.
W zależności od przepływu pracy wbudowane polecenia mogą być powolne / niewygodne. Jeśli używasz git, będziesz chciał użyć doskonałej wtyczki Fugitive i jej :Ggrep
polecenia do wyszukiwania tylko plików sprawdzonych w git. Podoba mi się też Silver Searcher za jego szybkość.
: argdo,: cdo oraz: bufdo
: cdo i : argdo są przydatne do wykonywania poleceń vima na zestawie plików.
wiersz poleceń
Kiedy trudniej jest określić listę plików, które wymagają zmian, korzystam :vimgrep
z polecenia grep / find w wierszu poleceń, aby dokładniej określić listę plików, które muszę refaktoryzować. Zapisz listę w pliku tekstowym i użyj :e
oraz zestawu nagrań makr, aby wprowadzić zmiany, które muszę wprowadzić.
Uważam, że im mniej zardzewiałe zachowuję moje umiejętności nagrywania makr, tym bardziej przydatne są dla mnie Vim do refaktoryzacji: czuję się komfortowo zapisując / przywracając z rejestrów, zwiększając / zmniejszając zmienne liczników rejestrów, czyszcząc / zapisując nagrania makr do pliku do późniejszego wykorzystania itp.
Aktualizacja
Od czasu napisania tego artykułu więcej wideokastów dotyczących metod, które opisuję, zostało opublikowanych na vimcasts.org (zachęcam do obejrzenia WSZYSTKICH Vimcastów! ). W przypadku refaktoryzacji obejrzyj te:
Vimgolf to także świetny sposób na ćwiczenie.
Wszechobecność serwerów Language Server Protocol, odkąd napisałem tę odpowiedź, przyniosła również Vimowi (i innym edytorom) pewne możliwości refaktoryzacji. IMO są dalekie od zrównania możliwości refaktoryzacji, które można zobaczyć w specjalnie zbudowanym IDE (używam ich, a wolę coc i ALE). Zobacz inne odpowiedzi na to pytanie, aby uzyskać więcej informacji!