面包屑导航

多缓冲区和单例缓冲区的顶部会显示一个面包屑导航,其中包含光标所在的文件路径以及包含的语法节点摘要。这在多缓冲区或大型函数中尤其有用。
Zed 由开发 Atom、Electron 和 Tree-sitter 的团队从头开始打造,旨在实现卓越的性能、协作和面向未来。

多缓冲区和单例缓冲区的顶部会显示一个面包屑导航,其中包含光标所在的文件路径以及包含的语法节点摘要。这在多缓冲区或大型函数中尤其有用。
要安装 zed 命令行工具,请从应用程序菜单中选择 Zed > 安装命令行工具。然后你可以在命令行中输入 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 仅支持共享整个屏幕。

如果有一个默认的快捷键需要记住,那就是 cmd-shift-p。这会展开命令面板,它是 Zed 提供的许多其他功能的入口,也是学习快捷键的便捷工具。
可用命令取决于焦点。例如,如果你聚焦项目面板,你会在命令面板中看到 project panel: add file,但如果编辑器被聚焦,你就不会看到该命令。
当你这个“完美不完美”的自我引入错误或警告到代码中时,你将看到波浪下划线指示。如果你将光标放在下划线文本中,你将在状态栏中看到错误的第一行。

要获取更多详细信息,你可以按下 f8 来展开错误。你可以使用 f8 循环查看当前缓冲区中的所有错误,并使用 shift-f8 反向循环。一旦你修复了错误,你会看到它变成灰色,此时你可以按下 escape 来将其关闭。

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

此多缓冲区包含项目中每个错误的摘录,其内容将随你修复错误并保存而更新。有时,语言服务器会报告同一段代码的多个错误。
我们选择忠实于编译器的输出,为每个错误提供一个摘录,即使这意味着你有时会看到文件中重叠部分的多个摘录。
与任何多缓冲区一样,你可以通过按下 alt-enter 跳转到普通单例缓冲区中光标的位置。别忘了,修复后你可以使用 ctrl-- 返回到多缓冲区。
有一个特殊的窗格叫做停靠栏,它可以被打开和关闭,同时保留其内容。

可以使用 shift-escape 进行获取和关闭。默认情况下,它会随着终端打开,但任何编辑器或标签都可以拖入其中。

停靠栏可以通过其窗格右上角的停靠栏锚定菜单或通过相关的键绑定锚定到右侧、底部,并作为模态窗口。

如果停靠栏中的项目通过快捷键(例如通过 cmd-shift-m 的诊断项目)被聚焦,停靠栏将显示并被聚焦,这对于那些全局单例选项卡来说非常方便。
要根据语法树折叠和展开代码,请按下 cmd-alt-{ 和 cmd-alt-}。
要根据语法树增长和缩小选择,请按 alt-up 和 alt-down。
要跳转到最近的包含括号或其匹配的对应括号,请按下 ctrl-m。

您可以通过按住 Alt 键并单击/拖动鼠标来创建多个光标/选区。
要在当前选区的上方或下方添加新选区,请按下 alt-cmd-up 或 alt-cmd-down。
要选择光标下的单词,然后是下一个匹配的文本片段,请按下 cmd-d。要跳过一个单词,请按下 cmd-d 来选择它,然后按下 cmd-k cmd-d 来选择下一个。要撤销你的选择,请按下 cmd-u。

要通过路径对项目中的所有文件进行模糊搜索,请使用文件查找器,你可以使用 cmd-p 切换它。
当你首次打开特定语言的文件时,如果 Zed 支持该语言服务器,它将下载并启动相应的语言服务器。Rust 在短期内仍是我们的主要关注点,但 Zed 目前已硬编码支持以下语言服务器:
将 Zed 与任意语言服务器连接的能力正在积极开发中。

多缓冲区的编辑方式与普通缓冲区非常相似,但它们包含来自多个不同文件的可编辑摘录。它们在 Zed 中以多种方式使用。在项目搜索的情况下,你会看到一个包含几行上下文的摘录,围绕着每个匹配项。
多缓冲区允许你执行跨多个文件的多光标编辑。当你保存多缓冲区时,每个摘录的文件都会被保存。
要跳转到摘录文件的专用缓冲区中光标的位置,请按下 alt-enter。如果你有多个光标,将为每个光标的位置打开一个标签页。

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

