曾几何时,我能记住 Zed 提供的所有功能。在那段时间里,帮助那些只是寻找设置调整的用户要简单得多。
如今,我一直在发现 Zed 的新角落;通过社区,通过队友,以及通过我在侧边栏的 blame 视图中偶然发现的提交信息。每个月有约 900 个拉取请求被合并,要跟上所有新功能和变更可能很难。
你可以阅读每个 Zednesday™️ 的发布说明,你可以搜索文档,但很有可能,你仍然会错过一些可能对你日常使用 Zed 产生重大影响的隐藏宝藏。
在本系列中,我们将介绍我们以及你们最喜欢的隐藏宝藏和工作流程,这样我们都可以更多地了解 Zed。
让我们进入今天的宝藏吧!🎉
通过键位绑定编辑让 Rust 更轻松
来自
Conrad Irwin / 软件工程师
Vim 最好的地方之一就是你可以将一个键位绑定映射到另一个。等等,我说的是 Vim 吗?我指的是 Zed。
我有两个有趣的例子可以使 Rust 编程更容易
{
"context": "vim_mode == visual",
"bindings": {
"\\ d": ["workspace::SendKeystrokes", "\" a s dbg!( ctrl-r a ) escape"]
}
},
{
"context": "vim_mode == normal",
"bindings": {
"\\ d": ["workspace::SendKeystrokes", "v a a \" a y g v [ x [ x \" a p"],
}
}如果我选择一个表达式,\d 将它用 dbg! 包裹起来。如果我把光标放在 dbg!(...) 的中间,\d 将把它删除。
用键盘重复运行测试
来自
Cole Miller / 软件工程师
在迭代测试时,使用 editor: spawn nearest task 动作是从 Zed 重复运行测试最方便的键盘驱动方式。
右键菜单宝藏
来自
Kirill Bulatov / 软件工程师
某些功能通过右键菜单以半隐形模式启动:通常,为特定功能添加一个新点比构建一个全新的用户界面更简单。
以下是我最喜欢的几个
复制并修剪
当我选择、复制文本并想将其插入到某个位置时,我非常喜欢使用 Copy and Trim 功能

常规的 Copy 只会复制所选内容,导致
"diagnostics": {
"inline": {
"enabled": true
}
},或
"diagnostics": {
"inline": {
"enabled": true
}
},之后的插入。
Copy and Trim 产生更方便的插入
"diagnostics": {
"inline": {
"enabled": true
}
},文件比较
在项目面板中,有一种方法可以选择多个条目,其中最近选择的两个可以使用 Compare marked files 进行比较

