Antworten:
In vim können Sie zunächst :(Doppelpunkt) eingeben und dann helfen help, :helpum eine Liste mit Selbsthilfethemen zu erhalten, einschließlich eines kurzen Tutorials. Bewegen Sie den Mauszeiger in der Themenliste über das gewünschte Thema und drücken Sie. ctrl]Das Thema wird geöffnet.
Ein guter Ausgangspunkt für Sie wäre das Thema
|usr_07.txt| Editing more than one file
Ok, weiter zu deiner Antwort.
Nachdem Sie vim mit einer Liste von Dateien gestartet haben, können Sie durch Eingabe von :nextoder :nkurz zur nächsten Datei wechseln .
:wnextsteht für "Aktuelle Änderungen schreiben" und "Zur nächsten Datei wechseln".
Es gibt auch eine analoge :previous, :wpreviousund :Next. (Beachten Sie, dass :pes sich um eine Abkürzung für handelt :print. Die Abkürzung für :previousist :prevoder :N.)
Um zu sehen, wo Sie sich in der Dateiliste befinden, geben Sie ein :argsund die aktuell bearbeitete Datei wird in [](Klammern) angezeigt.
Beispiel:
vim foo.txt bar.txt
:args
Ergebnis:
[foo.txt] bar.txt
Sie können eine andere Datei öffnen, während vim geöffnet ist, :tabe filenameund zu der anderen Datei wechseln, die Sie eingeben, :tabnoder :tabpfür die nächste und vorherige entsprechend.
Mit den Tastenkombinationen gT und gt können Sie auch zwischen Registerkarten wechseln, wenn Sie sich nicht im Bearbeitungsmodus befinden (dh nicht im Einfüge-, Ersetzungsmodus usw.). Auf einigen Systemen Ctrl+ Alt+ Page Upund Ctrl+ Alt+ Page Downauch Tabula umschichten, aber das funktioniert nicht immer (zum Beispiel, wird es in dem O X - Terminal nicht funktioniert ‚out of the box‘).
Und Sie können den Dateinamen oben in der vim-App sehen.
vim -p file1 file2
:argadd filenameund dann :nextdorthin. Ebenso können Sie verwenden :argdel filename, um eine der Dateien in Bearbeitung zu entfernen.
Befehle zum Wechseln zwischen Puffern:
:bf # Go to first file.
:bl # Go to last file
:bn # Go to next file.
:bp # Go to previous file.
:bw # Close file.
:help buffer um weitere Informationen zu finden
Um zu wissen , Dateiname Verwendung Ctrl+ G, :fileoder:f
:bwDatei schließen haha. Vergessen Sie nicht, die Hilfe zu lesen, in der :bwsteht, dass Sie sie nur verwenden sollten, wenn Sie wissen, was Sie tun. Es ist keine große Sache, aber es sei denn, Sie möchten alle Markierungen und Informationen über die Datei löschen, besser verwenden :bdoder :qwie ein normaler Mensch
:bwFall, dass Sie neugierig sind: vi.stackexchange.com/questions/2212/…
Eine andere Möglichkeit, abgesehen von den gegebenen Antworten, besteht darin, das Fenster zu teilen mit:
:sp
:vsp
:vspist für vertikale Teilung. Verwenden Sie dann Ctrl+W <ARROW_KEYS>, um sich in Fenstern zu bewegen.
:vsanstelle von:vsp
Ctrl+W, vfür vertikales und Ctrl+W, shorizontales Teilen.
CTRL+Wseit Jahren und in letzter Zeit bearbeite ich viele VIs auf Webseiten. Jedes Mal tippe ich den Befehl ohne nachzudenken und ... whammmm ... der Browser-Tab ist GEGANGEN! Ich vergesse immer wieder. Ich muss wirklich eine neue Verknüpfung lernen.
Ich habe beim Superuser eine ähnliche Frage gestellt.
Die Antwort auf meine Frage war, dass Sie nicht können, aber Sie können mit dem :splitBefehl von VIM zwei Dateien in einem Bash-Fenster öffnen :
$ vim file1, öffnen Sie eine zweite Datei in VIM mit dem :split file2Befehl.$ vim -o file1 file2aus Bash.:qbeendet wird und das :q!Beenden erzwungen wird.Meine Bash ist schwarz und weiß, daher wird der Dateiname jedes Bildschirms als umgekehrte "ausgewählte" Zeile mit dem dort angegebenen Dateinamen dargestellt.
Woot!
Ich finde, die bequemste Methode zum Bearbeiten mehrerer Dateien ist die Verwendung von Registerkarten. Sie können mehrere Dateien in separaten Registerkarten über die Befehlszeile wie folgt öffnen:
vim -p file1.txt file2.txt
Wenn Sie bereits vim geöffnet haben, können Sie eine neue Datei in einem neuen Tab wie folgt öffnen:
:tabe file2.txt
Sobald Sie die Registerkarten geöffnet haben, können Sie gtmit die nächste und gTdie vorherige Registerkarte anzeigen.
Sie können auch zum ersten Tab mit 1gt, zum zweiten Tab mit 2gtusw. springen .
Sie können Registerkarten mit schließen :tabc
Schließlich können Sie die aktuelle Registerkarte an die nStelle verschieben, :ntabman der neine beliebige Zahl größer oder gleich ist 0.
Es gibt viele Möglichkeiten, dies zu tun. Der erste, vielleicht weniger bequeme Schritt besteht darin vim, die zu bearbeitenden Dateien aufzurufen. Erstellen Sie:
vim first_file second_file ...
Es ruft die zwei Dateien in zwei Puffern auf. Verwenden Sie :nund, um von einer Datei zu einer anderen zu wechseln :N. Um die Dateien aufzulisten, die Sie gerade bearbeiten, :argserledigen Sie die Aufgabe. :help bufferwird Ihnen dabei weiterhelfen.
Dies sollte Ihre Frage beantworten. Aber hier sind weitere Informationen:
Sie können Ihre Dateien auf bequemere Weise bearbeiten, indem Sie den Konsolenbildschirm mit vim aufteilen . Öffnen Sie dazu zwei Frames mit :split( :sp) oder :vsplit( :vs), während Sie vim verwenden . Navigieren Sie dann mit der Kombination Ctrl+ W> Ctrl+ in diesen Frames W. Sie können auch verwenden Ctrl+ W+ auf den Pfeil oder den Schlüssel ( H, J, Koder L) zum nächsten Bild entspricht. Wenn dies erledigt ist, bearbeiten Sie die gewünschte Datei mit :e file_name. :help opening-windowwird Ihnen dabei weiterhelfen.
Wenn Sie nun die Unterschiede zwischen den Dateien sehen möchten , verwenden Sie das -dArgument oder rufen Sie das Programm vimdiff mit den entsprechenden Dateien auf (es ist dasselbe). :help diffwird Ihnen dabei weiterhelfen.
vim -d first_file second_file ...
Bitte lassen Sie mich wissen, wenn Sie ein Problem haben.
Ich verwende gerne geteilte Fenster - sowohl horizontale als auch vertikale -, um mehrere Dateien zu bearbeiten.
Ich benutze tmux, um diese Fenster einfacher zu verwalten
https://tmux.github.io/ "Was ist ein Terminalmultiplexer? Mit ihm können Sie problemlos zwischen mehreren Programmen in einem Terminal wechseln, diese trennen (sie laufen im Hintergrund weiter) und sie erneut einem anderen Terminal zuordnen. Und a viel mehr. Siehe das Handbuch. "
Beispiel: Anzeigen von Dateien oder Ausführen von Tests auf der rechten Seite, Bearbeiten von Test- und Quelldateien auf der linken Seite: 
:e #(filename) um zwischen zwei geöffneten Dateien zu wechseln
:p für vorherige Datei
:n für die nächste Datei