[Re-sending due to email bounce although my email is in the zsh archive] I have tried to customize ssh completion using zstyle so that it uses only the host names configured in my ~/.ssh/config file. I use the following section in my .zshrc file to try to get the desired behavior: if [[ -r ~/.ssh/config ]]; then sconf=( $(sed -n '/^Host[=\t ]/{s///;s/#.*//;p;}' ~/.ssh/config) ) zstyle ':completion::complete:ssh:argument-1:' tag-order !users zstyle ':completion::*:ssh:*:' hosts $sconf #zstyle -e ':completion::*:ssh:*:' hosts REPLY=$sconf #zstyle -e ':completion::*:ssh:*:' hosts reply=$sconf # Use ^Xh to see context and tags applicable in CLI position fi Some of my failed zstyle attempts are commented out. I used the first zstyle command to eliminate the built-in users completion I didn't want(!users). The 2nd remaining zstyle command attempts to give me hostname completion based on hostnames in ~/.ssh/config. I know there is a built-in ssh hostname completion based on /etc/hosts. I want to remove that and replace it with the $sconf setting. I'm not sure how to remove the built-in hostname completion. *jbenninghoff@jb-mbpro 1: zstyle* completer :completion:* _complete _ignored filename :compinstall '$HOME/.zshrc' hosts :completion::*:ssh:*: kubeproxy pslab psnode184 ds-cluster-01 aws-ds rs1 rs-sles01 psedge ps135 psnode135 ansible dellclient dellnvme hec lenovo-sr630 s8 l8s lenovo b143-l8seth0 t1 t2 sles4 sles3 sles2 sles medge tag-order :completion::complete:ssh:argument-1: !users Strangely, zstyle shows the correct list of hostnames in hosts section but those do not get used when I attempt completion by starting with 'ps' then tab for example. I get: *jbenninghoff@jb-mbpro 1: ssh psnode4* psnode40 psnode41 psnode42 psnode43 psnode44psnode40.ps psnode41.ps psnode42.ps psnode43.ps psnode44.ps Which are hostnames in /etc/hosts but not in ~/.ssh/config. When I check the ssh completion in effect right after I type ssh by using ^Xh, I see the below output: *jbenninghoff@jb-mbpro 1: ssh* tags in context :completion::complete:ssh:: argument-1 options (_arguments _ssh _ssh) tags in context :completion::complete:ssh:argument-1: hosts users (_ssh _ssh) hosts (_hosts _combination _ssh_hosts _ssh _ssh) users (_users _combination _ssh_users _ssh _ssh) jbenninghoff@jb-mbpro 1: zsh --version zsh 5.3 (x86_64-apple-darwin17.0) jbenninghoff@jb-mbpro 1: type -a zsh zsh is /bin/zsh /John