diff options
| author | Gam <1348187+Y3K@users.noreply.github.com> | 2024-02-29 14:59:27 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-29 21:59:27 +0100 |
| commit | 50fd98e5a6c9d7c36b0cc678f577f7ce1d181bea (patch) | |
| tree | df83b6bcadc4dab67a0878305af44e405bbe402a /plugins | |
| parent | 65b23a3328bfd7ddf3234de4538fa7c3e9644491 (diff) | |
| download | zsh-50fd98e5a6c9d7c36b0cc678f577f7ce1d181bea.tar.gz zsh-50fd98e5a6c9d7c36b0cc678f577f7ce1d181bea.tar.bz2 zsh-50fd98e5a6c9d7c36b0cc678f577f7ce1d181bea.zip | |
fix(ssh): allow multiple definitions per host (#12227)
Diffstat (limited to 'plugins')
| -rw-r--r-- | plugins/ssh/ssh.plugin.zsh | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/plugins/ssh/ssh.plugin.zsh b/plugins/ssh/ssh.plugin.zsh index 085e71fa1..b5b050536 100644 --- a/plugins/ssh/ssh.plugin.zsh +++ b/plugins/ssh/ssh.plugin.zsh @@ -4,9 +4,16 @@ # Filter out wildcard host sections. _ssh_configfile="$HOME/.ssh/config" if [[ -f "$_ssh_configfile" ]]; then - _hosts=($(egrep '^Host.*' "$_ssh_configfile" | awk '{print $2}' | grep -v '^*' | sed -e 's/\.*\*$//')) - zstyle ':completion:*:hosts' hosts $_hosts - unset _hosts + _ssh_hosts=($( + egrep '^Host.*' "$_ssh_configfile" |\ + awk '{for (i=2; i<=NF; i++) print $i}' |\ + sort |\ + uniq |\ + grep -v '^*' |\ + sed -e 's/\.*\*$//' + )) + zstyle ':completion:*:hosts' hosts $_ssh_hosts + unset _ssh_hosts fi unset _ssh_configfile |
