intellij.md

  1---
  2title: How to Migrate from IntelliJ IDEA to Zed
  3description: "Guide for migrating from IntelliJ IDEA to Zed, including settings and keybindings."
  4---
  5
  6# How to Migrate from IntelliJ IDEA to Zed
  7
  8This guide covers how to set up Zed if you're coming from IntelliJ IDEA, including keybindings, settings, and the differences you should expect.
  9
 10## Install Zed
 11
 12Zed is available on macOS, Windows, and Linux.
 13
 14For macOS, you can download it from zed.dev/download, or install via Homebrew:
 15
 16```sh
 17brew install --cask zed
 18```
 19
 20For Windows, download the installer from zed.dev/download, or install via winget:
 21
 22```sh
 23winget install Zed.Zed
 24```
 25
 26For most Linux users, the easiest way to install Zed is through our installation script:
 27
 28```sh
 29curl -f https://zed.dev/install.sh | sh
 30```
 31
 32After installation, you can launch Zed from your Applications folder (macOS), Start menu (Windows), or directly from the terminal using:
 33`zed .`
 34This opens the current directory in Zed.
 35
 36## Set Up the JetBrains Keymap
 37
 38If you're coming from IntelliJ, the fastest way to feel at home is to use the JetBrains keymap. During onboarding, you can select it as your base keymap. If you missed that step, you can change it anytime:
 39
 401. Open Settings with `Cmd+,` (macOS) or `Ctrl+,` (Linux/Windows)
 412. Search for `Base Keymap`
 423. Select `JetBrains`
 43
 44This maps familiar shortcuts like `Shift Shift` for Search Everywhere, `Cmd+O` for Go to Class, and `Cmd+Shift+A` for Find Action.
 45
 46## Set Up Editor Preferences
 47
 48You can configure most settings in the Settings Editor ({#kb zed::OpenSettings}). For advanced settings, run `zed: open settings file` from the Command Palette to edit your settings file directly.
 49
 50Settings IntelliJ users typically configure first:
 51
 52| Zed Setting             | What it does                                                                    |
 53| ----------------------- | ------------------------------------------------------------------------------- |
 54| `format_on_save`        | Auto-format when saving. Set to `"on"` to enable.                               |
 55| `soft_wrap`             | Wrap long lines. Options: `"none"`, `"editor_width"`, `"preferred_line_length"` |
 56| `preferred_line_length` | Column width for wrapping and rulers. Default is 80.                            |
 57| `inlay_hints`           | Show parameter names and type hints inline, like IntelliJ's hints.              |
 58| `relative_line_numbers` | Useful if you're coming from IdeaVim.                                           |
 59
 60Zed also supports per-project settings. Create a `.zed/settings.json` file in your project root to override global settings for that project, similar to how you might use `.idea` folders in IntelliJ.
 61
 62> **Tip:** If you're joining an existing project, check `format_on_save` before making your first commit. Otherwise you might accidentally reformat an entire file when you only meant to change one line.
 63
 64## Open or Create a Project
 65
 66After setup, press `Cmd+Shift+O` (with JetBrains keymap) to open a folder. This becomes your workspace in Zed. Unlike IntelliJ, there's no project configuration wizard, no `.iml` files, and no SDK setup required.
 67
 68To start a new project, create a directory using your terminal or file manager, then open it in Zed. The editor will treat that folder as the root of your project.
 69
 70You can also launch Zed from the terminal inside any folder with:
 71`zed .`
 72
 73Once inside a project:
 74
 75- Use `Cmd+Shift+O` or `Cmd+E` to jump between files quickly (like IntelliJ's "Recent Files")
 76- Use `Cmd+Shift+A` or `Shift Shift` to open the Command Palette (like IntelliJ's "Search Everywhere")
 77- Use `Cmd+O` to search for symbols (like IntelliJ's "Go to Class")
 78
 79Open buffers appear as tabs across the top. The Project Panel shows your file tree and Git status. Toggle it with `Cmd+1` (just like IntelliJ's Project tool window).
 80
 81## Differences in Keybindings
 82
 83If you chose the JetBrains keymap during onboarding, most of your shortcuts should already feel familiar. Here's a quick reference for how Zed compares to IntelliJ.
 84
 85### Common Shared Keybindings (Zed with JetBrains keymap ↔ IntelliJ)
 86
 87| Action                        | Shortcut                |
 88| ----------------------------- | ----------------------- |
 89| Search Everywhere             | `Shift Shift`           |
 90| Find Action / Command Palette | `Cmd + Shift + A`       |
 91| Go to File                    | `Cmd + Shift + O`       |
 92| Go to Symbol / Class          | `Cmd + O`               |
 93| Recent Files                  | `Cmd + E`               |
 94| Go to Definition              | `Cmd + B`               |
 95| Find Usages                   | `Alt + F7`              |
 96| Rename Symbol                 | `Shift + F6`            |
 97| Reformat Code                 | `Cmd + Alt + L`         |
 98| Toggle Project Panel          | `Cmd + 1`               |
 99| Toggle Terminal               | `Alt + F12`             |
100| Duplicate Line                | `Cmd + D`               |
101| Delete Line                   | `Cmd + Backspace`       |
102| Move Line Up/Down             | `Shift + Alt + Up/Down` |
103| Expand/Shrink Selection       | `Alt + Up/Down`         |
104| Comment Line                  | `Cmd + /`               |
105| Go Back / Forward             | `Cmd + [` / `Cmd + ]`   |
106| Toggle Breakpoint             | `Ctrl + F8`             |
107
108### Different Keybindings (IntelliJ → Zed)
109
110| Action                 | IntelliJ    | Zed (JetBrains keymap)   |
111| ---------------------- | ----------- | ------------------------ |
112| File Structure         | `Cmd + F12` | `Cmd + F12` (outline)    |
113| Navigate to Next Error | `F2`        | `F2`                     |
114| Run                    | `Ctrl + R`  | `Ctrl + Alt + R` (tasks) |
115| Debug                  | `Ctrl + D`  | `Alt + Shift + F9`       |
116| Stop                   | `Cmd + F2`  | `Ctrl + F2`              |
117
118### Unique to Zed
119
120| Action            | Shortcut                   | Notes                          |
121| ----------------- | -------------------------- | ------------------------------ |
122| Toggle Right Dock | `Cmd + R`                  | Assistant panel, notifications |
123| Split Panes       | `Cmd + K`, then arrow keys | Create splits in any direction |
124
125### How to Customize Keybindings
126
127- Open the Command Palette (`Cmd+Shift+A` or `Shift Shift`)
128- Run `Zed: Open Keymap Editor`
129
130This opens a list of all available bindings. You can override individual shortcuts or remove conflicts.
131
132Zed also supports key sequences (multi-key shortcuts).
133
134## Differences in User Interfaces
135
136### No Indexing
137
138If you've used IntelliJ on large projects, you know the wait: "Indexing..." can take anywhere from 30 seconds to 15 minutes depending on project size. IntelliJ builds a comprehensive index of your entire codebase to power its code intelligence, and it re-indexes when dependencies change or after builds.
139
140Zed doesn't index. You open a folder and start working immediately. File search and navigation work instantly regardless of project size.
141
142IntelliJ's index powers features like finding all usages across your entire codebase, understanding class hierarchies, and detecting dead code. Zed delegates this work to language servers, which may not analyze at the same depth.
143
144**How to adapt:**
145
146- For project-wide symbol search, use `Cmd+O` / Go to Symbol (relies on your language server)
147- For finding files by name, use `Cmd+Shift+O` / Go to File
148- For text search across files, use `Cmd+Shift+F`—this is fast even on large codebases
149- If you need deep static analysis for JVM code, consider running IntelliJ's inspections as a separate step or using standalone tools like Checkstyle, PMD, or SpotBugs
150
151### LSP vs. Native Language Intelligence
152
153IntelliJ has its own language analysis engine built from scratch for each supported language. For Java, Kotlin, and other JVM languages, this engine understands your code thoroughly: it resolves types, tracks data flow, knows about framework annotations, and offers dozens of specialized refactorings.
154
155Zed uses the Language Server Protocol (LSP) for code intelligence. Each language has its own server: `jdtls` for Java, `rust-analyzer` for Rust, and so on.
156
157For some languages, the LSP experience is excellent. TypeScript, Rust, and Go have mature language servers that provide fast, accurate completions, diagnostics, and refactorings. For JVM languages, the gap might be more noticeable. The Eclipse-based Java language server is capable, but it won't match IntelliJ's depth for things like:
158
159- Spring and Jakarta EE annotation processing
160- Complex refactorings (extract interface, pull members up, change signature with all callers)
161- Framework-aware inspections
162- Automatic import optimization with custom ordering rules
163
164**How to adapt:**
165
166- Use `Alt+Enter` for available code actions—the list will vary by language server
167- For Java, ensure `jdtls` is properly configured with your JDK path in settings
168
169### No Project Model
170
171IntelliJ manages projects through `.idea` folders containing XML configuration files, `.iml` module definitions, SDK assignments, and run configurations. This model enables IntelliJ to understand multi-module projects, manage dependencies automatically, and persist complex run/debug setups.
172
173Zed has no project model. A project is a folder. There's no wizard, no SDK selection screen, no module configuration.
174
175This means:
176
177- Build commands are manual. Zed doesn't detect Maven or Gradle projects.
178- Run configurations don't exist. You define tasks or use the terminal.
179- SDK management is external. Your language server uses whatever JDK is on your PATH.
180- There are no module boundaries. Zed sees folders, not project structure.
181
182**How to adapt:**
183
184- Create a `.zed/settings.json` in your project root for project-specific settings
185- Define common commands in `tasks.json` (open via Command Palette: `zed: open tasks`):
186
187```json
188[
189  {
190    "label": "build",
191    "command": "./gradlew build"
192  },
193  {
194    "label": "run",
195    "command": "./gradlew bootRun"
196  },
197  {
198    "label": "test current file",
199    "command": "./gradlew test --tests $ZED_STEM"
200  }
201]
202```
203
204- Use `Ctrl+Alt+R` to run tasks quickly
205- Lean on your terminal (`Alt+F12`) for anything tasks don't cover
206- For multi-module projects, you can open each module as a separate Zed window, or open the root and navigate via file finder
207
208### No Framework Integration
209
210IntelliJ's value for enterprise Java development comes largely from its framework integration. Spring beans are understood and navigable. JPA entities get special treatment. Endpoints are indexed and searchable. Jakarta EE annotations modify how the IDE analyzes your code.
211
212Zed has none of this. The language server sees Java code as Java code, so it doesn't understand that `@Autowired` means something special or that this class is a REST controller.
213
214Similarly for other stacks: no Rails integration, no Django awareness, no Angular/React-specific tooling beyond what the TypeScript language server provides.
215
216**How to adapt:**
217
218- Use grep and file search liberally. `Cmd+Shift+F` with a regex can find endpoint definitions, bean names, or annotation usages.
219- Rely on your language server's "find references" (`Alt+F7`) for navigation—it works, just without framework context
220- For Spring Boot, keep the Actuator endpoints or a separate tool for understanding bean wiring
221- Consider using framework-specific CLI tools (Spring CLI, Rails generators) from Zed's terminal
222
223> **Tip:** For database work, pick up a dedicated tool like DataGrip, DBeaver, or TablePlus. Many developers who switch to Zed keep DataGrip around specifically for SQL—it integrates well with your existing JetBrains license.
224
225If your daily work depends heavily on framework-aware navigation and refactoring, you'll feel the gap. Zed works best when you're comfortable navigating code through search rather than specialized tooling, or when your language has strong LSP support that covers most of what you need.
226
227### Tool Windows vs. Docks
228
229IntelliJ organizes auxiliary views into numbered tool windows (Project = 1, Git = 9, Terminal = Alt+F12, etc.). Zed uses a similar concept called "docks":
230
231| IntelliJ Tool Window | Zed Equivalent | Shortcut (JetBrains keymap) |
232| -------------------- | -------------- | --------------------------- |
233| Project (1)          | Project Panel  | `Cmd + 1`                   |
234| Git (9 or Cmd+0)     | Git Panel      | `Cmd + 0`                   |
235| Terminal (Alt+F12)   | Terminal Panel | `Alt + F12`                 |
236| Structure (7)        | Outline Panel  | `Cmd + 7`                   |
237| Problems (6)         | Diagnostics    | `Cmd + 6`                   |
238| Debug (5)            | Debug Panel    | `Cmd + 5`                   |
239
240Zed has three dock positions: left, bottom, and right. Panels can be moved between docks by dragging or through settings.
241
242> **Tip:** IntelliJ has an "Override IDE shortcuts" setting that lets terminal shortcuts like `Ctrl+Left/Right` work normally. In Zed, terminal keybindings are separate—check your keymap if familiar shortcuts aren't working in the terminal panel.
243
244### Debugging
245
246Both IntelliJ and Zed offer integrated debugging, but the experience differs:
247
248- Zed's debugger uses the Debug Adapter Protocol (DAP), supporting multiple languages
249- Set breakpoints with `Ctrl+F8`
250- Start debugging with `Alt+Shift+F9`
251- Step through code with `F7` (step into), `F8` (step over), `Shift+F8` (step out)
252- Continue execution with `F9`
253
254The Debug Panel (`Cmd+5`) shows variables, call stack, and breakpoints—similar to IntelliJ's Debug tool window.
255
256### Extensions vs. Plugins
257
258IntelliJ has a large plugin catalog covering everything from language support to database tools to deployment integrations.
259
260Zed's extension catalog is smaller and more focused:
261
262- Language support and syntax highlighting
263- Themes
264- Slash commands for AI
265- Context servers
266
267Several features that require plugins in other editors are built into Zed:
268
269- Real-time collaboration with voice chat
270- AI coding assistance
271- Built-in terminal
272- Task runner
273- LSP-based code intelligence
274
275You won't find one-to-one replacements for every IntelliJ plugin, especially for framework-specific tools, database clients, or application server integrations. For those workflows, you may need to use external tools alongside Zed.
276
277## Collaboration in Zed vs. IntelliJ
278
279IntelliJ offers Code With Me as a separate plugin for collaboration. Zed has collaboration built into the core experience.
280
281- Open the Collab Panel in the left dock
282- Create a channel and [invite your collaborators](https://zed.dev/docs/collaboration#inviting-a-collaborator) to join
283- [Share your screen or your codebase](https://zed.dev/docs/collaboration#share-a-project) directly
284
285Once connected, you'll see each other's cursors, selections, and edits in real time. Voice chat is included. There's no need for separate tools or third-party logins.
286
287## Using AI in Zed
288
289If you're used to AI assistants in IntelliJ (like GitHub Copilot or JetBrains AI), Zed offers similar capabilities with more flexibility.
290
291### Configuring GitHub Copilot
292
2931. Open Settings with `Cmd+,` (macOS) or `Ctrl+,` (Linux/Windows)
2942. Navigate to **AI → Edit Predictions**
2953. Click **Configure** next to "Configure Providers"
2964. Under **GitHub Copilot**, click **Sign in to GitHub**
297
298Once signed in, just start typing. Zed will offer suggestions inline for you to accept.
299
300### Additional AI Options
301
302To use other AI models in Zed, you have several options:
303
304- Use Zed's hosted models, with higher rate limits. Requires [authentication](https://zed.dev/docs/authentication) and subscription to [Zed Pro](https://zed.dev/docs/ai/subscription.html).
305- Bring your own [API keys](https://zed.dev/docs/ai/llm-providers.html), no authentication needed
306- Use [external agents like Claude Agent](https://zed.dev/docs/ai/external-agents.html)
307
308## Advanced Config and Productivity Tweaks
309
310Zed exposes advanced settings for power users who want to fine-tune their environment.
311
312Here are a few useful tweaks:
313
314**Format on Save:**
315
316```json
317"format_on_save": "on"
318```
319
320**Enable direnv support:**
321
322```json
323"load_direnv": "shell_hook"
324```
325
326**Configure language servers** (requires manual JSON editing): For Java development, you may want to configure the Java language server in your settings:
327
328```json
329{
330  "lsp": {
331    "jdtls": {
332      "settings": {
333        "java_home": "/path/to/jdk"
334      }
335    }
336  }
337}
338```
339
340## Next Steps
341
342Now that you're set up, here are some resources to help you get the most out of Zed:
343
344- [All Settings](../reference/all-settings.md) — Customize settings, themes, and editor behavior
345- [Key Bindings](../key-bindings.md) — Learn how to customize and extend your keymap
346- [Tasks](../tasks.md) — Set up build and run commands for your projects
347- [AI Features](../ai/overview.md) — Explore Zed's AI capabilities beyond code completion
348- [Collaboration](../collaboration/overview.md) — Share your projects and code together in real time
349- [Languages](../languages.md) — Language-specific setup guides, including Java and Kotlin