zshを使用すると、特定のスクリプトにオートコンプリートを追加し、ファイルでオートコンプリートオプションを使用できますか?

zshを使用すると、特定のスクリプトにオートコンプリートを追加し、ファイルでオートコンプリートオプションを使用できますか?

単一のコマンドライン引数を使用する小さなシェルスクリプトを作成しました。

パラメータの作成を開始するときにオートコンプリートしたいです。オートコンプリートの選択は、特定のテキストファイルから入手する必要があります。

たとえば、私のテキストファイルに次のものが含まれている場合

foo
foobar

書き込みを開始しmy-cli fo、I like zshを押すとTAB選択項目foofoobar

関連文書やチュートリアルに関するアドバイスを歓迎します。

ベストアンサー1

同様の問題で苦労していますが、もう少し複雑です。静的オートコンプリートオプションファイルを使用すると、次のコードが私にとって効果的でした。

#compdef test

_test_comp(){
 t=($(cat /tmp/file_with_opts))
 _wanted t expl "availavle options" compadd -a t
}

_arguments -C -S  \
 '*:test_autocomplete:_test_comp'

このように、スクリプトはtest以下からオプションを取得します。/tmp/file_with_opts

おすすめ記事