2

大文字と小文字を区別しない補完を行うための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

何か案は?

4

2 に答える 2

2

これを試して:

% zstyle ':completion:*:*:git:files' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'

なぜこれが必要なのかはわかりません。おそらく _git 完了コードの実装に何かがあるのでしょう。それは6000行以上の長さです。

于 2014-06-24T15:42:55.233 に答える