Nachdem nun klar sein dürfte, wie das Suchen funktioniert, soll nun das Ersetzen von Text und das Speichern eigener Programmeinstellungen erläutert werden.
Ersetzen
Eine der gängigsten Programmieraufgaben besteht im Ersetzen bestimmter Strings in einem Script, zum Beispiel wenn man den Namen einer Variablen ändern möchte. Für solche Aufgaben bietet ViM einen äußerst leistungsfähigen Ersetzen-Befehl. Hier ein Beispiel, bei dem sämtliche vorkommenden Variablen von colour in der aktuellen Zeile durch color ersetzt werden:
:s/colour/color/gi
Der Schalter g bewirkt, dass alle vorkommenden Variablen in der aktuellen Zeile ersetzt werden (ohne ihn würde nur das erste Vorkommen ersetzt), während der Schalter i eine Suche unabhängig von Groß- und Kleinschreibung durchführt.
Mit dem Schalter c sorgt man dafür, dass ViM jeden Ersetzen-Vorgang einzeln bestätigen lässt:
:s/colour/color/gic
In den meisten Fällen will man natürlich die Ersetzung nicht nur in einer Zeile durchführen, denn das kann man notfalls auch per Hand erledigen. Stattdessen wird man normalerweise das Suchen und Ersetzen für eine gesamte Datei durchführen wollen. Die wahre Leistungsfähigkeit von ViM zeigt sich, wenn man dem vorigen Befehl einen Suchbereich hinzufügt:
:1,$s/colour/color/gi
Damit wird ViM angewiesen, das Suchen und Ersetzen in der ganzen Datei durchzuführen, von Zeile 1 (Datei-Anfang) bis $ (Datei-Ende). Man kann natürlich auch andere Seitenbereiche angeben.
Vergleichen von Dateien
Falls man zwei oder mehr Scripts vergleichen muss um zu sehen, welche Änderungen zwischen ihnen vorgenommen wurden, kann man zum Anzeigen der Unterschiede den eingebauten diff-Befehl von ViM verwenden. Hierzu startet man ViM mit der Option -d, gefolgt von den Namen der zu vergleichenden Dateien:
$ vim -d expenses.c expenses-old.c
In diesem Modus startet ViM so, dass jede der Dateien ein eigenes senkrechtes Fenster erhält. Die Unterschiede zwischen den beiden Dateien werden mit unterschiedlichen Farben markiert (falls das Terminal dies unterstützt) oder mit entsprechenden Zeichen (falls keine Unterstützung vorhanden ist). Zur Bearbeitung dieser Dateien kann nun mit der wie schon weiter oben beschriebenen Tastenkombination zwischen den beiden Fenstern hin und her zu wechseln.
Falls man beide Dateien gleichzeitig bearbeiten möchte, gibt es zwei interessante Befehle, die einem das Leben erleichtern. Man kann jederzeit
:diffupdate
eingeben um einen erneuten Vergleich der Dateien durchzuführen und die aktuellen Unterschiede in den Fenstern anzeigen zu lassen. Und wenn man
:set scrollbind
eingibt, scrollen beide Fenster synchron (was extrem nützlich ist, wenn man zwei Versionen derselben Datei vergleicht).
Speichern und Wiederherstellen von Einstellungen
Ein interessantes, aber häufig übersehenes Feature von ViM ist die Möglichkeit, individuelle Einstellungen aus der zu bearbeitenden Datei zu importieren. Üblicherweise wird man diese Funktion benutzen, um die globalen oder persönlichen ViM-Einstellungen (in vimrc-Dateien) mit Einstellungen zu überschreiben, die für die Bearbeitung einer bestimmten Datei optimiert wurden.
So könnte man zum Beispiel für C-Dateien automatisches Einrücken aktivieren oder für CGI-Scripts ein eigenes Farbschema einrichten, indem man einfach die entsprechenden Variablen als so genannte modelines ans Ende der Datei anhängt.
Hier ein Beispiel, wie solche Einstellungen aussehen könnten:
vim:tw=10:autoindent:
Wichtig: Man beachte das Leerzeichen am Anfang der Zeile!
Falls der obige nackte Code den Script-Interpreter aus dem Konzept bringt, kann man alternativ die folgende Syntax verwenden, bei der die ViM-modeline in Kommentarzeichen eingeschlossen ist, so dass sie vom Parser ignoriert wird:
/* vim: set autoindent tw=10: */
Um ViM anzuweisen, die individuellen Einstellungen zu lesen, wenn die Datei zum Bearbeiten geöffnet wird, muss man in ViM mit folgenden Befehl das Parsen der modeline aktivieren:
:set modeline
Oder man kann den Befehl zu den Start-up-Konfigurationsdateien von ViM hinzufügen.
Neueste Kommentare
Noch keine Kommentare zu ViM – Ein Editor für Programmierer
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.