Zed 的 Vim 模式持续改进!我最新的最喜欢的功能是 !
操作符,这是常见 Vim 操作符的“最后一块堡垒”
但我们也一直在努力扩展命令面板,例如使用 g//
和 v//
在匹配(或不匹配)的行上执行命令。
更广泛的社区也一直在努力引入顶级的 Vim 插件。我们有 vim-surround、sneak 以及最近的 tree-sitter 文本对象的版本
总而言之,如果您今天使用 Vim,那么您在编辑器中每天想要做的大部分事情都可以在 Zed 中以与 Vim 完全相同的方式工作。
接下来是什么?
我想在 2025 年在 Zed 中针对 Vim 推进三个重点领域
- 构建非编辑器用户体验
- 提高匹配 Vim 极端案例的标准。
- 创建一个新的、更好的多光标 Vim 集成
非编辑器用户体验
虽然 Vim 看起来“没有 UI”,但这是一种障眼法。在 :&
之后,您处于 ex 模式,其中充满了使其良好运行的功能。特别是,我想将以下内容带到 Zed
- 命令面板中的文件名补全
e README.md
,或w README.md.latest
例如 - 命令历史记录,因此您可以修复一个
g//
而无需再次键入 norm
运行一系列击键(以及其他一些缺失的命令)
还有其他 Vim UI 可以引入 Zed
registers
查看您的寄存器。marks
类似地。
有趣的是,与今天的 Zed 相比,寄存器和标记在 Vim 中都更强大,因为它们将状态持久保存到磁盘,以便在重新启动后恢复。我们也需要构建这个功能。
最后,Zed 具有 Vim 没有的显着表面积,我希望它们感觉像 Vim 原生功能
- 协作功能的键盘快捷键,例如“跟随下一个人”,以及通过键盘驱动的方式加入和离开通话、静音/共享等。
- AI 编辑预测器和普通模式处理的更好快捷方式。同样适用于内联助手,它今天在 Vim 模式下也容易出错。
- 将更多类似 netrw 的绑定添加到项目面板
- 与即将推出的 Git 面板更紧密的集成
一致性
从 Vim 切换到 Zed 的人被 Zed 的“默认情况下开箱即用”所吸引:语言服务器直接可用,高级功能(AI、协作)。但是,没有什么比 Vim 模式不像 Vim *完全*一样更令人沮丧的了。我们有很多 VS Code Vim 扩展的难民,而且排名第一的抱怨是“它只是感觉不对劲”。
Zed 已经非常接近 Vim 了。我们进行了广泛的“并排”测试,我们运行无头的 Neovim 以确保我们的键盘快捷键执行完全相同的事情。也就是说,总有更多的事情要做,既要添加剩余的次要动作 zL
/zH
,还要修复像 d]}
这样的边缘案例。
真正出色的多光标体验
Zed 具有多光标,并且 Zed 的 Vim 模式在大多数情况下“如您所期望”地与多个光标一起工作。我想解决的问题有两个方面
- 整理绑定,以便围绕具有多光标的 Vim 形成连贯的功能集。
- 特别是确保您可以轻松地旋转到多光标中,就好像它是另一种模式一样。
- 如果您在选择时出错,则添加到 Zed 以支持仅移动您的一个选择。
有一些编辑器在这方面有先例,特别是 Kakoune 和 Helix;还有 Vim 插件,我想从中获得灵感。
开始吧
如果您想帮助完成其中任何一项工作,您可以预订与我配对的时间。 也可以随意浏览 Vim 频道说明中的列表,并选取您感兴趣的内容。 虽然我很高兴接受突如其来的 PR,但我始终更喜欢先讨论一下。
如果我遗漏或没有优先考虑任何内容,请将其添加到 问题跟踪器,或者赞成那里已经存在的东西。