2017-05-17 7 views
1

私はこれがkubensコマンドに完了を提供複数のコマンドのためにZSHの補完機能(compdef)を定義

#compdef kubens 
_arguments "1: :(- $(kubectl get namespaces -o=jsonpath='{range .items[*].metadata.name}{@}{"\n"}{end}'))" 

呼ばZSH完了スクリプトを持っています。しかし、ユーザーが特定のインストール引数を提供する場合、プログラムはknsという名前でリンクされているので、同じ#compdefを使用してこれらのコマンドの両方の補完を提供しようとしています。

どのように達成できますか?私たちはcmdは同じように動作するときcmd=serviceフォームを使用することができる#compdefライン、のために複数の名前を使用することができますが

#compdef kubens kns=kubens 

答えて

1

我々は#compdefライン用cmd=serviceフォームを使用することができますservice

#compdef name ... [ -{p|P} pattern ... [ -N name ... ] ]

ファイルが自動ロード行われると引数...
を完了することになっているコマンドの名前のいずれかであるそれぞれのを、完成時に定義された関数が呼び出されます...
の名前は、 'cmd=service'の形式でもかまいません。 コマンドを完了すると、通常はコマンド(または特別なコンテキスト)サービスが完了したように機能します。

- この情報はややマニュアルなしGoogleの検索結果に埋もれ、それを明らかにしたようzshcompsys(1): Completion System, INITIALIZATION, Autoloaded files, #compdef

+0

おかげで、それが見えます。この質問が他の人に役立つことを願っています –