设置专注于散文写作
来自
Danilo Leal / 设计师
我经常在 Zed 中写长篇散文,无论是为我的个人博客还是在 Zed 的频道笔记中(我们在那里计划和制定工作策略)。
这样做时,我更喜欢以一种帮助我专注于写作本身的方式整理我的工作区。有一套非常棒的动作可以用来实现这一点。
这是我的分步方法
- 使用
workspace: close all docks关闭所有打开的面板/停靠栏(你也可以通过每个面板的单独键位绑定来完成) - 使用
workspace: close inactive tabs and panes清理你的工作区 - 关键:使用
workspace: toggle centered layout动作使你唯一的窗格/标签在 Zed 的 UI 中居中
瞧!这让写作感觉更舒适、更专注、更紧凑(以一种好的方式)。没有任何其他东西可以分散我的注意力,让我专注于我需要写的东西!
选择所有正则表达式匹配项
来自
约瑟夫·莱昂斯 (Joseph Lyons) / 社区
你可能已经知道 Zed 有一个内置的 editor: select all matches 动作,它会根据你当前选择的内容创建多个选择,并允许你同时编辑所有匹配项。这本身就很有用,适用于你想匹配一种文本形式的简单情况,但 Zed 有一个更强大的版本
- 运行
buffer search: deploy - 启用正则表达式搜索过滤器并输入你的模式
- 不是像通常在缓冲区搜索中那样按
enter键来前进匹配项,而是按alt-enter,所有匹配的项都将被选中。如果你喜欢使用鼠标,缓冲区搜索栏中也有一个专用的select all matches按钮!
总的来说,你可以为你能想到的任何缓冲区搜索在此缓冲区中创建多个选择。
每行一个光标
来自
Marshall Bowers / 软件工程师
我是 Zed 中多光标的重度用户,经常需要每行一个光标,这样我就可以一次性处理大量文本。
实现这一点的快速方法是使用 editor: split selection into lines 动作。我将选择缓冲区的全部内容,将选择拆分成行,然后随心所欲地使用多光标进行编辑。
焦点改变时自动保存
来自
Conrad Irwin / 软件工程师
作为用户,我希望确保我的文件永远不会被保存,所以当我运行测试时,它们再次失败,因为它们没有我的最新更改……
从来没有人说过。
{ "autosave": "on_focus_change" }现在,每当我从编辑器切换到终端时,文件都会被保存。我的测试运行的是我刚刚编写的代码的相同版本,世界上所有错误都得到了纠正。
在纲要模态中使用空格
来自
Nathan Sobo / 首席执行官兼联合创始人
你可能知道 Zed 的大纲模态,用于快速符号化地检查和导航缓冲区。你可以在 macOS 上使用 cmd-shift-O (outline: toggle) 部署它。
默认情况下,顶部的搜索栏只按符号的名称进行过滤。但是,如果你在搜索查询中包含空格,Zed 会将搜索范围扩展到同时匹配符号的名称及其上下文关键字(如可见性修饰符和声明类型)。
这允许你构建如下查询
pub fn以导航 Rust 文件中的所有公共函数trait(带尾随空格)以导航所有 trait 定义impl Foo for以查找Footrait 的实现

在新窗格中打开文件
来自
约瑟夫·莱昂斯 (Joseph Lyons) / 社区
Zed 中有多种文件导航方式,其中包括:
- 通过项目面板打开文件 (
project panel: toggle focus) - 通过文件查找器打开文件 (
file finder: toggle) - 在点击符号时按住
cmd(macOS) 或ctrl(Linux/Windows) 跳转到符号定义 (editor: go to definition)
默认情况下,这些操作在新文件中打开在当前窗格中;你的当前文件不再可见。
如果你从项目面板或文件查找器打开文件时按住 cmd (macOS) 或 ctrl (Linux/Windows),或者在跳转到定义时除了 cmd/ctrl 之外还按住 alt,新文件将在右侧的新窗格中打开,同时保留你之前的文件在视图中。
将 Lazygit 作为任务
来自
Matt Miller / 设计师
这个技巧来自 Reddit 上的 /u/parawaa,它很好地展示了 Zed 在使用任务时的灵活性。
这会在缓冲区中生成 Lazygit,在更大的窗格中提供一个终端 GUI。
如果你还没有安装 Lazygit
brew install lazygit接下来,打开 ~/.config/zed/tasks.json。你可以通过命令面板中的 zed: open tasks 快速找到它 (Cmd Shift + P)。
将此内容放入文件中的某个位置,即可开始使用。
{
"label": "LazyGit",
"command": "lazygit",
"shell": {
"program": "sh"
},
"hide": "on_success",
"reveal_target": "center",
"show_summary": false,
"show_command": false,
"allow_concurrent_runs": true,
"use_new_terminal": true
}正如 /u/parawaa 也展示的,你甚至可以将任务映射到键盘快捷键。
我已覆盖默认的 Cmd Shift + G 行为来运行任务。
"cmd-shift-g": [
"task::Spawn",
{ "task_name": "LazyGit", "reveal_target": "center" }
]你将获得一个漂亮的终端 GUI 在一个更大的窗格中。

分享你的隐藏宝藏
告诉我们你觉得这些宝藏中哪个最有用,请分享你的宝藏,这样我们就可以采纳你在日常工作中发现的关键技巧!