Ich stimme dem Paradigma „Vim ist keine IDE“ zu. Aber es gibt Zeiten, in denen es keine IDE gibt. Folgendes verwende ich in diesen Situationen:
: grep ,: vimgrep ,: Ag ,: Ggrep
Refactoring, das mehr mit regelmäßigen Ersetzungen zu tun hat, verwende ich normalerweise : grep in meinem Projektbaum und zeichne dann ein Makro auf, um den Refactor auszuführen -: g und: s sind keine Denker. Normalerweise kann ich so eine große Anzahl von Dateien mit sehr geringem Aufwand schnell ändern. Ehrlich gesagt verwende ich diese Methode mehr als jede andere.
Abhängig von Ihrem Workflow können die integrierten Befehle langsam / unpraktisch sein. Wenn Sie git verwenden, möchten Sie das hervorragende Fugitive- Plugin und seinen :Ggrep
Befehl verwenden, um nur Dateien zu durchsuchen, die in git eingecheckt sind. Ich mag auch den Silver Searcher wegen seiner Schnelligkeit.
: argdo ,: cdo und: bufdo
: cdo und : argdo sind praktisch, um vim-Befehle über eine Reihe von Dateien auszuführen.
Befehlszeile
Wenn es schwieriger ist, die Liste der Dateien zu ermitteln, die geändert werden müssen, greife :vimgrep
ich auf die Befehlszeile grep / find-Befehle zurück, um die Liste der Dateien, die ich umgestalten muss, genauer zu kuratieren. Speichern Sie die Liste in einer Textdatei und verwenden Sie :e
ein Mashup von Makroaufzeichnungen, um die Änderungen vorzunehmen, die ich vornehmen muss.
Ich finde, je weniger verrostet ich meine Makroaufzeichnungsfähigkeiten behalte, desto nützlicher finde ich Vim für das Refactoring: Wohlfühlen beim Speichern / Wiederherstellen aus Registern, Inkrementieren / Dekrementieren von Registerzählervariablen, Bereinigen / Speichern von Makroaufzeichnungen in Dateien zur späteren Verwendung usw.
Aktualisieren
Seit dem Schreiben dieser weiteren Videocasts für die von mir beschriebenen Methoden wurden sie auf vimcasts.org veröffentlicht (ich empfehle Ihnen, ALLE Vimcasts anzusehen! ). Beachten Sie zum Refactoring die folgenden:
Vimgolf ist auch eine großartige Möglichkeit zum Üben.
Die Allgegenwart von Language Server Protocol-Servern seit ich diese Antwort geschrieben habe, hat Vim (und anderen Editoren) auch einige Refactoring-Funktionen eingebracht. IMO sind sie weit davon entfernt, die Fähigkeit zum Refactoring zu erreichen, die Sie in einer speziell entwickelten IDE sehen würden (ich verwende sie und bevorzuge Coc und ALE). Weitere Antworten auf diese Frage finden Sie unter!