vi

Damals™, vor dem Krieg, gab es nur ed (Zeilenweise), die Tastaturen hatten keine extra Tasten (<100)

vi ist Bildschirmbasiert, und benötigt keine Sondertasten! Darüber hinaus ist vi bei (fast) jedem Linux mit dabei.

vi [optionen] file1 file2
programm | vi -

Modi

  • Kommandomodus: Editor steuern, im Text navigieren
  • Eingabemodus: Schreiben (Ein- und Angeben!!1!)
  • Kommandozeilenmodus: längere Kommandos eingeben, Kommandos auf (markierten) Text anwenden
Navigation  
h Ein Zeichen nach links
l Ein Zeichen nach rechts
k Ein Zeichen nach oben
l Ein Zeichen nach unten
0 Zeilenanfang
$ Zeilenende
w Wort vorwärts
b Wort zurück
G Zur letzten Zeile
<n>G Zur Zeile n
f<char> Zum nächsten Zeichen
Ctrl+f Bildschirmseite vor
Ctrl+b Bildschirmseite zurück

Kommandos  
a Text hinter akt. Zeichen einfügen
A Text am Zeilenende einfügen
i Text vor akt. Zeichen einfügen
I Text am Zeilenanfang einfügen
o fügt eine Zeile unter der aktuellen Zeile ein
O fügt eine Zeile über der aktuellen Zeile ein
x löscht Zeichen hinter dem Cursor
X löscht Zeichen vor dem Cursor
r<char> ersetzt aktuelles Zeichen durch <char>
dw löscht Wort
d$ löscht bis Zeilenende
d0 löscht bis Zeilenanfang
df<char> löscht bis <char>
dd löscht ganze Zeile
dG löscht bis Ende des Texts
d1G löscht bis Anfang des Texts
cw Wort ersetzen
c$ Ab Cursor bis Zeilenende ersetzen
c0 Ab Cursor bis Zeilenanfang ersetzen
cf <char> Bis <char> ersetzen
c/abc Bis Muster abc ersetzen

Kommandozeile  
:w [name] speichert Puffer in Datei
:w! [name] speichert trotz Schreibschutz
:e [name] liest Datei in Puffer
:r [name] fügt Inhalt von Datei hinter akt. Zeile ein
:! [cmd] führt Shellkommando aus
:r! [cmd] fügt Ausgabe des Kommandos hinter aktueller Zeile ein
:q beendet vi
:q! beendet vi ohne Rückfrage
:wq | :x speichern und beenden