对于拥有大型代码库的人来说,在笔记本电脑上编程可能会让人不堪重负。风扇不停旋转,语言服务器内存持续不足,重建耗时漫长……
现在,在 Zed 中,您可以在任何可以通过 SSH 访问的机器上打开项目。UI 完全在本地运行,为您提供每秒 120 帧的完美配置图形,而所有内部组件:语言服务器、任务和终端都在远程服务器上运行,在那里它们可以利用云硬件。
一次性项目使用简单
zed ssh://my-host/~/code/zed
您可以根据需要配置长期连接

欲了解更多信息,请参阅文档。
构建远程开发
我们一直在开发远程开发功能。虽然 Zed 旨在实现远程代码编辑,但改变基础设施以支持 SSH 需要解决一系列子问题,从 SSH 连接维护到我们如何构建远程服务器,再到将该功能集成到 Zed 中的所有其他功能中。
对于 SSH 连接,我们使用 ControlMaster 设置来维护与每个主机的单个连接。这意味着您可以打开新的终端并生成任务,而无需重新输入密码或重新进行身份验证。连接后,我们将下载适用于您的操作系统和架构的远程服务器。与我们正常的 Linux 构建不同,远程服务器可以使用 musl 进行编译,这不需要动态链接。这使得它可以在旧的发行版(之前我们遇到了与 glibc 的兼容性问题)和像 Nix 这样没有全局库集进行动态链接的现代 share-nothing 发行版上运行。一旦我们建立了连接并安装了远程服务器,我们将其初始化为守护进程,这样当连接断开时,远程服务器会继续运行,并且在重新连接时您的语言服务器仍然完全初始化。我们还在本地备份任何未保存的更改,这样您就不会丢失工作。
最后一个难题是使 SSH 项目与协作配合。这对我们的协作同步协议来说是一个真正的压力测试,因为现在通过 SSH 进行两人协作可能涉及至少四个不同的节点。我们不得不重写我们的 Project,并将其拆分为逻辑块,这些逻辑块可以根据您的客户端是协作主机、SSH 主机还是协作访客,在远程和本地模式下启用。我们还有一些新的、有趣的测试,它们实例化了这些角色以及我们的协作服务器,并确保同步正确完成。如果您与朋友或同事在一个项目上工作,无论项目是在您的笔记本电脑上,还是在您可以通过 SSH 访问的机器上,对他们来说都应该是完全透明的。
请立即尝试,一如既往,请在 GitHub Issues 或 Discord 中给我们留下反馈。