Завершение без учета регистра для git в zsh

У меня есть настройка 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

Есть идеи?

2 ответа

Решение

Решение: принять _git из "мастер" филиала Zsh. Последняя версия 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 не является.

Попробуй это:

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

Я не знаю, почему это необходимо, возможно, что-то в реализации кода завершения _git. Эта штука длиной более 6000 строк.

Другие вопросы по тегам