我有一个名为ZSH的自动补全脚本,称为
#compdef kubens
_arguments "1: :(- $(kubectl get namespaces -o=jsonpath='{range .items[*].metadata.name}{@}{"\n"}{end}'))"
这提供了对kubens
命令的自动完成。但是,如果用户提供了特定的安装参数,程序将链接到kns
名称,因此我正在尝试为这两个命令使用相同的#compdef
提供自动完成。
我应该如何实现?
我有一个名为ZSH的自动补全脚本,称为
#compdef kubens
_arguments "1: :(- $(kubectl get namespaces -o=jsonpath='{range .items[*].metadata.name}{@}{"\n"}{end}'))"
这提供了对kubens
命令的自动完成。但是,如果用户提供了特定的安装参数,程序将链接到kns
名称,因此我正在尝试为这两个命令使用相同的#compdef
提供自动完成。
我应该如何实现?
#compdef
行中使用cmd=service
表单:#compdef kubens kns=kubens
#compdef
行中可以使用多个名称,但当cmd
的行为与service
相同时,可以使用cmd=service
表单:
#compdef name ... [ -{p|P} pattern ... [ -N name ... ] ]
该文件将被设置为可自动加载,并在完成名称时调用其中定义的函数,每个名称都是要完成其参数的命令的名称...
...
每个名称也可以采用“cmd=service
”的形式。在完成命令cmd时,该函数通常的行为就像正在完成service命令(或特殊上下文)一样。--
zshcompsys(1):Completion System, INITIALIZATION, Autoloaded files, #compdef