Was ist vi? Grundlagen des Terminal-Editors
Autor: Redaktion Domeny.ForSale Veröffentlicht
Kurz gesagt: vi ist ein Texteditor, der im Terminal läuft und vor allem auf Unix- und Linux-Systemen verwendet wird. Er wird über Tastaturbefehle bedient; was die Tasten bewirken, hängt vom gewählten Modus ab. Um mit dem Schreiben zu beginnen, drücke i. Um die Datei zu speichern und den Editor zu beenden, drücke Esc, gib :wq ein und bestätige mit Enter. Wenn du den Editor ohne Speichern der Änderungen verlassen möchtest, verwende Esc, anschließend :q! und Enter.
Wozu dient vi?
vi dient zum Bearbeiten einfacher Textdateien: Programmkonfigurationen, Skripte, Quellcode oder Notizen. Er ist kein Dokumenteditor wie Word – er dient nicht dazu, Schriftarten oder Seitenlayouts festzulegen oder Abbildungen einzubetten. Er bearbeitet den Dateiinhalt ohne zusätzliche Dokumentformatierung.
Besonders nützlich ist er bei der Arbeit auf einem Server über SSH, also eine verschlüsselte Verbindung zu einem anderen Computer. Wenn du ausschließlich Zugriff auf das Terminal hast, kannst du eine Datei korrigieren, ohne eine grafische Desktopumgebung zu starten oder die Datei auf deinen Computer herunterzuladen.
Der Editor vi oder ein kompatibler Ersatz ist in vielen Unix-Umgebungen verfügbar. Du solltest jedoch nicht davon ausgehen, dass du ihn in jeder Installation findest: Ein minimales System- oder Container-Image kann ganz ohne Editor auskommen.
Warum hat vi verschiedene Betriebsmodi?
In einem typischen Editor fügt das Drücken einer Buchstabentaste diesen Buchstaben sofort in den Text ein. In vi befindest du dich nach dem Öffnen einer Datei normalerweise im Normalmodus, auch Befehlsmodus genannt. Die Buchstabentasten dienen dann dazu, dich durch die Datei zu bewegen, Text zu löschen oder andere Aktionen auszuführen.
Für den Einstieg genügt es, drei Arten der Bedienung zu unterscheiden:
- Normalmodus: Du gibst Befehle ein; beispielsweise löscht
dddie aktuelle Zeile. MitEsckehrst du in diesen Modus zurück. - Einfügemodus: Du gibst Text ein. Aus dem Normalmodus wechselst du mit
iin diesen Modus; damit beginnt das Einfügen vor dem Cursor. - Befehlszeile: Nachdem du im Normalmodus
:gedrückt hast, gibst du einen Befehl ein, beispielsweise:wzum Speichern der Datei. Mit Enter führst du ihn aus.
Diese Unterscheidung erklärt eine häufige Überraschung bei Einsteigern: Sie drücken Buchstabentasten, bewegen aber den Cursor oder verändern vorhandenen Text, statt zu schreiben. Wenn du nicht weißt, in welchem Modus du dich befindest, drücke Esc. Wähle erst danach die nächste Aktion.
Die erste Dateibearbeitung Schritt für Schritt
Am sichersten übst du die Bedienung an einer neuen Datei statt an der Konfiguration eines laufenden Dienstes. Starte im Terminal:
vi notiz.txt
Wenn die Datei existiert, öffnet der Editor ihren Inhalt. Wenn sie nicht existiert, bereitet er ein neues Dokument im Arbeitsspeicher vor; auf dem Datenträger wird die Datei erst nach erfolgreichem Speichern angelegt.
- Drücke
i, um in den Einfügemodus zu wechseln. - Gib einen Satz ein, beispielsweise
Das ist meine erste Notiz. - Drücke
Esc, um die Texteingabe zu beenden. - Gib
:wqein und drücke Enter.
Nachdem du die Datei gespeichert und den Editor geschlossen hast, kehrst du zur Shell zurück, also dem Programm, das Befehle im Terminal entgegennimmt. Du kannst vi notiz.txt erneut ausführen, um den Inhalt zu prüfen.
Wenn du deine Arbeit speichern, aber weiter bearbeiten möchtest, verwende :w. :q allein schließt den Editor, sofern keine ungespeicherten Änderungen vorliegen, die eine Entscheidung erfordern. Der Befehl :q! verwirft ungespeicherte Änderungen – er löscht keine vorhandene Datei vom Datenträger.
Grundbefehle, die die Arbeit erleichtern
Führe die folgenden Befehle im Normalmodus aus. Doppelpunkt und Schrägstrich leiten die Eingabe eines Befehls ein, den du mit Enter bestätigst; die übrigen Tastenkürzel funktionieren ohne diese Bestätigung.
| Befehl | Wirkung |
|---|---|
h, j, k, l | Bewegung nach links, unten, oben beziehungsweise rechts |
0 | Zum Zeilenanfang springen |
$ | Zum Zeilenende springen |
x | Das Zeichen unter dem Cursor löschen |
dd | Die aktuelle Zeile löschen |
u | Die letzte Änderung rückgängig machen |
/gesuchter Text | Text in Richtung Dateiende suchen |
n | Die Suche in derselben Richtung wiederholen |
:25 | Zu Zeile 25 springen |
Um beispielsweise die Einstellung timeout zu finden, drücke Esc, gib /timeout ein und bestätige mit Enter. Mit n gelangst du zum nächsten Vorkommen. Das ist bequemer, als eine lange Konfiguration manuell durchzusehen.
Sind vi und Vim dasselbe Programm?
Nein. Vim, dessen Name für Vi IMproved steht, ist ein eigenständiger Editor, der das Bedienkonzept von vi weiterentwickelt. Er bietet zusätzliche Funktionen wie umfangreiche Syntaxhervorhebung, Plugins oder mehrstufiges Rückgängigmachen von Änderungen.
Auf manchen Systemen startet der Befehl vi tatsächlich Vim oder einen anderen kompatiblen Editor. Deshalb können die Bildschirmdarstellung und die verfügbaren Erweiterungen unterschiedlich sein. Die beschriebenen Grundbefehle gehören zum gemeinsamen Bedienkonzept, aber nicht jede Anleitung zu Vim lässt sich vollständig auf das klassische vi übertragen.
Erstelle vor dem Bearbeiten einer wichtigen Konfiguration eine Kopie davon. Wenn das Speichern mit einem Berechtigungsfehler scheitert, verschafft dir das bloße Hinzufügen von ! keine Zugriffsrechte auf die Datei. Übe zunächst mit einer eigenen Notiz und prüfe eine geänderte Konfiguration anschließend mit dem Validierungswerkzeug des jeweiligen Dienstes, sofern dieser eines bereitstellt.
