功能

Zed 由开发 Atom、Electron 和 Tree-sitter 的团队创建,从头开始构建,注重性能、协作和未来。


A breadcrumb trail below the tab bar that shows the path to the current file along with a summary of the containing syntax nodes
标签栏下方的面包屑导航,显示当前文件的路径以及包含的语法节点的摘要

面包屑导航显示在多缓冲区和单例缓冲区的顶部,显示包含光标的文件的路径以及包含的语法节点的摘要。这在多缓冲区或大型函数中尤其有用。


命令行界面

要安装 zed 命令行工具,请从应用程序菜单中选择 Zed > 安装 CLI。 然后您可以在命令行中键入 zed 我的路径 以在 Zed 中打开目录或文件。 要使用 Zed 作为您的 $EDITOR 来编辑 Git 提交等,请将 export EDITOR="zed --wait" 添加到您的 shell 配置文件。


代码操作

每当您在装订线旁边看到闪电时,表示语言服务器为当前光标位置提供了代码操作。 您可以单击闪电或按 cmd-. 来显示可用的操作。

影响多个文件的代码操作将在多缓冲区中显示操作结果。 要撤消操作,只需在多缓冲区中点击 cmd-z,尽管我们尚未支持撤消文件系统更改。 要保存多文件代码操作的结果,只需保存多缓冲区。


协作

添加联系人

您可以从协作菜单中添加联系人,该菜单从窗口右上角的图标部署,或者按 cmd-shift-c,然后单击搜索框右侧的添加按钮。

如果您试图与尚未开始使用 Zed 的人协作,请让他们下载 Zed 并登录,然后您可以添加他们。

共享项目

您将在协作菜单中看到所有在线联系人。 搜索或单击它们将发送一个请求,以开始通话并与他们共享您当前的项目。 他们将收到加入您通话的通知。

这将打开一个包含其项目的新窗口。 加入通话后,您的 zed 窗口将在右上角的图标旁边显示通话的参与者。 灰度参与者在通话中,但当前正在查看不同的项目。 非灰度参与者与您在同一项目中。

尚未与通话共享的项目将具有共享按钮,该按钮将使其他人能够加入您的项目。

我们的目标是尽可能消除本地项目和远程项目之间的区别。 客人可以打开、编辑和保存文件、执行搜索、与语言服务器交互等。

跟随协作者

当您加入一个项目时,您将立即开始跟随主机,因为他们在文件内和文件之间移动。 这由编辑器周围的边框表示。

每当您移动光标或编辑时,您都会自动停止跟随。 要再次开始跟随,您可以单击协作者的头像,或者按 ctrl-alt-cmd-f 循环跟随不同的参与者。

跟随仅限于特定窗格。 当一个窗格跟随一个协作者时,它会用他们的光标颜色勾勒出来。 这种特定于窗格的行为允许您在一个窗格中跟随某人,同时在另一个窗格中独立导航,并且可以成为某些协作风格的有效布局。

您可以通过协作菜单切换项目,该菜单显示当前参与者以及他们可能正在共享的任何项目。

屏幕共享

有时,协作时必须超越代码,例如查看网站或绘图。 Zed 的内置屏幕共享允许您轻松共享屏幕,而无需其他工具。 单击右上角的“共享屏幕”按钮以共享您的屏幕。

开始共享屏幕后,通话中的其他参与者可以看到您屏幕上的所有内容。 这对于协作、故障排除或简单地与他人共享信息非常有用。

屏幕共享时始终要小心——避免意外暴露个人信息、密码或机密信息。

目前,Zed 仅支持共享您的整个屏幕。


命令面板

The Zed Command palette, a modal palette use to navigate the editor's commands using text input.
Zed 命令面板,一个用于使用文本输入导航编辑器命令的模态面板。

如果有一个默认的键绑定要记住,那就是 cmd-shift-p。 这会部署命令面板,它是 Zed 提供的许多其他功能的入口,也是学习键绑定的便捷工具。

可用命令取决于焦点所在。 例如,如果您将焦点放在项目面板上,您将在命令面板中看到 项目面板: 添加文件,但如果编辑器处于焦点,您将看不到该命令。


诊断

缓冲区诊断

当您完美的自己将错误或警告引入代码时,您会看到它用波浪线标出。 如果您将光标放在带下划线的文本中,您将在状态栏中看到错误的第一行。

A buffer diagnostic showing an error on hover. The cursor position diagnostics can also be seen in the status bar.
一个缓冲区诊断,显示悬停时的错误。 光标位置诊断也可以在状态栏中看到。

要了解更多详细信息,您可以点击 f8 来展开错误。 您可以使用 f8 循环浏览当前缓冲区中的所有错误,并使用 shift-f8 向后循环。 修复错误后,您会看到它变灰,此时您可以按 escape 来关闭它。