一旦你跳转到定义或执行了任何非局部导航,你可以使用导航历史记录,通过 ctrl-- 向后导航,通过 ctrl-shift-_ 向前导航。导航历史记录有意地限制在每个窗格范围内,因此在向前和向后导航时,我们绝不会将你的焦点切换到另一个窗格。
要查找光标下符号的所有引用,请按下 alt-shift-f12。引用将显示在一个多缓冲区中,每个出现都带有一个摘录,类似于项目范围搜索的工作方式。

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


有几种导航方式。你可以使用 cmd-f 搜索缓冲区,或使用 cmd-shift-f 在可编辑的多缓冲区中打开项目的所有结果。
你可以通过使用 cmd-shift-o 打开大纲视图来快速查找当前文件中的定义。你还可以使用 ctrl-g 跳转到特定行。

在缓冲区内导航最强大的方式是 Zed 的大纲视图。当编辑器获得焦点时,按下 cmd-shift-O,Zed 将根据语法树显示文件的摘要。这在几个方面很有用。
这可能是了解文件布局的好方法,这在浏览代码或决定在哪里插入新定义时很有帮助。当你第一次打开大纲视图时,Zed 总是高亮显示文件中离你当前位置最近的条目。
你还可以通过模糊搜索快速跳转到文件中的命名定义。文件顺序保持不变,但会自动选择与你的查询最匹配的结果。
一个很酷的隐藏功能是,当你的查询包含**空格**时,我们会扩展搜索以匹配上下文关键字。所以在 Rust 中,你可以输入 select 来搜索任何名称匹配单词 select 的定义。但你可以输入 pub fn select 来搜索所有匹配单词 select 的公共方法或函数。你还可以输入 pub fn 来简单查看所有公共函数,或者输入 struct 来查看所有结构体定义。

项目浏览器是左侧面板,它以目录树的形式显示项目内容。你可以使用 cmd-shift-e 在项目浏览器之间切换焦点。你可以使用 cmd-b 切换其可见性。也可以通过工作区左下角的文件树图标进行切换。
每个 Zed 窗口对应一个项目,你可以向项目添加多个文件夹甚至单个文件。项目范围内的交互适用于你添加的所有文件夹。
目前,项目不是持久的。一旦你关闭窗口,你的项目就会消失。
使用 cmd-shift-f 搜索整个项目。这将拉起一个专用标签页来搜索和显示结果。你可以使搜索区分大小写,基于正则表达式,并且仅适用于完整单词。我们尚不支持将搜索限制到特定路径。
要创建多个项目搜索,请使用 cmd-enter 而不是 enter 来确认你的搜索查询。这将打开此新搜索的结果作为附加标签页,并保留旧的结果标签页。

搜索结果以多缓冲区形式呈现,这是 Zed 的独特功能之一。
要执行重命名重构,请将光标放在要重命名的符号上,然后按下 f2。

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


要拆分窗格,请按下 cmd-k,然后按下你想要拆分的方向箭头。所以,要将当前标签页向右拆分,就是 cmd-k right。要在不同的窗格之间循环焦点,请按下 cmd-k cmd-right 向前循环,或者按下 cmd-k cmd-left 向后循环。
您可以通过拖动分隔符向左或向右来调整窗格的大小。双击分隔符将重置拆分,使空间在窗格之间均匀分布。
Zed 带有一个集成终端模拟器,它使用 Alacritty 作为其后端。

你可以通过按住 ctrl-` 或点击标签栏右侧的 + 图标来打开终端。

终端也可以在任何可以放置缓冲区标签的地方创建和使用。
Zed 附带了许多常见的编辑器主题。主题将继续增加和改进。

未来用户将能够创建、下载和加载外部主题。有关更多信息,请参阅主题 – 文档。
要切换选择主题,请按下 cmd-k cmd-t。我们目前不支持用户定义的主题,但我们已经尝试包含了一些不错的默认选项。

Vim 模式体验的基本部分仍然缺失。我们将继续开发它,并在我们认为它已准备好投入全职使用时发布公告。
您可以通过将 vim_mode: true 添加到您的 settings.json 文件中来启用 Vim 模式。
有关设置的更多信息,请参阅配置 Zed。
请报告您在使用 Vim 模式时遇到的问题。
我们期望我们的 Vim 键绑定是标准的。为了确保我们的 Vim 绑定质量,我们目前将 Zed 的 Vim 模式输出与 Neovim 本身进行测试。