1231 Stimmen

Wie man effektiv mit mehreren Dateien in Vim arbeitet

Ich habe begonnen, Vim für die Entwicklung von Perl-Skripten zu benutzen und finde es sehr leistungsfähig.

Eine Sache, die ich mag, ist die Möglichkeit, mehrere Dateien gleichzeitig zu öffnen:

vi main.pl maintenance.pl

und hüpfen Sie dann mit zwischen ihnen hin und her:

:n
:prev

und sehen Sie, welche Datei mit geöffnet ist:

:args

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

:n test.pl

die dann meiner Dateiliste hinzugefügt werden sollte, aber stattdessen wird meine aktuelle Dateiliste gelöscht, und wenn ich :args Ich habe nur test.pl offen.

Wie kann ich also Dateien in meiner Args-Liste hinzufügen und entfernen?

48voto

Rob Wells Punkte 35303

Ich glaube, Sie verwenden den falschen Befehl, um sich die Liste der geöffneten Dateien anzusehen.

Versuchen Sie eine :ls um die Liste der geöffneten Dateien zu sehen, 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 sie mit den aufgeführten Nummern ansprechen, z. B. :3b

oder Sie können Ihren Bildschirm teilen, indem Sie die Nummer eingeben, aber sb statt nur b verwenden.

Nebenbei bemerkt bezieht sich % auf die aktuell sichtbare Datei und # auf die Ausweichdatei.

Sie können ganz einfach zwischen diesen beiden Dateien hin- und herschalten, indem Sie auf Ctrl Shift 6

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

41voto

Konrad Rudolph Punkte 503837

Vim (aber nicht das ursprüngliche Vi!) hat Registerkarten, die ich (in vielen Zusammenhängen) besser finde als Puffer. Sie können sagen :tabe [filename] um eine Datei in einer neuen Registerkarte zu öffnen. Das Wechseln zwischen den Registerkarten erfolgt durch Anklicken der Registerkarte oder durch die Tastenkombinationen [ n ] gt y gT . Der grafische Vim hat sogar grafische Registerkarten.

27voto

puk Punkte 15462

Dinge wie :e y :badd akzeptiert nur EIN Argument, daher wird das folgende fehlschlagen

:e foo.txt bar.txt
:e /foo/bar/*.txt
:badd /foo/bar/*

Wenn Sie mehrere Dateien von vim aus hinzufügen möchten, verwenden Sie arga[dd]

:arga foo.txt bar.txt
:arga /foo/bar/*.txt
:argadd /foo/bar/*

27voto

Petur Subev Punkte 19669

Viele Antworten hier! Was ich verwende, ohne das Rad neu zu erfinden - die berühmtesten Plugins (die nicht in absehbarer Zeit sterben werden und von vielen Menschen verwendet werden), um extrem schnell und geeky zu sein.

  • ctrlpvim/ctrlp.vim - um eine Datei nach ihrem Namen zu finden, unscharfe Suche nach ihrem Ort oder nur ihrem Namen
  • jlanzarotta/bufexplorer - zum Durchsuchen der geöffneten Puffer (wenn Sie sich nicht mehr daran erinnern, wie viele Dateien Sie kürzlich geöffnet und geändert haben, und Sie sich nicht mehr daran erinnern, wo sie sich befinden, weil Sie sie wahrscheinlich mit Ag gesucht haben)
  • rking/ag.vim um die Dateien unter Berücksichtigung von gitignore zu durchsuchen
  • scrooloose/nerdtree zur Anzeige der Verzeichnisstruktur, zum Umsehen, Hinzufügen/Löschen/Ändern von Dateien

EDIT。 In letzter Zeit habe ich Folgendes verwendet dyng/ctrlsf.vim mit kontextbezogener Ansicht zu suchen (wie die Sublime-Suche) und ich habe die Suchmaschine von ag à ripgrep . Die Leistung ist hervorragend.

EDIT2: Zusammen mit CtrlSF können Sie mg979/vim-visuell-multi Nehmen Sie Änderungen an mehreren Dateien auf einmal vor und speichern Sie sie am Ende in einem Rutsch.

26voto

Andrew Punkte 697

In einigen Antworten in diesem Thread wird die Verwendung von Tabs vorgeschlagen, in anderen die Verwendung von Puffern, um das Gleiche zu erreichen. Registerkarten und Puffer sind unterschiedlich. Ich empfehle Ihnen dringend, diesen Artikel zu lesen " Vim Tab-Wahnsinn - Puffer vs. Tabs ".

Hier ist eine schöne Zusammenfassung, die ich dem Artikel entnommen habe:

Zusammenfassung:

  • Ein Puffer ist der speicherinterne Text einer Datei.
  • Ein Fenster ist ein Ansichtsfenster auf einem Puffer.
  • Eine Registerkarte ist eine Sammlung von Fenstern.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X