Ich schreibe mein erstes vim-Plugin (viml + python). Ein Befehl, den das Plugin hat, ist "GetStepCommand ()" und es ruft grundsätzlich Daten von einer entfernten Datenquelle ab, ich massiere die Daten ein bisschen und kopiere sie in den Puffer, so dass der Benutzer mit der Bearbeitung beginnen kann. Es gibt einen Parameter, den der Benutzer an "GetStepsCommand" liefern muss und das ist der Suchpfad zu dem Ort, an dem sich die Daten befinden, zB: / projects / procedure / step
Jetzt kann dieser Pfad lang sein und leicht zu verfehlen etwas buchstabieren. Also wollte ich meine eigene Tab-Vervollständigung für den Parameterteil implementieren. Vim kümmert sich bereits um das automatische Vervollständigen des Befehls durch Tabbing, aber natürlich kann es nicht wissen, wie man den Parameter vervollständigt (etwas, das ich selbst lösen werde).
Aber zuerst muss ich wissen: - ob / wie ich den Tastendruck im Kommando-Modus abfangen kann - Holen Sie sich die Kommandozeile, die der Benutzer gerade schreibt - Testen Sie, ob es sich im Befehlsmodus oder im Einfüge / Ansichtsmodus befindet - und schließlich eine aktualisierte Befehlszeile (tab-completed) zurückgeben, die der Benutzer nach dem Tastendruck mit ':' weiterschreiben kann.
Alle Hinweise, Tipps, Artikel, Tutorials ... Informationen werden sehr geschätzt
Wenn das Argument für Ihren benutzerdefinierten Befehl ein Dateisystempfad ist, müssen Sie einfach -complete=file
zu Ihrer :command
Definition hinzufügen, wie folgt:
Sie müssen die Tasten im Befehlszeilenmodus nicht abfangen (und das sollten Sie nicht tun, da dies zu schlechten Interaktionen mit anderen Plugins führen würde!) Vim bietet andere Standardabschlüsse (vgl. :help :command-complete
), sogar eine benutzerdefinierte eine, in der eine Vimscript-Funktion aufgerufen wird, um die Vervollständigungskandidaten zu bestimmen.
Tags und Links vim vim-plugin