From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19375 invoked from network); 9 Aug 2000 08:00:54 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 9 Aug 2000 08:00:54 -0000 Received: (qmail 1347 invoked by alias); 9 Aug 2000 08:00:37 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 12574 Received: (qmail 1340 invoked from network); 9 Aug 2000 08:00:30 -0000 Date: Wed, 9 Aug 2000 10:00:29 +0200 (MET DST) Message-Id: <200008090800.KAA07942@beta.informatik.hu-berlin.de> From: Sven Wischnowsky To: zsh-workers@sunsite.auc.dk In-reply-to: "Bart Schaefer"'s message of Tue, 8 Aug 2000 13:41:52 -0700 Subject: Re: feature request: special completion of glob patterns Bart Schaefer wrote: > On Aug 8, 5:25pm, Adam Spiers wrote: > > > > Ideally, I would like the following completion behaviour (assuming > > baz.txt is the only file in foo1/bar): > > > > $ diff -u foo[12]/bar/b > > $ diff -u foo[12]/bar/baz.txt > > This is very similar to the keep-prefix style, and I believe there was > some discussion in that thread of handling something like this. You may > even be able to figure out a way to do it by looking for keep-prefix in > the _expand completer. Adam may also have a look at the completion-after-braces thread. I want to move enough of the basic completion code into shell code to be able to implement completion after `a{b,c}d' there. That would probably also allow us to do that with globbing. I don't have any real ideas how to do that yet, though, and it will come after 4.0. > Trying out a couple of things has led me to find the following oddities: > > zsh% x='foo[12]' > zsh% diff -u ${~x}/b > zsh% diff -u ${~x}/foo/bar > ^ > cursor here > > It's behaving as if $~x expanded to ".". This is with the _expand completer > and the keep-prefix style set to true. I couldn't exactly reproduce this, but I see the problem (with files foo{1,2}/bar): % x='foo[12]' y='${~x}/b' % echo ${(e)y} zsh: no matches found: foo[12]/b % echo ${~x}/b zsh: no matches found: foo[12]/b These are the two types of parameter expansions used by _expand. I've no idea how to fix that. Maybe add a `*' at the cursor position or at the end or both end (as in _match/globcomplete). Or something. > The other is that the _expand completer seems to trigger menu-completion > even when I have explicitly turned it off. I removed all references to > "menu" or "select" from my styles, I'm using the complete-word widget, and > I have automenu turned off, yet after `zsh/S*' I still end up with a > menu completion cycling through zsh/Src, zsh/StartupFiles, and zsh/S* > (because I have the original style set). I expected it just to list the > completions and feep. > > I realize, looking back through the history of _expand, that it has always > been this way, and I simply never noticed because I usually have automenu > set. Nevertheless it seems to me that there ought to be some way to turn > it off. I didn't do that mainly because chances are even worse than for _match that the resulting words have a common prefix. However, we could use the insert-unambiguous style there, too (and if it is true and $compstate[unambiguous] is long enough, don't add the original and maybe don't add the all-expansions string). Bye Sven -- Sven Wischnowsky wischnow@informatik.hu-berlin.de