Kann ich dem Vim-Vokabular zur automatischen Vervollständigung eine Reihe von Wörtern hinzufügen?

12

In Vim ist mir bekannt, dass ich STRG-n und STRG-p verwende, um die im Dokument gefundenen Wörter automatisch zu vervollständigen. Dies ist ideal, um die Verwendung von beschreibenden Methoden- und Variablennamen zu fördern.

Ich möchte der automatischen Vervollständigung eine Reihe von Wörtern hinzufügen, die ich häufig, aber nicht in der Quelldatei habe, die ich gerade bearbeite. Meine derzeitige Lösung besteht darin, die Liste der Wörter einfach zu einem Kommentar am Ende meiner Vorlagendatei hinzuzufügen, aber das scheint bestenfalls etwas verschwenderisch und kludgey zu sein.

Gibt es eine Möglichkeit, dem automatisch vervollständigten Vokabular von Vim Wörter hinzuzufügen, die für jede Vim-Sitzung zugänglich sind?

Madh
quelle

Antworten:

10

Sie können Abkürzungen in Ihrer ~/.vimrcDatei für nur ein paar Wörter verwenden:

: abbr supe superuser
: abbr autoc autocomplete
: abbr que frage

Diese werden nach Drücken von Spaceoder automatisch vervollständigt Enter. Also , wenn Sie getippt quedann gedrückt Spaceoder Enteres würde das Wort „Frage“ für Sie fertig sind .

Wenn Sie viel hinzufügen und diese Schnittstelle möchten:

Alt-Text

Sie können Wörterbücher verwenden . Richten Sie einfach eine Datei mit einem Wort in jeder Zeile ein und fügen Sie dann in Ihrer .vimrc eine Zeile wie die folgende hinzu:

set dictionary+=/home/john/dict.txt

Ersetzen Sie den Pfad durch den Speicherort Ihrer Wörterbuchdatei. Sie können dann Ctrl+ xund Ctrl+ verwenden k, um die Vorschläge aufzurufen. Ctrl+ nund Ctrl+ p, um die nächste / vorherige aus mehreren Auswahlen auszuwählen.

John T.
quelle
1
Fantastisch! Ich werde Wörterbücher verwenden!
Madh
Das hat funktioniert! Ich bekomme das gut aussehende Menü allerdings nicht. Ich verwende VIM 6.3.82, das nicht die neueste Version ist.
Madh
Ah ... hilft das Aktualisieren? Sie müssen die Sequenz Strg-x, Strg-k drücken, um das Menü aufzurufen. Ich bin froh zu helfen :)
John T
Dies ist der richtige Weg.
um.
Ich habe gerade überprüft, ob dies in VIM 7.2 funktioniert. Danke noch einmal!
Madh
2

Die "Quellen" für die reguläre automatische Vervollständigung (die, die Sie von Ctrl+ erhalten N) werden aus der completeOption übernommen (siehe :h 'complete'). Die Standardeinstellung ist

complete=.,w,b,u,t

was bedeutet

  1. . Scannen Sie den aktuellen Puffer
  2. w Puffer aus anderen Fenstern scannen
  3. b Scannen Sie andere geladene Puffer, die sich in der Pufferliste befinden
  4. u Scannen Sie die entladenen Puffer, die sich in der Pufferliste befinden
  5. t Tag-Vervollständigung

Sie können Ihr eigenes Wörterbuch mit hinzufügen

set complete+=k~/.vim/keywords.txt

und fügen Sie die Schlüsselwörter eins pro Zeile hinzu ~/.vim/keywords.txt. Auf diese Weise können Sie direkt mit Ctrl+ auf die Vervollständigungen zugreifen N(es ist nicht erforderlich, die Vervollständigung des Wörterbuchs mit Ctrl+ X, Ctrl+ explizit aufzurufen K). Ich fand dies besonders nützlich für Code-Vervollständigungen, in denen ich alle gebräuchlichen Funktionsnamen habekeywords.txt

Ecerulm
quelle