未来最牛编辑器 zed 的 Linux 版终于出来了

69 天前
 june4

https://zed.dev/

Atom 原班人马用 Rust 写的原生全平台编辑器,编辑体验上秒掉网页技术的 vscode 不成问题吧😄

7863 次点击
所在节点    编辑器
91 条回复
liuw666
69 天前
powerman
69 天前
@ChrisFreeMan #5 随便浏览了一下,没有详细的文档,demo 寥寥无几,关键是 UI 框架这东西,没有生态,真的没啥意义
fpure
69 天前
得益于 vscode 架构,你甚至可以在浏览器上获得和本地一致的开发体验,zed 做得到吗
wxf666
69 天前
1. 用过第三方维护的 Windows 上的 Zed ,

界面体验感觉很平庸,连平滑滚动都没有。。

连 Flutter 应用都比不上。。不知是第三方移植问题还是啥。。



2. 官方维护的 Zed ,界面性能/流畅度,能和 Edge Legacy 掰一掰吗?

感觉 Windows 的 Edge Legacy 浏览器,界面体验最好,平滑滚动最为流畅、跟手。

新版 Edge 、Chrome ,总感觉会慢几帧,时不时卡一两帧,平滑滚动也很平庸。。



lisongeee
69 天前
在 zed 仓库 https://github.com/zed-industries/zed 界面按下 . 可以用在线 vscode 打开此项目

zed 能做到这个吗?
coolfan
69 天前
🤣不到 100ms 的差距真的感受得出来吗,没想到编辑器也可以把性能作为高优先级
Mexion
69 天前
至少现在还是一坨屎,非要来踩一下 VSCode
coolfan
69 天前
@coolfan 官网的 UI 框架展示这么诱人👍
profchaos
69 天前
就光 c#, python 他肯定就比不上 vsc, 因为这两个 lsp 嘛, kotlin 有什么好用的 lsp 吗? swift 呢? 任何有好用的 lsp 的语言, 为啥不直接 neovim 呢
retrocode
69 天前
u1s1 不如 sublime
ns09005264
69 天前
真好啊,可惜我已经喜欢上 helix 的操作逻辑了。
Yadomin
69 天前
@Yadomin 试了一下写 Go ,速度还可以,但是只能运行不能调试,还是只能当一个编辑器用啊
guanzhangzhang
69 天前
除了是 rust 写的目前招来一些 rust 开发者的追捧,生态插件方面猴年马月才能追得上 vscode🤔,盲目尬吹只会招黑
kneo
69 天前
吹未来的都是骗子。要不就是韭菜。
kuanat
69 天前
虽然“未来最牛”这个说法值得商榷,Zed 作为一个编辑器还是有很多亮点的。目前来说想挑战 VS Code 的生态地位不太可能,但作为一个有潜力的(部分)替代说句未来可期不过分。至少从执行力上(当初说要做就真做了),还有第一个算是 public beta 的成品质量都是很靠谱的。

晚一点我写一下 Zed 相对比较优秀的特性,然后和 VS Code 做个简单的对比。

另外 Linux 用户应该不用担心中文输入的问题,目前只有 sway 存在不显示候选词的 bug ,其他支持 text_input_v3 的主流桌面都正常。sway 主要是维护上游 wlroots 所以发版慢,实际上自身早就支持了。
hez2010
69 天前
不出意外 IME 集成出意外了。
像这种新 GUI 框架不打磨个三四年不可能做好输入法 preedit 和文本排版支持的,更别提复杂的 Text Input 场景下的 LTR 和 RTL Unicode 混排。然而这些都是作为编辑器的基本。
kuanat
69 天前
我这里简单就 Zed 官网宣传的一些特性简单做个总结,同时与 VS Code 对应的部分做个对比。


1. 输入延迟

Zed 在性能方面有个对比,强调的是 Insertion latency ,58ms 相对 VS Code 97ms 算是非常优秀了。这个测试反映的是输入状态下按下按键,到字符出现在屏幕上的时间,如果你玩游戏的话,很容易理解这个就是所谓的输入延迟。

你可能觉得 40ms 影响不大,但这个特性属于有对比才有伤害、或者说像高刷屏用了就回不去那种。不仅仅是在文本编辑器领域,像终端( vte )领域一样对于输入延迟有追求,所以你会看到像 kitty/alacritty 这样通过 GPU 加速绘制的终端模拟器。再比如很多人会觉得 oh-my-zsh 之类的框架会拖慢 shell 的启动,考虑换成 fish 之类作为替代。

2. 渲染模式

