我有zsh设置来执行不区分大小写的完成,但不知何故git完成的文件匹配仍区分大小写:
% zsh -f
% autoload -U compinit && compinit
% zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
% setopt nocasematch
% touch Foo
% ls fo[TAB]
% ls Foo # completes to foo
Foo
% git add fo[TAB] # does not complete
有什么想法吗?
答案 0 :(得分:2)
试试这个:
% zstyle ':completion:*:*:git:files' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
我不知道为什么这是必要的,可能是_git完成代码的实现。那东西超过6000行。
答案 1 :(得分:2)
解决方案:从Zsh的'master'分支中取_git
。 Zsh今天的最新版本是5.0.5,zsh的主人我从_git
处获得了c8e5be9d0fbbc6fb1cf06175b7c3d4757f6d973c
。
存储库位于git://git.code.sf.net/p/zsh/code
。
对于git-add
这些未发布的更改,完成时不区分大小写。
在Zsh-5.0.5中,git-diff
之类的内容不区分大小写,但git-add
不是。