Vi Editor Tipps und Tricks
vi (bzw. vim) ist der Standard-Editor in vielen Unix- und Linux-Umgebungen. Dieser Artikel liefert einige Tipps und Tricks zu vi/vim.
Inhaltsverzeichnis |
Editieren
Eine Datei wird mit vi geöffnet:
vi beispiel.sh
In der untersten Zeile erscheint dann zum Beispiel:
"beispiel.sh" 66L, 204C 1,1 Top
Man kann nun zwar mit den Cursor-Tasten navigieren, allerdings noch keinen Text eingeben. Um einen Text einzugeben, wechselt man in den Insert Modus durch drücken der Taste i:
i
In der untersten Zeile erscheint dann:
-- INSERT -- 1,1 Top
Speichern
Nachdem etwas Text geschrieben wurde, kann man mit der Esc Taste wieder in den normalen Modus wechseln:
Esc
Mittels :w kann der neue Stand der Datei nun gespeichert werden:
:w
Es erscheint dann unten:
"beispiel.sh" 72L, 223C written 4,1 Top
Möchte man Speichern und vi beenden, wird :x verwendet:
:x
Beenden
Möchte man (ohne Speichern) beenden, kommt :q zum Einsatz:
:q
Zeilen löschen
Zeilen können mit dem Kommando dd gelöscht werden (löscht eine Zeile). Möchte man mehrere Zeilen löschen (z.B. fünf), dann tippt man vorher die Zahl ein - somit kommt z.b. folgende Tastenfolge zum Einsatz:
5dd
Es erscheint dann unten:
5 fewer lines 1,0-1 Top
Zeilen kopieren
Wurden mit dd Zeilen gelöscht, so sind diese noch zwischengespeichert. Durch drücken von p an einer anderen Stelle werden die Zeilen wieder eingefügt:
p
Es erscheint dann unten:
5 more lines 8,1 Top
Möchte man Zeilen kopieren, die aber nicht gelöscht werden sollen, verwendet man statt dd die Tasten yy - hier z.B. wieder für fünf Zeilen:
5yy
Es erscheint dann unten:
5 lines yanked 12,0-1 Top
Die Zeilen können wieder mit p eingefügt werden.
Tabstop Abstand setzen
Wenn Tabulatoren verwendet werden kommt es häufig vor das man die Anzahl der Leerzeichen für die Anzeige des Tab-Fortschritts einstellen möchte. Zumeist sind dafür acht Leerzeichen definiert. Um stattdessen z.B. 4 Leerzeichen zu verwenden, tippt man:
:set ts=4
Suchen und Ersetzen
Vi bietet auch eine search&replace Funktion.
Der folgende Aufruf ersetzt OLD durch NEW:
:%s/OLD/NEW/g