Autocomplete für make

8

Wenn ich ein benutzerdefiniertes makeProgramm einstelle , gibt es eine Möglichkeit, eine Liste der Optionen zum Ausfüllen von Registerkarten bereitzustellen, die aktiviert werden, wenn ich :make+ Space+ eingebe Tab?

Mit benutzerdefinierten Befehlen kann ich Folgendes tun:

command! -nargs=* -complete=customlist,MakeComplete -bar MakeGitbook call MakeGitbook(<q-args>)

Gibt es einen ähnlichen Mechanismus für eingebaute Befehle, insbesondere für :make? Oder sollte ich einfach einen benutzerdefinierten Befehls-Wrapper definieren, der den integrierten aufruft, aber auch die Tab-Vervollständigung hinzufügt?

Flukus
quelle
Das Schreiben eines benutzerdefinierten Befehls ist wahrscheinlich die beste Wahl.
lcd047
-complete=customlist,MakeCompletemacht schon was du willst? Ich verstehe nicht ganz, wo du feststeckst oder was nicht so funktioniert, wie du es willst.
Martin Tournoij
Das funktioniert nur für einen benutzerdefinierten Befehl, ich bin nach etwas für den eingebauten Befehl make
flukus

Antworten:

1

In vim gibt es keinen Mechanismus zum Ändern integrierter Befehle. Dies ist eigentlich eine gute Sache, da Sie sicher sein können, dass das Standardverhalten nicht durch Plugins geändert wird. Auch Plugins selbst können sich auf das Standardverhalten verlassen, sodass eine solche Funktion (zum Ändern eingebauter Befehle) möglicherweise viel Kopfzerbrechen verursachen würde.

Gibt es einen ähnlichen Mechanismus für eingebaute Befehle und insbesondere für: make?

Nein. Wenn Sie vim docs ( hier und hier ) überprüfen , werden Sie feststellen, dass dies :commandnur mit benutzerdefinierten Befehlen funktioniert, die mit Großbuchstaben beginnen sollten (außer Next, das ebenfalls reserviert ist).

Oder sollte ich einfach einen benutzerdefinierten Befehls-Wrapper definieren, der den integrierten aufruft, aber auch die Tab-Vervollständigung hinzufügt?

Ja, das ist der richtige Weg.

Boris Serebrov
quelle