Завершение без учета регистра для 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 строк.