在Disable auto-completion of remote branches in Zsh?中给出的答案不再起作用,因为zsh在过去六年中改变了它的执行方式。
我破解了__git_refs
函数的一个版本,该版本未列出遥控器,并将其定义存储在~/.zsh-functions/__git_refs
中。该文件以unfunction __git_refs 2> /dev/null
开头,以确保删除了系统功能定义。
如果我source ~/.zsh-functions/__git_refs
然后键入git checkout <Tab>
,我只会看到本地分支,这是正确的。
但是,如果我在.zshrc的末尾添加source ~/.zsh-functions/__git_refs
并启动新的zsh,我仍然可以获得该函数的系统版本,并且完成内容将显示远程分支以及本地分支。
如何在每次启动shell时都不必键入source ~/.zsh-functions/__git_refs
来覆盖此功能?
(或者,是否有一种更清洁的方法让zsh仅显示仍在zsh 5.6.2上可用的补全中的本地分支?)