Manchmal befinden Sie sich in einer Situation, in der Sie Änderungen an mehreren Dateien vornehmen möchten. Oder Sie möchten den Inhalt einer Datei in eine andere kopieren. Wenn Sie sich im GUI-Modus befinden, können Sie die Dateien einfach in einem beliebigen grafischen Texteditor wie gedit öffnen und den Inhalt mit STRG+C und STRG+V kopieren/einfügen. Im CLI-Modus können Sie solche Editoren nicht verwenden. Keine Bange! Wo es einen Vim-Editor gibt, gibt es einen Weg! In diesem Tutorial lernen wir, mehrere Dateien gleichzeitig mit dem Vim-Editor zu bearbeiten. Vertrauen Sie mir, das ist eine sehr interessante Vim-Funktion!
Installieren Sie Vim unter Linux
Der Vim-Editor ist in den offiziellen Repositories der meisten Linux-Distributionen verfügbar. Sie können es also mit dem Standardpaketmanager installieren.
Zum Beispiel auf Arch Linux und seine Varianten können Sie mit folgendem Befehl installieren:
$ sudo pacman -S vim
Auf Debian , Ubuntu :
$ sudo apt-get install vim
Auf RHEL , CentOS :
$ sudo yum install vim
Auf Fedora :
$ sudo dnf install vim
Auf openSUSE :
$ sudo zypper install vim
Bearbeiten Sie mehrere Dateien gleichzeitig mit dem Vim-Editor in Linux
Es könnte viele Möglichkeiten geben, Multiples mit dem Vim-Editor zu bearbeiten. Ich kenne zwei Methoden.
Methode 1
Ich habe zwei Dateien, nämlich file1.txt und file2.txt , mit ein paar zufälligen Wörtern. Lassen Sie uns einen Blick darauf werfen.
$ cat file1.txt ostechnix open source technology linux unix
$ cat file2.txt line1 line2 line3 line4 line5
Lassen Sie uns nun diese beiden Dateien gleichzeitig mit dem Vim-Editor bearbeiten. Führen Sie dazu Folgendes aus:
$ vim file1.txt file2.txt
Vim zeigt den Inhalt der Dateien in einer Reihenfolge an. Der Inhalt der ersten Datei wird zuerst angezeigt, dann die zweite Datei und so weiter.

Bearbeiten Sie mehrere Dateien mit dem Vim-Editor
Zwischen Dateien wechseln
Geben Sie Folgendes ein, um zur nächsten Datei zu wechseln:
:n

Zwischen Dateien im Vim-Editor wechseln
Um zur vorherigen Datei zurückzukehren, geben Sie Folgendes ein:
:N
Hier ist N ein Großbuchstabe (geben Sie SHIFT+n ein).
Beginnen Sie mit der Bearbeitung der Dateien wie mit dem Vim-Editor. Drücken Sie 'i', um in den interaktiven Modus zu wechseln und den Inhalt nach Ihren Wünschen zu ändern. Wenn Sie fertig sind, drücken Sie ESC, um zum normalen Modus zurückzukehren.
Vim erlaubt Ihnen nicht, zur nächsten Datei zu wechseln, wenn es ungespeicherte Änderungen gibt. Geben Sie Folgendes ein, um die Änderungen in der aktuellen Datei zu speichern:
ZZ
Bitte beachten Sie, dass es sich um doppelte Großbuchstaben ZZ (SHIFT+zz) handelt.
Um die Änderungen zu verwerfen und zur vorherigen Datei zu wechseln, geben Sie Folgendes ein:
:N!
Um die aktuell bearbeiteten Dateien anzuzeigen, geben Sie Folgendes ein:
:buffers

Dateien im Puffer in VIm anzeigen
Unten sehen Sie die Liste der geladenen Dateien.

Liste der Dateien im Puffer in Vim
Um zur nächsten Datei zu wechseln, geben Sie :buffer ein gefolgt von der Puffernummer. Um beispielsweise zur ersten Datei zu wechseln, geben Sie Folgendes ein:
:buffer 1
Oder tun Sie einfach:
:b 1

Zur nächsten Datei in Vim wechseln
Denken Sie einfach an diese Befehle, um einfach zwischen Puffern zu wechseln:
:bf # Go to first file. :bl # Go to last file :bn # Go to next file. :bp # Go to previous file. :b number # Go to n'th file (E.g :b 2) :bw # Close current file.
Öffnen zusätzlicher Dateien zum Bearbeiten
Wir bearbeiten derzeit zwei Dateien, nämlich file1.txt, file2.txt. Möglicherweise möchten Sie eine andere Datei mit dem Namen file3.txt öffnen zum Bearbeiten. Was wirst du tun? Es ist einfach! Geben Sie einfach :e ein gefolgt vom Dateinamen wie unten.
:e file3.txt

Öffnen Sie zusätzliche Dateien zur Bearbeitung in Vim
Jetzt können Sie file3.txt bearbeiten.
Geben Sie Folgendes ein, um anzuzeigen, wie viele Dateien derzeit bearbeitet werden:
:buffers

