Zsh Mailing List Archive
Messages sorted by:
Re: compctl -l
- X-seq: zsh-users 6703
- From: Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx>
- To: Zsh Users <zsh-users@xxxxxxxxxx>
- Subject: Re: compctl -l
- Date: Wed, 15 Oct 2003 05:13:38 +0000
- In-reply-to: <20031014230217.GB867@DervishD>
- Mailing-list: contact zsh-users-help@xxxxxxxxxx; run by ezmlm
- References: <20031014230217.GB867@DervishD>
(If anyone else would like to jump in, here ... I miss Sven. :-)
On Oct 15, 1:02am, DervishD wrote:
} I'm trying to learn now the old completion code (compctl), but
} I'm clueless with option '-l'.
Have you looked at Misc/compctl-examples yet?
"compctl -l foo bar" means that, if there exists a compctl for "foo",
then use that when completing arguments of "bar". It's like aliasing.
If there is not a compctl for "foo", it's useless.
"compctl -l '' bar" means that "bar" should be ignored for purposes of
completion; that is, the first word after "bar" completes as a command,
and the second and further words complete as arguments of the command
named by the first word. The classic example is
compctl -l '' nohup noglob exec nice eval - time rusage
"compctl -x ... -l ..." is the real meat; the arguments to -x tell how
to delimit a portion of the command line, and then -l says that when
the cursor is within those limits, completion should behave as in one
of the two cases above.
Note that order is important with "-x": if the "-l" comes *before* the
"-x" as in
compctl -l '' -x 'p' -f -- . source
then that means to ignore "source" or "." only when the -x arguments
are false -- in this example, 'p' means "the cursor is in the first
word after the command name"; when 'p' is true, files ("-f") are
completed, otherwise "-l ''" is used, so the file name is treated as a
command name and the compctl for that (if any) is used to complete the
Of course this stuff about -x generalizes to other options besides -l,
but -l is what you were asking about ...
Messages sorted by: