Docker shell 在 OSX iTerm2 oh-my-zsh 上完成

Docker shell completion on OSX iTerm2 oh-my-zsh

我正在尝试 Docker shell 完成此堆栈 (OSX iTerm2 oh-my-zsh)

我遵循了这个指南 -> https://docs.docker.com/compose/completion/

首先我执行了这个

$ mkdir -p ~/.zsh/completion
$ curl -L https://raw.githubusercontent.com/docker/compose/master/contrib/completion/zsh/_docker-compose > ~/.zsh/completion/_docker-compose

然后我几乎在末尾添加了这两行~/.zshrc 文件

fpath=(~/.zsh/completion $fpath)
autoload -Uz compinit && compinit -i

然后在终端我运行

source ~/.zshrc
exec $SHELL -l

但是当我按下tab时,它会提示路径

上的文件和文件夹

您为 docker-compose 而不是 docker 设置了完成。如果你也想添加 docker 完成,那么 运行 以下命令并重新加载你的 shell.

curl -L https://raw.githubusercontent.com/docker/docker-ce/master/components/cli/contrib/completion/zsh/_docker > ~/.zsh/completion/_docker 

其他解决方案(更新):

docker 插件添加到 .zshrc 的插件列表中:

  1. 打开 ~/.zshrc
  2. docker 添加到插件列表中,如下所示: plugins=(docker ...)

请确保您拥有 运行ning 的最新版本 oh-my-zshupgrade_oh_my_zsh

此外,在尝试了所有其他答案后,运行 rm ~/.zcompdump* 也没什么坏处。

帮我修好了。

  1. 运行 vim ~/.zshrc 在你的 iTerm2
  2. 找到包含 plugins=() 的行,通常会有 git 例如 plugins=(git)
  3. 在该行按 I 进行更改(i 代表插入模式)
  4. 更改为 plugins=(docker git) 以添加 docker 扩展名并按 ESC 退出插入模式
  5. save by type :w 保存退出按type :x
  6. 重启你的 iTerm2 然后 docker 现在应该可以完成了