Samstag, 21. Februar 2009

vim

Inhalt

  • Befehle / Kommandos
  • Navigieren
  • Editieren
  • Löschen (Ausschneiden)/ Delete (Cut)
  • Rückgängig und Wiederholen/ Undo & Redo
  • Kopieren (yank) und Einfügen / Copy & Paste
  • Zwischenspeicher / Puffer
  • Suchen und Ersetzen / Find & Replace
  • Markierungen / Bookmarks
  • Text falten (folding)
  • Fenster (windows mode)
  • Tab / Reiter
  • Sonderzeichen

Befehle / Kommandos

  • :q - Vim beenden (wenn keine Änderungen vorgenommen wurden)
  • :q! - Vim beenden und Änderungen verwerfen
  • :wq / ZZ - Vim beenden und speichern
  • :w - Datei speichern
  • :e! {datei} - Datei zum editieren laden. z.B. :e! .vimrc
  • :r {datei} - {datei} ab aktuellem Cursor einfügen
  • :r! {command} - Ausgabe des Kommandos einfügen. z.B. :r! ls -a
  • :sh - Shell starten
  • :!{command} - Das Kommando {command} wird ausgeführt. z.B. :!sort

Navigieren

  • hjkl - rechts, runter, hoch, links. Es funktionieren meist aber auch die Pfeiltasten
  • w - Ein Wort weiterspringen (nach rechts)
  • b - Ein Wort zurückspringen (nach links)
  • ( - An den Satzanfang springen (nach links)
  • ) - An das Satzende springen (nach rechts)
  • zt - Aktuelle Zeile an den Bildschirmanfang (oben) setzen- Top
  • zz - Aktuelle Zeile in die Bildmitte setzen- Zentrum
  • zb - Aktuelle Zeile an das Bildschirmende (unten) setzen - Bottom
  • M - Cursor in Bildmitte setzen

Editieren

  • i/I - Insert am aktuellen Zeichen/ Insert am Zeilenanfang
  • a/A - Anhängen nach dem aktuellen Zeichen / Am Zeilenende anhängen
  • r/R - Überschreiben des aktuellen Zeichens / Überschreiben bis Zeilenende
  • cw - Aktuelles Wort löschen und in den Insert Modus schalten
  • o/O - Leerzeile unter - / Leerzeile über der aktuellen Zeile einfügen
  • C - Ab aktueller Position bis Zeilenende löschen und in den Insert Modus schalten

Löschen (Ausschneiden)/ Delete (Cut)

  • x/X - Löscht (Ausschneiden) das Zeichen unter dem Cursor / Vor dem Cursor
  • dd/D - Löscht(Ausschneiden) aktuelle Zeile / bis Zeilenende
  • d{num}d - Löscht (Ausschneiden) soviele Zeilen, wie in {num} angegeben. z.B. d5d
  • dw - Löscht (Ausschneiden) bis Wortende
  • d$ - Löscht (Ausschneiden) bis Zeilenende
  • J - Zwei Zeilen zusammenfassen

Rückgängig und Wiederholen/ Undo & Redo

  • u - Macht Änderungen rückgängig. Die Historie speichert 1000 Vorgänge
  • U - Zuletzt geänderte Zeile wieder herstellen
  • Strg+r - Letzten rückgängig gemachten Befehl wiederholen
  • . - Letzten Befehl wiederholen

Kopieren (yank) und Einfügen / Copy & Paste

  • v - Zeichenweise einen Bereich markieren - kopieren mit Eingabe
  • V - Zeilenweise einen Bereichmarkieren - kopieren mit Eingabe
  • Strg+v - Bereich (horizontal+vertikal) auswählen - kopieren mit Eingabe
  • yy - Die aktuelle Zeile kopieren
  • yw - Ein einzelnes Wort kopieren
  • y( - Von aktuellem Zeichen bis Satzanfang kopieren
  • y) - Von aktuellem Zeichen bis Satzende kopieren
  • Zum Ausschneiden kann man statt der Eingabetaste d drücken

Zwischenspeicher / Puffer

  • Es stehen 36 Puffer zur Verfügung [1..0] und [a..z]
  • “{puffer}y - Markierter Text wird in den Puffer {puffer} gespeichert z.B. “fy (Puffer f)
  • “{puffer}p/P - Puffer {puffer} wird nach / vor dem aktuellen Zeichen/Zeile eingefügt. z.B. “fp (Puffer f)

Suchen und Ersetzen / Find & Replace

  • /{suchbegriff} - Der {suchbegriff} wird gesucht. z.B. /Markierung
  • n/b - Vorwärts / Rückwärts suchen
  • :%s/{alt}/{neu}/g - Sucht und ersetzt jedes Vorkommen von {alt} mit {neu} in der kompletten Datei

Markierungen / Bookmarks

  • m{Key} - Die m Taste plus ein {Key} (Buchstabe) für die Markierung [a..Z]. z.B. ma
  • ‘{Key} - Springt in die Zeile der Markierung
  • `{Key} - Springt direkt auf das Zeichen, auf dem die Markierung gesetzt wurde
  • :marks - Alle Markierungen auflisten
  • :jumps - Alle Sprungmarken auflisten

Text falten (folding)

  • zfm - Erzeuge Faltung
  • zo - Öffne Faltung wieder
  • zR - Öffne alle Faltungen
  • zc - Schließe Faltung wieder

Fenster (windows mode)

  • Strg+ws - Fenster waagrecht teilen (:split)
  • Strg+wn - Neues+leeres Fenster erzeugen (:new)
  • Strg+wo - Aktuelles Fenster wird einziges Fenster (:on)
  • Strg+wj - In das untere Fenster wechseln
  • Strg+wk - In das obere Fenster wechseln
  • Strg+wv - Fenster senkrecht teilen (:vsplit)
  • Strg+wh - In das linke Fenster wechseln
  • Strg+wl - In das rechte Fenster wechseln

Tab / Reiter

  • vim -p {datei1} {datei2} {datei3} - öffnet die 3 angegebenen Dateien in Tabs
  • :tabe {datei} - Neues Tab öffnen und Datei {datei} laden.
  • gt - Zum nächsten Tab springen
  • gT - Zum vorherigen Tab springen
  • :tabr - Zum ersten Tab springen
  • :tabl - Zum letzten Tab springen
  • :tabm {n} - Verschiebt das aktuelle Tab auf Position {n}
  • :tabdo {vi command} - Führt das Kommando in allen geöffneten Tabs aus

Sonderzeichen

  • :digraph - Zeigt die komplette Sonderzeichentabelle
  • Str+k+{code} - {code} ist der Code aus der Sonderzeichentabelle

Eine noch ausführlichere Übersicht gibt es als PDF Datei zum runterladen hier und hier und hier.