From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2515 invoked by alias); 14 Aug 2011 23:57:03 -0000 Mailing-List: contact zsh-users-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Users List List-Post: List-Help: X-Seq: 16230 Received: (qmail 5599 invoked from network); 14 Aug 2011 23:57:01 -0000 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received-SPF: none (ns1.primenet.com.au: domain at closedmail.com does not designate permitted sender hosts) From: Bart Schaefer Message-id: <110814165650.ZM19855@torch.brasslantern.com> Date: Sun, 14 Aug 2011 16:56:50 -0700 In-reply-to: <20110814230737.GK20653@prunille.vinc17.org> Comments: In reply to Vincent Lefevre "Re: command completion" (Aug 15, 1:07am) References: <20110814205936.GI20653@prunille.vinc17.org> <110814151453.ZM19551@torch.brasslantern.com> <20110814230737.GK20653@prunille.vinc17.org> X-Mailer: OpenZMail Classic (0.9.2 24April2005) To: zsh-users@zsh.org Subject: Re: command completion MIME-version: 1.0 Content-type: text/plain; charset=us-ascii On Aug 15, 1:07am, Vincent Lefevre wrote: } Subject: Re: command completion } } On 2011-08-14 15:14:53 -0700, Bart Schaefer wrote: } > Here we have the key. In order to stop "remaining tags" from being tried, } > the value "-" must appear somewhere in the completion style. So your } > problem is solved by: } > } > zstyle ':completion:*:complete:-command-:*' tag-order 'commands' - } } Not really. I still wish to generate a completion for directories in } the cdpath if there are no matches. Ah, I see. 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. 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