From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6526 invoked from network); 18 Sep 2000 06:08:53 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 18 Sep 2000 06:08:53 -0000 Received: (qmail 6917 invoked by alias); 18 Sep 2000 06:07:39 -0000 Mailing-List: contact zsh-users-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 3434 Received: (qmail 6909 invoked from network); 18 Sep 2000 06:07:39 -0000 X-Envelope-Sender-Is: Andrej.Borsenkow@mow.siemens.ru (at relayer goliath.siemens.de) From: "Andrej Borsenkow" To: "Bart Schaefer" , "E. Jay Berkenbilt" , Subject: RE: completion with globbing, take 2 Date: Mon, 18 Sep 2000 10:07:29 +0400 Message-ID: <000001c02136$b9c1f2a0$21c9ca95@mow.siemens.ru> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2911.0) Importance: Normal In-Reply-To: <1000917184320.ZM19505@candle.brasslantern.com> X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 > > More precisely, you were told that Andrej does that. > First, I must apologize for wrong advice (you should not answer such questions at 10pm :-( And I misunderstood the question anyway. > Andrej probably wasn't expecting you to use it verbatim, though, because > he didn't show you what his settings for the matcher-list style are. You > didn't say whether you have any settings for matcher-list; if you don't, > the _match completer won't do anything. > No, wrong. _match has absolutely nothing to do with matcher-list style (that was introduced only recently). _match was first "alternative" for GLOB_COMPLETE option. It tries to match the list of possible completions against pattern on command line. This works for _every_ completion (while GLOB_COMPLETE worked only for files). But _match never tries to *expand* the pattern - that is what _expand is for. matcher-list is used to set global "matchers" - e.g. to do case-insensitive or partial-word completion, like completing c-w to complete-word :-)) or g_c to G_c to globcomplete. > } I want behavior more like what expand-or-complete does except that I > } want only what the completion system would return to be substituted. > Thinking about it, I believe, that _match would be the correct completer to do it. There are many cases where we simply cannot do expansion at all - option names, widget names etc etc etc. So, consider something like setopt *complete*TAB WIth _match this enters menu completion - but _expand_word (I tried it) gives you nothing. So, there seems to be no way to just insert all matching choices. While _expand (and friends) may be useful at times, _match just seems to be more powerful. (Of course, another general solution is to have widget that would insert all listed choices at once. Was not it discussed once?) > That's what the _expand completer is for. I believe you want: > > zstyle ':completion:*' completer _oldlist _expand _complete _match > zstyle ':completion::expand:*' completions true > Actually, no. It works in this case only because file completion itself is using globbing - that is, the set of possible matches is determined by pattern on command line. But the original wish was: the * gets replaced with all the choices that the completion system returns at that time (i.e., whatever glob pattern I've typed should be applied to the completion choices rather than to files)? It is exactly what _match does ... without giving you the way to insert all choices. > And maybe you don't even need the _match on the end, if you haven't > worked out any matcher-list values yet. The _match completer is for > doing things like case-insensitive completion and completion of sub- > parts of file names (e.g., completing on both sides of a "."). > No. See above the description of _match. -andrej