compgen:96:找不到命令:aws_completer 尝试自动完成 aws

compgen:96: command not found: aws_completer when trying to autocomplete aws

我正在尝试使用 oh-my-zshfzfzsh-completionfzf-tab-completion.

让 aws-cli 自动完成在我的 zsh 中工作

但是当我在 aws 之后点击 Tab 键时,出现以下错误:

compgen:96:command not found: aws_completer

这是我的 .zshrc:

source $HOME/.oh-my-zsh/custom/plugins/fzf-tab-completion/zsh/fzf-zsh-completion.sh 
zstyle ':completion:*:*:aws' fzf-search-display true

export ZSH="/Users/simon/.oh-my-zsh"

ZSH_THEME="half-life"


plugins=(aws fzf zsh-completions git brew npm react-native)
autoload -U compinit && compinit
source $ZSH/oh-my-zsh.sh

我怀疑问题可能是我先从亚马逊网站安装了 aws-cli 包,然后再安装 brew install awscli 但我不知道如何修复它。

我通过卸载捆绑包和自制软件安装解决了这个问题:

$ sudo rm -rf /usr/local/aws
$ sudo rm /usr/local/bin/aws
$ brew remove awscli

并通过自制软件重新安装它:

$ brew install awscli

我在 terraform 中遇到了一个非常相似的错误,当我输入 terraform state <tab> 时,我得到了错误 compgen:96: no such file or directory: /usr/bin/terraform

但 terraform 已安装到 /usr/local/bin/terraform,如下所示:

$ which terraform
/usr/local/bin/terraform

解决方法是修改文件 ~/.zshrc,它告诉自动完成在哪里可以找到 terraform。找到行 complete -o nospace -C /usr/bin/terraform terraform 并将其更改为 complete -o nospace -C /usr/local/bin/terraform terraform

重新载入 shell source ~/.zshrc

现在,当您按下 Tab 键时,terraform 自动完成功能将为您工作