我最近升级了我的笔记本电脑,并一直在确保我的开发工作流程是我所习惯的。除了Git标签自动完成之外,一切都工作正常。
通常我可以输入git che
,然后点击tab键,它会自动完成到git checkout
。但不管什么原因,在我的新笔记本电脑上,它不会这样做。现在它会列出所有以“che”开头的选项(check-attr,check-ignore,cherry,cherry-pick等)。
我读了很多书,但似乎不知道是什么导致了这一点,也不知道如何改变它。
规格:笔记本电脑- Macbook Pro M1 shell - zsh
注意:我认为这可能与Zsh的tab-completion library有关,但不知道如何更改它。
我已经阅读了文档并更新了zshrc文件
添加和删除:autoload -Uz compinit && compinit
1条答案
按热度按时间jdzmm42g1#
有趣的问题!我调查了一下,发现如下:
git有两个独立的zsh补全系统:
1.与zsh(https://github.com/zsh-users/zsh/blob/master/Completion/Unix/Command/_git)一起发布的版本要复杂得多,而且显然更能感知上下文。
使用一个空的
zshrc
(zsh -d -f -i
)启动一个新的zsh会话,我们会看到:然后,在加载其他完井系统后(我将在下面讨论如何准确地执行此操作):
变成
那么我们如何切换呢?我的方法是通过OMZ插件gitfast。我实际上并不(但愿不会)使用OMZ,而是克隆插件并将其源代码导入到我的fpath中的
zshrc
和fpath=( $XDG_CONFIG_HOME/ohmyzsh/plugins/gitfast $fpath )
中但看起来更直接的方法是按照该repo中
_git
的说明操作: