Zed
Zed 是一款由 Atom 创建者打造的高性能编辑器。它基于 Rust 构建,并采用 GPU 加速的 UI。2025 年带来了 Zeta(开放模型 AI)和 ACP(代理客户端协议)。
何时使用
- 高性能 Rust 引擎代码编辑:亚毫秒级输入延迟、即时文件打开以及流畅的 120 FPS 渲染。
- 实时多人结对编程:直接在编辑器缓冲区中协作,支持音频聊天和共享光标会话。
- 集成语言模型 (LLM) 助手:原生生成代码、重构函数以及查询代码库上下文。
- 现代 Tree-sitter 和 LSP 多语言开发:开箱即用地无缝支持 Rust、TypeScript、Python 和 Go。
快速入门
1. 最小化 ~/.config/zed/settings.json 配置
{
"theme": "One Dark",
"buffer_font_family": "JetBrains Mono",
"buffer_font_size": 14,
"tab_size": 2,
"hard_tabs": false,
"format_on_save": "on",
"formatter": "auto",
"lsp": {
"rust-analyzer": {
"initialization_options": {
"checkOnSave": { "command": "clippy" }
}
}
}
}
2. 核心快捷键
Cmd + P:文件查找器Cmd + Shift + P:命令面板Cmd + Shift + F:项目搜索Cmd + ?:切换 AI 助手面板
核心概念
生产环境 Zed 配置(~/.config/zed/settings.json)
配置排版、格式化工具、LSP 语言服务器以及 AI 集成:
{
"theme": "One Dark",
"ui_font_size": 15,
"buffer_font_size": 14,
"buffer_font_family": "JetBrains Mono",
"autosave": "on_focus_change",
"format_on_save": "on",
"tab_size": 2,
"telemetry": {
"diagnostics": false,
"metrics": false
},
"languages": {
"TypeScript": {
"language_servers": ["vtsls", "!typescript-language-server"],
"formatter": {
"external": {
"command": "prettier",
"arguments": ["--stdin-filepath", "{buffer_path}"]
}
}
},
"Rust": {
"language_servers": ["rust-analyzer"]
},
"Python": {
"language_servers": ["pyright", "ruff"]
}
},
"assistant": {
"default_model": {
"provider": "anthropic",
"model": "claude-3-5-sonnet"
}
}
}
自定义模态与 Vim 键位绑定(~/.config/zed/keymap.json)
为高速导航自定义键位映射:
[
{
"context": "Editor && vim_mode == normal",
"bindings": {
"space f f": "file_finder::Toggle",
"space f g": "pane::DeploySearch",
"space b d": "pane::CloseActiveItem",
"space c a": "editor::ToggleCodeActions",
"g d": "editor::GoToDefinition",
"g r": "editor::FindAllReferences"
}
}
]
即时多人协作
- 点击右上角窗口标题栏中的协作图标。
- 分享您的房间链接或通过 GitHub 用户名邀请团队成员。
- 团队成员可共享编辑器视图、跟随光标,并同时编辑代码,无屏幕共享延迟。
常见模式
多缓冲区项目搜索与替换
问题:在整个代码库中搜索,并在单个统一缓冲区中同时编辑所有结果。 解决方案:打开多缓冲区编辑器。
- 按下
Cmd + Shift + F打开项目搜索。 - 输入搜索词并按
Enter。 - 按下
Option + Enter将所有匹配项展开为可编辑的多缓冲区。 - 跨多个文件原地进行代码编辑,然后保存(
Cmd + S)以写入所有文件。
在 Zed 中配置自定义语言服务器
问题:在 Zed 中配置特定的语言服务器参数和格式化工具。
解决方案:在 settings.json 中定义服务器设置。
{
"languages": {
"Python": {
"language_servers": ["pyright", "ruff"],
"format_on_save": "on",
"formatter": {
"external": {
"command": "ruff",
"arguments": ["format", "--stdin-filename", "{buffer_path}"]
}
}
}
}
}
最佳实践(2026 年)
- 应 使用外部工具(Prettier、Ruff、Rustfmt)配置
format_on_save: "on"以实现自动代码整洁。 - 应 在 Zed 中使用
vtsls进行 TypeScript 开发,以获得更优的性能和内存效率。 - 应 如果习惯模态编辑工作流,请启用 Vim 模式(
"vim_mode": true)。 - 应 利用原生助手面板(
Cmd + ?)结合代码库上下文进行快速重构。 - 不应 在项目文件夹中包含未排除的构建缓存(
target、dist、.next)。 - 不应 在
settings.json中硬编码私有 API 密钥;应使用系统钥匙串或环境变量。 - 不应 在编辑敏感生产配置文件时,将协作房间保持打开和公开状态。
故障排除
| 错误/症状 | 原因 | 解决方案 |
|---|---|---|
| 语言服务器无法初始化 | 服务器二进制文件(例如 gopls、pyright)未在系统 $PATH 中找到 | 全局安装服务器二进制文件,或确保其在用户 shell 环境中可访问。 |
| 键位绑定与系统快捷键冲突 | Mac 系统键盘快捷键截获了 Zed 的按键操作 | 检查 ~/.config/zed/keymap.json 中的 settings.json 键位映射覆盖。 |
| Zed AI 助手无法响应 | 缺少 API 密钥(OpenAI/Anthropic)或配额已超限 | 打开 Zed 设置,配置 "features": { "edit_prediction_provider": "copilot" } 或提供 API 密钥。 |