プログラムで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:)を知っていると仮定すると、特定の文字列を入力してタブを押すと、何が起こるかをどのように出力できますか?本質的に、私は元恋人から意見を得ようとしています。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:'

パッケージ自体は概念証明であるため、実行中にバグを含めることができると述べられています。

関連情報