Zsh Docker插件无法正常工作

Mik*_*uza 28 zsh zsh-completion oh-my-zsh

我一直在使用oh-my-zsh一段时间,最近停靠插件因为某些原因停止了为我工作.

我检查了我的〜/ .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重新启动我的终端但没有运气.

我错过了什么吗?

Rui*_*lho 102

您可能想要尝试删除.zcompdump-(...)用户主目录中的所有文件(使用rm ~/.zcompdump*终端或某些文件浏览器),然后重新启动终端。看到这个

然后查看是否有效。

  • 这在OSX Mojave上出乎意料地起作用 (21认同)
  • 在 Mac OS Catalina 上为我工作 (6认同)
  • 这对我来说也适用于Ubuntu Mate 18.04,zsh 5.4.2,mate-terminal 1.20.0。必须删除.zcompdump- <device-name> -5.4.2`并重新启动终端。 (4认同)
  • [1/2] @CorneliusRoemer 它起作用的原因是 OMZ/ZSH 插件和自动完成的工作方式。当您键入时,OMZ/ZSH 使用 .zcompdump 作为其 shell 完成系统的缓存文件,以加快完成速度。这些 zcompdump 文件由 OMZ/ZSH 编译,将命令映射到它将运行的函数,许多也在插件中定义。因此,它会运行插件文件夹并构建在您键入时使用的缓存文件。当 OMZ/ZSH 配置中的活动插件列表发生变化时,它不会自动执行重建此 zcompdump 缓存文件的操作。通过删除它,你可以强制它被重建。 (2认同)

you*_*ans 39

好像哦-my-zsh没有加载plugins/docker/_docker文件.您必须~/.zshrc以另一种方式添加它.将这些行添加到您的~/.zshrc文件中:

fpath+=($ZSH/plugins/docker)
autoload -U compinit && compinit
Run Code Online (Sandbox Code Playgroud)

  • 只有`autoload -U compinit && compinit`足以使它工作。我还移动了`source $ ZSH / oh-my-zsh.sh`在此之前执行。现在正在工作。 (6认同)
  • 这只是为我解决了。这是一个已知的问题?(未在omz问题列表中找到它)。 (3认同)

Sco*_*les 6

对我来说,我第一次需要在 Mac 上的聚光灯下启动 Docker,以便桌面版 Docker 获得所需的访问权限。然后docker version命令工作得很好。


小智 -36

我想你可能在每个插件之间缺少 , 。

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

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

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

  • 添加逗号会导致错误消息,例如“git,未找到插件”。 (8认同)
  • oh-my-zsh 文档明确指出条目应该用空格分隔。 (4认同)
  • 这不起作用,不应标记为答案 (2认同)