Hauptseite

vim Completion – Text vervollständigen mit WordCompletition, LineCompletition, FileCompletition und CodeCompletition

20. Mai 2009 von zimon

vim bietet jede Menge Funktionen an, um durch Vervollständigung Tipparbeit zu sparen. Mit einigen Tastendrücken können sich so schon einmal geschriebene Wörter und ganze Zeilen vervollständigen lassen. Aber auch Dateinamen im Dateisystem und Methodenaufrufe beim Programmieren lassen sich ergänzen. Wenn es mehrere Möglichkeiten gibt, etwas zu vervollständigen, so wird eine Reihe von Vorschlägen unterbreitet, von denen man sich die passende Ergänzung mit den Pfeiltasten auswählen und mit Enter bestätigen kann. Wird direkt der gewünschte Teil vervollständigt (unabhängig davon ob noch mehr vorgeschlagen wird oder nicht), kann man einfach weiter schreiben.
Statt den Pfeiltasten kann man auch mit Strg+n und Strg+p durch die Vorschläge navigieren.

WordCompletition
Die wohl häufigste und einfachste Möglichkeit der Vervollständigung ist die Wortvervollständigung. Hat man angefangen ein Wort zu tippen, was bereits in einem geöffneten Dokument existiert, so kann man Strg+n drücken um es zu Vervollständigen. Dabei geht vim im Text nach unten und fängt – wenn die Option wrapscan gesetzt ist – danach von oben wieder an. Möchte man die Vorschläge in umgekehrter Reihenfolge angezeigt bekommen, so wird mit Strg+p rückwärts nach Wörtern zur Vervollständigung gesucht.

LineCompletion
Sehr praktisch kann es auch sein, komplette Zeilen zu vervollständigen. Ich habe auch erst überlegt, wie selten man soetwas wohl brauchen mag, doch jedes mal wenn man nach oben geht um mit yy eine Zeile zu kopieren und sie unten wieder mit p einfügen möchte kann man dies auch mittels LineCompletion erreichen. Und das meist einfacher. Da erst viel mir auf wie häufig ich diese Funktion verwenden könnte (und mittlerweile auch verwende).
Hat man den Anfang einer Zeile geschrieben, drückt man Strg+x Strg+l (kleines L) und schon macht vim einem Vorschläge bzw. vervollständigt die Zeile automatisch, wenn es eindeutig ist.

FileCompletition
Wer sich schoneinmal gewünscht hat beim aufschreiben von Pfaden und Dateien in vim eine Möglichkeit zur Vervollständigung zu haben, der kann diese nun einfach mittels Strg+x Strg+f einleiten.

DictionaryCompletion
Über die Variable dictionary können Dateien angegeben werden, die nach Wörtern zum kompletieren durchsucht werden. Dann kann man mittels Strg+x Strg+k Wörter über ein Wörterbuch vervollständigen. Die Variable dictionary kann dabei z.B. auf /usr/share/dict/ngerman gesetzt werden, wenn aspell installiert ist.

CodeCompletion
Die CodeCompletion (OmniCompletion) wird normalerweise über Plugins der entsprechenden Sprache hinzugefügt. Diese kann man in den offiziellen Scripten suchen (am besten nach “omni” oder omnicompletion” suchen). Ist das Script der gewünschten Sprache installiert, kann man mit der Tastenkombination Strg+x Strg+o die Code-Vervollständigung einleiten. Dabei werden meist auch die Klassen nach ihren Methoden und Attributen durchsucht, so dass man diese auch vervollständigen kann.

Es werden aber auch schon von vim einige Möglichkeiten zur CodeCompletition geboten. So kann man mit Strg+x Strg+i Schlüsselwörter ergänzen, die in der aktuellen und allen inkludierten Dateien gesucht werden.
Mit Strg+x Strg+d werden Definitionen und Makros vervollständigt, die in der aktuellen und den inkludierten Dateien definiert sind.
Für diese Funktionen muss die Option include und für Definitionen zusätzlich die define Option einen regulären Ausdruck enthalten, der entsprechende Zeilen matched.

Automatische WordCompletion beim Schreiben
Mit dem Plugin autocomplpop kann man in vim schon beim Schreiben mögliche Vervollständigungen angezeigt bekommen ohne extra Strg+n oder Strg+p zu drücken. Die Autocompletion beginnt sobald man zwei oder mehr Zeichen getippt hat. Dateinamen werden vervollständigt, sobald ein Pfad erkannt wird. Auch CodeCompletion für Ruby und Python (wenn die entsprechenden Plugins installiert sind) sowie (X)HTML und CSS wird unterstützt. Um die vorgeschlagene Ergänzung zu nutzen, kann man sie mit Enter bestätigen. Mit den Pfeiltasten (oder Strg+n und Strg+p) kann man in den Vorschlägen navigieren.



Es gibt noch weitere Vervollständigungsfunktionen, die man in der Hilfe mit :h completion nachschlagen kann.


Schlagworte: , , , , , ,



2 Kommentare zu „vim Completion – Text vervollständigen mit WordCompletition, LineCompletition, FileCompletition und CodeCompletition“

  1. eremit7 sagt:

    Die FileCompletion werde ich mir merken.

    Sehr gut, dass es hier immer wieder einen kleinen Wegweiser im Funktionsmeer des Vim gibt. Auch wenn ich mir nicht alles merken kann.

  2. CTS GmbH sagt:

    Also das ist mal eine klasse Auflistung. Mir war bis dato lediglich die Wordcompletion bekannt, aber den Rest muss ich auf jeden Fall mal antesten. Vielen Dank dafür. :)

Kommentieren

Kommentarlinks könnten nofollow frei sein.


Bloggeramt.de frisch gebloggt Blogverzeichnis - Blog Verzeichnis bloggerei.de