Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: Case-insensitive completion of files with matcher-list
- X-seq: zsh-users 4836
- From: Sven Wischnowsky <wischnow@xxxxxxxxx>
- To: zsh-users@xxxxxxxxxx
- Subject: Re: Case-insensitive completion of files with matcher-list
- Date: Tue, 16 Apr 2002 10:25:28 +0200
- In-reply-to: <Pine.LNX.4.44.0204151308350.6883-100000@xxxxxxxxxxxxxxxx>
- Mailing-list: contact zsh-users-help@xxxxxxxxxx; run by ezmlm
- References: <87ofgk6cut.fsf@xxxxxxxxxxxxxxxx> <Pine.LNX.4.44.0204151308350.6883-100000@xxxxxxxxxxxxxxxx>
Bart Schaefer wrote:
> On Mon, 15 Apr 2002, Hannu Koivisto wrote:
>
> > zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'
> >
> > That works fine indeed, but what if I want case-insensitive
> > completion only for files? After reading about contexts and
> > fiddling with C-x h, I figured that
> >
> > zstyle ':completion:*:all-files' matcher-list 'm:{a-zA-Z}={A-Za-z}'
> >
> > should do the trick
>
> You're not quite right. matcher-list is used only at the global level,
> not for individual tags like all-files. For an individual tag, you want
> to use just the 'matcher' style:
>
> zstyle ':completion:*:all-files' matcher 'm:{a-zA-Z}={A-Za-z}'
>
> Unfortunately, there appears to be a bug in _path_files -- it copies any
> global matcher from matcher-list through to the call to compfiles, but it
> doesn't do the same for a matcher passed to it with the -M option (which
> is where the string from the matcher style ends up).
>
> Unfortunately I don't see offhand how to fix this. Sven?
It's collected in $matcher and I really think it was an oversight.
Sorry for this (and for sending a patch to -users).
Also note that one might want to include the other file-tags in this
case, e.g.: `:completion:*:(direcories|((all-|globbed-|)files))'.
Bye
Sven
Index: Completion/Unix/Type/_path_files
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Unix/Type/_path_files,v
retrieving revision 1.14
diff -u -r1.14 _path_files
--- Completion/Unix/Type/_path_files 17 Oct 2001 13:29:21 -0000 1.14
+++ Completion/Unix/Type/_path_files 16 Apr 2002 08:24:00 -0000
@@ -335,11 +335,11 @@
tmp2=( "$tmp1[@]" )
if [[ "$tpre$tsuf" = */* ]]; then
- compfiles -P$cfopt tmp1 accex "$skipped" "$_matcher" "$sdirs" fake
+ compfiles -P$cfopt tmp1 accex "$skipped" "$_matcher $matcher[2]" "$sdirs" fake
elif [[ "$sopt" = *[/f]* ]]; then
- compfiles -p$cfopt tmp1 accex "$skipped" "$_matcher" "$sdirs" fake "$pats[@]"
+ compfiles -p$cfopt tmp1 accex "$skipped" "$_matcher $matcher[2]" "$sdirs" fake "$pats[@]"
else
- compfiles -p$cfopt tmp1 accex "$skipped" "$_matcher" '' fake "$pats[@]"
+ compfiles -p$cfopt tmp1 accex "$skipped" "$_matcher $matcher[2]" '' fake "$pats[@]"
fi
tmp1=( $~tmp1 )
--
Sven Wischnowsky wischnow@xxxxxxxxx
Messages sorted by:
Reverse Date,
Date,
Thread,
Author