Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: command completion
On 2011-08-14 16:56:50 -0700, Bart Schaefer wrote:
> As I said before, it's really got to do with how _autocd insinuates itself
> into the process.
>
> Autocd makes itself the handler for -command-. It then calls both
> _command_names and _cd, each of which takes a spin through _alternative,
> so it goes around the _tags loop twice as well.
>
> If there were only one pass through _alternative, I think you'd get what
> you're looking for; but because there are two passes and there are no
> *additional* completions for the "command" tag added inside _cd, all
> the defaults for _cd get added as well.
OK, but this behavior is a bit strange: if I use
zstyle ':completion:*:complete:-command-:*' tag-order 'commands'
on my example, then I get:
% prefix-
prefix-cmd1 prefix-dir/
from the "dir" directory. And from the parent directory "temp_dir",
prefix[TAB] gives prefix-cmd1 only (i.e. prefix-dir/ has mysteriously
disappeared though it is a cd target).
> So, unfortunately, I don't believe you can get what you want with
> zstyles. You'll have to rewrite _autocd, something like so:
>
> #compdef -command-
> _command_names && return 0
> [[ -o autocd ]] && _cd && return 0
> return 1
This works. However wouldn't it be cleaner if there were a specific
tag for autocd?
--
Vincent Lefèvre <vincent@xxxxxxxxxx> - Web: <http://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / Arénaire project (LIP, ENS-Lyon)
Messages sorted by:
Reverse Date,
Date,
Thread,
Author