我目前有一个 /.ssh/config 文件,其中包含大约 7000 行。
我正在尝试查看是否有办法为此加快 zsh 中的自动完成功能。
当我开始输入我想通过 ssh 进入的服务器,然后按下TAB
它大约需要 10 秒钟,它会显示我可以选择的可能主机。
我目前有一个 /.ssh/config 文件,其中包含大约 7000 行。
我正在尝试查看是否有办法为此加快 zsh 中的自动完成功能。
当我开始输入我想通过 ssh 进入的服务器,然后按下TAB
它大约需要 10 秒钟,它会显示我可以选择的可能主机。
问题是每次尝试完成主机时,完成 for_ssh
会逐行读取整个配置文件以查找指令。Host
一种解决方案是覆盖相关函数 ( _ssh_hosts
) 以更快地执行某些操作(例如在内存中缓存主机名以供后续完成)。
另一种方法是通过将实际配置移动到单独的文件中来使您的配置文件更小,而您的配置文件只剩下Host
/Include
对的列表。例如,转
Host foo
User bob
IdentityFile ~/.ssh/bob_ident
Host bar
User alice
IdentityFile ~/.ssh/alice_ident
进入
Host foo
Include foo_config
Host bar
Include bar_config
在哪里~/.ssh/foo_config
并且~/.ssh/bar_config
将包含每个主机的相关详细信息。
据推测,Host
指令只占 7000+l 行的一小部分,所以这应该会_ssh_host
大大加快速度。