Zed Editor: A Fast, Native Code Editor for 2026
Zed Editor: A Fast, Native Code Editor for 2026
Zed is a code editor written in Rust that renders with the GPU. It opens instantly, scrolls without dropped frames on million-line files, and uses a fraction of the memory that VS Code consumes. If you have ever been frustrated by Electron-based editors feeling sluggish, Zed is the answer -- with caveats.

This guide covers Zed's current state, what it does well, what it still lacks, and how to configure it for productive development work.
Why Zed Exists
VS Code dominates the editor market. It has the extensions, the community, and the ecosystem. But it runs on Electron, which means a web browser is rendering your text. That architectural decision has consequences: high memory usage (often 1-2 GB), input latency that accumulates over long sessions, and startup times measured in seconds rather than milliseconds.
Zed takes a different approach. Written entirely in Rust, it renders text and UI elements directly on the GPU using its own framework (GPUI). The result is an editor that starts in under 100ms, handles large files without stuttering, and stays responsive even with dozens of tabs open.
The trade-off: Zed's extension ecosystem is young. You will not find equivalents for every VS Code extension. Whether that matters depends on what you need.
Installation
Zed is available on macOS and Linux. Windows support is in development.
macOS:
brew install --cask zed
Linux:
curl -fsSL https://zed.dev/install.sh | sh
Or install from your distribution's package manager if available.
Configuration
Zed uses a JSON settings file at ~/.config/zed/settings.json. Unlike VS Code's settings UI, there is no graphical editor -- you edit JSON directly.
{
"theme": "One Dark",
"buffer_font_family": "JetBrains Mono",
"buffer_font_size": 14,
"ui_font_size": 15,
"tab_size": 2,
"format_on_save": "on",
"autosave": {
"after_delay": {
"milliseconds": 1000
}
},
"vim_mode": true,
"relative_line_numbers": true,
"scroll_beyond_last_line": "off",
"inlay_hints": {
"enabled": true
}
}
Vim Mode
Zed's Vim emulation is solid. Enable it with "vim_mode": true. It supports:
- Normal, Insert, Visual, and Visual Line modes
- Common motions (
w,b,e,f,t,gg,G,%) - Text objects (
ci",da(,vi{) - Registers and macros
- Search with
/and? - Window splits with
Ctrl+Wcommands
It is not a full Neovim replacement -- no custom Vimscript or Lua plugins. But for developers who want Vim keybindings without maintaining a Neovim configuration, it works well.
Keybindings
Customize keybindings in ~/.config/zed/keymap.json:
[
{
"context": "Editor",
"bindings": {
"ctrl-shift-k": "editor::DeleteLine",
"ctrl-d": "editor::SelectNext",
"ctrl-shift-d": "editor::DuplicateLineDown"
}
},
{
"context": "Workspace",
"bindings": {
"ctrl-p": "file_finder::Toggle",
"ctrl-shift-p": "command_palette::Toggle",
"ctrl-shift-e": "workspace::ToggleLeftDock"
}
}
]
If you are coming from VS Code, Zed includes a VS Code-compatible keymap that you can select during setup.
Language Support
Zed uses Tree-sitter for syntax highlighting and supports LSP (Language Server Protocol) for intelligence features. Language support is configured per-language in settings:
{
"languages": {
"TypeScript": {
"tab_size": 2,
"formatter": {
"external": {
"command": "biome",
"arguments": ["format", "--stdin-file-path", "{buffer_path}"]
}
}
},
"Python": {
"tab_size": 4,
"formatter": {
"external": {
"command": "ruff",
"arguments": ["format", "--stdin-filename", "{buffer_path}", "-"]
}
}
},
"Rust": {
"tab_size": 4,
"formatter": "language_server"
}
}
}
Well-supported languages (good LSP + Tree-sitter grammars): Rust, TypeScript, JavaScript, Python, Go, C/C++, HTML, CSS, JSON, YAML, Markdown, Bash.
Adequate support (works but fewer features): Ruby, Java, Kotlin, Swift, Elixir, Zig.
Minimal support (syntax highlighting only): Niche or newer languages. Check the extensions panel.
Extensions
Zed's extension system is newer and more limited than VS Code's, but growing. Extensions are written in Rust or WebAssembly.
Install extensions from the command palette (Cmd+Shift+P / Ctrl+Shift+P) and searching "extensions".
Notable extensions available:
- Language extensions: Additional language grammars (Svelte, Astro, Prisma, Dockerfile)
- Theme extensions: Catppuccin, Gruvbox, Dracula, Tokyo Night
- Tool integrations: Docker, SQL, Terraform
What is still missing compared to VS Code: GitLens-level git integration, advanced debugging UIs, most framework-specific tooling (Angular, Vue devtools), and niche language support.
AI Integration
Zed has built-in AI features through its Assistant panel. Configure your AI provider in settings:
{
"assistant": {
"default_model": {
"provider": "anthropic",
"model": "claude-sonnet-4-20250514"
}
}
}
Supported providers include Anthropic (Claude), OpenAI, Ollama (local models), and others.
The AI assistant supports:
- Inline completions: Tab-based code suggestions as you type
- Assistant panel: Chat with codebase context
- Inline transforms: Select code, describe changes, see diffs
The AI features are functional but less polished than Cursor's implementation. If AI assistance is your primary requirement, Cursor is the stronger choice. If performance is your priority and AI is a nice-to-have, Zed delivers.
Collaboration
Zed's real-time collaboration is a standout feature. Multiple developers can edit the same project simultaneously with cursor presence, shared selections, and voice chat -- all built into the editor.
To start a collaboration session:
- Open the command palette
- Select "Share Project"
- Send the generated link to your collaborator
Latency is noticeably lower than VS Code Live Share because Zed uses its own protocol optimized for code editing rather than the generic LSP-over-network approach.
This is particularly useful for pair programming sessions where screen sharing introduces compression artifacts and input lag.
Performance Comparison
Measured on a 2024 Linux workstation (Ryzen 7, 32GB RAM):
| Metric | Zed | VS Code | Neovim (LazyVim) |
|---|---|---|---|
| Cold start | ~80ms | ~2.5s | ~120ms |
| Memory (idle, one project) | ~150MB | ~600MB | ~80MB |
| Opening 1M-line file | Instant scroll | Freezes briefly | Instant scroll |
| Extension loading | Fast (WASM) | Moderate (JS) | Fast (Lua) |
| Input latency | ~5ms | ~15-30ms | ~5ms |
Zed and Neovim trade blows on raw performance. The difference is that Zed gives you a graphical interface with mouse support, file browser, integrated terminal, and collaboration -- without the performance penalty of Electron.
Migrating from VS Code
Zed can import VS Code settings, themes, and keybindings on first launch. For a manual migration:
- Settings: Translate your
settings.jsonto Zed's format (different keys, same concepts) - Keybindings: Use the VS Code keymap preset, then customize from there
- Extensions: Check which VS Code extensions you actually use. Most formatting/linting can be replaced with external formatter configuration. Language support comes from LSP servers that Zed installs automatically.
- Themes: Many popular VS Code themes have Zed ports
The biggest adjustment is giving up extensions you relied on. Make a list of your VS Code extensions and check Zed's extension registry before committing to the switch.
When to Use Zed (and When Not To)
Use Zed if: You value editor performance and responsiveness. You work primarily in well-supported languages (TypeScript, Rust, Python, Go). You want built-in collaboration. You are comfortable with a smaller extension ecosystem.
Stick with VS Code if: You depend on specific extensions (Live Preview, Docker integration, language-specific debugging). You need Windows support today. Your team standardizes on VS Code and switching would create friction.
Stick with Neovim if: You have an existing Neovim config that works for you. You live in the terminal. You need maximum customizability through Lua scripting.
Zed occupies the space between VS Code (feature-rich but slow) and Neovim (fast but requires significant configuration). If that space appeals to you, give it a week of real work before deciding.