VI

Siehe auch: de.wikipedia.org/wiki/Vi

Grundlegende Kommandos

Bewegungs-Kommandos. Diese können mit einem Prefix (unten gangegeben als XXX) verwendet werden:
h j k l Cursor bewegen, links, hoch, runter, rechts
0 $     Anfang/Ende der Zeile
^       Erstes (nichtspace) Zeichen der Zeile
t C     Cursor bis Zeichen C
e E     Ende des Wortes/Zeichenkette
b B     Anfang des Wortes bzw. vorherigen Wortes/Zeichenkette
w W     Anfang nächsten Wortes/Zeichenkette
( )     Sätze rückwärts/vorwärts
{ }     Absätze rückwärts/vorwärts

Grundlegende Kommandos:
:set paste
:Zahl   Springe auf Zeile X (1=erste Zeile)
:q      VI verlassen
:q!     VI verlassen ohne zu speichern
:wq :x  Daten speichern und VI verlassen
:wq!    Wie zuvor, nur erzwungenenes Schreiben (ersetzt Readonly-Dateien)
:w      Datei speichern
:w!     Datei erzwungen speichern
:e!     Aktuelle Datei nochmals editieren
ZZ      Wie :wq
:e file Aktuelle Datei mit anderer einlesen (:e!)
:w file Datei schreiben                     (:w!)
:r file Daten hinzulesen (in nächste Zeile)
:r! cmd Kommando ausführen
/Suche  Vorwärts suchen
?Suche  Rückwärts suchen

n N     Suche wiederholen / Rückwärts wiederholen
gg G    Erste/Letzte Zeile (Zahl G oder Zahl gg springt auf die Zeile)
%       Andere Klammer finden (mit Zahlprefix auf X% der Datei springen)

x X     Zeichen unter/vor dem Cursor löschen
D       löschen bis Zeilenende
dd      löschen der aktuellen Zeile
r C     Zeichen auf dem der Cursor durch Zeichen C ersetzen
J       Aktuelle Zeile und nächste Zeile zusammenfügen (Join)
p       Kopieren in nächste Zeile
P       Kopieren in vorherige Zeile
u U     Undo / Undo der gesamten Zeile
Ctrl-R  Redo (VIM)
.       Letztes Kommando wiederholen
N Y/yy  Anzahl Zeilen "yank"en

ESC ESC Edit-Modus verlassen
C       Ändern bis Zeilenende
i       An der aktuellen Position einfügen
a       Wie i, nur eine Position weiter rechts
I       Am Anfang der Zeile einfügen
A       Am Ende der Zeile anfügen
o       Vorherige Zeile einfügen
O       Folgende Zeile einfügen
R       Überschreiben der Zeichen
s       Aktuelles Zeichen durch Text ersetzen
S cc    Aktuellen Zeileninhalt (exklusive Indent) ersetzen (geht per S oder cc)

V XXX   Visual Modus im Zeilenmodus
v XXX   Visual Modus.  Man highlightet danach, beendet man mit dem (nachfolgenden) Kommando, was zu geschehen hat
c XXX   Ändern gemäß XXX
d XXX   Löschen gemäß XXX
y XXX   (Yank) Daten in Kopierbuffer kopieren

Prefix: Wenn man eine Zahl eingibt ist dies ein Prefix. Die Zahl gibt an, wie oft das Kommando von VI wiederholt wird.

Kommandos die ich immer wieder vergesse

Q       in EX-Modus wechseln (zurück mit vi)
~       Groß-/Kleinschreibung wechseln
Ctrl-G  Zeige Information über aktuelle Cursorposition usw.
:.=     Aktuelle Zeilennummer ausgeben
Ctrl-WW Buffer umschalten

VIM-Spezialitäten

Kann nur als YYY in der Form "v YYY" (Visual-Mode) bzw. "g YYY XXX" (direkte Eingabe des Bereichs) verwendet werden:
u U     Lowercase/Uppercase Wandelung

-Tino, 2009-01-07