From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10168 invoked from network); 24 Jul 2001 07:10:34 -0000 Received: from sunsite.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 24 Jul 2001 07:10:34 -0000 Received: (qmail 9689 invoked by alias); 24 Jul 2001 07:10:28 -0000 Mailing-List: contact zsh-workers-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 15468 Received: (qmail 9678 invoked from network); 24 Jul 2001 07:10:27 -0000 From: Sven Wischnowsky Date: Tue, 24 Jul 2001 09:10:01 +0200 (MET DST) Message-Id: <200107240710.JAA12732@beta.informatik.hu-berlin.de> To: zsh-workers@sunsite.dk Subject: PATCH: Re: Make the `users-hosts' style take precedence? In-Reply-To: <1010721213917.ZM10954@candle.brasslantern.com> Bart Schaefer wrote: > I have these styles: > > zstyle -e ':completion:*:(ssh|scp):*' hosts 'reply=( > ${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) \ > /dev/null)"}%%[# ]*}//,/ } > ${=${(f)"$(cat /etc/hosts(|)(N) <<(ypcat hosts 2>/dev/null))"}%%\#*} > )' > zstyle ':completion:*:(ssh|scp):*:my-accounts' users-hosts \ > schaefer@{candle,dazzle,gleam,chimney}.brasslantern.com > > When completing after `ssh schaefer@', I'd like to be offered only those > host names that came from the users-hosts style, and not all the others > from the hosts style. How do I accomplish this? I'd use the tag-order > style, except that `my-accounts' is not a "real" tag for this purpose. Hm, that's what I get. > One other oddity: If I type `ssh @', then move the cursor back so it's > over the `@', and then press TAB, I would expect to complete user names > because that's what should appear to the left of an `@'. Instead it > offers both users and host names -- but in THIS case, the only hosts > offered *are* those from the users-hosts style. But this one I could reproduce. Let's make _ssh even smarter. Bye Sven Index: Completion/Unix/Command/_ssh =================================================================== RCS file: /cvsroot/zsh/zsh/Completion/Unix/Command/_ssh,v retrieving revision 1.2 diff -u -r1.2 _ssh --- Completion/Unix/Command/_ssh 2001/05/29 17:54:37 1.2 +++ Completion/Unix/Command/_ssh 2001/07/24 07:09:34 @@ -143,6 +143,8 @@ userhost) if compset -P '*@'; then _wanted hosts expl 'remote host name' _ssh_hosts && ret=0 + elif compset -S '@*'; then + _wanted users expl 'login name' _ssh_users -S '' && ret=0 else if (( $+opt_args[-l] )); then tmp=() -- Sven Wischnowsky wischnow@informatik.hu-berlin.de