1

Я некоторое время искал в Google/Super User и не смог найти проблем, похожих на то, что со мной происходит, поэтому я решил задать вопрос.

Моя проблема заключается в следующем: у меня одна и та же конфигурация zsh/prompt/autocomplete на двух разных машинах: на одном работает OSX, а на другом Ubuntu 17.04 (VPS на цифровом океане).

Большинство вещей работает точно так же, за исключением git autocompletion, как вы можете видеть из:

этот скриншот

Как вы можете видеть, в верхнем окне (macOS) показаны небольшие опции для завершения, а в нижнем окне (Ubuntu) показаны все мои псевдонимы и прочее.

Мой вопрос: кто-нибудь знает, почему это происходит? Любая идея о том, как я могу это исправить или как я могу отладить их обоих, чтобы найти, где что-то не так в Mac?

Еще немного информации:

macOS Version: 10.12.4
Zsh Version: zsh 5.3.1 (x86_64-apple-darwin16.3.0)
Git Version: git version 2.12.2

Ubuntu Version: 17.04
Zsh Version: zsh 5.2 (x86_64-ubuntu-linux-gnu)
Git Version: git version 2.11.0

1 ответ1

2

Итак, я нашел этот вопрос, где люди упоминали команду whence -v .

whence -v _git (функции завершения zsh обычно следуют шаблону _<command_name>), я получил два разных результата:

Ubuntu

$ whence -v _git
_git is an autoload shell function

Macos

$ whence -v git
_git is a shell function from /usr/local/share/zsh/site-functions/_git

Так как я установил git через Brew на моем Mac, /usr/local/share/zsh/site-functions/_git была символической ссылкой на файл завершения brew. Я удалил символическую ссылку, перезагрузил мою оболочку с помощью exec zsh и все заработало как положено.

После этого я удалил git и переустановил его без доработок:

brew remove git
brew install git --without-completions

И все работает как положено!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .