From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4048 invoked from network); 14 Feb 2000 13:03:42 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 14 Feb 2000 13:03:42 -0000 Received: (qmail 2240 invoked by alias); 14 Feb 2000 13:03:34 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 9721 Received: (qmail 2232 invoked from network); 14 Feb 2000 13:03:33 -0000 Date: Mon, 14 Feb 2000 14:03:25 +0100 (MET) Message-Id: <200002141303.OAA10037@beta.informatik.hu-berlin.de> From: Sven Wischnowsky To: zsh-workers@sunsite.auc.dk In-reply-to: Oliver Kiddle's message of Mon, 14 Feb 2000 12:23:44 +0000 Subject: Re: help with _match, globcomplete etc. (with PATCH) Oliver Kiddle wrote: > Sven Wischnowsky wrote: > > > (there is almost no real reason to use > > GLOB_COMPLETE nowadays, the _match completer should be better -- and > > configurable). > > I've just been trying to fathom out what is going on with respect to > when zsh expands, menu completes expansions and doesn't expand. It all > is a little bit complicated, especially as the behaviour is controlled > by a mix of options, styles and the choice of widget that tab is bound > to. > > Part of the trouble is the way zsh's shell expansion works. If you use > expand-or-complete, I can't see any way of customising what is and isn't > expanded - variables, globs and history are, tildes are not. The > behaviour which I would like is that variables are not expanded unless I > specifically use a widget bound to '^X$' - like tcsh's expand-variables > widget. You can bind expand-word to ^X$. Expansion of parameter substitutions is a problem, because the completion (shell) code doesn't get the whole string. We only get the stuff after the $, so we can't really change such things. > Would it be possible for the shell expansion used in completion > to be controlled by a style? Have you had a look at the _expand completer? And the _expand_word bindable command? (The latter had a bug -- result of copying the context stuff -- that's what the first hunk is for). > The reason I still use glob_complete is that it allows some action when > completing glob patterns (menu completion though I'd prefer expansion in > the case of files) while not expanding variables. > > I can however see that the _match completer is better, mainly in that I > can choose menu completion where only one argument is required and > expansion where many are required. > > Another thing which I would like to configure with expansion is when > there is only one match, I'd prefer if the space suffix was not added - > this is one of the things that makes the variable expansion annoying. > Ideally, the suffix would be as if normal completion was used so > directories would get a '/'. When speaking about variables: see above. When speaking about other expansions: _match does that and _expand could be made to do it (adding a loop that appends slashes to directory names). There were some problems with $compstate[last_prompt] and with complist not giving up when we didn't go back to the previous prompt. Bye Sven -- Sven Wischnowsky wischnow@informatik.hu-berlin.de