【问题标题】:Zsh Docker Plugin not WorkingZsh Docker 插件不工作
【发布时间】:2016-05-25 04:58:14
【问题描述】:

我使用 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 并重新启动我的终端但没有运气。

我错过了什么吗?

【问题讨论】:

  • 在我的情况下,我正在寻找 docker-compose 函数,我忘记了 docker 有单独的插件:docker、docker-compose、docker-machine.. 也许不是这样,但它可能对某人有所帮助否则

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


【解决方案1】:

您可能想尝试删除用户主目录中的所有 .zcompdump-(...) 文件 - 在终端或某些文件浏览器上使用 rm ~/.zcompdump* 之类的东西 - 然后使用以下命令重新加载 .zschrc 文件source ~/.zshrc 或重新启动终端 - 以最适合您的方式为准。见this

然后看看它是否有效。

【讨论】:

  • 这对我也适用于 Ubuntu Mate 18.04、zsh 5.4.2、mate-terminal 1.20.0。必须删除.zcompdump-<device-name>-5.4.2 并重新启动终端。
  • 在 Mac OS Catalina 上为我工作
  • 在 Fedora 上工作过!谢谢你这个简单的回答。
  • 在 ~ 中有多个 .zcomp-dump* 文件,并且在删除两个 docker 自动完成功能后效果很好。该解决方案没有在我的系统上产生任何错误。使用 OS X Catalina。
  • [1/2] @CorneliusRoemer 之所以起作用,是因为 OMZ/ZSH 插件和自动完成功能的工作方式。 OMZ/ZSH 在您键入时使用 .zcompdump 作为其 shell 完成系统的缓存文件,以加快完成速度。这些 zcompdump 文件由 OMZ/ZSH 编译以将命令映射到它将运行的函数,其中许多函数也在插件中定义。因此,它会运行 plugins 文件夹并构建它在您键入时使用的缓存文件。当 OMZ/ZSH 配置中的活动插件列表更改时,它不会自动执行重建此 zcompdump 缓存文件的操作。通过删除它,你会强制它被重建。
【解决方案2】:

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

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

【讨论】:

  • 这只是为我修好了。这是一个已知的问题? (在 omz 问题列表中没有找到它)。
  • 这两个答案都不适合我。我在 GH github.com/robbyrussell/oh-my-zsh/issues/7687 上打开了一个问题
  • 我整个下午都在为此绞尽脑汁。谢谢,它解决了这个问题。
  • 已确认,将其应用到我的 ~/.zshrc 文件后,自动完成功能开始为我工作,谢谢!
  • 只有autoload -U compinit && compinit 足以让它工作。我还移动了 source $ZSH/oh-my-zsh.sh 在此之前执行。它现在正在工作。
【解决方案3】:

对我来说,我第一次需要从 Mac 上的 Spotlight 启动 Docker,以便 Docker for Desktop 获得所需的访问权限。然后docker version 命令工作得很好。

【讨论】:

    【解决方案4】:

    就我而言:Windows 10 + WSL2 + Hyper

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

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

    【讨论】:

    • 你能给我解释一下你的Windows 10 + WSL2 + Hyper是什么样的吗?一些在线文档的链接会很有帮助。
    • 好的,这里有一些链接(抱歉找不到我之前用过的那个):blog.usejournal.com/… // medium.com/@myrlandnu/…
    【解决方案5】:

    如果您正在使用 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
      

    【讨论】:

      【解决方案6】:

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

      • 在我每次打开新终端时都必须在命令行中输入 sn-p 之前。

        自动加载-Uz compinit && compinit

      【讨论】:

        【解决方案7】:

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

        系统与环境

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

        【讨论】:

          【解决方案8】:

          我认为您可能在每个插件之间缺少 ,。

          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
          )
          

          【讨论】:

          • 添加逗号会导致诸如“git, plugin not found”之类的错误消息。
          • 这不起作用,不应标记为答案
          • oh-my-zsh 文档明确指出条目应该用空格分隔。
          猜你喜欢
          • 2011-10-11
          • 1970-01-01
          • 1970-01-01
          • 2016-01-20
          • 2021-08-20
          • 2011-06-12
          • 1970-01-01
          • 2017-05-02
          • 1970-01-01
          相关资源
          最近更新 更多