zsh: переопределить встроенную функцию - PullRequest
0 голосов
/ 21 января 2019

Ответы, данные в Отключить автозаполнение удаленных веток в Zsh? больше не работает, так как zsh изменил способ, которым он это делает за последние шесть лет.

Я взломал версию функции __git_refs, которая не перечисляет пульты, и сохранил определение в ~/.zsh-functions/__git_refs. Файл начинается с unfunction __git_refs 2> /dev/null, чтобы убедиться, что определение системной функции удалено.

Если я source ~/.zsh-functions/__git_refs, то набрать git checkout <Tab>, я вижу только локальные ветви, что правильно.

Но если я добавлю source ~/.zsh-functions/__git_refs в конец моего .zshrc и запущу новый zsh, я все равно получу системную версию функции, и в завершении будут показаны как удаленные, так и локальные ветви.

Как я могу переопределить эту функцию, не вводя source ~/.zsh-functions/__git_refs каждый раз, когда я запускаю оболочку?

(В качестве альтернативы, есть ли более чистый способ заставить zsh показывать только локальные ветви в дополнениях, которые все еще работают на zsh 5.6.2?)

...