Alle Dateien in Puffern in Vim anzeigen
Bitte beachten Sie, dass Sie mit :e nicht zwischen geöffneten Dateien wechseln können entweder mit :n oder :N . Um zu einer anderen Datei zu wechseln, geben Sie :buffer ein gefolgt von der Dateipuffernummer.
Kopieren des Inhalts einer Datei in eine andere
Sie wissen, wie Sie mehrere Dateien gleichzeitig öffnen und bearbeiten. Manchmal möchten Sie vielleicht den Inhalt einer Datei in eine andere kopieren. Es ist auch möglich. Wechseln Sie zu einer Datei Ihrer Wahl. Angenommen, Sie möchten den Inhalt von Datei1.txt in Datei2.txt kopieren.
Wechseln Sie dazu zunächst in file1.txt:
:buffer 1
Platzieren Sie den Bewegungscursor vor einer Zeile, die kopiert werden soll, und geben Sie yy ein die Linie zu reißen (kopieren). Wechseln Sie dann zu file2.txt:
:buffer 2
Platzieren Sie den Mauszeiger an der Stelle, an der Sie die kopierten Zeilen aus file1.txt einfügen möchten, und geben Sie p ein . Sie möchten beispielsweise die kopierte Zeile zwischen Zeile2 und Zeile3 einfügen. Setzen Sie dazu den Mauszeiger vor line und geben Sie p ein .
Beispielausgabe:
line1 line2 ostechnix line3 line4 line5

Kopieren des Inhalts einer Datei in eine andere Datei mit Vim
Geben Sie Folgendes ein, um die in der aktuellen Datei vorgenommenen Änderungen zu speichern:
ZZ
Beachten Sie erneut, dass dies ein doppelter Großbuchstabe ZZ ist (SHIFT+z).
Um die Änderungen in allen Dateien zu speichern und den vim-Editor zu beenden. Typ:
:wq
Ebenso können Sie jede Zeile aus jeder Datei in andere Dateien kopieren.
Komplette Dateiinhalte in eine andere kopieren
Wir wissen, wie man eine einzelne Zeile kopiert. Was ist mit dem gesamten Dateiinhalt? Das ist auch möglich. Nehmen wir an, Sie möchten den gesamten Inhalt von Datei1.txt in Datei2.txt kopieren.
Öffnen Sie dazu zuerst die Datei2.txt:
$ vim file2.txt
Wenn die Dateien bereits geladen sind, können Sie zu file2.txt wechseln, indem Sie Folgendes eingeben:
:buffer 2
Bewegen Sie den Cursor an die Stelle, an der Sie den Inhalt von file1.txt kopieren möchten. Ich möchte den Inhalt von file1.txt nach line5 in file2.txt kopieren, also habe ich den Cursor auf Zeile 5 bewegt. Geben Sie dann den folgenden Befehl ein und drücken Sie die EINGABETASTE:
:r file1.txt

Kopieren des gesamten Inhalts einer Datei in eine andere Datei
Hier, r bedeutet lesen .
Jetzt sehen Sie, dass der Inhalt von file1.txt nach line5 in file2.txt eingefügt wird.
line1 line2 line3 line4 line5 ostechnix open source technology linux unix

Kopieren des gesamten Dateiinhalts in eine andere Datei mit Vim
Geben Sie Folgendes ein, um die Änderungen in der aktuellen Datei zu speichern:
ZZ
Geben Sie Folgendes ein, um alle Änderungen in allen geladenen Dateien zu speichern und den vim-Editor zu beenden:
:wq
Methode 2
Die andere Methode zum gleichzeitigen Öffnen mehrerer Dateien ist die Verwendung von -o oder -O Flaggen.
Um mehrere Dateien in horizontalen Fenstern zu öffnen, führen Sie Folgendes aus:
$ vim -o file1.txt file2.txt

Öffnen Sie mehrere Dateien gleichzeitig in Vim
Um zwischen den Fenstern zu wechseln, drücken Sie CTRL-w w (D. h. drücken Sie STRG+w und drücken Sie erneut w ). Oder verwenden Sie die folgenden Tastenkombinationen, um zwischen den Fenstern zu wechseln.
- STRG-wk - oberes Fenster
- STRG-w j - unteres Fenster
Um mehrere Dateien in vertikalen Fenstern zu öffnen, führen Sie Folgendes aus:
$ vim -O file1.txt file2.txt file3.txt

Öffnen Sie mehrere Dateien in vertikalen Fenstern in Vim
Um zwischen den Fenstern zu wechseln, drücken Sie CTRL-w w (D. h. drücken Sie STRG+w und drücken Sie erneut w ). Oder verwenden Sie die folgenden Tastenkombinationen, um zwischen den Fenstern zu wechseln.
- STRG-w l - linkes Fenster
- STRG-w - rechtes Fenster
Alles andere ist wie in Methode 1 beschrieben.
Um beispielsweise aktuell geladene Dateien aufzulisten, führen Sie Folgendes aus:
:buffers
So wechseln Sie zwischen Dateien:
:buffer 1
Um eine weitere Datei zu öffnen, geben Sie ein:
:e file3.txt
So kopieren Sie den gesamten Inhalt einer Datei in eine andere:
:r file1.txt
Der einzige Unterschied zu Methode 2 besteht darin, dass Sie die Änderungen in der aktuellen Datei mit ZZ gespeichert haben , wird die Datei automatisch geschlossen. Außerdem müssen Sie die Dateien einzeln schließen, indem Sie :wq eingeben . Aber hätten Sie die Methode 1 befolgt, als Sie :wq eingegeben haben Alle Änderungen werden in allen Dateien gespeichert und alle Dateien werden sofort geschlossen.
Weitere Einzelheiten finden Sie in den Manpages.
$ man vim
Empfohlene Lektüre:
- So kommentieren Sie mehrere Zeilen gleichzeitig im Vim-Editor aus
- Verwalten von Vim-Plugins mit Vundle unter Linux
- So verwenden Sie die Rechtschreibprüfungsfunktion im Vim-Texteditor
Sie wissen jetzt, wie Sie mehrere Dateien mit dem vim-Editor unter Linux bearbeiten. Wie Sie sehen können, ist das Bearbeiten mehrerer Dateien nicht so schwierig. Der Vim-Editor hat leistungsfähigere Funktionen.
Wir werden in den kommenden Tagen weitere Vim-Tipps schreiben. Bleiben Sie dran!