Завершення вкладки ZSH git-команд відбувається дуже повільно. Як я можу це відключити?


18

Якщо я набираю:

rm <TAB>

Я побачу можливі завершення майже миттєво.

Однак якщо я набираю:

git rm <TAB>

Він зависне протягом декількох секунд, якщо він знаходиться в git repo, або не зможе показати жодних завершень, якщо я за межами git repo.

Як я можу виправити таку поведінку?

У моєму .zshrc немає нічого подібного до git: - /


+1 Це наводить мене настільки батистим, що я провісив мозок, щоб не потрапляти <TAB>під час використання git.
Крістофер

Відповіді:


26

Я, нарешті, потурбувався прогулювати це, і придумав цю відповідь ТА, яка прекрасно працювала для мене. Додайте це до .zshrc:

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

Там же глибокий список розсилки нитка тут про це пояснити , що zshробить , щоб так довго.


1
Це для мене не вийшло. Я завантажую такі модулі oh-my-zsh: plugins = (git gitfast last-working-dir zeus). Я завантажив вищезгадану функцію після плагінів.
justingordon

1
У мене була така ж проблема. Коментуючи підтвердження успіху: на OSX 10.8.5, zsh 4.3.11, git 1.8.2, цей запис .zshrc змінив усе значення. Без цього процесор регулярно закріплюється на 100%. З його допомогою завершення вкладки здається приблизно однаковим для команд git, як і будь-які інші. Дякую! :)
cweekly

Переконайтеся, що ви поставили цю команду перед плагінами zsh, інакше у вас може виникнути швидке автозавершення, але помилки, коли ви спробуєте реально виконати команду git.
Саймон

1

Ось ще один варіант: офіційне завершення Git zsh: git-fill.zsh . Все, що вам потрібно зробити, це завантажити це ~/.zsh/_gitі переконатися, що він знаходиться на вашому шляху:

fpath=(~/.zsh $fpath)

Мені цікаво, що ця нитка згадується в іншій відповіді; Я почав цю тему, і в результаті написав офіційне завершення програми Git zsh.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.