プログラムで zsh 補完にアクセスするにはどうすればよいですか?

プログラムで zsh 補完にアクセスするにはどうすればよいですか?

zsh には補完システムがあり、Tab キーを押すことで起動します。

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

私が理解できたのは、これがスクリプトから来ており/usr/share/zsh/functions/Completion/Unix/_git、そこで_git完了コマンドが呼び出されているということだけです。

補完関数の名前 (例_git) がわかっていると仮定すると、特定の文字列を入力して Tab キーを押した場合に何が起こるかの出力を取得するにはどうすればよいでしょうか。基本的には、たとえば の入力を受け取りgit st、上記の出力 (プログラムでスクリプトから) を取得しようとしています。

がある多くの他の既存 質問についてこれのためにbash ですが、zsh でこれを実現する方法を説明しているものは見つかりませんでした。

答え1

これは、zsh キャプチャ補完リポジトリの README.md ファイルにはいくつかの例が記載されています。

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

パッケージ自体には概念実証であると記載されており、実行時にエラーが発生する可能性があることに注意してください。

関連情報