Ich bin kein Vim-Power-User, ich fange gerade erst an, die fortgeschrittenen Bewegungen und Befehle mit Vim zu erfassen. Aber es gibt einen Nachteil, den ich scheinbar nicht umgehen kann.
Ich bin mit grafischen Programmen zum Schreiben von Code aufgewachsen, habe aber erst kürzlich damit begonnen, vim over ssh & screen zu verwenden, um an ziemlich großen Projekten mit vielen Ordnern zu arbeiten.
Ich bin gespannt, was die vim-Master tun, um schnell und einfach mit mehreren Dateien zu arbeiten. Betrachten Sie als Beispiel eine Rails-App. Angenommen, Sie möchten einen Controller so bearbeiten, dass er ausgeführt wird.
vim app/controllers/controller.rb
Aber dann möchten Sie schnell zum Bearbeiten einer Ansicht oder einer Datenbankmigration wechseln. Mein erster Instinkt ist :wq
, zu Bash zurückzukehren, um zu diesem Verzeichnis zu navigieren und vim in einem brandneuen Puffer erneut zu starten.
Das ist offensichtlich völlig falsch.
Ich habe verschiedene Dinge gelernt wie:
- Der Clientserver (aber ich möchte X nicht über ssh verwenden und dies scheint der einzige Weg zu sein)
:e
eine andere Datei durch Surfen zu öffnen, aber ich kann es nicht sehr schnell tun. Tab complete stolpert mich wirklich.- Öffnen eines gesamten Verzeichnisses und Durchsuchen der Puffer.
- NERDTree ist vielversprechend, aber ich möchte mich wirklich von jeder grafischen Darstellung fernhalten, um mich weiterhin zu zwingen, die Befehlszeilennavigation zu beherrschen
Ich entschuldige mich dafür, dass ich naiv bin, aber ich möchte wirklich lernen, wie man es richtig macht, auch wenn es sehr subjektiv ist.
Was sind Ihre Methoden und was würden Sie empfehlen?
rails-type-navigation
in der Dokumentation oder:help rails-type-navigation
wenn Sie habe es installiert).Antworten:
Es ist möglich, vim so einzurichten, dass mehrere Dateien bearbeitet werden, ohne dass das Programm beendet werden muss. Sie verwenden mehrere Puffer und wechseln zwischen diesen. Da Sie vim im Bildschirm verwenden, können Sie Folgendes in Ihr ~ / .vimrc einfügen, um dies zu aktivieren.
Diese Tastenzuordnungen werden den Pfeiltasten Strg-Links und Rechts zugeordnet, um zwischen den Puffern zu wechseln. Die Taste F4 ruft dasselbe Menü auf, das die GUI anzeigen würde. Durch Drücken der Tabulatortaste wird jetzt auch ein kleines Menü zur Auswahl des Abschlusses angezeigt, wenn Sie die Tabulatortaste drücken.
quelle
Hah! Ich war genau wie du, also weiß ich es genau woher du kommst. Selbst jetzt, wo ich bis zu einem gewissen Grad weiß, was ich tue (ich bin kein Vim-Gott, aber ich hoffe, dass ich dorthin komme), mache ich gelegentlich noch ein: wq und kehre zu meiner Shell zurück.
Überprüfen Sie dies heraus - das könnte Ihnen helfen. (Es wird mir auch helfen, da ich nie davon wusste. Das ist das Tolle an Stackexchange-Sites - Sie lernen, indem Sie anderen beim Lernen helfen!)
Hier sind einige Dinge, die ich tue.
Der
:e
Befehl. Wenn Sie eine Datei in vim bearbeiten, können Sie Folgendes tun,:e dir/subdir/otherfile
und sie wird in einem neuen Puffer geöffnet. Dies bedeutet, dass zwei Dateien gleichzeitig geöffnet sind.Ctrl-Shift-6
(Ich kenne die tatsächlichen ASCII-Werte nicht). Wenn zwei Puffer geöffnet sind, können Sie mit diesem Schalter blitzschnell zwischen ihnen wechseln.bd
- Puffer löschen. Hiermit können Sie einen Puffer löschen.Dies ist wirklich sehr, sehr praktisch -
:sh
. Wenn Sie aus irgendeinem Grund zu einer Shell zurückkehren müssen (z. B. um ein Verzeichnis anzusehen und eine Datei zu ändern), können Sie den Shell-Befehl von vim aufrufen, um genau das zu tun. Wenn Sie die Shell verlassen, kehren Sie direkt dorthin zurück, wo Sie sich gerade befanden.In der gleichen Kategorie wie oben
:!
wird dieser Befehl durch Eingabe und einen anschließenden Unix-Befehl ausgeführt. Versuchen Sie dies mitls
. (Ich denke, es funktioniert auch mit Shell-Builtins, bin mir aber nicht sicher.)Das sind die, die ich ständig benutze. Es gibt auch
:n
für die nächste und:p
für die vorherige Datei, da in vim mehr als zwei Puffer gleichzeitig geöffnet sein können (dies mache ich jedoch normalerweise nicht).quelle
:sh
,:e
und die richtige Pufferverwaltung und die Dinge sexyCtrl+Z
sollte der Prozess angehalten werden (fg
von der Shell, um ihn erneut anzuzeigen) - alternativ zu:sh
.Hier fangen Sie an, Plugins zu verwenden . Für die Datei- (oder Puffer-) Verwaltung sind NERD-Baum und MiniBufExplorer gängige Optionen. In Ihrem Fall würde ich " vim ruby ide " googeln und einem der vielen Tutorials folgen, die ich finde. Ich benutze Python und die 3 Befehle in diesem Tutorial konfigurieren alles, was ich brauche, aus Vim heraus.
quelle
Ich würde auch empfehlen, geteilte Fenster zu verwenden, um mehrere Dateien gleichzeitig anzuzeigen. Fügen Sie einige Fähigkeiten mit Puffer- und Fenstermanagement in VIM hinzu, und Sie werden in kürzester Zeit ein VIM-Ninja.
Für die eigentliche Dokumentation verweise ich Sie auf die VIM Windows-Dokumentation , aber ich werde versuchen, Ihnen hier einen Vorsprung zu verschaffen.
Starten Sie VIM mit 2 (oder mehr) horizontal geteilten Fenstern, das obere Fenster hat Datei1, das nächste Fenster hat Datei2 usw.
Starten Sie VIM mit 2 (oder mehr) vertikal geteilten Fenstern. Das Fenster ganz links enthält Datei1, das nächste Fenster enthält Datei2 usw.
Bewegen Sie den Cursor in ein anderes Fenster:
Sie bearbeiten bereits eine Datei, möchten aber das Fenster teilen und auch eine andere Datei bearbeiten:
Für horizontale und vertikale Aufteilung.
Es gibt auch Befehle zum Verschieben, Ändern der Fenstergröße usw.
quelle
Verwenden Sie den Befehl vi: split, um ein zweites Bearbeitungsfenster zu öffnen. split kann sowohl horizontale als auch vertikale Teilungen und mehr als zwei gleichzeitig durchführen. Ich habe bis zu 10 Dateien in derselben vi-Sitzung geöffnet.
quelle