**************************************
* VIM - Befehle und Tastatenbelegung *
**************************************

Navigation <motion> 
-------------------
h,l,j,k		Cursor links, rechts, runter, rauf
w		Nächster Wortanfang
W		Nächster WORD-Anfang (durch Blank abgegrenzt)
e		Nächstes Wortende
E		Nächstes WORD-Ende
b		Vorheriger Wortanfang
B		Vorheriger WORD-Anfang
ge		Vorheriges Wortende
0		Zeilenanfang
^		Erstes Zeichen der Zeile
$		Zeilenende
)		Nächster Satzanfang
(		Vorheriger Satzanfang
}		Nächstes Absatzende
{		Vorheriger Absatzanfang
+		Erstes Zeichen der nächsten Zeile
-		Erstes Zeichen der vorherigen Zeile
%		Zugehörige Klammer
gg		Dateianfang
G		Dateiende
<n>G		Zeile <n>
H		Erste Bildschirmzeile
M		Bildschirmmitte
L		Letzte Bildschirmzeile
C-f		Bildschirmseite runter
C-b		Bildschirmseite hoch
C-d		Halbe Bildschirmseite runter
C-u		Halbe Bildschirmseite hoch
[<n>]zt		aktuelle Zeile auf Bildschirmzeile <n> scrollen
[<n>]zb		aktuelle Zeile auf <n>t-lezte Bildschirmzeile scrollen
zz		aktuelle Zeile auf Bildschirmmitte scrollen

Textobjekt-Selektion für Befehle <selection>
--------------------------------------------
<motion> oder: a|i w|W|s|p|(|)|b|[|]|<|>|{|}|B

a		Äußeres Objekt (inkl. Klammern, etc.)
i		Inneres Objekt (ohne Klammern und Leerraum)

w		Wort
W		WORD
s		Satz
p		Absatz
( ) b		() - Klammerblock
[ ]		[] - Klammerblock
< >		<> - Klammerblock
{ } B		{} - Klammerblock

Textselektion im Visual mode
----------------------------
v		zeichenorientiert
V		zeilenorientiert
C-v		rechteckorientiert

Suche
-----
/<string>	Vorwärtssuche nach <string>
?<string>	Rückwärtssuche nach <string>
n		nächster Treffer in gleicher Richtung
N		nächster Treffer in anderer Richtung

Bereiche
--------
<range> ::=   %			(ganze Datei)
	    | <line s>,<line e>	(von Zeile s bis Zeile e)
	    | <line s>;<line n>	(n Zeilen ab Zeile s

<line> ::=    n			(Zeile Nummer n)
	   |  .			(aktuelle Zeile)
	   |  $			Letzte Zeile in Datei
	   |  /pattern		Nächste Zeile, in der string vorkommt

Wechsel in Eingabemodus
-----------------------
i		Text vor der aktuellen Position einfügen
I		Text am Zeilenanfang (erstes Nicht-Blank) einfügen
a		Text nach der aktuellen Position einfügen
A		Text am Ende der aktuellen Zeile einfügen
R		Text ab aktueller Position überschreiben
o		Neue Zeile nach der aktuellen erzeugen
O		Neue Zeile vor der aktuellen erzeugen
s		Aktuelles Zeichen löschen, dann insert
S		Aktuelle Zeile löschen, dann insert

Tasten im Eingabemodus
----------------------

C-w		letztes Wort löschen
C-p		Wort vervollständigen
C-t		Zeile einrücken
C-d		Zeile Ausrücken
ESC		Eingabemodus verlassen

Befehle
-------
[count]command			command count-mal ausführen (default: 1)
u				Letzten Befehl rückgängig machen
U				Undo der aktuellen Zeile
x				Zeichen unter Cursor löschen
X				Zeichen vor Cursor löschen
d<selection>			Löschen bis zur Position <motion>
dd				Aktuelle Zeile löschen
D				Von Cursor bis zum Zeilenende löschen
y<selection>			Kopieren in Default-Puffer bis <motion>
yy				Kopieren der aktuellen Zeile
c<selection>			Ersetzen (Löschen und Eingabe) bis <motion>
cc				Aktuelle Zeile ersetzen
C				Vom Cursor bis zum Zeilenende ersetzen
p				Default-Puffer nach Cursor einfügen (von d oder y)
P				Default-Puffer vor Cursor einfügen
.				Wiederholung des letzten d oder c
J				Verbindet die aktuelle mit der nächsten Zeile
r<char>				Ersetzt das aktuelle Zeichen durch <char>
~				Ändert Groß/Kleinschreibung des akt. Zeichens
q<char> <commands> q		Makro namens <char> aufzeichnen
@<char>				Makro namens <char> aufrufen

:[range] s/from/to/[g][c]	in range (default: aktuelle Zeile) erstes from
				durch to ersetzen; g=alle Vorkommen ersetzen;
				c=mit Bestätigung

:[range] g[!]/pattern/command	in range (default: ges. Datei) command in Zeilen
				ausführen, die pattern (! = nicht) erfüllen 

!<motion> <system command>	Filtern bis <motion> durch <system command>

Textfaltung
-----------
zf<selection>			Faltung erzeugen
zo				Faltung öffnen
zc				Faltung schließen
zr				sichtbare Faltungstiefe erhöhen
zR				alle Faltungen sichtbar machen
zm				sichtbare Faltungstiefe verringern
zM				alle Faltungen einklappen
zn				Faltungsmodus ausschalten
zN				Faltungsmodus einschalten
zi				Faltungsmodus umschalten
:set foldmethod			Methode setzen (indent, marker, syntax)

Markierungen
------------
m<char>				Setzt Markierung namens <char>
'<char>				Springt zur Markierung <char>
:marks				Zeigt alle Markierungen an

Dateikommandos
--------------

:q		Beenden
:q!		Beenden ohne Speichern
:x	ZZ	Speichern und Beenden
:w		Speichern

Fenster
-------
:split		Aktuelles Fenster teilen
:split <file>	<file> in neuem Fenster öffnen
:new		Neuen Buffer in neuem Fenster öffnen
:sview <file>	:split und :view <file>

C-w w		Nächstes Fenster selektieren (zyklisch)
C-w j		Ein Fenster nach unten
C-w k		Ein Fenster nach oben
<n>C-w +	Fenster um <n> Zeilen vergrößern
<n>C-w -	Fenster um <n> Zeilen verkleinern
<n>C-w _	Fenstergröße auf <n> Zeilen setzen (ohne <n>: maximal)
C-w =		Alle Fenster gleichgroß