zsh - 使用 zsh 处理大型 /.ssh/config 文件的自动完成速度很慢
问题描述
我目前有一个 /.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
大大加快速度。
推荐阅读
- python - Python 多元线性回归无法绘图
- node.js - Materialze CSS 模态未显示在 node.js 中
- r - 在 Shiny 反应式表达式中访问环境哈希时出错。错误消息:获取错误:第一个参数无效
- javascript - 将数组从控制器传递到 Ajax
- function - 致命错误:未捕获的错误:在 null 上调用成员函数 get()
- ruby-on-rails - has_many的Rails嵌套形式:通过关联
- bash - Bash 脚本管道屏障
- bash - 尝试在我的本地计算机上为 Google Cloud Platform 运行工作流模板时出现正则表达式错误
- tensorflow - Tensorflow 低 GPU 利用率和高内存使用
- java - Spring Boot 单元测试不会运行。NullInsteadOfMockException