Einfügemodus

Der Einfügemodus dient – wie der Name schon sagt – zum Einfügen von Text in die aktuelle Datei. Hier gleicht Vim einem “normalen” Editor: Alle Buchstaben, Zahlen, etc. erscheinen nach der Eingabe an der aktuellen Position auf dem Bildschirm.

Ausgehend vom Normalmodus gelangt man in den Einfügemodus durch Drücken einer der folgenden Tasten:

i Text einfügen vor der momentanen Position (insert)
I Text einfügen zu Beginn der momentanen Zeile  
a Text einfügen nach der momentanen Position (append)
A Text einfügen am Ende der momentanen Zeile  
o Text einfügen unter der aktuellen Zeile (open a new line)
O Text einfügen über der aktuellen Zeile  

Auch mit s, S, c, C, r, R gelangt man in den Einfügemodus. Hierbei wird jedoch bestehender Text ersetzt.

Gibt man beispielsweise 10i gefolgt von etwas Text ein, so wird nach Beenden der Eingabe mit Esc das 10-fache des eingegebenen Textes eingefügt.

Im Einfügemodus gibt es standardmäßig folgende Tastenkombinationen:

Ctrl n bzw. Ctrl p Vervollständigung des aktuellen Wortes anhand eines bereits vorkommenden Wortes (next bzw. previous word)
Ctrl x  Ctrl l Vervollständigung der aktuellen Zeile anhand einer bereits vorkommenden Zeile (line-completion)
Ctrl x  Ctrl f Vervollständigung der Eingabe von Dateinamen und Pfaden (file-completion)

Snippets

Durch die Verwendung von so genannten “Snippets” kann viel Tipparbeit gespart werden. Das Prinzip hierbei ist sehr einfach: Man definiert sich frei wählbare Abkürzungen, die dann nach einem Drücken der Tab-Taste (oder einer anderen frei wählbaren Taste) ein ganzes Template ausrollen können, so dass nur noch an einzelnen Stellen Text eingefügt werden muss.

Das meiner Meinung nach beste Snippet-Plugin ist Ultisnips; man kann damit je nach Dateityp beziehungsweise Endung einer Datei unterschiedliche Abkürzungen definieren. Die Abkürzungen liegen allesamt in einem gemeinsamen Ordner und sind jeweils mit dateityp.snippets benannt. Beispielsweise kann man sich so sowohl für C-Dateien als auch für Python-Dateien je ein Snippet mit der Abkürzung ife definieren, das dann nach einem Drücken der Tab-Taste im jeweiligen Dateityp eine if-else-Abfrage mit Sprungmarken zu den jeweiligen Eingabestellen erstellt.

Besonders praktisch sind Snippets für ein Arbeiten mit LaTeX-Dateien: So kann man beispielsweise ein Snippet namens art definieren, das eine gesamte Standard-Präambel für die Dokumentklasse article definiert. So genügt es dann, eine leere .tex-Datei zu öffnen, im Einfügemodus art und Tab einzugeben, und man kann bereits mit dem Schreiben des eigentlichen Dokuments beginnen. :-)

Snippets-Beispieldateien: