カスタムスクリプトのzsh完了ルールがあります。私のスクリプトは、0個以上のオプション(で始まる-
)と0個以上の任意の文字列(パターン)を使用できます。
_arguments -S : \
'--foo' \
'--bar' \
'1:pattern:'
この規則は部分的にのみ有効で、形式は次のとおりです。
script "somestring" <TAB>
--foo
または--bar
および--f<TAB>
オートコンプリートを提供--foo
しかし、
script <TAB>
何もしません。オプションを一覧表示したい( --foo
, --bar
)
明示的に起動しても--
オプションが表示されますが、オートコンプリートされません。入力していて、--f<TAB>
必要なオプションがあいまいでない場合も同様です。
script --f<TAB>
自動的に行わなければならない--foo
つまり、要約string
すれば何でもできるので、自動的に行われることはありません。だから、文字列/パターンを入力するかどうかにかかわらず、キーを押したときに--optionsをオートコンプリートしたいと思います。
-
私の考えでは、特定の方法で始まるすべての項目は文字列ではなくオプションなので、利用可能なオプションから自動補完する必要があることを完成ルールに指定する必要があります。
答え1
私に合ったものを見つけました。
___script() { _arguments -S : }
__script() { _arguments -S : --foo --bar 1:pattern:___script }
compdef __script script