zshはcsshを完了します。 /etc/hosts と ~/.ssh/config でホストを完成させます。

zshはcsshを完了します。 /etc/hosts と ~/.ssh/config でホストを完成させます。

私の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

関連情報