Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: setopt globcomplete and () broken



Mikael Magnusson wrote:
> If I unsetopt globcomplete, I can ls *zshenv(D)<tab> with the
> paragraph deleted though, so it all seems a bit crazy to me.

Are you sure that's not going through _expand?  If I remove _expand from
the list of completers, I don't get completions for things like *zshe*(D)
unless glob_complete is set.

> I thought
> globcomplete was about completing things with patterns that weren't
> files in the first place, so why do glob qualifiers come into the
> picture at all?

They're not *necessarily* files, but they could be anything; and
if they are files, then globcomplete means exactly what it says,
complete based on full file glob expressions.

> And when completing actual files, why would globcomplete mean
> _path_files has to do extra work instead of just expanding the
> pattern?

The extra work in this particular case is merging together glob
qualifiers passed down (e.g. "-/" becoming "*(-/)") with any that are
there on the command line.  This is a rather specialised thing to do,
but you could e.g. complete "cd *(D)" and get files with dots.  (It only
applies with glob_complete because otherwise what's on the command line
is a plain string and you can just use "*(-/)" as the pattern.)
This does appear to work.  (In fact it appears to work even after the fix I
was going to propose for your original problem, which is encouraging.)

-- 
Peter Stephenson <pws@xxxxxxx>                  Software Engineer
CSR PLC, Churchill House, Cambridge Business Park, Cowley Road
Cambridge, CB4 0WZ, UK                          Tel: +44 (0)1223 692070



Messages sorted by: Reverse Date, Date, Thread, Author