项目范围的诊断

Zed 在工作区左下角的状态栏中显示整个项目中存在的错误和警告数量。如果单击此指示器或按 cmd-shift-M,您将打开项目诊断多缓冲区。

此多缓冲区包含项目中每个错误的摘录,其内容会随着您修复错误并保存而更新。有时,语言服务器会针对同一段代码报告多个错误。

我们选择忠实于编译器的输出,并为每个错误呈现一个摘录,即使这意味着您有时会看到同一文件中重叠部分的多个摘录。

与任何多缓冲区一样,您可以通过按 alt-enter 跳转到普通单例缓冲区中光标所在的位置。不要忘记,您可以在进行修复后使用 ctrl-- 返回到多缓冲区。


Dock 栏

有一个特殊的面板,称为 Dock 栏,可以在保持其内容的同时打开和关闭。

可以使用 shift-escape 获取和关闭它。默认情况下,它会打开一个终端,但任何编辑器或选项卡都可以拖到其中。

Dock 栏可以固定在右侧、底部,以及通过 Dock 栏窗格右上角的 Dock 栏锚点菜单或通过相关的快捷键固定为模态窗口。

常见的 Dock 栏用例:

  • 易于获取的持久终端
  • 文档页面或相关源文件的快速参考信息
  • 诊断页面所在的位置

如果通过快捷键(例如通过 cmd-shift-m 的诊断项目)聚焦 Dock 栏中的某个项目,Dock 栏将被显示并聚焦,这对于那些全局单例标签非常方便。


编辑

语法编辑

要基于语法树折叠和展开代码,请按 cmd-alt-{cmd-alt-}

要基于语法树增长和缩小选择范围,请按 alt-upalt-down

要跳转到最近的封闭括号或其匹配项,请按 ctrl-m

多光标编辑

您可以通过按住 alt 键并单击/拖动鼠标来创建多个光标/选择。

要在当前选择的上方或下方添加新的选择,请按 alt-cmd-upalt-cmd-down

要选择光标下的单词,然后选择下一个匹配的文本,请按 cmd-d。要跳过一个单词,请按 cmd-d 选择它,然后按 cmd-k cmd-d 选择下一个。要撤消您的选择,请按 cmd-u


文件查找器

The file finder modal, used to open files in the current project.
文件查找器模态框,用于在当前项目中打开文件。

要通过路径模糊搜索项目中的所有文件,请使用文件查找器,您可以使用 cmd-p 切换它。


语言服务器

当您第一次打开特定语言的文件时,如果 Zed 支持,它将下载并启动相应的语言服务器。 Rust 仍然是我们短期内的主要关注点,但 Zed 目前对以下语言服务器具有硬编码支持

将 Zed 与任意语言服务器连接的功能正在积极开发中。


多缓冲区

A multibuffer, containing editable excerpts from multiple different files in a single tab.
一个多缓冲区,包含单个选项卡中多个不同文件的可编辑摘录。

多缓冲区的编辑方式与普通缓冲区非常相似,但它们包含多个不同文件的可编辑摘录。它们在 Zed 中以多种方式使用。对于项目搜索,您将看到一个摘录,其中包含围绕每个匹配项的几行上下文。

多缓冲区允许您执行跨多个文件的多光标编辑。当您保存多缓冲区时,每个摘录的文件都会被保存。

要跳转到摘录文件的专用缓冲区中光标所在的位置,请按 alt-enter。如果您有多个光标,将为每个光标的位置打开一个选项卡。


代码导航

您可以使用 f12 或通过 cmd-单击符号来跳转到光标下的符号定义。

一旦您跳转到定义或执行任何非本地导航,您可以使用导航历史记录使用 ctrl-- 向后导航,使用 ctrl-shift-_ 向前导航。导航历史记录是有意按窗格划分范围的,因此在向前和向后导航时,我们永远不会将您的焦点切换到另一个窗格。

查找所有引用

要查找光标下符号的所有引用,请按 alt-shift-f12。引用将显示在多缓冲区中,其中包含每次出现的摘录,类似于项目范围的搜索的工作方式。

要使用语言服务器在整个项目中搜索符号,请按 cmd-t

缓冲区导航

Zed's find in buffer. Searching for "HirDatabase" inside of the open lib.rs buffer.
Zed 的缓冲区内查找。在打开的 lib.rs 缓冲区中搜索“HirDatabase”。

有几种导航方式。您可以使用 cmd-f 搜索缓冲区,或者使用 cmd-shift-f 在可编辑的多缓冲区中打开项目的所有结果。

您可以通过使用 cmd-shift-o 打开大纲视图来快速查找当前文件中的定义。您还可以使用 ctrl-g 跳转到特定行。


大纲视图

