写点什么

向微软“复仇”!支持 OpenAI、Copilot 的 Zed 编辑器要干掉 VS Code:Rust+ 少插件,速度贼快

  • 2024-01-26
    北京
  • 本文字数:2856 字

    阅读完需:约 9 分钟

大小:1.34M时长:07:47
向微软“复仇”!支持OpenAI、Copilot 的Zed编辑器要干掉VS Code:Rust+少插件,速度贼快

Zed 是一款支持多人协作的代码编辑器,底层采用 Rust,且默认支持 Rust,还自带了 rust-analyzer,主打“高性能”。1 月 24 日,备受关注的 Zed 项目宣布正式开源。


Zed 代码库将采用 Copyleft 许可证,其中编辑器部分使用 GNU General Public License (GPL),服务器端组件则采用 Affero General Public License (AGPL)。此外,GPUI UI 框架将以 Apache 2 许可证分发,允许开发者构建高性能桌面应用程序,并自由选择许可证分发其应用。此次开源转变意味着 Zed 的代码和相关组件将面向所有开发者开放,赋予社区更大的灵活性和合作空间。



最近在 GitHub 上发表的一篇帖子中,Zed 的编辑器创始人 Nathan Sobo 详细介绍了 Zed 编辑器的多个关键组件以及它们各自的开源许可证。Zed 的编辑器本体采用了 GPL 许可证,体现了对开源精神和自由共享的强调。而其服务器端组件则采用了 AGPL 许可证,为网络部署的应用程序设置了更严格的共享要求。


此外,Zed 团队还开发了一个 GPU 加速的 UI 框架——GPUI,它遵循 Apache 2 许可证,旨在超越基于 Web 的 Electron 框架的限制,利用 GPU 加速来提供更流畅和响应更快的用户界面。


谈到 Nathan Sobo ,他不仅仅是 Zed 的创始人,还是 Electron 框架和广受欢迎的 Atom 编辑器的开发者。Electron 是一基于 Chromium 浏览器组件和 V8 JavaScript 引擎的框架,现已成为全球领先的轻量级 IDE 和编辑器——Visual Studio Code (VS Code) 的一部分。


然而,Zed 在技术实现上走了一条与 Electron 完全不同的路线。Zed 是用 Rust 语言构建的,直接编译为本机代码,这种方法与基于 Web 技术的 Electron 形成了鲜明对比。


有趣的是,Atom 编辑器曾被微软收购并最终被淘汰以支持 VS Code, Zed 的出现似乎带有一种“复仇”之意。

Zed 编辑器:Rust+ 少插件,速度极快


在功能和性能方面,Zed 与市场上的主流产品 VS Code 形成了鲜明对比。尽管 VS Code 以其超过 55,000 个插件选项而著称,但 Zed 尚在开发其插件模型,还未形成自己的完整生态系统。Zed 项目 FAQ 中提到,在开源之前,他们不会添加插件系统,但一旦开源,将致力于增强其可扩展性。


Zed 的一个显著优势是其卓越的性能,这在很大程度上得益于 Rust 的高效特性以及目前较少的插件数量。这种设计策略使 Zed 拥有极快的运行速度,直接针对了 VS Code 用户群体中最关心的性能痛点。


一位开发人员在 Zed 帖子下评论道,“VS Code 的运行速度向来极其缓慢……而经历过烦人的基本代码检查和 linting 代码分析之后,我干脆弃坑了。”


另一位用户也表示,“各位还没体验过 Zed 的朋友,我可以向大家保证,这是我 25 年开发生涯中用过的唯一一款不会让人分心的 GUI 编辑器。以往的工具总是用图标、菜单、色彩等花里胡哨的元素扰人心神,而现在我的注意力可谓空前集中,这正是 Zed 的优势所在。”


Zed 的 AI 辅助方法虽然比较粗糙,但反而迎合了那些想要强调自身控制权的开发用户。Zed 支持 GitHub Copilot 与 OpenAI。


