我有以下 cobra cli 示例,我正在尝试使自动完成功能在我的 mac 上工作。 https://github.com/dharmeshkakadia/cobra-example
如果我将它编译成一个名为“say”的二进制文件,自动完成工作如果我将它编译成任何其他名称,它将无法工作是否有一些 mac 政策?我的 macos 版本是 Big Sur 11.6
谢谢
我有以下 cobra cli 示例,我正在尝试使自动完成功能在我的 mac 上工作。 https://github.com/dharmeshkakadia/cobra-example
如果我将它编译成一个名为“say”的二进制文件,自动完成工作如果我将它编译成任何其他名称,它将无法工作是否有一些 mac 政策?我的 macos 版本是 Big Sur 11.6
谢谢
自动完成与命令的名称相关联。
这与根命令的名称相关,该名称必须与构建的二进制文件名相同。
cobra.Command
Cobra 通过获取'.Use
字段的第一个以空格分隔的子字符串来计算命令的名称。
var rootCmd = &cobra.Command{
Use: "say", // must compile as 'say' to get completion to work
Short: "My CLI",
}
var rootCmd = &cobra.Command{
Use: "othername", // must compile as 'othername' to get completion to work
Short: "My CLI",
}
不,这与您的 Mac 版本无关。然而,它与您使用的外壳有关。鉴于您的 Mac 版本,我猜默认 shell 是 Z-Shell(又名“zsh”)。我上面提到的这个二进制文件名限制肯定适用于 zsh。