Zsh Docker插件无法正常工作

时间:2016-05-25 04:58:15

标签: zsh oh-my-zsh zsh-completion

我现在已经使用了oh-my-zsh一段时间了,并且最近由于某种原因停靠了docker插件。

我检查了我的〜/ .zshrc文件并且包含了插件

plugins=(git colored-man colorize github jira vagrant virtualenv pip python brew osx zsh-syntax-highlighting docker)

我检查了~/.oh-my-zsh/plugins/docker目录,其中有一个_docker文件。然而,当我输入docker并按Tab键时,我得不到我曾经获得的任何自动完成快捷方式。

我可以确认我的git插件工作得很好但不是docker插件。尝试做exec zshsource ~/.zshrc并重新启动我的终端但没有运气。

我错过了什么吗?

8 个答案:

答案 0 :(得分:20)

看来oh-my-zsh没有加载plugins/docker/_docker文件。您必须以另一种方式将其添加到~/.zshrc。 将这些行添加到~/.zshrc文件中:

fpath+=($ZSH/plugins/docker)
autoload -U compinit && compinit

答案 1 :(得分:12)

您可能想尝试删除用户主目录中可能包含的所有'.zcompdump-(...)文件,然后重新启动终端。参见this

然后看看是否可行。

答案 2 :(得分:4)

我想你可能会失踪,介于每个插件之间。

plugins=(git, colored-man, colorize, github, jira, vagrant, virtualenv, pip, python, brew, osx, zsh-syntax-highlighting, docker)

或者,您可以将每个插件放在单独的一行:

plugins=(
  git
  colored-man
  colorize 
  github
  jira
  vagrant
  virtualenv
  pip
  python
  brew
  osx
  zsh-syntax-highlighting 
  docker
)

答案 3 :(得分:2)

就我而言: Windows 10 + WSL2 + Hyper

我遇到此错误是因为我在Windows上停止了Docker ...再次启动它会使错误在Hyper(因此也在ZSH)中消失。

没有.zshrc更改或要添加的其他命令。

答案 4 :(得分:1)

对我来说,我只是第一次需要从Mac上的聚光灯下启动Docker,以便Docker for Desktop获得所需的访问权限。然后docker version命令就可以了。

答案 5 :(得分:1)

@youhans的解决方案永久为我工作。您可能有权限问题,需要对“ zshrc”进行必要的调整。我已将权限更改为“读写”,并将@youhans的响应中的代码段添加到“ zshrc”文件的末尾。现在,完成系统始终有效。

  • 每次打开新终端之前,我都必须在命令行中的以下代码段中键入内容。

    自动加载-Uz compinit && compinit

答案 6 :(得分:0)

就我而言,它是由于别名而发生的。我已经定义了 alias docker=docker.exe。 删除它再次起作用。

系统与环境

  • 操作系统:Windows 10 家庭版,x64
  • Shell:Zsh(在 Gitbash 上)

答案 7 :(得分:-2)

如果您使用的是oh-my-zsh并且自动填充功能不起作用,请按照以下步骤操作:

第1步:

建立以下三个链接:

ln -s /Applications/Docker.app/Contents/Resources/etc/docker.zsh-completion /usr/local/share/zsh/site-functions/_docker

ln -s /Applications/Docker.app/Contents/Resources/etc/docker-machine.zsh-completion /usr/local/share/zsh/site-functions/_docker-machine

ln -s /Applications/Docker.app/Contents/Resources/etc/docker-compose.zsh-completion /usr/local/share/zsh/site-functions/_docker-compose

第2步:

任一autoload -Uz compinit; compinit添加到.zshrc

在您的Shell中运行echo "autoload -Uz compinit; compinit" >> .zshrc