V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
june4
V2EX  ›  编辑器

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

  •  
  •   june4 · 58 天前 · 7646 次点击
    这是一个创建于 58 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://zed.dev/

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

    91 条回复    2024-07-15 11:11:38 +08:00
    BeijingBaby
        1
    BeijingBaby  
       58 天前   ❤️ 8
    体验主要看生态吧
    ChrisFreeMan
        2
    ChrisFreeMan  
       58 天前
    对这个编辑器没啥兴趣,但是对它背后的 UI 框架很有兴趣,期待后续开源。
    chuck1in
        3
    chuck1in  
       58 天前
    这个不是对标 vscode 的吧。
    hedwi
        4
    hedwi  
       58 天前
    @ChrisFreeMan #2 这个已经开源了
    ChrisFreeMan
        5
    ChrisFreeMan  
       58 天前
    @hedwi 框架本身还没有整理出来开源吧,我没找到对应的仓库。
    pfffs
        6
    pfffs  
       58 天前
    相比于 vscode 的优势是啥
    june4
        7
    june4  
    OP
       58 天前
    @chuck1in @pfffs 对 vscode 是降维打击,html 的界面再优化也手感绵软不是原生代码 gpu 加速的对手,类似高刷和高分屏,没有对比就没有伤害,用了就不想回去的体验。
    而功能方面编辑器就那些东西,vsc 现在也只能做做屎上雕花不会无限臃肿下去。
    lysShub
        8
    lysShub  
       58 天前   ❤️ 3
    非得吹一个踩一个
    butanediol2d
        9
    butanediol2d  
       58 天前   ❤️ 1
    @june4 #7 说实话我觉得 VSCode 手感“绵软”是设计的问题,不是优化的问题。Zed 的 macOS 版我体验过,我觉得手感也挺“绵软”的。

    Disclaimer 我也不用 VSCode ,我电脑上一个 Electron 软件都没有。
    buf1024
        10
    buf1024  
       58 天前
    非得吹一个踩一个
    darksword21
        11
    darksword21  
       58 天前 via iPhone
    但是 vscode 有私货啊,例如 pylance ,zed 再原生现在还不是老老实实 pyright
    exiahan
        12
    exiahan  
       58 天前 via Android
    atom 当时是怎么 discontinued 的?[Doge]
    hash
        13
    hash  
       58 天前   ❤️ 1
    VSCode 厉害的是生态,不然连 sublime 都比不了
    otakustay
        14
    otakustay  
       58 天前
    什么时候生态能和 VSCode 齐平再说降维吧
    aloxaf
        15
    aloxaf  
       58 天前
    尬吹只会招黑
    C0dEr
        16
    C0dEr  
       58 天前
    折腾过 zed ,最终还是用回 vs code ,生态真的没法比
    infun
        17
    infun  
       58 天前
    zed 有数据库插件吗
    Yadomin
        18
    Yadomin  
       58 天前
    WSL 装了打不开
    knightdf
        19
    knightdf  
       58 天前
    mac 版已经用了很久了,不过只是用来当作 sublime 的平替
    powerman
        20
    powerman  
       58 天前   ❤️ 1
    @ChrisFreeMan #5 https://github.com/zed-industries/zed/tree/main/crates/gpui 刚才随手搜了一下,在这个 zed 仓库里面的子目录 并非独立的仓库
    liuw666
        21
    liuw666  
       58 天前 via iPhone   ❤️ 1
    powerman
        22
    powerman  
       58 天前
    @ChrisFreeMan #5 随便浏览了一下,没有详细的文档,demo 寥寥无几,关键是 UI 框架这东西,没有生态,真的没啥意义
    fpure
        23
    fpure  
       58 天前
    得益于 vscode 架构,你甚至可以在浏览器上获得和本地一致的开发体验,zed 做得到吗
    wxf666
        24
    wxf666  
       58 天前
    1. 用过第三方维护的 Windows 上的 Zed ,

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

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



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

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

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



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

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

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

    另外 Linux 用户应该不用担心中文输入的问题,目前只有 sway 存在不显示候选词的 bug ,其他支持 text_input_v3 的主流桌面都正常。sway 主要是维护上游 wlroots 所以发版慢,实际上自身早就支持了。
    hez2010
        36
    hez2010  
       58 天前   ❤️ 1
    不出意外 IME 集成出意外了。
    像这种新 GUI 框架不打磨个三四年不可能做好输入法 preedit 和文本排版支持的,更别提复杂的 Text Input 场景下的 LTR 和 RTL Unicode 混排。然而这些都是作为编辑器的基本。
    kuanat
        37
    kuanat  
       58 天前   ❤️ 15
    我这里简单就 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
        38
    0o0O0o0O0o  
       58 天前 via iPhone
    zed 最近火了好几次,正面负面都有。所以对于想尝试 zed 但又比较在意安全的人,仅作提醒:

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

    https://github.com/zed-industries/zed/pull/14034
    ophunter
        39
    ophunter  
       58 天前   ❤️ 4
    zed 我用过,差远了。话说一个失败的 Atom 作者拿出来吸引人?
    fpk5
        40
    fpk5  
       58 天前
    VSCode 的 remote development 对我来说是杀手应用,看了一下 zed 似乎还不支持。或者说有什么别的编辑器支持吗?
    Al0rid4l
        41
    Al0rid4l  
       58 天前   ❤️ 1
    可以喷 JS/Electron 各种问题, 但光是轻松写出丰富交互的 GUI 插件这一点, 目前来讲有且仅有 JS 生态能做到, 且必然带个浏览器, 其他什么 LuaJIT 写插件的, 写点 TUI 还成, 画个饼状图都费劲
    jianchang512
        42
    jianchang512  
       58 天前   ❤️ 2
    Windows 版那么不受重视吗,难道 mac 和 Linux 占到了开发的大半江山?
    tyzandhr
        43
    tyzandhr  
       57 天前 via Android
    用 rust 写是我不想用它的原因之一
    lucifer9
        44
    lucifer9  
       57 天前
    remote 支持还是测试版
    CHTuring
        45
    CHTuring  
       57 天前
    我前端用它写 React 项目挺好的,秒开秒输
    hangbale
        46
    hangbale  
       57 天前
    性能确实比 vscode 好,但是很多细节不完善,做主力编辑器还不行,LSP 的优化也有点问题,开发前端项目的时候,它起的 ts server 内存占用比 vscode 高多了,接近 1.5G ,要自己另行写配置才行
    shinession
        47
    shinession  
       57 天前
    现在更多的依靠 copilot 之类的生成, 打字的响应速度没那么重要吧? 除非是大神键盘飞舞
    Edward5937
        48
    Edward5937  
       57 天前
    目前没看到降维打击 VScode 的功能
    jheroy
        49
    jheroy  
       57 天前 via Android
    要单论编辑器功能到目前为止没有能打 vim/neovim 的,helix 算是一个候选,不过也是基于 vim 改版的现代版,我现在不管用啥开发 vim 插件是必须的。要论语言开发的高级功能,感觉没有哪个能打过 jetbrains 家的。
    luxor
        50
    luxor  
       57 天前
    code editor != editor
    Liam1997
        51
    Liam1997  
       57 天前
    目前是把他作为 sublime 替代版。插件生态方面远远不如 vscode
    november
        52
    november  
       57 天前
    能不能用 github copilot ,不能的话其他都是虚的。
    happyxhw101
        53
    happyxhw101  
       57 天前
    终于可以替换 gedit 了
    june4
        54
    june4  
    OP
       57 天前
    拿这个工作了半天,虽是还是初版但完成度很好了,对于我搞全栈前端已经足够用,原先我在 vsc 插件主要就是 eslint/prettier 这二个,其它都是可有可无的,zed 这货直接就集成了。
    打开软件直接就是秒开,和 gnome 的文本编辑器差不多速度,不过我对启动速度不太在意,毕竟频率低,不过有些人可能在意。
    各种操作果然手感又快又硬,和之前把玩过的同是 rust 原生的 lapce 类似。
    项目组审美在线,内置的主题也都很能打。字体渲染完美,不过白色主题的字体看上去没暗色好有点瘦。

    打算直接就切过去当主力了,除非后面发现问题。
    Bluecoda
        55
    Bluecoda  
       57 天前
    生态还很糟糕,插件系统还不够丰富
    wniming
        56
    wniming  
       57 天前   ❤️ 1
    刚才试了一下觉得做的真垃圾,我用 xfce 桌面,鼠标双击窗口的顶部标题栏从窗口模式切换到最大化模式,切完之后只要动鼠标就自动变成窗口模式,并且跟随鼠标移动,还从来还没见到过哪个 linux 下的 gui 软件能做的这么烂。
    b1u2g3
        57
    b1u2g3  
       57 天前
    未来最牛??还带 Atom flag !!
    哈哈,不会是“未来会死”吧~~
    wniming
        58
    wniming  
       57 天前
    想要禁用光标闪烁,还不能通过界面操作,必须得去编辑设置文件,而且我按照他们的官方文档设置还不生效,只能说这就是个垃圾的玩意。
    dwu8555
        59
    dwu8555  
       57 天前 via iPhone
    rust 基本上没做出来啥有用的程序,全靠吹
    rockxsj
        60
    rockxsj  
       57 天前
    学新闻学的
    shylockhg
        61
    shylockhg  
       57 天前
    @fpure wasm 应该能打
    logictan89
        62
    logictan89  
       57 天前
    动不动最牛、降维打击、秒杀,先出个 Windows 版本可好? Mac 和 Windows 我也都用过,除了果子家封闭的开发生态(出 iOS 包只能用 mac ),也没觉得 mac 开发有多便利啊?
    最近隔三岔五看见类似的贴子,莫不是买通稿了?
    augustheart
        63
    augustheart  
       57 天前
    虽然但是,作为被 vsc 按在地上摩擦的 atom 的开发者的作品,贷款年度危险性挺大的。
    satoru
        64
    satoru  
       57 天前
    工作效率低可能主要是人的问题,跟 ms 级的时延差别关系不大。
    ftsland
        65
    ftsland  
       57 天前
    windows 版都没出也敢吹最牛
    Rever4433
        66
    Rever4433  
       57 天前
    Mac 上用了,确实非常快,替代了我的 sublime text 。但是也只有快这一个优点了,目前的生态替换 Vscode 是不可能的。
    shyangs
        67
    shyangs  
       57 天前
    @ophunter
    @b1u2g3
    @augustheart


    Electron 以前叫作 Atom Shell. ( 即 Atom 編輯器的外殼 )

    VS Code 奠基於 Electron (Atom Shell).

    VS Code 是從 Atom 得到靈感的. 用著 VS Code 鄙視 Atom. VS Code 團隊都沒你們這麼牛.
    JohnSmith
        68
    JohnSmith  
       57 天前
    和 vscode 比,就“傻快”
    enjoyCoding
        69
    enjoyCoding  
       57 天前
    入行比较晚, 没听说过这个编辑器. 主用 jetbrain 全家桶, 大文件会用 sublime 打开.
    ochatokori
        70
    ochatokori  
       57 天前 via Android
    atom 也没有秒杀 vscode 啊(
    lysShub
        71
    lysShub  
       57 天前
    @kuanat 这个延时怎么算的?不是直接体感上的吧?我估计这延时包括语法分析时间
    szyp
        72
    szyp  
       57 天前
    @june4 #7 对,electron 开发的应用总会有一种软绵绵的感觉
    Binwalker
        73
    Binwalker  
       57 天前
    连 fallback 字体都不支持
    Daniel17
        74
    Daniel17  
       57 天前
    别尬吹。。。
    b1u2g3
        75
    b1u2g3  
       57 天前
    @shyangs
    死了就是事实,不让人说哈?
    你又哪个眼看到我粉 VS 了?
    RobinzzZ
        76
    RobinzzZ  
       57 天前
    zed 现在压根就没法用,吹的这点速度压根没提升,生态差的很,当个文本编辑器还差不多
    shyangs
        77
    shyangs  
       57 天前
    @b1u2g3

    UNIX 死了,活著的是 UNIX-like ,
    Atom 死了,活著的是 Electron (Atom Shell ) .

    UNIX 和 Atom 都會被寫進歷史. 而你不會.
    hafuhafu
        78
    hafuhafu  
       57 天前
    还没用上。
    感觉不发展个几年打 VSC 怕是费劲,拿来当 sublime text 这种我用来随手打开编辑文件的替代品倒是应该不错,打开速度快、插件系统大概会也比 sublime 的好用。
    Hilong
        79
    Hilong  
       57 天前
    我觉得这个没有未来,试用了下还是回到了 vscode
    feelinglucky
        80
    feelinglucky  
       57 天前
    @june4 #7 “html 的界面再优化也手感绵软不是原生代码 gpu 加速的对手”

    “手感绵软”这个描述,从合得来的呢?
    highFreqSurfer
        81
    highFreqSurfer  
       57 天前
    没得 debug, 不可能用来做主力的
    jadeborner
        82
    jadeborner  
       57 天前
    啥东西都讲究生态,这玩意再快也干不过 vscode
    tsohgdivil
        83
    tsohgdivil  
       57 天前
    @june4 和 vscode 比起来 zed 就是个玩具

    你启动能快多少?在一台现代电脑上,我算你 2s ,了不起了吧?

    再看开发效率,插件有多少? DEBUG 有没有?谁对 Copilot 支持好? Remote Editor 有没有?

    这些开发效率的差距,2s 中能弥补吗?
    tairan2006
        84
    tairan2006  
       57 天前
    能打开 1G 大文件么(
    kuanat
        85
    kuanat  
       57 天前
    @lysShub #71

    没有说怎么测的,我也没细看,就假定它用的一致的测试方法好了。延迟测试包含了语法分析,但是因为它只是在新的一行里反复按了 10 次 z ,所以这个语法分析的时间可以忽略不计了。
    L4Linux
        86
    L4Linux  
       57 天前 via Android
    @kuanat 然而 gtk 的 wayland im 模块出 bug 了,一打字就吞键。我目前还是用 GTK_IM_MODULE=fcitx 那种。
    mayli
        87
    mayli  
       57 天前
    这个也内置

    A virtual office for software teams
    Channels are spaces to discuss, plan, and write software with your team. Each channel has a shared document for taking notes and tracking projects, and channels nest in a hierarchy to keep you organized. Share projects with the channel and use audio or text-based chat to engage collaborators in real time.
    Sliverburger
        88
    Sliverburger  
       56 天前
    個人感覺 VSCode 最給力的還是現在的各種插件,Zed 沒試過果段時間試試看。但在沒有插件系統的情況下或者插件不全的情況下替代是不可能的吧
    xiaopanzi
        89
    xiaopanzi  
       55 天前
    为了快,为啥不用 neovim?
    FelineTerrorist
        90
    FelineTerrorist  
       55 天前
    真要快,我直接打 vim mai[tab] 回车不是更快吗,我都不用开一个新窗口等窗口装饰器慢慢响应。有点莫名其妙的宣传方向……
    b1u2g3
        91
    b1u2g3  
       54 天前
    @shyangs
    口气好大哟
    你又算哪个草
    B 了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1058 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 23:22 · PVG 07:22 · LAX 16:22 · JFK 19:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.