Zed
Zed is a high-performance editor from the creators of Atom. Built in Rust with a GPU-accelerated UI. 2025 brings Zeta (Open Model AI) and ACP (Agent Client Protocol).
When to Use
- High-Performance Rust-Engineered Code Editing: Sub-millisecond typing latency, instant file opening, and smooth 120 FPS rendering.
- Real-Time Multiplayer Pair Programming: Collaborating directly in the editor buffer with audio chat and shared cursor sessions.
- Integrated Language Model (LLM) Assistants: Generating code, refactoring functions, and querying codebase context natively.
- Modern Tree-sitter & LSP Polyglot Development: Seamless out-of-the-box support for Rust, TypeScript, Python, and Go.
Quick Start
1. Minimal ~/.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. Core Shortcuts
Cmd + P: File finderCmd + Shift + P: Command paletteCmd + Shift + F: Project searchCmd + ?: Toggle AI Assistant panel
Core Concepts
Production Zed Configuration (~/.config/zed/settings.json)
Configuring typography, formatters, LSP language servers, and AI integration:
{
"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"
}
}
}
Custom Modal & Vim Keybindings (~/.config/zed/keymap.json)
Customizing keymaps for high-speed navigation:
[
{
"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"
}
}
]
Instant Multiplayer Collaboration
- Click the Collaborate icon in the top right window header.
- Share your room link or invite team members via GitHub username.
- Teammates share editor views, follow cursors, and edit code concurrently without screen-sharing lag.
Common Patterns
Multi-Buffer Project Search & Replace
Problem: Search across entire codebase and edit results simultaneously in a single unified buffer.
Solution: Open multi-buffer editor.
- Press
Cmd + Shift + Fto open Project Search. - Enter search term and press
Enter. - Press
Option + Enterto expand all matches into an editable multi-buffer. - Make code edits across multiple files in place and save (
Cmd + S) to write to all files.
Configuring Custom Language Servers in Zed
Problem: Configure specific language server arguments and formatters in Zed.
Solution: Define server settings in settings.json.
{
"languages": {
"Python": {
"language_servers": ["pyright", "ruff"],
"format_on_save": "on",
"formatter": {
"external": {
"command": "ruff",
"arguments": ["format", "--stdin-filename", "{buffer_path}"]
}
}
}
}
}
Best Practices (2026)
- Do configure
format_on_save: "on"with external tools (Prettier, Ruff, Rustfmt) for automated code cleanliness. - Do use
vtslsfor TypeScript development in Zed for superior performance and memory efficiency. - Do enable Vim mode (
"vim_mode": true) if accustomed to modal editing workflows. - Do leverage the native Assistant Panel (
Cmd + ?) with codebase context for rapid refactoring. - Don't overload project folders with unexcluded build caches (
target,dist,.next). - Don't hardcode private API keys in
settings.json; use system keychain or environment variables. - Don't leave collaborative rooms open and public when editing sensitive production configuration files.
Troubleshooting
| Error / Symptom | Cause | Solution |
|---|---|---|
| Language server fails to initialize | Server binary (e.g. gopls, pyright) not found in system $PATH | Install server binary globally or ensure it is accessible in user shell environment. |
| Keybinding clash with system shortcuts | Mac system keyboard shortcuts intercepting Zed keystrokes | Check settings.json keymap overrides under ~/.config/zed/keymap.json. |
| Zed AI Assistant fails to respond | Missing API key (OpenAI/Anthropic) or quota exceeded | Open Zed settings and configure "features": { "edit_prediction_provider": "copilot" } or provide API key. |