Плагин Docker для Zsh не работает
У меня давно установлен 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 zsh
и source ~/.zshrc
, а также перезапускал терминал, но это не дало результата.
Не хватает ли мне чего-то?
5 ответ(ов)
Похоже, что oh-my-zsh не загружает файл plugins/docker/_docker
. Вам нужно добавить его в ~/.zshrc
другим способом. Попробуйте добавить следующие строки в ваш файл ~/.zshrc
:
fpath+=($ZSH/plugins/docker)
autoload -U compinit && compinit
После этого перезапустите терминал или выполните source ~/.zshrc
, чтобы изменения вступили в силу. Это должно решить проблему с автодополнением для Docker.
В моем случае все оказалось довольно просто: мне нужно было запустить Docker в первый раз через Spotlight на моем Mac, чтобы Docker Desktop получил необходимые права доступа. После этого команда docker version
заработала без проблем.
Если вы используете oh-my-zsh и автодополнение не работает, выполните следующие шаги:
Создайте следующие символические ссылки:
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
Добавьте следующую строку в ваш файл
.zshrc
, или выполните ее в командной оболочке:echo "autoload -Uz compinit; compinit" >> .zshrc
Это должно помочь восстановить функциональность автодополнения в oh-my-zsh. Не забудьте перезапустить терминал или выполнить source ~/.zshrc
для применения изменений.
В вашем случае: Windows 10 + WSL2 + Hyper
У меня возникла эта ошибка из-за того, что я остановил Docker на Windows... Запуск его снова устраняет ошибку в Hyper (и, следовательно, в ZSH).
Без изменений в .zshrc
или дополнительных команд.
Решение от @youhans оказалось для меня действенным. Возможно, у вас есть проблемы с доступом для внесения необходимых изменений в файл "zshrc". Я изменил разрешения на "чтение и запись" и добавил код, указанный в ответе @youhans, в конец файла "zshrc". Теперь система автодополнения всегда работает.
Раньше мне приходилось каждый раз вводить нижеуказанный код в командной строке при открытии нового терминала:
autoload -Uz compinit && compinit