- Veröffentlicht am
- • How2-Tipps
Der vi-Editor unter Linux – der Klassiker für die Kommandozeile
- Autor
-
-
- Benutzer
- tmueller
- Beiträge dieses Autors
- Beiträge dieses Autors
-
Wenn du dich intensiver mit Linux beschäftigst, wirst du ihm früher oder später begegnen: dem vi-Editor. Er gehört zu den ältesten und mächtigsten Texteditoren in der Unix-Welt – und ist auf nahezu jedem Linux-System standardmäßig installiert.
In diesem Beitrag lernst du, was der vi ist, wie er funktioniert, wie du dich darin bewegst und warum er trotz seiner altmodischen Erscheinung auch heute noch unverzichtbar ist.
Was ist der vi?
Der Name „vi“ steht für Visual Editor. Er wurde in den späten 1970er Jahren als Teil des Unix-Betriebssystems entwickelt – zu einer Zeit, als grafische Oberflächen noch Zukunftsmusik waren.
vi ist ein reiner Texteditor, also kein Word-Ersatz, sondern ein Werkzeug zum Bearbeiten von Konfigurationsdateien, Skripten und Quelltexten.
Seine Vorteile:
- Minimalistisch und schnell
- Auf jedem Linux/Unix-System vorinstalliert
- Vollständig über Tastatur steuerbar
- Ideal für Remote-Server (z. B. über SSH)
- Effizient, sobald man die Befehle beherrscht
Die meisten modernen Systeme nutzen vim („Vi IMproved“) – eine erweiterte Version mit mehr Funktionen, Syntax-Highlighting und besserem Undo-System.
vi starten und beenden
vi öffnen:
vi datei.txt
Wenn die Datei nicht existiert, wird sie beim Speichern neu erstellt.
vi beenden:
Drücke zuerst ESC, um sicherzustellen, dass du nicht im Schreibmodus bist.
Dann gib ein:
:q→ Editor schließen (ohne zu speichern):q!→ Schließen ohne zu speichern, erzwingt Beenden:w→ Änderungen speichern:wqoder:x→ Speichern und schließen
Tipp:
Wenn du dir unsicher bist, ob du gerade tippen oder Befehle eingeben kannst – drücke einfach ESC. Dann bist du wieder im Befehlsmodus.
Die zwei (bzw. drei) Modi im vi
Der vi arbeitet mit verschiedenen Modi. Das ist anfangs ungewohnt, aber zentral für das Verständnis:
| Modus | Bedeutung | Beschreibung |
|---|---|---|
| Befehlsmodus (Command Mode) | Standardmodus | Hier navigierst du, löschst, kopierst oder suchst |
| Einfügemodus (Insert Mode) | Schreibmodus | Hier kannst du Text eingeben |
| Ex-Modus (Colon Mode) | Kommandozeilenmodus | Für Befehle wie :w, :q, :set, etc. |
Du startest immer im Befehlsmodus.
In den Schreibmodus wechseln
Um Text einzugeben, musst du vom Befehlsmodus in den Insert Mode wechseln.
| Taste | Funktion |
|---|---|
i |
Einfügen vor dem Cursor |
a |
Einfügen nach dem Cursor |
I |
Einfügen am Zeilenanfang |
A |
Einfügen am Zeilenende |
o |
Neue Zeile unterhalb öffnen |
O |
Neue Zeile oberhalb öffnen |
Sobald du fertig bist, drücke ESC, um wieder in den Befehlsmodus zurückzukehren.
Navigation im vi
Du kannst dich im Text mit den Tasten h, j, k, l bewegen – das ist historisch bedingt, funktioniert aber überall gleich:
| Taste | Bewegung |
|---|---|
h |
nach links |
l |
nach rechts |
j |
eine Zeile nach unten |
k |
eine Zeile nach oben |
Alternativ funktionieren auch die Pfeiltasten.
Weitere nützliche Bewegungen:
| Befehl | Bewegung |
|---|---|
0 |
Anfang der Zeile |
$ |
Ende der Zeile |
w |
Nächstes Wort |
b |
Anfang vorherigen Wortes |
gg |
Anfang der Datei |
G |
Ende der Datei |
:n |
Springe zu Zeile n (z. B. :15) |
Text löschen, kopieren und einfügen
Löschen
| Befehl | Bedeutung |
|---|---|
x |
Ein einzelnes Zeichen löschen |
dd |
Ganze Zeile löschen |
d$ |
Lösche bis zum Zeilenende |
d0 |
Lösche bis zum Zeilenanfang |
5dd |
Lösche 5 Zeilen |
Kopieren & Einfügen
| Befehl | Beschreibung |
|---|---|
yy |
Zeile kopieren („yank“) |
p |
Einfügen unterhalb/nach der aktuellen Zeile |
P |
Einfügen oberhalb/vor der aktuellen Zeile |
Rückgängig & Wiederholen
| Befehl | Beschreibung |
|---|---|
u |
Letzte Änderung rückgängig machen |
Ctrl + r |
Rückgängig gemachte Änderung wiederherstellen |
Suchen und Ersetzen
Text suchen
/<suchbegriff>
- Mit
nspringst du zum nächsten Treffer - Mit
Nzum vorherigen
Beispiel:
/error
- Sucht alle Vorkommen von „error“
Text ersetzen
Im Befehlsmodus:
:%s/alt/neu/g
Erklärung:
%= gesamte Dateis= substitute (ersetzen)g= alle Vorkommen in jeder Zeile
Beispiel:
:%s/Linux/Unix/g
→ Ersetzt alle „Linux“ durch „Unix“ in der gesamten Datei.
Nur in Zeilen 10–20:
:10,20s/foo/bar/g
Nützliche Befehle für den Alltag
| Befehl | Beschreibung |
|---|---|
:set number |
Zeilennummern anzeigen |
:set nonumber |
Zeilennummern ausschalten |
:set syntax=on |
Syntax-Highlighting aktivieren (in vim) |
:set ignorecase |
Suche ohne Groß-/Kleinschreibung |
:r datei.txt |
Inhalt einer anderen Datei einfügen |
:w datei.txt |
Datei unter neuem Namen speichern |
vi verlassen, wenn alles schiefgeht
Manchmal „steckt“ man im vi fest – besonders als Anfänger. Hier der Notfall-Exit:
- Drücke mehrmals
ESC Gib ein:
:q!- Drücke
Enter
Damit verlässt du den vi ohne zu speichern.
Tipps für Einsteiger
- Keine Angst vor dem Modus-Konzept – nach kurzer Übung fühlt es sich logisch an.
Übe die Befehle in einer Testdatei, z. B.
vi test.txtWenn du lieber eine modernere Version möchtest, installiere vim oder neovim:
sudo apt install vim -yDu kannst vi als Standardeditor festlegen:
sudo update-alternatives --config editor
Fazit
Der vi-Editor ist ein fester Bestandteil der Linux-Geschichte – und bis heute ein unverzichtbares Werkzeug für Systemadministratoren, Entwickler und Power-User. Was anfangs kryptisch wirkt, entfaltet mit etwas Übung enorme Produktivität.
Ob du eine Konfigurationsdatei änderst, Skripte bearbeitest oder Logfiles durchsuchst – vi ist schnell, zuverlässig und überall verfügbar.
Nützliche Links
- Offizielle Vim-Dokumentation: https://www.vim.org/docs.php
- Online-Tutorial: https://www.openvim.com/
- vi Cheat Sheet: https://vim.rtorr.com/