17.7Tipps und Tricks

Bei der Eingabe von Kommandos, die mit (:) beginnen, gibt es einige Eingabehilfen: Mit den Cursortasten können Sie durch die zuletzt benutzten Kommandos blättern. (Vim speichert die Kommandos in .viminfo und merkt sich die Kommandos somit auch nach dem Programmende.) Weiters können Sie mit (ê) Schlüsselwörter vervollständigen (z.B. bei der Eingabe von Optionen). Und zu guter Letzt können Sie viele (:)-Kommandos abkürzen (z.B. (:) tabn statt (:) tabnext).

(:) set number zeigt neben jeder Zeile die Zeilennummer an. (:) set nonumber deaktiviert diesen Modus wieder.

Standardmäßig erstellt Vim beim Speichern kein Backup (also keine Kopie der ursprünglichen Datei). Wenn Sie das wünschen, führen Sie im Standardmodus (:) set backup aus. Die Backup-Datei erhält den Namen altername~. Um Backups generell zu aktivieren, fügen Sie set backup in .vimrc ein.

Wenn Sie Vim in einer Textkonsole oder in einem Konsolenfenster verwenden, dann ist die Funktion der Maus auf ihre Grundfunktionen unter X beschränkt: Sie können damit zwar Text kopieren und an der aktuellen Cursorposition einfügen, Sie können aber nicht die aktuelle Cursorposition verändern etc.

Um der Maus in Vim mehr Funktionen zu geben, verwenden Sie entweder die grafische Variante gvim, oder Sie führen im Standardmodus (:) set mouse=a aus. Sie können nun den Cursor durch einen Mausklick neu positionieren, das aktive Vim-Fenster auswählen, mit dem Mausrad durch den Text scrollen etc.

Dieser Mausmodus hat allerdings einen Nachteil: Die mittlere Maustaste fügt nun den zuletzt in Vim gelöschten Text ein. Die Maus kann nicht mehr zum Kopieren von Text zwischen Vim und anderen Programmen genutzt werden. Abhilfe ist aber einfach: Die herkömmlichen Mausfunktionen sind weiterhin verfügbar, wenn Sie zusätzlich die (ª)-Taste drücken. Achten Sie aber darauf, dass sich Vim beim Einfügen von Text tatsächlich im Einfügemodus befindet! Andernfalls wird der per Maus eingefügte Text als Kommando interpretiert, und das kann schiefgehen.

Damit Vim in Ihren Text grundsätzlich Leerzeichen statt Tabulatorzeichen einfügt, führen Sie (:) set expandtab aus bzw. fügen die Anweisung in .vimrc ein. Um in der vorhandenen Datei alle Tabulatorzeichen durch die entsprechende Anzahl von Leerzeichen zu ersetzen, führen Sie anschließend (:) retab aus. Um umgekehrt Leerzeichen durch Tabulatoren zu ersetzen, führen Sie (:) set unexpandtab und dann (:) retab! aus.

(.) wiederholt das letzte Kommando – so viel wissen Sie schon. Wenn Sie aber eine ganze Abfolge von Kommandos mehrfach ausführen möchten, definieren Sie ein Makro. Dazu starten Sie im Standardmodus mit (Q) den Makromodus. Das nächste Zeichen gibt den Namen des Makros an (genau genommen den Namen des Registers, in dem das Makro gespeichert wird). Alle weiteren Kommandos werden im Makro gespeichert, bis Sie die Eingabe abermals durch (Q) beenden. Das so aufgezeichnete Makro können Sie nun mit (@) makroname ausführen. (Wenn Sie Vim verlassen, gehen alle gespeicherten Makros verloren.)

Ein Beispiel: Die folgende Tastensequenz zeichnet das Makro a auf, das am Beginn und am Ende eines Worts das Anführungszeichen " einfügt:

(Q) (A) (I) (") (Esc) (E) (A) (") (Esc) (Q)

Wenn der Cursor nun innerhalb eines Worts steht und Sie (@), (A) ausführen, wird dieses Wort in Anführungszeichen gestellt. (@), (@) wiederholt das letzte Registerkommando, ohne dass Sie sich an den Makro- bzw. Registernamen erinnern müssen.

Wenn Sie in Vim ein Linux-Kommando ausführen möchten, ohne Vim zu verlassen, führen Sie im Standardmodus (:) !kommandoname aus (also beispielsweise !ls, um die Liste der Dateien im aktuellen Verzeichnis zu ermitteln). Vim zeigt das Ergebnis des Kommandos an. Mit (¢) gelangen Sie zurück in den Editor. Zur Ausführung mehrerer Kommandos öffnen Sie mit (:) sh eine neue Shell. Von dort gelangen Sie mit (Strg)+(D) zurück in den Editor.

Wenn Sie sich nicht an die verschiedenen Vim-Modi gewöhnen können, auf Vim aber nicht mehr verzichten möchten, starten Sie das Programm am besten mit vim -y bzw. führen (:) set insertmode aus. Damit verbleibt der Editor immer im Einfügemodus. Sie müssen nun jedes Kommando mit (Strg)+(O) einleiten. Um mehrere Kommandos auf einmal auszuführen, ist es auch möglich, mit (Strg)+(L) für längere Zeit in den Standardmodus zu wechseln und diesen mit (Esc) zu verlassen.

Noch ähnlicher zu anderen Editoren verhält sich Vim, wenn Sie evim starten: Damit wird der Editor in der grafischen Benutzeroberfläche gvim gestartet. Textmarkierungen können mit (ª) und den Cursortasten durchgeführt werden. Texte werden mit (Strg)+(C) kopiert, mit (Strg)+(X) gelöscht und mit (Strg)+(V) wieder eingefügt. man evim bezeichnet den Easy-Modus als »Vim for gumbies« (was auch immer ein gumby ist ...): Sie verlieren damit so viel von den Grundeigenschaften von Vim, dass es besser ist, gleich einen anderen Editor einzusetzen.