Zed's outline view open on top of a editor.
Zed 的大纲视图在编辑器顶部打开。

在缓冲区内导航的最有效方法是 Zed 的大纲视图。当您聚焦编辑器并按下 cmd-shift-O 时,Zed 会根据语法树呈现文件的摘要。这在几个方面很有用。

它可以很好地了解文件的布局,这在浏览代码或决定在哪里插入新定义时会很有帮助。当您第一次打开大纲视图时,Zed 总是会突出显示文件中最靠近您当前位置的条目。

您还可以通过模糊搜索使用它来快速跳转到文件中的命名定义。文件顺序被保留,但与您的查询的最佳匹配项会自动被选中。

一个很酷的隐藏功能是,当你的查询包含一个空格时,我们会扩展搜索以匹配上下文关键词。所以在 Rust 中,你可以输入 select 来搜索任何名称与单词 select 匹配的定义。但是你可以输入 pub fn select 来搜索所有与单词 select 匹配的公共方法或函数。你也可以输入 pub fn 简单地查看所有公共函数,或者输入 struct 来查看所有结构体定义。


项目浏览器

The project browser panel, a panel on the left side of that app that contains a tree view for each folder added to the project.
项目浏览器面板是应用程序左侧的一个面板,包含添加到项目的每个文件夹的树形视图。

项目浏览器是左侧的面板,以目录树的形式显示项目的内容。你可以使用 cmd-shift-e 在项目浏览器之间切换焦点。你可以使用 cmd-b 切换它的可见性。也可以通过工作区左下角的文件树图标进行切换。

每个 Zed 窗口对应一个项目,你可以向一个项目添加多个文件夹,甚至可以添加单个文件。项目范围内的交互适用于你添加的所有文件夹。

目前,项目不是持久的。一旦你关闭窗口,你的项目就会消失。


使用 cmd-shift-f 搜索整个项目。这将弹出一个专用选项卡,用于搜索和显示结果。你可以使搜索区分大小写,基于正则表达式,并且仅应用于整个单词。我们目前不支持将搜索限制到特定路径。

要创建多个项目搜索,请使用 cmd-enter 而不是 enter 来确认搜索查询。这将打开此新搜索的结果作为一个额外的选项卡,并将旧的结果选项卡保留在原位。

Zed's project-wide search, a dedicated multi-buffer pane to show search results across the entire project.
Zed 的项目范围搜索,一个专用的多缓冲区窗格,用于显示整个项目的搜索结果。

搜索结果以多缓冲区的形式呈现,这是 Zed 的独特功能之一。


重命名重构

要执行重命名重构,请将光标放在要重命名的符号上,然后按 f2

如果重命名影响多个文件,你将在多缓冲区中看到结果。


拆分窗格

Two buffers split across two panes.
跨两个窗格拆分的两个缓冲区。

要拆分窗格,请按 cmd-k,然后按要拆分的方向箭头。因此,要将当前选项卡拆分到右侧,它是 cmd-k right。要在不同的窗格之间循环焦点,请按 cmd-k cmd-right 向前循环,或 cmd-k cmd-left 向后循环。

你可以通过向左或向右拖动分隔线来调整窗格的大小。双击分隔线将重置拆分,在窗格之间平均分配空间。


集成终端

Zed 自带一个集成的终端模拟器,它使用 Alacritty 作为其后端。

你可以使用 ctrl-` 打开终端,也可以点击选项卡栏右侧的 + 图标。

终端也可以在任何缓冲区选项卡可以创建和使用的地方创建和使用。


主题

Zed 附带了许多常用的编辑器主题。主题将继续被添加和改进。

将来,用户将能够创建、下载和加载外部主题。 更多信息请参见 主题 – 文档

选择主题

切换选择一个主题,请按 cmd-k cmd-t。我们目前不支持用户自定义主题,但我们尝试包含一些不错的默认选项。

The theme picker palette. Using the change theme shortcut, (cmd-k, cmd-t) summons a palette allowing you to choose a theme from a list.
主题选择器调色板。使用更改主题快捷方式(cmd-k, cmd-t)会弹出一个调色板,允许你从列表中选择一个主题。

Vim

Vim 模式正在开发中

Vim 模式体验的基本部分仍然缺失。我们将继续开发它,并且当我们认为它已准备好用于全职使用时,我们将发布公告。

启用 Vim 模式

你可以通过将 vim_mode: true 添加到你的 settings.json 中来启用 Vim 模式。

更多关于设置的信息请参见 配置 Zed

请报告在使用 Vim 模式时遇到的问题。

Vim 模式质量

我们期望我们的 Vim 键绑定是标准的。为了确保我们的 Vim 绑定的质量,我们目前针对 Neovim 本身测试 Zed 的 Vim 模式输出。

其他参考