基于Rust的Zed编辑器已开源,内置对OpenAI和GitHub Copilot的支持

作者丨Tim Anderson

编译丨诺亚

出品 | 51CTO技术栈(微信号:blog51cto)

Zed 编辑器项目目前仍处于预发布阶段,已在 AGPL、GPL 和 Apache 许可下开源。该编辑器以高性能和多种AI辅助选择为特色,但目前仅适用于Mac平台使用。

内森·索博(Nathan Sobo)在一篇帖子中解释道,Zed项目在GitHub上的代码库中,编辑器部分采用了GPL许可,服务器端组件则使用了AGPL许可证,而GPUI(GPU加速用户界面)部分则采用了Apache 2.0许可。GPUI是Zed团队开发的一款Rust UI框架。这样的许可证选择能够确保代码的开放性和可访问性,使得Zed能够在开源社区中广泛使用和贡献。

索博之前曾经创造了Atom编辑器和Electron框架。Electron框架被全球最受欢迎的编辑器和轻量级IDE——VS Code所采用。Electron使用Chromium浏览器组件和V8 JavaScript引擎构建,而Zed则有着截然不同的代码基础,它是用Rust编写并编译成原生代码。

与拥有超过55,000个扩展插件的VS Code不同,Zed目前仅具备初步的插件模型,并未形成完整的扩展生态系统;其FAQ中指出,“在Zed开源之前我们不会添加插件系统,但一旦完成开源,我们将致力于扩展性功能的开发。”这表明未来不久将会在这方面有更多的工作进行。

得益于Rust的高性能以及缺乏插件,Zed运行速度极快,针对开发者对VS Code的最大痛点——性能问题提供了解决方案。

有开发者评论Zed新闻时表示:“VSCode对我来说总是感觉极其缓慢……VSCode在基本代码检查和语法检测方面的滞后让我感到极度烦恼,最终不得不放弃使用它。”

另一位开发者则说:“对于那些还没试过Zed的人来说,这是我25年开发生涯中首次使用的不让人分心的GUI编辑器。很难描述当我摆脱其他编辑器中的各种图标、菜单、颜色等像圣诞树般的场景时,我的专注度提高了多少。”

尽管Zed所提供的AI辅助功能在体验上尚显粗糙,但对于偏好最大程度控制的开发者而言可能会感到满意。Zed同时支持GitHub Copilot和OpenAI。

关于Copilot的集成,Zed团队成员Mikayla Maki表示:“平衡其视觉和心理负担至关重要,因为过于积极的Copilot可能适得其反,与现有如LSP自动补全等功能产生冲突。因此,我们引入了按语言禁用Copilot的设置,增加了75毫秒的文本建议延迟,并在出现冲突时优先考虑语言本身的LSP(语言服务器协议)而非Copilot。”    

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

基于Rust的Zed编辑器已开源,内置对OpenAI和GitHub Copilot的支持图片

Zed编辑器的OpenAI助手面板是一个高度可配置的独特功能。开发者可以选择模型类型,并且在任何时候,甚至在与AI对话过程中都可以更改模型。使用这一功能需要拥有OpenAI账号,并在Zed中配置API密钥。这些密钥是按照使用的令牌数量计费的,而Zed会始终显示选定模型剩余的令牌数。

与OpenAI大型语言模型的交互通过CMD-Enter提交,而不是仅用Enter键,这样做的目的是使其“尽可能接近常规编辑器的感觉,因此按下Enter键只会插入新的一行”。这也意味着用户很难意外消耗令牌。响应内容会实时返回,如果看起来没有帮助,可以通过按下Escape键取消请求。

此外,Zed还具备内联助手功能,能够查看周围代码的上下文信息。Zed团队的另一位成员Marshall Bowers曾发布过关于利用AI进行内联文档编写以及将代码从一个模板系统翻译到另一个模板系统的案例,例如执行类似“使用auk的DSL方式重写这段HTML,就像上面的post_link函数那样”的命令。他表示,在处理大部分模板代码时,最终都采用了AI协助完成。

根据路线图规划,未来Zed将支持无需OpenAI密钥的AI辅助功能,同时提供终端中的内联智能辅助、简化后的助手界面,以及让AI能够“在内联状态下访问缓冲区、文件、LSP、终端提示符等内容”。

除了缺乏扩展插件之外,Zed还有一些其他问题。目前,对于Rust、TypeScript和Python等语言的支持较好,许多其他语言部分支持,但也有一些语言,比如如Microsoft的C#,尚未得到任何支持,尽管功能描述中提到:“正在积极开发使Zed连接任意语言服务器的能力”。

另一个问题是Zed当前仅限Mac平台使用。针对此问题有一个GitHub议题指出,计划增加对其他平台的支持。路线图中包含了Linux和Web端支持(Web端可能采用Rust可以编译为目标的WebAssembly技术),但在撰写本文时并未提及Windows平台,这暗示Windows版本的开发可能需要更多时间,或者用户需通过Windows Subsystem for Linux(WSL)来间接使用。

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

