Git вкладка autocompletion полезна для небольших проектов, но в настоящее время я работаю над двумя большими проектами, использующими git, и для них это хуже, чем бесполезно. Всякий раз, когда я печатаю, скажем, git add forms<tab>
, git требуется 20 секунд или больше, чтобы найти файл (в этом примере, form.py), и в этот промежуток времени я не могу ничего сделать в терминале. Есть ли способ отключить функцию автозаполнения или сделать ее быстрее?
Завершение автозапуска ZSH для git занимает значительное время, можно ли отключить его или оптимизировать?
Ответ 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.
Ответ 6
В соответствии с ответом на git bash автоматическое завершение работы в Windows 7 x64, git 2.13 поставляется с более быстрым git-completion.bash