[I’m using zsh 4.3.2 on Windows 2003 with cygwin]
If I run `zsh -f' file completion works as expected in all the following:
$ ls /c/<TAB>
$ ls /C/<TAB>
$ ls c:/<TAB>
$ ls C:/<TAB>
However, after running the following:
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
autoload -U compinit
compinit -C
$ ls /c/<TAB> # fails - no completions are listed
$ ls /C/<TAB> # works as expected
$ ls c:/<TAB> # fails - no completions are listed
$ ls C:/<TAB> # works as expected
I've found I can work around the problem by adding a '' to the above matcher-list, namely:
zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}'
However, this isn't really the behavior I'd like as the following will no longer
automatically complete both uppercase and lowercase matches. So if I now type
the following:
$ ls /c/p<TAB>
.. it will no longer list "/c/Program\ Files" as one of the completion matches,
and I have to manually hit backspace and change to an uppercase "P".
So, if I revert to the original matcher-list and try messing with fake-files:
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
zstyle ':completion:*' fake-files '/:c g h l r w z'
.. I then get the desired behavior where the following lists all files
beginning with 'p' or 'P':
$ ls /c/p<TAB>
However, now the following no longer works:
$ ls c:/<TAB> # fails - no completions are listed
Is there a way to get true case-insensitive completion working for both /c/ and
c:/ as a prefix?
Thanks,