17.5Mehrere Dateien gleichzeitig bearbeiten
Im Standardmodus lädt (:) e dateiname eine neue Datei. Die neue Datei ersetzt die momentan bearbeitete Datei, die Sie vorher speichern müssen – andernfalls bricht Vim den Vorgang ab. Sie können das Laden der Datei mit (:) e! dateiname zwar erzwingen, verlieren dann aber alle durchgeführten Änderungen an der zuletzt aktuellen Datei.
Selbstverständlich können Sie in Vim auch mehrere Dateien gleichzeitig bearbeiten. Vorher sollten Sie allerdings das nicht besonders intuitive Konzept verstehen, wie Vim intern Texte verwaltet und anzeigt. Jeder im Editor dargestellte Text befindet sich intern in einem sogenannten Puffer. Das gilt sowohl für Dateien als auch für Hilfetexte. Solange es nur einen Puffer gibt, wird dieser auf der gesamten Vim-Arbeitsfläche angezeigt. Um mehrere Puffer gleichzeitig anzuzeigen, wird die Arbeitsfläche in mehrere sogenannte Fenster aufgeteilt, wie dies auch bei der Anzeige von Hilfetexten der Fall ist. Ein derartiges Fenster ist kein eigenständiges Fenster im Sinne des Linux-Grafiksystems, sondern nur ein Teilbereich der Arbeitsfläche.
Die Puffer veränderter Dateien sind immer in einem Fenster sichtbar. Puffer von Dateien, die seit dem letzten Speichern nicht mehr geändert wurden, können dagegen ausgeblendet werden. Die Puffer bleiben dabei im Speicher, gelten nun aber als nicht mehr aktiv. (Vorsicht: Wenn Sie ein Fenster mit einer noch nicht gespeicherten Datei schließen, gehen alle Änderungen verloren! Der inaktive Puffer der Datei bleibt zwar verfügbar, enthält aber die Datei zum Zeitpunkt der letzten Speicherung.)
Vim ist auch in der Lage, eine Datei gleichzeitig in mehreren Fenstern darzustellen, z.B. um unterschiedliche Teile eines sehr langen Texts zu bearbeiten.
Vim erleichtert die Bearbeitung mehrerer Dateien mit Dialogblättern im Textmodus (siehe Abbildung 17.2). Wirklich komfortabel funktioniert das, wenn Sie die Maus aktiviert haben (siehe Abschnitt 17.7, »Tipps und Tricks«): Dann können Sie bequem mit der Maus die gerade aktive Datei auswählen bzw. mit dem X-Button rechts oben schließen. Weitere Informationen zu diesen Tabbed Pages erhalten Sie mit (:) help tabpage.
Abbildung 17.2Drei Dateien in drei Tabbed-Fenstern
Je nachdem, ob Sie mit Fenstern oder Tabbed-Fenstern arbeiten möchten, laden Sie neue Dateien mit (:) new dateiname oder (:) tabnew dateiname. Wenn Sie beim Programmstart mehrere Dateien übergeben, also beispielsweise vim datei1 datei2 datei3, wird lediglich die erste Datei angezeigt; die anderen werden in unsichtbare Puffer geladen. Um jede Datei in einem Fenster bzw. in einem Tabbed-Fenster zu öffnen, müssen Sie zusätzlich die Option -o bzw. -p übergeben.
Tabelle 17.10 fasst die wichtigsten Kommandos zusammen, um Dateien zu laden und zu speichern, zwischen (Tabbed-)Fenstern zu wechseln etc.
Tastenkürzel |
Funktion |
---|---|
(:) e dateiname |
lädt eine Datei in den aktuellen Puffer. |
(:) w |
speichert die aktuelle Datei. |
(:) wall |
speichert alle offenen Dateien. |
(:) wq |
speichert und schließt den Puffer. |
(:) e dateiname |
lädt eine Datei in den aktuellen Puffer. |
(:) w |
speichert die aktuelle Datei. |
(:) wall |
speichert alle offenen Dateien. |
(:) wq |
speichert und schließt den Puffer. |
(:) q |
schließt den aktuellen Puffer und beendet Vim, wenn keine weiteren Puffer mehr offen sind. |
(:) q! |
schließt den Puffer auch mit ungesicherten Änderungen. |
(:) qall |
schließt alle Puffer und beendet Vim. |
(:) split |
teilt das Fenster und zeigt in beiden Fenstern denselben Text an. |
(:) new |
erzeugt einen leeren Puffer und zeigt ihn in einem Fenster an. |
(:) new dateiname |
lädt eine Datei in einen neuen Puffer. |
(:) only |
maximiert das aktuelle Fenster und schließt die anderen Puffer. |
(:) all |
zeigt alle Puffer in entsprechend verkleinerten Fenstern an. |
(:) buffers |
liefert die Liste aller Puffer. |
(:) buffer n |
zeigt den Puffer n an und löscht den aktuellen Puffer. |
(:) buffer dateiname |
zeigt den Puffer mit der Datei im aktuellen Fenster an. |
(:) tabnew |
erzeugt einen Puffer und zeigt ihn in einem Tabbed-Fenster an. |
(:) tabnew dateiname |
lädt eine Datei und zeigt sie in einem Tabbed-Fenster an. |
(:) tabnext |
wechselt in das nächste Tabbed-Fenster. |
(:) tabprevious |
wechselt in das vorige Tabbed-Fenster. |
(Strg)+(Bildì)/(Bildë) |
wechselt in das nächste/vorige Tabbed-Fenster. |
(:) tabclose |
schließt das aktuelle Tabbed-Fenster. |
(:) tabonly |
schließt alle anderen Tabbed-Fenster. |
Tabelle 17.10Dateien, Puffer und Fenster (Forts.)