0

我有以下 cobra cli 示例,我正在尝试使自动完成功能在我的 mac 上工作。 https://github.com/dharmeshkakadia/cobra-example

如果我将它编译成一个名为“say”的二进制文件,自动完成工作如果我将它编译成任何其他名称,它将无法工作是否有一些 mac 政策?我的 macos 版本是 Big Sur 11.6

谢谢

4

1 回答 1

0

自动完成与命令的名称相关联。

这与根命令的名称相关,该名称必须与构建的二进制文件名相同。

cobra.CommandCobra 通过获取'.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。

于 2021-12-31T12:31:05.027 回答