私のスクリプトでzshの完成ウィジェットを使用しようとしています。ある時点で、zshは各アクティビティ完了結果にアクセスできるようにしたいです。または、むしろ完了チェーンの最終結果を取得したいと思います。
function foo() {
do_unrelated_stuff()
# call zsh completion
comp_results=_main_complete_() # won't work like this, can only be called from within a completion function
if [[ "$#comp_results" -gt "0" ]]; then
# do something
echo "results:"
else
# do something else
echo "no results"
fi
}
_main_complete
私は他の関数がアクセスできるように(または適切な関数)呼び出して、結果をエクスポートした変数に保存するカスタム完了関数を作成することを検討しました。ただし、これは何らかの方法でカスタム補完関数を呼び出すことを意味します。方法はわかりません。実際の完了を行わずに「中」の完了結果を得ることはできますか?
ベストアンサー1
zshがなぜこの機能を提供しないのかわかりません...https://github.com/Valodim/zsh-capture-completion
$ capture.zsh 'man gr'
grep
<snip>
groff
<snip>
これにより、完了した完成リストにのみアクセスできます。つまり。内部zshオブジェクトではない(説明など)