也许你会认为 Zed 渲染快延迟小是得益于原生应用相对于 electron 的优势,是有这方面的原因,但是不够全面。同样是输入延迟部分,Sublime Text 4 大概是 75ms ,可以粗略的认为,Sublime 相对 VS Code 的优势来源于原生,但 Zed 相对于 Sublime 的优势有一部分是来自于渲染模式。

包括各种终端模拟器在内的应用,所谓的 GPU 加速更多的是使用 immediate 模式,相对于 retained 模式。前者就是把应用当作 3D 游戏,自己负责渲染每一帧。后者就是一般意义上的原生应用,使用系统控件,只有在状态发生变化时才通知系统,由系统负责渲染。

Zed 使用的是 Vulkan 后端,其 UI 界面就是基于 immediate 模式自渲染的。(技术上说,应用 GPU 加速通常更快,但不总是更快,这一点放到后面说)

3. 语法分析

如果增加一个 Deletion latency 的测试,我相信 Zed 会胜出更多的。原因是无论插入还是删除,后台都要做语法分析,从而提供高亮、补全等等功能。删除相比插入更能反应语法分析器的性能,特别是跨多行或者代码存在语法错误的时候。

Zed 的开发团队的前身就是做 Atom 的团队,而 Atom 当年之所以有底气做编辑器,是因为他们写了 Tree-sitter 这个通用的 parser 生成器。现在 Tree-sitter 是事实上最通用、也是效率最高的语法解析器的“生成器”。不是 parser 而是 parser 的生成器,这一点尤为重要。

在 Tree-sitter 之前,通用的语法解析主要是 TextMate 的,后续包括 VS Code 在内也都沿用了下来。连 VS Code 的开发都说,用 TextMate 这套的原因就是不用为每一门语言都写规则,然后他们也发现很多语言的规则都多年没人维护了。当初 TextMate 设计这个功能的时候想的是,尽可能在不用写 parser 的情况下完成 parser 的主要功能,所以实现方式是正则匹配。放到二十年后的今天来看,这个做法就跟不上时代了。

一方面现在的性能和软件实践来说,写 parser 和实时处理都相对简化了,既然都能完整实现和运行 parser 了,那就没必要用弱化版的了。另一方面,基于正则的弱 parser 实现只能处理一行,也不能支持像是“增量”处理,或者在代码被修改乱了,存在语法错误的时候还能正确输出尽可能有用的信息。

我个人认为,Tree-sitter 在这方面对于写代码的改善是非常明显的,不仅速度快结果还准确,特别是错误状态下依然有用这点十分好用。想要尝试的话可以用 neovim 或者其他基于 Tree-sitter 的编辑器感受一下。

4. 协同

现在没有什么编辑器能做到像 VS Code 的 Remote 功能一样彻底颠覆开发的工作流。即便 JetBrains 这样也算财大气粗的专业开发,照着现有的方案模仿都做得一塌糊涂。所以也不要对 Zed 有什么不切实际的期待。

Zed 目前能做到的是还是本机做 host ,然后可以编辑 remote 的文件而已,对用户隐藏了拉取和推送文件的细节。

所以 Zed 就专注做了协同功能,在本地编辑器上实现了多人实时编辑同一文档的在线编辑器体验。这个功能基于 CRDT 思路,有兴趣可以去看看。



关于“GPU 渲染为什么不会总是更快”这个说法的解释:

一般来说,GPU 渲染会更快一点,但就文本编辑器(或者终端 vte )这个场景来说,GPU 渲染不一定比 CPU 更快。这是因为 GPU 更快是建立在全渲染的前提之上的,而文本编辑这个场景很多时间并不需要全渲染。

比如输入的时候,发生变化的一般只有当前行。浏览代码的时候,代码内容不变只是显示位置变了。这样的场景里,使用 damage tracking 类算法,就是类似 vnc/xdp 那种检测改变部分的算法,可以极大降低渲染的工作量。以游戏渲染的思路来看,无非就是 framebuffer 的手动控制更新。

所以我个人并不喜欢使用 GPU 渲染的文本编辑器或者终端模拟器。当然,如果它像浏览器那样,将字体渲染过程中的处理交由 GPU 完成,我还是很支持的。
0o0O0o0O0o
69 天前
zed 最近火了好几次,正面负面都有。所以对于想尝试 zed 但又比较在意安全的人,仅作提醒:

https://github.com/zed-industries/zed/issues/7054#issuecomment-1916315391

https://github.com/zed-industries/zed/pull/14034
ophunter
69 天前
zed 我用过,差远了。话说一个失败的 Atom 作者拿出来吸引人?
fpk5
69 天前
VSCode 的 remote development 对我来说是杀手应用,看了一下 zed 似乎还不支持。或者说有什么别的编辑器支持吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1056672

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX