Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
PATCH: Re: Make the `users-hosts' style take precedence?
- X-seq: zsh-workers 15468
- From: Sven Wischnowsky <wischnow@xxxxxxxxxxxxxxxxxxxxxxx>
- To: zsh-workers@xxxxxxxxxx
- Subject: PATCH: Re: Make the `users-hosts' style take precedence?
- Date: Tue, 24 Jul 2001 09:10:01 +0200 (MET DST)
- In-reply-to: <1010721213917.ZM10954@xxxxxxxxxxxxxxxxxxxxxxx>
- Mailing-list: contact zsh-workers-help@xxxxxxxxxx; run by ezmlm
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@xxxxxxxxxxxxxxxxxxxxxxx
Messages sorted by:
Reverse Date,
Date,
Thread,
Author