关于 Copilot,Zed 开发团队成员 Mikayla Maki 表示,“在视觉效果和心智负担间求取平衡至关重要,过于急切地扩大 Copilot 功能反而会得不偿失,甚至与 LSP(语言服务协议)自动补全等原有功能发生冲突。为此我们引入了针对各种语言禁用 Copilot 的设置,还在建议代码片段前添加了 75 毫秒的防误操作机制。而一旦出现冲突,Zed 会优先选择语言的真实 LSP,而非 Copilot 建议。”


Zed OpenAI 助手面板(图片来自 Zed 说明文档)


作为独立功能,Zed 的 OpenAI 助手面板拥有极高的可配置空间。


开发人员可以选择模型类型并随时变更,甚至在 AI 会话期间也能灵活切换。当然,大家需要先拥有一个 OpenAI 账户,并在 Zed 中配置 API 密钥。这些密钥将按使用的 token 量计费,而 Zed 将始终显示所选模型的剩余 token 数量。


与 OpenAI 大语言模型间的交互会通过 CMD-Enter(而不止是输入)来提交,旨在让使用感受“尽可能接近传统编辑器,即按下回车键只会插入换行符”。这样就避免了意外消耗 token 的情况。对于传回的响应结果,如果开发者觉得没什么帮助,也可以用 ESC 键快速取消。

Zed 还提供内联助手功能,可帮助查看当前代码的上下文。Zed 团队成员 Marshall Bowers 发布了关于如何用 AI 进行内联文档,以及在不同模板系统间翻译代码的文章。其中提到 “使用 post_link 等函数 auk DSL 重写此 HTML”之类的命令。他还提到,AI 可用于协助补全大部分模板代码。


Zed 开源的背后动机


Nathan Sobo 在谈及将 Zed 开源的决策时指出,主要目的是为了打造一款卓越的产品。他们的愿景是创造世界上最先进的代码编辑器,并且让广泛的开发者社区参与其使用和改进。由于 Zed 的目标用户群体主要是程序员,开源能够吸引更多的人才加入其开发。此外,开源的过程本身更有趣,有助于与用户建立更深层次的联系。Sobo 表示,他们不仅为 Zed 的成果感到自豪,而且也珍视在创建过程中的经历,并希望与社区分享这一过程,从中学习并不断完善 Zed。


Sobo 进一步强调,他们坚信,要构建并维护世界级的编辑器,最佳方式是将其与一个可持续的商业模式结合。为了支持一个全职团队持续领导 Zed 的开发,他们认为开源并不与商业成功相冲突。相对于出售专有编辑器,他们更愿意提供与用户编辑器无缝集成的服务,从而提高用户和团队的生产力。例如,Zed Channels 就是一种这样的服务,它目前对所有人免费,但计划在一段试验性测试期后对私人使用开始收费。他们还看到了通过提供服务器端计算支持 AI 功能作为另一种变现方式。


Sobo 明确表示,他们决定开源迄今为止编写的所有代码。然而,未来他们可能会针对商业和企业用例提供专有产品,尽管这些专有代码只会占他们开源代码的一小部分。他们还承诺,创造收入的需求永远不会干扰用户编写软件的需求,比如他们承诺永远不会在 Zed 中展示横幅广告,且如果这种情况发生,用户总是可以选择从源代码构建自己的 Zed 版本。


Zed 未来:无缝 AI 集成与跨平台支持



根据项目路线图,Zed 未来将支持无 OpenAI 密钥 AI 功能,在终端中实现 AI 内联辅助、简化辅助界面,并允许 AI 访问“缓冲区、文件、LSP、终端提示符”等功能。


除了扩展不足之外,Zed 还存在其他一些问题。首先是能够支持的编程语言有限。目前支持效果最好的是 Rust、TypeScript 和 Python,其他部分语言也能支持,但微软 C# 等语言则完全无法支持。此外项目描述还提到,“目前正积极开发将 Zed 与任意语言服务对接的功能”。


