Lego2012
12/22/2016 - 8:42 PM

VIM Befehle und Tastenbelegung

VIM Befehle und Tastenbelegung

VIM - Befehle und Tastatenbelegung

Navigation

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

<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ß