|
|
Nützliches
|
Kommandos
|
|
Hier einige nützliche und nicht unbedingt geläufige Kommandos, die insbesondere für
Programmierer interessant sind.
|
*
|
Suche innerhalb der aktuellen Datei nach dem Wort unter dem Cursor.
|
n
|
weitersuchen vorwärts
|
|
N
|
weitersuchen rückwärts
|
|
|
:grep
|
Suche über mehrere Dateien hinweg.
Z.B.: ":grep foo path/*.c path/*.h" durchsucht alle Dateien mit Index .c oder
.h im Verzeichnis "path" nach dem Wort foo.
Navigation: (wie bei :make)
|
:cnext
|
Cursor an nächste Fundstelle
|
|
:cprevious
|
Cursor an vorherige Fundstelle
|
|
:clist
|
listet alle Fundstellen auf
|
|
:copen
|
öffnet Auswahlliste
|
Fehlt die Pfadangabe "path", wird im aktuellen Verzeichnis gesucht.
|
|
[i
|
Zeigt die erste Zeile, in der das Wort unter dem Cursor vorkommt. Dabei werden
auch die in die aktuelle Datei importierten Include-Dateien durchsucht.
|
|
[I
|
Zeigt alle Zeilen, in denen das Wort unter dem Cursor vorkommt. Dabei werden
auch die in die aktuelle Datei importierten Include-Dateien durchsucht.
|
|
[d
|
Zeigt erste Makro-Definition für das Makro unter dem Cursor.
Dabei werden auch die in die aktuelle Datei importierten Include-Dateien durchsucht.
|
|
[D
|
Zeigt alle Makro-Definitionen für das Makro unter dem Cursor.
Dabei werden auch die in die aktuelle Datei importierten Include-Dateien durchsucht.
|
:args {files}
:argdo s//
|
Suchen und Ersetzen in allen durch {files} definierten Dateien.
Beispiel:
:args *.[ch]
:argdo %s/TODO/DONE_NOW/ge | update
Ersetzt ohne Rückfrage in allen *.c und *.h Dateien TODO durch DONE_NOW und speichert
die geänderten Dateien.
Verwendet man als Flags /gec statt /ge erfolgt vor jedem Ersetzen eine
Rückfrage. Wird | update weggelassen, werden die geänderten
Dateien nicht gespeichert.
|
|
:bufdo s//
|
Suchen und Ersetzen in allen Puffern.
|
|
:windo s//
|
Suchen und Ersetzen in allen Fenstern.
|
|
%
|
Bewege den Cursor an:
- korrespondierende Klammer (, {, [, ], }, )
- Gegenstück zum C-Kommentar (/* bzw. */)
- Gegenstück zu #if, #ifdef, #else, #elif oder #endif
|
|
m{a-z}
|
Setze Markierung an die aktuelle Cursorposition. Mit `{a-z} kann
diese Markierung wieder angesprungen werden. Die Markierung ist nur innerhalb
der aktuellen Datei gültig.
|
|
m{A-Z0-9}
|
Setze Markierung an die aktuelle Cursorposition. Mit `{A-Z0-9} kann
diese Markierung wieder angesprungen werden. Die Markierung ist im Gegensatz
zu den {a-z} Markierungen global gültig und kann somit auch von einer anderen
Datei aus angesprungen werden.
|
|
ctrl-Home
|
Setze Cursor an Dateianfang.
|
|
ctrl-End
|
Setze Cursor an Dateiende.
|
|
gd
|
Setze Cursor an die lokale Deklaration der Varialbe unter dem Cursor (Suche
nur innerhalb der Funktion).
|
|
gD
|
Setze Cursor an die globale Deklaration der Varialbe unter dem Cursor.
|
|
[ctrl-i
|
Setzt Cursor in die Zeile, in der das Wort unter dem Cursor zum ersten
mal vorkommt.
Dabei werden auch die in die aktuelle Datei importierten Include-Dateien durchsucht.
|
|
[ctrl-d
|
Setzt Cursor in die Zeile, in der das Makro unter dem Cursor zum ersten
mal definiert wird.
Dabei werden auch die in die aktuelle Datei importierten Include-Dateien durchsucht.
|
ctrl-o
ctrl-i
|
ctrl-o setzt den Cursor an den vorherigen Eintrag in der Jump-Liste,
ctrl-i an den nachfolgenden. Nähere Info unter
:help jump-motions
|
|
ctrl-n
|
Im Textmodus(!): Durchsucht vorwärts diverse Dateien nach Worten, die
mit dem Schlüsselwort beginnen, das vor dem Cursor steht.
Das Schlüsselwort wird entsprechend ergänzt. Liegen
mehrere Treffer vor, können diese mit weiteren ctrl-n durchgeschaltet
werden.
Gibt es z.B. in einem Programmierprojekt die Funktionen ThisIsAFunction()
und ThisIsAFunctionToo() so führt die Eingabe von
Thisctrl-n
zu
ThisIsAFunction
und die nochmalige Eingabe von ctrl-n zu
ThisIsAFunctionToo
'complete' legt fest, welche Dateien nach Schlüsselwörtern
durchsucht werden. Mehr Informationen siehe unter :help complete.
|
|
ctrl-p
|
Im Textmodus(!): wie ctrl-n, Suche erfolgt aber rückwärts.
|
|
ctrl-v, I, //, ESC
|
Bereich auskommentieren (C++): mit ctrl-v
den auszukommentierenden Bereich markieren, dann I drücken
und die Kommentarzeichen // eingeben und abschließend ESC drücken.
|
|
gf
|
Öffne Datei, dessen Name unter dem Cursor steht (insbesondere für
Include-Dateien interessant). 'path' bestimmt, in welchen
Verzeichnissen gesucht wird.
|
|
K
|
Öffne Man-Page zu dem Wort unter dem Cursor.
|
|
Tipps + Tricks
|
|
Hier ein paar Tipps+Tricks in ungeordneter Reihenfolge.
-
HTML
Vim bietet bekanntlich die :make Funktion an, mit der ein Projekt
übersetzt werden kann. Anschließend kann ggf. die Fehlerliste durchsucht
werden; der Cursor springt dabei an die Stelle im Source-Code, für die der
Compiler einen Fehler oder eine Warnung generiert hat.
Für HTML-Dateien gibt es zwar keinen Compiler, aber sogenannte Validatoren (müßten eigentlich
Verifikatoren heißen - naja, tun sie aber nun mal nicht). Diese Validatoren
überprüfen, ob eine HTML-Datei den Spezifikationen zu HTML entspricht.
Wenn nicht, werden entsprechende Meldungen ausgegeben.
Ein solcher Validator ist tidy, und genau den unterstützt auch Vim.
Geben sie ein
:compiler tidy
und anschließend
:make (oder <F5> drücken)
Die HTML-Datei, die in dem Puffer steht, aus dem heraus Sie :make aufgerufen haben,
wird von tidy geprüft. Werden Fehler gefunden, kann die Fehlerliste mit :cnext und
:cprevious durchgesteppt werden.
tidy muß natürlich auf dem System installiert sein. Hier gehts zur
tidy Homepage.
-
Jump to tag
Zu dem Tag unter dem Cursor springt man laut Doku zu Vim mittels ctrl-]. Das
stimmt für Linux, unter Win32 geht das aber leider aus Gründen, denen ich bisher
nicht nachgegangen bin, nicht. Unter Win32 muß man stattdessen ctrl-+ verwenden.
|