以上就是基于Rust的Zed编辑器已开源,内置对OpenAI和GitHub Copilot的支持的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/799765.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
linux shell有哪些类型
上一篇 2025年11月26日 17:25:48
iPhone 17 Pro国行版没有京东方屏:苹果将订单分配给三星
下一篇 2025年11月26日 17:26:19

相关推荐

  • PHP动态生成表单输入与POST数据获取实践指南

    本教程详细阐述了如何在php中根据动态数据源(如数据库值)生成多个表单输入框,并演示了如何通过post方法准确无误地获取这些动态生成的输入值。文章强调了正确的输入框命名策略,避免了常见的命名误区,并提供了完整的代码示例,确保开发者能够高效处理动态表单数据。 动态生成表单输入 在Web开发中,我们经常…

    2026年5月10日
    000
  • Tensorflow 音乐预测

    在本文中,我展示了如何使用张量流来预测音乐风格。在我的示例中,我比较了电子音乐和古典音乐。 你可以在我的github上找到代码:https://github.com/victordalet/sound_to_partition i – 数据集 第一步,您需要创建一个数据集文件夹,并在里面…

    2026年5月10日
    000
  • 实时音频转音素实现2D角色唇语同步教程

    本文详细介绍了如何将实时麦克风音频转换为音素,以实现2D角色唇语同步。核心方法是分两步走:首先利用语音转文本(STT)服务(如Python SpeechRecognition库)将实时音频转换为单词,然后使用CMU Dict库将这些单词映射为对应的音素。文章还将探讨如何进一步将CMU音素转换为国际音…

    2026年5月10日
    000
  • ChromaDB向量嵌入的有效持久化策略

    本文详细介绍了如何利用langchain中chromadb的`persist_directory`功能,高效地持久化存储向量嵌入。通过将生成的嵌入数据保存到本地磁盘,可以有效避免重复计算,显著提升工作流程效率。教程将涵盖持久化chromadb实例的创建与后续加载的完整过程。 在处理大规模文本数据并生…

    2026年5月10日
    000
  • Angular:优化表格数据结构与动态渲染,实现API驱动的正确选项图标显示

    本教程旨在解决Angular应用中根据API响应在HTML表格中动态显示正确选项图标的问题。通过引入优化的数据模型,结合Angular的*ngFor指令进行数据迭代渲染,以及*ngIf指令进行条件性图标显示,实现了一种可扩展、易维护的解决方案。文章详细阐述了数据模型的构建、组件逻辑的实现以及模板层面…

    2026年5月10日
    000
  • 使用HTML数组和隐藏域在PHP同一页面实现无限次提交不覆盖

    本文将详细介绍如何在PHP同一页面实现多次数据提交而不覆盖之前提交的内容。通过利用HTML表单的数组命名机制(`name=”field[]”`)和隐藏域,我们可以在每次提交时累积并显示所有历史数据,有效解决重复提交覆盖的问题,确保数据的持久性。 在Web开发中,我们经常需要处…

    2026年5月10日
    000
  • 如何在HTML表格中合并单元格?rowspan和colspan怎么用?

    如何在HTML表格中合并单元格?rowspan和colspan怎么用?如何在HTML表格中合并单元格?rowspan和colspan怎么用?如何在HTML表格中合并单元格?rowspan和colspan怎么用?如何在HTML表格中合并单元格?rowspan和colspan怎么用?

    使用rowspan和colspan合并html表格单元格时,常见错误包括span值与实际覆盖单元格数量不匹配、后续行未减少被合并单元格对应的td、嵌套表格增加复杂性、影响可访问性和响应式设计。1.确保span值与实际覆盖单元格数量一致;2.使用rowspan时删除后续行中被占用的td;3.避免过度嵌…

    2026年5月10日 用户投稿
    000
  • PHP格式化数据库查询结果的技巧有哪些_PHP格式化数据库查询结果的实用方法分享

    使用print_r、json_encode、自定义表格、var_dump封装及错误控制符可有效格式化PHP数据库查询结果,提升调试效率与可读性。 当您从数据库中获取查询结果时,原始数据往往不够直观或难以阅读。为了提高调试效率和开发体验,对查询结果进行格式化是必要的。以下是几种实用的PHP技巧来格式化…

    2026年5月10日
    100
  • PHP对象数组遍历与动态内容生成教程

    本教程旨在解决php中遍历对象数组时,如何正确访问每个对象的动态属性,并利用循环索引生成html元素(如轮播图指示器)的问题。我们将探讨使用`foreach`循环直接访问对象属性和索引,以及创建新数组并为每个对象注入索引值两种方法,并提供最佳实践建议,以确保代码的健壮性和安全性。 动态内容生成与PH…

    2026年5月10日
    000
  • typescript用来干嘛_typescript的作用

    TypeScript 是一种用于构建大型复杂应用程序的开源编程语言,它扩展了 JavaScript 的功能,具有以下作用:类型系统:编译时检查类型错误,提高代码可靠性。面向对象编程特性:支持类、接口、抽象类,增强代码组织性和维护性。模块系统:分解程序为可重用模块,提升可维护性和可扩展性。全面的类型推…

    2026年5月10日
    000
  • PHP代码如何生成动态网页内容_PHP动态内容生成与模板渲染技巧

    答案是PHP生成动态网页的核心在于数据与视图分离,通过变量替换、条件判断和循环输出内容,使用include引入模板文件并配合htmlspecialchars和PDO预处理确保安全,结构清晰且易于维护。 PHP 生成动态网页内容的核心在于将程序逻辑与页面展示分离,通过变量替换、条件判断和数据循环来实现…

    2026年5月10日
    000
  • php怎么用input_PHP表单input数据获取与处理方法

    使用$_POST、$_GET、filter_input等方法可安全获取表单数据,结合验证与过滤确保输入有效且防攻击。 如果您在使用PHP开发网页表单功能时,需要获取用户通过input输入的数据,可以通过预定义的超全局变量来实现数据的接收与处理。以下是几种常见的获取和处理表单input数据的方法: 一…

    2026年5月10日
    000
  • 怎么用php搜索_PHP站内搜索功能实现与优化方法教程

    1、通过PHP%ignore_a_1%关键词并用LIKE模糊查询实现基础搜索;2、使用预处理语句防止SQL注入,提升安全性;3、拆分关键词并多字段匹配以提高准确性;4、添加FULLTEXT全文索引优化大数量下的查询性能;5、利用Redis等缓存常见结果减少数据库压力。 如果您希望在自己的网站中实现搜…

    2026年5月10日
    100
  • PHP表单提交后页面重定向与状态管理:利用$_SESSION实现内容动态显示

    本文探讨了php表单提交后通过`header(“location: …”)`重定向导致`$_post`数据丢失的问题。我们将学习如何利用`$_session`在不同页面间安全地传递表单提交状态和相关数据,从而在重定向后的目标页面(如`index.php`)动态显示…

    2026年5月10日
    000
  • PHP如何与HTML混合使用_服务端渲染技术详解【方案】

    PHP与HTML混合使用是服务端渲染基础,核心为PHP在服务器执行后输出纯HTML;主要方案有直接嵌入式混合(用标签内联动态内容)和分离逻辑与视图(require/include模板文件)。 PHP 与 HTML 混合使用是服务端渲染的基础实践,其核心在于 PHP 脚本在服务器上执行完毕后,将生成的…

    2026年5月10日
    000
  • HTML表单数据到PHP的动态表格数据传输教程

    本教程旨在解决HTML动态表格数据无法直接通过POST方法提交到PHP的问题。核心在于理解HTML表单元素与name属性的重要性。我们将演示如何通过在表单中嵌入带有结构化name属性的输入字段,将动态生成的表格内容有效传递给PHP脚本进行处理,无需依赖复杂的数据库或AJAX技术。 1. 理解HTML…

    2026年5月10日
    000
  • 怎样在表格中合并多个单元格?COLSPAN和ROWSPAN属性详解。

    使用COLSPAN和ROWSPAN可合并单元格;COLSPAN横向合并,如标题跨三列显示“学生成绩汇总”;ROWSPAN纵向合并,如“张三”跨两行关联多科目成绩;二者结合需注意布局规划,避免错位,合理设计表格结构。 在HTML表格中,想要将多个单元格合并成一个大单元格,需要用到 COLSPAN 和 …

    2026年5月10日
    200
  • typescript学习基础

    TypeScript 是一种由 Microsoft 开发的编程语言,它扩展了 JavaScript,添加了类型系统和面向对象的特性。它有助于防止错误,提高代码维护性和开发效率。基本概念包括数据类型、类型注释和面向对象。建议的学习步骤为:理解基本概念、编写程序、熟悉库和工具、阅读代码库和文档。 Typ…

    2026年5月10日
    000
  • 什么是Worldcoin (WLD)?是AI革命还是隐私噩梦?WLD未来前景深度剖析

    Worldcoin的核心是通过Orb虹膜扫描实现人格证明,构建全球身份与金融网络。用户验证后获World ID并领取WLD代币,旨在推动Web3发展及未来全民基本收入。其机遇在于可能成为数字身份标准,但面临虹膜数据隐私、中心化控制、监管限制和伦理争议等挑战,发展前景取决于技术与伦理的平衡。 Worl…

    2026年5月10日
    000
  • PHP格式化表单输入数据的技巧_PHP格式化表单输入数据的实用技巧

    首先去除空白并统一大小写,再过滤特殊字符,接着验证邮箱格式,最后标准化电话号码。具体为:使用trim()和preg_replace()清理空格,strtolower()或ucwords()统一大小写,htmlspecialchars()和strip_tags()防止XSS,filter_var()验…

    2026年5月10日
    000

发表回复

登录后才能评论
关注微信