Frage Wie effektiv mit mehreren Dateien in Vim arbeiten?


Ich benutze Vim, um Perl-Skripte zu entwickeln, und fange an, es sehr mächtig zu finden.

Eine Sache, die ich mag, ist in der Lage zu sein, mehrere Dateien auf einmal mit z. vi main.pl maintenance.pl und dann hüpfe zwischen ihnen mit:

:n
:prev

und sehen, mit welcher Datei es geöffnet ist

:args

Und um eine Datei hinzuzufügen, kann ich sagen:

:n test.pl

was ich erwarte wäre dann zu meiner Liste von Dateien HINZUGEFÜGT, aber stattdessen löscht es meine aktuelle Dateiliste und wenn ich tippe :args Ich habe nur test.pl öffnen.

Wie kann ich Dateien zu meiner Liste hinzufügen und entfernen?


969
2017-09-10 09:03


Ursprung


Antworten:


Warum nicht Tabs verwenden (eingeführt in Vim 7)? Sie können zwischen Tabs mit wechseln :tabn und :tabp, Mit :tabe <filepath> Sie können eine neue Registerkarte hinzufügen. und mit einem regelmäßigen :q oder :wq Sie schließen einen Tab. Wenn Sie eine Karte erstellen :tabn und :tabp zu deinem F7/F8 Mit den Tasten können Sie ganz einfach zwischen Dateien wechseln.

Wenn es nicht so viele Dateien gibt oder Sie nicht über Vim 7 verfügen, können Sie Ihren Bildschirm auch in mehrere Dateien aufteilen: :sp <filepath>. Dann können Sie zwischen Splitscreens mit wechseln Strg+W und dann eine Pfeiltaste in die Richtung, die Sie verschieben möchten (oder anstelle der Pfeiltasten w für nächstes und W für vorherigen Splitscreen)


1052
2017-09-10 09:09



Auflistung

Um eine Liste der aktuellen Puffer zu sehen, verwende ich:

:ls

Öffnung

Um eine neue Datei zu öffnen, benutze ich

:e ../myFile.pl

mit verbesserter Tab-Vervollständigung (Put set wildmenu in deinem .vimrc).

Hinweis: Sie können auch verwenden :find Das wird eine Reihe von Pfaden für Sie suchen, aber Sie müssen diese Pfade zuerst anpassen.


Umschalten

Um zwischen allen geöffneten Dateien zu wechseln, verwende ich

:b myfile

mit verbesserter Tab-Vervollständigung (immer noch set wildmenu).

Hinweis: :b# wählt die zuletzt besuchte Datei aus, damit Sie schnell zwischen zwei Dateien wechseln können.


Verwenden von Fenstern

Ctrl-W s und Ctrl-W v um das aktuelle Fenster horizontal und vertikal zu teilen. Sie können auch verwenden :split und :vertical split (:sp und :vs)

Ctrl-W w Wechseln zwischen geöffneten Fenstern und Ctrl-W h (oder j oder k oder l) um durch offene Fenster zu navigieren.

Ctrl-W c um das aktuelle Fenster zu schließen, und Ctrl-W o um alle Fenster außer dem aktuellen zu schließen.

Starten von vim mit a -o oder -O flag öffnet jede Datei in ihrer eigenen Aufteilung.


Mit all diesen Dingen brauche ich keine Tabs in Vim, und meine Finger finden meine Puffer, nicht meine Augen.

Hinweis: Wenn Sie möchten, dass alle Dateien zur selben Instanz von Vim gelangen, starten Sie Vim mit der --remote-silent Möglichkeit.


492
2017-09-10 09:47



:ls

für die Liste der offenen Puffer

  • :bp vorheriger Puffer
  • :bn nächster Puffer
  • :bn (n eine Nummer) in den n-ten Puffer wechseln
  • :b <filename-part> mit Tab-Taste für automatische Vervollständigung (super !!)

In einigen Versionen von vim, bn und bp sind eigentlich bnext und bprevious beziehungsweise. Die automatische Tab-Vervollständigung ist in diesem Fall hilfreich.

Oder wenn Sie sich im normalen Modus befinden, verwenden Sie ^ um zur letzten Datei zu wechseln, an der Sie gearbeitet haben.

Außerdem können Sie Sitzungen von vim speichern

:mksession! ~/today.ses

Der obige Befehl speichert die aktuellen offenen Dateipuffer und Einstellungen ~/today.ses. Sie können diese Sitzung mit verwenden

vim -S ~/today.ses

Kein Problem, sich daran zu erinnern, wo Sie gestern aufgehört haben. ;)


202
2017-09-15 19:03



Um dem hinzuzufügen args Liste:

:argadd

Aus dem löschen args Liste:

:argdelete

In Ihrem Beispiel könnten Sie verwenden :argedit test.pl zum Hinzufügen von test.pl zum args Liste und bearbeite die Datei in einem Schritt.

:help args gibt viel mehr Details und erweiterte Verwendung


96
2017-09-10 09:34



Ich benutze Pufferbefehle - :bn (nächster Puffer), :bp (vorheriger Puffer) :buffers (offene Puffer auflisten) :b<n> (offener Puffer n) :bd (Puffer löschen). :e <filename> öffnet sich einfach in einen neuen Puffer.


45
2017-09-10 09:43



Ich denke, Sie verwenden möglicherweise den falschen Befehl, um die Liste der geöffneten Dateien anzuzeigen.

Versuche es mit einem :ls um die Liste der Dateien zu sehen, die Sie geöffnet haben und Sie werden sehen:

   1 %a   "./checkin.pl"            line 1
  2 #    "./grabakamailogs.pl"     line 1
  3      "./grabwmlogs.pl"         line 0
  etc.

Sie können dann durch die Dateien springen, indem Sie auf sie durch die aufgelisteten Nummern verweisen, z. : 3b

oder du kannst deinen Bildschirm teilen, indem du die Nummer eingibst, aber mit sb anstatt nur mit b.

Als Neben% bezieht sich auf die Datei derzeit sichtbar und # bezieht sich auf die alternative Datei.

Sie können einfach zwischen diesen beiden Dateien wechseln, indem Sie drücken Strg  Verschiebung  6

Bearbeiten: wie :ls Sie können verwenden :reg um den aktuellen Inhalt Ihrer Register anzuzeigen, einschließlich der Register 0-9, die das enthalten, was Sie gelöscht haben. Dies ist besonders nützlich, wenn Sie Text, den Sie zuvor gelöscht haben, wiederverwenden möchten.


36
2017-09-10 09:34



Vim (aber nicht das ursprüngliche Vi!) Hat Tabs, die ich (in vielen Zusammenhängen) den Puffern überlegen finde. Sie können sagen :tabe [filename] um eine Datei in einem neuen Tab zu öffnen. Das Wechseln zwischen den Registerkarten erfolgt durch Klicken auf die Registerkarte oder durch die Tastenkombinationen.n]gt und gT. Grafische Vim hat sogar grafische Registerkarten.


30
2017-09-10 09:07