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

The group-order and tag-order styles



Given the following always in effect:

zstyle ':completion:*' format 'Completing %d'
zstyle ':completion:*' group-name ''

Fiddling with ssh completion (see zsh-users thread) I now have this:

zstyle ':completion:*:ssh:*' tag-order 'hosts:-domain hosts:-ipaddr *'
zstyle ':completion:*:ssh:*' group-order \
    hosts:-domain:domains users 'hosts:-ipaddr:IP addresses' \*
zstyle ':completion:*:ssh:*:hosts-domain' ignored-patterns '<->.<->.<->.<->'
zstyle ':completion:*:ssh:*:hosts-ipaddr' ignored-patterns '^<->.<->.<->.<->'
zstyle -e ':completion:*:ssh:*' hosts 'reply=(
    ${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) \
		     /dev/null)"}%%[# ]*}//,/ }
    ${=${(f)"$(cat /etc/hosts(|)(N) <<(ypcat hosts 2>/dev/null))"}%%\#*}
    )'

With just the last of these styles, completion after `ssh' lists two groups:
hosts first, then users.  What I want to see is three groups:  hosts by
domain name, then users, then hosts by IP address.  Adding the other styles
successfully splits the result into three groups, but the users are always
listed first.  Also, the explanation strings (`domains' and `IP addresses')
from the group-order style are never shown in the listing.

What am I missing?

-- 
Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com

Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net   



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