Kurzer Überblick nützlicher Kommandos für den Editor vi.

The Feeble Emacs Uservi ist ein seitenorientierter Texteditor, den es auf praktisch jedem *nix-basierten System gibt. Seine Bedienung war schon immer kryptisch und ist aus heutiger Sicht, mit den Annehmlichkeiten grafischer Benutzeroberflächen und Maussteuerung, geradezu als barbarisch zu betrachten. Ungeachtet dessen gibt es Situationen, in denen es äußert hilfreich ist den vi – zumindest rudimentär – bedienen zu können.

Dabei glänzt der Editor, trotz seines Alters, mit einer erstaunlichen Funktionsfülle, die sich aber nur entfalten kann, wenn man die zahllosen Kommandos und Tastenkombinationen kennt. Zwar gibt es zum vi endlos viele Einführungen, Tutorials, Referenzen und Kommandoübersichten im Netz, aber gerade die letztgenannten Zusammenfassungen versuchen häufiger durch Menge, denn durch eine Zusammenstellung der wirklich nützlichen Kommandos zu glänzen. Vor diesem Hintergrund gibt es hier die geschätzt 5.009.536te Kommandotabelle mit den wirklich 😉 nützlichen Befehlen für den vi.

Kommando Erklärung
i Wechsel in Editiermodus
ESC Wechsel in Navigationsmodus
gg Dateibeginn
G Dateiende; nnG springt zu Zeile nn
Ctrl+f eine Bildschirmseite vor
Ctrl+b eine Bildschirmseite zurück
w ein Wort vorwärts
b ein Wort rückwärts
0 Zeilenanfang
$ Zeilenende
dw löscht ab Cursor bis Wortende
d0 löscht bis Zeilenanfang
D löscht bis Zeilenende
dd aktuelle Zeile löschen; NNdd löscht NN Zeilen
dgg löscht aktuelle Zeile bis Dateianfang
dG löscht aktuelle Zeile bis Dateiende
mx markiert aktuelle Zeile mit Buchstabe x
d’x löscht aktuelle Zeile bis Markierung x
yy kopiert aktuelle Zeile in Puffer; NNyy kopiert NN Zeilen
y’x kopiert aktuelle Zeile bis Markierung x in Zwischenablage x
x springt in die Zeile mit Marke x
`x springt an die Stelle mit Marke x
p kopiert Pufferinhalt ans Ende der aktuellen Zeile
az Zwischenablage az für nächste Aktion auswählen
u Undo; NNu macht die letzten NN Aktionen rückgängig
$ Zeilenende
/regex sucht nach regulärem Ausdruck regex; weitere Treffer mit n
?regex wie /, sucht aber in Richtung Dateianfang
:s/foo/bar/ aktuelle Zeile: das erste Vorkommen von foo durch bar ersetzen
:s/foo/bar/g aktuelle Zeile: alle Vorkommen von foo durch bar ersetzen
:%s/foo/bar/ gesamte Datei: das erste Vorkommen von foo durch bar in jeder Zeile ersetzen
:%s/foo/bar/g gesamte Datei: alle Vorkommen von foo durch bar ersetzen
:w Datei speichern
:w filename Datei unter filename speichern
:e filename Datei filename laden
:q vi beenden; :q! beendet ohne Rückfrage, falls Datei geändert wurde
ZZ Änderungen schreiben und vi beenden; Abk. für :wq!

Leave a Reply

Your email address will not be published. Required fields are marked *