推荐阅读
2025 年 7 个压箱底 VS Code 插件,都是神器!
Cursor 2.0正式发布:携自研模型Composer强势登场,不再只做「壳」,速度遥遥领先!
VS Code 的这款数据库 AI 神器,再也不用来回切换 Navicat 了
VS Code2025 这几个 AI 智能编程天花板技巧,比 Cursor 还强!
🎯 前言
Zed 团队又双叒叕发干货了!这次是 Hidden Gems Part 3,作者亲自分享了他最常用的 6 个隐藏功能。
没有废话,直接开整!🪨⛏️➡️💎
1️⃣ 多个项目搜索标签页 🔍
痛点场景
你正在搜索 "user authentication",突然又要搜索 "payment gateway"。默认情况下,Zed 会聚焦到已有的搜索标签页,覆盖你的旧查询。
想要同时保留多个搜索? 有两种方法:
方法 1:快捷键新建搜索
在已有搜索框中输入新查询后:
- 不要按
Enter - 改为按
Cmd+Enter(macOS) /Ctrl+Enter(Windows/Linux)
💡 这对应命令面板中的
project search: search in new动作
方法 2:修改键绑定
在 keymap.json 中添加:
{
"context": "Pane",
"bindings": {
"cmd-shift-f": "workspace::NewSearch"
}
}
这样每次按搜索快捷键都会新建标签页,而不是复用旧的。
效果展示
三个搜索标签页并排,互不干扰!
2️⃣ 聚集你的选择内容
痛点场景
你用多光标选中了 20 个分散在各处的变量名,想检查一下有没有选错。结果这些选择横跨几千行代码,滚动查看累死人😫
解决方案
打开命令面板,运行:
editor: open selections in multibuffer
瞬间! 所有分散的选择会聚集到一个新的多缓冲区中,彼此只隔几行。
操作示例
之前: 选择分散在 50 行代码中
// 第 10 行
let user_name = get_name(); // ← 选中
// ... 很多代码 ...
// 第 30 行
let user_email = get_email(); // ← 选中
// ... 更多代码 ...
// 第 60 行
let user_age = get_age(); // ← 选中
之后: 聚集到多缓冲区
// 第 10 行
let user_name = get_name(); // ← 选中
// 第 30 行
let user_email = get_email(); // ← 选中
// 第 60 行
let user_age = get_age(); // 选中
✅ 一眼看清所有选择,快速审查!
3️⃣ 快速切换设置配置文件 ⚡
这是什么?
Zed 的配置文件系统让你可以定义多套设置,随时切换!
实战配置
我配置了几个用于社交媒体截图的配置文件:
"profiles": {
"演示(深色 - 大字体)": {
"agent_buffer_font_size": 18.0,
"buffer_font_size": 18.0,
"theme": "One Dark",
"ui_font_size": 18.0
},
"演示(深色 - Dracula)": {
"agent_buffer_font_size": 18.0,
"buffer_font_size": 18.0,
"theme": "Dracula",
"ui_font_size": 18.0
},
"专注写作模式": {
"buffer_font_size": 16.0,
"theme": "Gruvbox Dark",
"ui_font_size": 14.0
}
}
如何切换
- 打开命令面板
- 运行
settings profile selector: toggle - 选择你想要的配置文件
效果展示
创意用法
配置文件几乎可以包含任何 Zed 设置:
- 🔄 切换不同语言的 LSP 服务器
- 重新配置面板布局
- 🧘 进入"禅模式"专注写作
- 🌙 白天/夜晚主题快速切换
发挥你的想象力!
4️⃣ 编辑微优化:快速换行 ⌨️
痛点场景
光标在行中,想在下面插入新行?传统做法:
- 按
End移到行尾 - 按
Enter换行
太慢了!
终极方案
- 在下面新建行:
Cmd+Enter(macOS) /Ctrl+Enter(Windows/Linux) - 在上面新建行:
Cmd+Shift+Enter(macOS) /Ctrl+Shift+Enter(Windows/Linux)
效果演示
场景 1:在下面新建行
let x = 5;| // 光标在这里
// 按 Cmd+Enter ↓
let x = 5;
| // 自动跳到新行
场景 2:在上面新建行
let y = 10;
let x = 5;| // 光标在这里
// 按 Cmd+Shift+Enter ↓
| // 自动跳到新行
let y = 10;
let x = 5;
⚡ 不用移动光标,直接换行!
🎁 Mac 用户额外福利
按住 Fn 键的同时按 Delete:
- 删除光标右边的字符(而不是左边)
小细节,大收益!
5️⃣ 找出差异:剪贴板对比 🔀
痛点场景
你有两段相似的代码,想找出细微差别以便重构为函数。肉眼对比太累了😵
解决方案
- 复制第一段代码到剪贴板
- 选中第二段代码
- 打开命令面板,运行: editor: diff clipboard with selection
效果展示
一目了然! 绿色是新增,红色是删除。重构时该提取什么参数,清清楚楚👌
6️⃣ 序列化你的操作:一键执行多个动作 🎬
这是什么?
Zed 的键绑定系统有个强大但冷门的功能:action::Sequence
它可以把多个动作串联到一个快捷键下!
实战案例
我配置了一个"写作专注模式"快捷键:
"cmd-alt-a": [
"action::Sequence",
[
"workspace::CloseAllDocks", // 关闭所有侧边栏
"workspace::CloseInactiveTabsAndPanes", // 关闭非活动标签
"workspace::ToggleCenteredLayout" // 切换到居中布局
]
]
按下 Cmd+Alt+A 后:
之前:
┌─────────────────────────────────────────────┐
│ 📁 Explorer │ 🔍 Search │ 📋 main.rs ✖️ │
├─────────────┼───────────┼───────────────────┤
│ src/ │ │ fn main() { │
│ ├── main.rs │ │ // code... │
│ ├── lib.rs │ │ } │
│ └── utils.rs│ │ │
└─────────────┴───────────┴───────────────────┘
之后:
┌─────────────────────────────────────────────┐
│ │
│ │
│ fn main() { │
│ // code... │
│ } │
│ │
│ │
└─────────────────────────────────────────────┘
世界清静了,专注力 MAX! 🧘
你会想序列化什么?
- 🔥 保存 + 格式化 + 运行测试
- 🌙 切换主题 + 调整字体 + 关闭通知
- 🚀 打开终端 + 切换到项目目录 + 启动服务
你的想象力是唯一的限制!
🎯 总结:这些功能为什么是"宝藏"?
| 功能 | 节省时间 | 学习成本 | 推荐指数 |
|---|---|---|---|
| 多个搜索标签页 | ⭐⭐⭐ | ⭐ | ⭐⭐⭐⭐⭐ |
| 聚集选择内容 | ⭐⭐⭐⭐ | ⭐ | ⭐⭐⭐⭐⭐ |
| 设置配置文件 | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐ |
| 快速换行 | ⭐⭐ | ⭐ | ⭐⭐⭐⭐⭐ |
| 剪贴板对比 | ⭐⭐⭐⭐ | ⭐ | ⭐⭐⭐⭐⭐ |
| 序列化操作 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ |
💡 核心思想:这些功能看似微小,但长期累积能节省大量时间。就像复利效应,每天省 1 分钟,一年就是 6 小时!