功能

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

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


CLI

要安装 zed 命令行工具,请从应用程序菜单中选择 Zed > 安装 CLI。然后,您可以在命令行中键入 zed my-path 以在 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 将显示并获得焦点,从而方便使用这些全局单例选项卡。


编辑

语法编辑

要根据语法树折叠和展开代码,请按 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。如果您有多个光标,将为每个光标的位置打开一个选项卡。


代码导航

您可以通过 f12cmd-单击符号跳转到光标下的符号定义。

跳转到定义或执行任何非本地导航后,您可以使用导航历史记录通过 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 绑定的质量,我们目前正在测试 Zed 的 Vim 模式输出与 Neovim 本身。

其他参考