Подтвердить что ты не робот

Завершение автозапуска ZSH для git занимает значительное время, можно ли отключить его или оптимизировать?

Git вкладка autocompletion полезна для небольших проектов, но в настоящее время я работаю над двумя большими проектами, использующими git, и для них это хуже, чем бесполезно. Всякий раз, когда я печатаю, скажем, git add forms<tab>, git требуется 20 секунд или больше, чтобы найти файл (в этом примере, form.py), и в этот промежуток времени я не могу ничего сделать в терминале. Есть ли способ отключить функцию автозаполнения или сделать ее быстрее?

4b9b3361

Ответ 1

Это не git автоматическое заполнение имен файлов, это ваша оболочка. У вас такая же задержка, когда вы делаете, например. "cat forms <tab> "?

Проверьте этот пост с похожими проблемами:

http://talkings.org/post/5236392664/zsh-and-slow-git-completion

В этой статье предлагается добавить следующее к вашему .zshrc:

__git_files () { 
    _wanted files expl 'local files' _files     
}

EDIT: здесь исходный текст этого сообщения

Я нашел много сообщений, касающихся жалоб о том, насколько болезненно медленным gitавтозаполнение может быть в больших хранилищах. Были различные предлагаемые исправления и предложения для загрузки последних zsh. Может быть, один из тех вещей будет работать, но все, что я действительно хочу, это для него заполнить имена ветвей и файлов, как они находятся в файле система. Я не нашел никаких предложений о том, как получить такое поведение Я понял это для себя. Я думал, что поделюсь этим для всех которые могут извлечь из этого выгоду. Я просто добавил следующее к моему .zshrc Файл:

__git_files () { 
    _wanted files expl 'local files' _files  }

Теперь я могу запускать команды git и получать мгновенное завершение, пока получение файла, похожее на то, что предоставит ls.

Ответ 2

Наконец надоело ужасно медленное автозаполнение в zshell и начало искать решение. Я закончил тем, что переключился с 'git' на использование плагина 'gitfast', который уже установлен без моего zsh, и я лечу... https://github.com/robbyrussell/oh-my-zsh/wiki/Plugins# gitfast

Ответ 3

У меня нет опыта работы с zshell, но я получил этот ответ на другом форуме. Вы должны включить эту строку в ваш .zshrc файл:

compdef -d git

Ответ 4

Одним очень быстрым и грязным решением является удаление следующего файла, ответственного за автозаполнение.

/usr/local/git/contrib/completion/git-completion.bash

Ответ 5

Это потому, что Zsh по умолчанию поставляется с чрезвычайно раздутым завершением для Git. Я написал сообщение в блоге, объясняющее, как я исправил эту раздутость, но это должно было быть за пределами проекта Zsh.

Простой ответ - установить завершение Git zsh, которое отличается от завершения git Zsh (которое поставляется по умолчанию). Скачайте git- ~/.zsh/_git и поместите его в ваш ~/.zsh/_git. Затем поместите его на свой fpath:

fpath=(~/.zsh $fpath)

Вы должны лететь сейчас.

Как еще один комментарий здесь объясняет; Другой вариант - использовать oh-my-sh и включить плагин gitfast, который выполняет то же самое.

Почему разработчики Zsh настаивают на том, чтобы сделать их код медленным? Я не знаю, но здесь вы можете увидеть пример их рассуждений: Re: проблема с медлительностью с завершением git.