最后一个问题,就是当前 Zed 还只提供 mac 版。在 GitHub 上的回应中,开发团队表示未来将支持其他平台。路线图中提到了对 Linux 和 Web 的支持计划(Web 版可能通过 WebAssembly 实现,这也符合 Rust 的语言特性)。但截至本文撰稿时,项目组还从未提及 Windows 版本。也就是说除非通过 Windows Subsystem for Linux,否则 Windows 平台的用户恐怕还要再等上一段时间。


参考链接:

https://devclass.com/2024/01/25/rust-based-zed-editor-now-open-source-with-built-in-support-for-openai-and-github-copilot/

https://zed.dev/roadmap

https://zed.dev/blog/zed-is-now-open-source

2024-01-26 15:488431

评论 1 条评论

发布
用户头像
期待🏷️
2024-01-29 14:20 · 湖南
回复
没有更多了

《自动机理论、语言和计算导论》阅读笔记:p5-p27

codists

架构实战营-模块一-作业

小畅

报错:Cannot read properties of undefined (reading ‘$message‘)解决方法

百度搜索:蓝易云

JavaScript typescript Linux 运维 云服务器

一文了解Validator库

百度搜索:蓝易云

html Linux 运维 云服务器 validator

PB 级速度,单一数据库操作:走进 Amazon Aurora Limitless Database 的神奇

亚马逊云科技 (Amazon Web Services)

数据库

GaussDB(DWS) 业务高可靠的三大利器:CN RETRY、远程读、ELB

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 华为云GaussDB(DWS)

Cookie复用大揭秘:助你在数据处理中事半功倍!

测试人

软件测试

Prompt工程全攻略:15+Prompt框架一网打尽(BROKE、COAST、LangGPT)、学会提示词让大模型更高效

汀丶人工智能

人工智能 大模型 提示工程 提示词 Prompt工程

mac创意图片编辑器:Luminar Neo破解版下载

Rose

工具分享丨分析GreatSQL Binglog神器

GreatSQL

时习知亮相华为中国合作伙伴大会2024,助力伙伴能力快速提升

平平无奇爱好科技

阿里云ecs创建组、账号、并分配sudo权限

智慧源点

linux sudo

(小实验)理解编译原理:一个四则运算的解释器

Geek_ee6d52

高级数学及符号运算:Wolfram Mathematica 14.0中文破解版

Rose

数学软件 Wolfram Mathematica 14

最好用的万年历软件:万年历 for Mac

Rose

万年历 公历农历转换 天气预报

功能强大的虚拟定位软件:AnyGo for Mac

Rose

虚拟定位 AnyGo 中文破解

从静态到动态化,Python数据可视化中的Matplotlib和Seaborn

华为云开发者联盟

Python 开发 数据可视化 华为云 华为云开发者联盟

如何在Linux中设置SSH无密码登录

百度搜索:蓝易云

云计算 Linux 运维 SSH 云服务器

对线面试官 - 如何理解MySQL的索引覆盖和索引下推

派大星

MySQL Java 面试题 #面试

【ubuntu】DNS设置工具resolvectl安装教程

百度搜索:蓝易云

Linux ubuntu 运维 云服务器 resolvectl

NTFS Disk by Omi NTFS:NTFS 磁盘管理器

Rose

NTFS Disk by Omi NTFS NTFS 磁盘管理器

面向中文大模型价值观的评估与对齐研究:“给AI的100瓶毒药”并解毒,守护AI纯净之心

汀丶人工智能

人工智能 大模型 大模型价值

NopReport为什么是一个非常独特的报表引擎?

canonical

低代码 报表 Nop平台 报表引擎

【Linux】DNS系统,ICMP协议,NAPT技术详解

百度搜索:蓝易云

云计算 Linux 运维 DNS 云服务器

向微软“复仇”!支持OpenAI、Copilot 的Zed编辑器要干掉VS Code:Rust+少插件,速度贼快_开源_核子可乐_InfoQ精选文章