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

completion argument-n enabling



Continuing my education in my own stupidity, I continue to have problems
trying to migrate to the zshcompsys completion.  I write small shell
convenience functions and used to write compctl settings for them. In
this instance, I've gotten most of the way there.

I'm sure that the answers are really simple and education is
appreciated.  Thanks.

Given:
 function cyrus { sudo -H -u cyrus "/usr/lib/cyrus/$1" "${argv[2,-1]}" }
I've managed to produce a mostly-working set-up:
 zstyle ':completion:*:*:cyrus:*' file-patterns '/usr/lib/cyrus/*(*\:t)'

However, I only want that completion to occur for the first parameter;
but argument-n context needs to be enabled and I can't figure out how to
do that.  To make:
 zstyle ':completion:*:*:cyrus:argument-1:*' file-patterns \
						 '/usr/lib/cyrus/*(*\:t)'
work, what do I actually need to do please?  The nearest that I could
figure out was: zstyle ':completion:*:*:cyrus:*:arguments' _normal
but that doesn't work.

Also, if I instead use:
 compdef '_files -g "/usr/lib/cyrus/*(*:t)"' -P '' cyrus
(I know, it deals with all parameters, not just the first) why am I
prompted with two sets of results, the correct filenames and then the
sub-directories of the cwd?

Are there any simple examples which I should be looking for, covering
this sort of thing?  The stuff I can find all uses custom _cmdname
widgets and I couldn't find anything just offering plain "how to do X"
for the sort of thing I'm attempting.  The nearest seems to be
StartupFiles/zshrc which falls just shy of providing an example of
per-command completion.

Thanks,
-- 
I am keeping international relations on a peaceable footing.
You are biding your time before acting.
He is coddling tyrants.
 -- Roger BW on topic of verb conjugation



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