Wie kann ich programmgesteuert auf die ZSH-Vervollständigung zugreifen?

Wie kann ich programmgesteuert auf die ZSH-Vervollständigung zugreifen?

zsh verfügt über ein Vervollständigungssystem, das durch Drücken der Tabulatortaste aktiviert wird:

llama@llama:~$ git st<Tab>
Completing main porcelain command
stash      -- stash away changes to dirty working directory
status     -- show working-tree status
Completing plumbing internal helper command
stripspace -- filter out empty lines

Ich konnte nur herausfinden, dass dies vom Skript kommt /usr/share/zsh/functions/Completion/Unix/_git, in dem _gitder Vervollständigungsbefehl aufgerufen wird.

Angenommen, ich kenne den Namen der Vervollständigungsfunktion (zB _git), wie könnte ich die Ausgabe dessen erhalten, was passieren würde, wenn ich eine bestimmte Zeichenfolge eingebe und die Tabulatortaste drücke? Im Wesentlichen versuche ich, eine Eingabe von zB. anzunehmen git stund die obige Ausgabe zu erhalten (programmgesteuert, aus einem Skript).

Es gibtvieleanderebestehendeFragenumDasfürbash, aber ich habe nichts gefunden, was erklärt, wie man das mit zsh erreicht.

Antwort1

Dies kann erreicht werden durch die Verwendung vonzsh-Erfassung-Vervollständigung. Die Datei README.md des Repositorys enthält mehrere Beispiele:

capture.zsh 'vim -'
capture.zsh 'vim --'
capture.zsh 'vim --r'
capture.zsh 'echo *('
capture.zsh 'scp hostname:'

Beachten Sie, dass das Paket selbst als Proof of Concept gekennzeichnet ist und daher bei der Ausführung Fehler enthalten kann.

verwandte Informationen