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

Re: Completion lists

On Sep 13,  3:16pm, Yuri DElia wrote:
} Bart Schaefer <schaefer <at> brasslantern.com> writes:
} > zstyle -e ':completion:*:default' list-colors \
} >     'reply=("=(#b)${words[CURRENT]:t}(*)=0=7")'
} Your code seem to fail badly with directories.
} For instance, completing anything with "./" will incorrectly skip the
} first two characters of the files themselves.

It works just fine from

zsh -f
autoload -Uz compinit
compinit -D
zstyle ...

and it also works with my own usual completion styles, so there's
something else in your configuration that's clashing with it.


} While I was waiting I kept trying

Always a good plan.

} and came up with this:
} c='${PREFIX:+=(#b)($PREFIX:t)(?)*===$color[bold]}':'=(#b)(?)*==$color[bold]'
} zstyle -e ':completion:*' list-colors "reply=(\"$c\")"

Strictly speaking I think you should use =0=0=$color[bold]}, that may be
why strange things are getting highlighted in some of your attempts.  I
get different results with =0=0= vs ===.

} I'm wondering what variables could in the reply. I found $PREFIX in
} other examples, and now also $words[CURRENT]. Is there a list for
} these? Maybe I could make it work if I had SUFFIX/somethingelse.

All the completion special variables are listed in the "Completion
Special Parameters" section of the manual (info section 19.2 with the
latest CVS checkout).

The list-colors style is looked up several times during the course of
a typical completion, so it may get evaluated late enough for the
values of words / PREFIX / SUFFIX etc. to be accurate.  I still think
it's going to be difficult to get a single global list-colors style
that covers all the cases.

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