私のzsh完了ファイルには、_cssh
/ etc / hostsのホストのみを完了する次の行があります。
'*:userhostport: _alternative hosts:host:_hosts usersathosts:userathost:_user_at_host'
sshと同じように〜/.ssh/configで定義されたホストを完成させるにはどうすればよいですか?完全な_sshファイルは次のとおりです。ここ
ユーザー名を入力する必要はありません。のホスト名/etc/hosts
とで定義されているホストのみが必要です~/.ssh/config
。また、複数のホストが完了できることも重要です(csshはsshとは異なり、複数のホストが必要なクラスタsshです)。
答え1
alternative
両方の場所で/etc/hosts
更新してみてください。~/.ssh/config.
"*:userhostport: _alternative 'hosts from /etc/hosts:hosts:host:_hosts' 'hosts from ~/.ssh/config:hosts:host:_ssh_config_hosts' usersathosts:userathost:_user_at_host"
_cssh
次に、ファイルの関数定義の前に次の関数を追加します_cssh
。
_ssh_config_hosts() { local hosts hosts=("${(@f)${(ps:\n:)${(f)"$(<$HOME/.ssh/config)"}:#Host*}") _describe -t hosts 'hosts from ~/.ssh/config' hosts }
/etc/hosts
その後、およびを使用できるはずです~/.ssh/config
。