VIM Cheat Sheet Fenster
Ctrl-W z {nr} Ctrl-W Ctrl-W Ctrl-W Ctrl-W Ctrl-W Ctrl-W Ctrl-W s + = W q
1/7
Horizontaler Split Fenster auf {nr} Zeilen vergrößern Fenster um eine Zeile vergrößern Fenster um eine Zeile verkleinern Fenstergröße gleichmäßig aufteilen Zwischen Fenster hin- und herwechseln Ein Fenster nach oben wechseln Ein Fenster nach unten wechseln Fenster schließen
Textumbruch
gqq gqap v_gq
Aktuelle Zeile formatieren Aktuellen Absatz formatieren Markierten Bereich formatieren
Anstelle von „gq“ kann auch „gw“ verwendet werden. Nach dem Formatieren steht dann der Cursor wieder an derselben Stelle wie zuvor. Tabs
:tabe {File} :tabc :tabo :tabm [N] :tabp :tabn :tabdo {cmd}
File in neuem Tab öffnen Aktuellen Tab schließen Alle anderen Tabs schließen Tab vor Tab N bewegen. Beim Weglassen von N wird das Tab an die letzte Stelle bewegt Zum vorherigen Tab wechseln Zum nächsten Tab wechseln {cmd} in allen Tabs ausführen
Kopieren und Einfügen (zeilenweise)
Y D P p gP gp
Aktuelle Zeile kopieren („yank“) Aktuelle Zeile löschen Registerinhalt vor der aktuellen Cursorposition einfügen Registerinhalt nach der aktuellen Cursorposition einfügen Wie P, aber Cursor auf das erste Zeichen nach dem einfügten Inhalt setzen Wie p, aber Cursor auf das erste Zeichen nach dem eingefügten Inhalt setzen
Alexander Lehmann
Stand: 19.02.08
VIM Cheat Sheet Folds
:set :set :set :set :zr :zR :zm :zM :zo :zO :zc :zC :za :zA fdc=N fdm=(manual|syntax) fen! foldlevel=N
2/7
Set fold-column to N Set folding-method Toggle fold-enable Reduce fold-level Open all folds Increase fold-level Close all folds Open one fold under cursor Open all folds under cursor recursively Close one fold under cursor Close all folds under cursor recursively Open/Close fold under cursor Open/Close all folds under cursor recursively
Selektionen
V v Ctrl-V gv y x d c p !{cmd} Gq J gJ I{text} A{text}
Zeilenweisen Visual Mode beginnen Zeichenweisen Visual Mode beginnen Blockweisen Visual Mode beginnen Selektion wiederholen Selektion kopieren („yank“) Selektion ausschneiden Selektierten löschen Selektierten löschen und im Insert Mode fortfahren Selektion durch Registerinhalt (vom Kopieren oder Ausschneiden) ersetzen Selektion durch externes Kommando {cmd} filtern Selektion formatieren Selektierte Zeilen zusammenfügen, dazwischen jeweils ein Leerzeichen einfügen Selektierte Zeilen zusammenfügen, ohne dazwischen Leerzeichen einzufügen Text vor der Selektion einfügen (nur im Visual Block Mode!) Text nach der Selektion einfügen (nur im Visual Block Mode!)
Alexander Lehmann
Stand: 19.02.08
VIM Cheat Sheet Buffer
:bd :bp :bn :br :bl :bm :sbp :sbn :sbr :sbl :sbm :buffers :bufdo {cmd}
3/7
Buffer löschen Zum vorherigen Buffer wechseln Zum nächsten Buffer wechseln Zum ersten Buffer wechseln Zum letzten Buffer wechseln Zum nächsten modifizierten Buffer wechseln Zum vorherigen Buffer wechseln und diesen in einem neuen Splitfenster öffnen Zum nächsten Buffer wechseln und diesen in einem neuen Splitfenster öffnen Zum ersten Buffer wechseln und diesen in einem neuen Splitfenster öffnen Zum letzten Buffer wechseln und diesen in einem neuen Splitfenster öffnen Zum nächsten modifizierten Buffer wechseln und diesen in einem neuen Splitfenster öffnen Alle geöffneten Buffer zeigen {cmd} auf alle geöffneten Buffer anwenden
Insert Mode Completion
Ctrl-X_Ctrl-N Ctrl-X_Ctrl-P Ctrl-X_Ctrl-I
Ctrl-X_Ctrl-] Ctrl-X_Ctrl-F Ctrl-X_Ctrl-O
Vorwärtssuche nach dem Wort vor dem Cursor. Einfügen eines gefundenen Keywords vor dem Cursor Rückwärtssuche nach dem Wort vor dem Cursor. Einfügen eines gefundenen Keywords vor dem Cursor Suche nach dem Wort vor dem Cursor in der aktuellen Datei und allen Include-Dateien. Einfügen eines gefundenen Keywords vor dem Cursor. Suche nach dem Wort vor dem Cursor in tags (vgl. hierzu :help tags) Suche nach einem Dateinamen, der mit dem Wort vor dem Cursor beginnt. Einfügen vor dem Cursor. Omni-Completion aka IntelliSense™
Die aufgelistetenen Tastenkombinationen leiten alle einen Untermodus des Insert Mode ein. Das jeweils nächste gefundene Keyword kann mit der Tastenkombination Ctrl-N, das vorherige mit Ctrl-P gesucht werden. Wenn die Option completeopt das Schlüsselwort menu enthält, wird bei mehreren gefundenen Möglichkeiten ein Popup-Menü eingeblendet.
Alexander Lehmann
Stand: 19.02.08
VIM Cheat Sheet Sonstiges
:e {File} :e! :w [File] :r {File} :r !{cmd} :sp {File} gf ga O o I A K w W e E b B /{text} ?{text} * # n N [[ ]] % :retab
4/7
{File} öffnen Alle Änderungen zurücknehmen und somit die Datei in ihren Originalzustand zurückversetzen File speichern. Bei Angabe von [File] diesen zum Speichern benutzen {File} ab der aktuellen Cursorposition einfügen Die Ausgabe des externen {cmd} ab der aktuellen Cursorposition einfügen Fenster splitten und File im neuen Fenster öffnen File unter Cursor öffnen Ascii-, Hex- und Octalwert für das Zeichen unter dem Cursor anzeigen Eine leere Zeile nach der aktuellen Cursorposition einfügen und in den Insert Mode wechseln Eine leere Zeile vor der aktuellen Cursorposition einfügen und in den Insert Mode wechseln An den Beginn der aktuellen Zeile springen und in den Insert Mode wechseln An das Ende der aktuellen Zeile springen und in den Insert Mode wechseln Man-Page für das Wort unter dem Cursor öffnen Bewegt den Cursor zum Anfang des nächsten Wortes Bewegt den Cursor zum Anfang der nächsten Zeichenkette Bewegt den Cursor zum Ende eines Wortes Bewegt den Cursor zum Ende einer Zeichenkette Bewegt den Cursor zum Anfang eines Wortes Bewegt den Cursor zum Anfang einer Zeichenkette Vorwärtssuche nach {text} Rückwärtssuche nach {text} Vorwärtssuche nach dem Wort unter dem Cursor Rückwärtssuche nach dem Wort unter dem Cursor Die letzte Suche wiederholen Die letzte Suche in gegensätzlicher Richtung wiederholen Springt zur vorherigen Funktion (im C-Modus) Springt zur nachfolgenden Funktion (im C-Modus) Springt zur passenden öffnenden/schließenden Klammer und auch zum passenden #if, #ifdef und #endif Einzug des selektierten Bereuz
Alexander Lehmann
Stand: 19.02.08
VIM Cheat Sheet Mappings map nmap vmap omap map! imap cmap lmap Normal x x Visual & Select x x x Insert x x x Command-Line x x x Lang-Arg Operator-pending x
5/7
x
In diesem Zusammenhang ist :help key-codes nützlich. Nützliche Optionen
:set {option}? :set {option}! :set no{option} autowrite wildmenu wildignore=*.bak *.o cul hls showmatch showfulltag mouse=[n|v|i|c|h|a]
Zeigt den aktuellen Wert einer Option an Negiert den Wert boolescher Optionen Setzt den Wert von {option} auf false Automatisches Speichern des Buffers (zum Beispiel vor der Ausführung von :make) show menu when completing filenames self-explanatory Highlight the current line Highlight-Search Zeigt zusammengehörende Klammernpaare beim Programmieren an Zeigt bei Verwendung von tags die komplette Funktionsdefinition Maus aktivieren im
n i v c h a = = = = = =
shiftwidth={nr} tabstop={nr} expandtab
{nr} Leerzeichen pro Level beim automatischen Einrücken benutzen {nr} Leerzeichen pro Tabstop Leerzeichen anstelle von Tabulatoren benutzen
Normal mode Insert mode Visual mode Command mode Alle vorherigen bei Betrachten der Hilfe Alle vorherigen
Alexander Lehmann
Stand: 19.02.08
VIM Cheat Sheet Autocommands
6/7
:autocmd {Event} {Pat} {Cmd} Bei Eintreten von {Event} für Buffer, deren Name dem Pattern :autocmd! {Event} {Pat}
{Pat} entspricht, {Cmd} ausführen Auto-Command für {Event} und Pattern {Pat} löschen Pattern
*
Event
QuickFixCmdPost
InsertEnter,InsertLeave
*
Funktion Falls bei make ein Fehler aufgetreten ist, das QuickFixWindow öffnen. Falls kein Fehler aufgetreten ist, das eventuell geöffnete QuickFix-Window schließen silent set cul! Aktuelle Zeile im Insert Mode hervorheben
cwindow
Kommando
QuickFix-Window
_W- :ccl[ose] :[vim]grep {regex}
Aus dem QuickFix-Window heraus ein neues Fenster erzeugen und zum Fehler unter dem Cursor springen QuickFix-Window schliessen ViM's eigenes oder externes (je nach Verwendung des Präfixes vim) Grep ausführen und ein QuickFix-Window mit den Ergebnissen öffnen
Alexander Lehmann
Stand: 19.02.08
VIM Cheat Sheet Beispiel ~/.vimrc:
filetype plugin indent on set autowrite showmatch wildmenu showfulltag mouse=a map :silent set hls!:set hls? map map map map map map :w:bd :silent set fdc=4 fdm=syntax fen foldlevel=1 :silent set fdc=0 nofen :make :w:bp :w:bn :w:bd :silent set fdc=4 fdm=syntax fen foldlevel=1 :silent set fdc=0 nofen :make :w:bp :w:bn
7/7
map! map! map! map! map! map!
if v:version >= 700 autocmd QuickFixCmdPost * cw endif
Beispiel ~/.gvimrc:
set guifont=Verdana\ Sans\ Bold\ 11,Arial\ 11,Fixed\ 11 autocmd InsertEnter,InsertLeave * set cul!
Die gvimrc wird nur von der GUI-Variante von VIM interpretiert. GUI-spezifische Einstellungen sollten daher in dieser Datei vorgenommen werden.
Alexander Lehmann
Stand: 19.02.08