Navigation in Zed
Move through your code and projects with speed and precision
Efficient Navigation Principles
Fast, precise navigation is one of Zed's core strengths. Zed combines traditional navigation with search-first pickers, language-server intelligence, and multibuffer results so you can move through a codebase without leaving the keyboard:
- Speed: Instant pickers and panels with minimal latency
- Context awareness: Jump between definitions, references, and related symbols
- Search-driven: Find files, text, or symbols with a few keystrokes
- Memory: Navigate back and forth through your location history
Most developers spend more time navigating code than writing it. Mastering navigation in Zed will dramatically boost your productivity on macOS, Linux, and Windows.
Quick Reference
These are the primary navigation shortcuts from Zed's official docs:
| Action | macOS | Linux/Windows |
|---|---|---|
| Command Palette | ⌘ShiftP | CtrlShiftP |
| Open file | ⌘P | CtrlP |
| Project search | ⌘ShiftF | CtrlShiftF |
| Text search picker | ⌥⌘F | CtrlAltF |
| Go to definition | F12 | F12 |
| Find references | ⌥ShiftF12 | AltShiftF12 |
| Symbol in file | ⌘ShiftO | CtrlShiftO |
| Symbol in project | ⌘T | CtrlT |
| Outline Panel | ⌘ShiftB | CtrlShiftB |
| Tab Switcher | CtrlTab | CtrlTab |
| Project Panel | ⌘ShiftE | CtrlShiftE |
File Navigation
Fuzzy File Finder
The quickest way to open files is with the file finder:
| Action | macOS | Linux/Windows |
|---|---|---|
| Open file finder | ⌘P | CtrlP |
- Type part of the filename or path to filter results
- Results update instantly as you type
- Use arrow keys to navigate results and Enter to open a file
The fuzzy finder prioritizes matches based on your typing pattern. For example, typing
mdl might match model.js even though letters are skipped.
Recently Used Tabs
Jump between recently used open tabs with the Tab Switcher:
| Action | macOS | Linux/Windows |
|---|---|---|
| Tab Switcher | CtrlTab | CtrlTab |
Tabs are sorted by recent use. Keep holding Ctrl and press Tab again to cycle through them.
Project Panel Navigation
The Project Panel shows a tree of your workspace files and folders. It also surfaces git status and diagnostics at a glance:
| Action | macOS | Linux/Windows |
|---|---|---|
| Toggle Project Panel | ⌘ShiftE | CtrlShiftE |
- Use arrow keys to navigate the file tree
- Press Enter to open a file
- Browse, create, rename, move, and delete files without leaving the editor
Code Navigation
Basic Movement
- Line navigation: Home / End to jump to the start or end of the line
- Word navigation: Option/Alt + arrows to move by word
- Page navigation: Page Up / Page Down
- File extremes: jump to the start or end of the file with your platform's Home/End modifiers
Symbol Navigation
Navigate through code structures with language-server-backed symbol tools:
| Action | macOS | Linux/Windows |
|---|---|---|
| Symbol in current file | ⌘ShiftO | CtrlShiftO |
| Symbol in project | ⌘T | CtrlT |
| Go to definition | F12 or ⌘Click | F12 or CtrlClick |
| Find references | ⌥ShiftF12 | AltShiftF12 |
Symbol navigation is powered by Zed's language servers, which parse and index your codebase to provide semantic understanding. If multiple definitions exist, they open in a multibuffer.
Outline Panel & Tab Switcher
Outline Panel
The Outline Panel shows a persistent tree of symbols in the current file. It is especially useful with multibuffers when navigating search results or diagnostics.
| Action | macOS | Linux/Windows |
|---|---|---|
| Toggle Outline Panel | ⌘ShiftB | CtrlShiftB |
- Keep the outline visible while you edit
- Jump to a function, class, or heading by clicking it
- Use it as a map through large files and multibuffer result sets
Tab Switcher
The Tab Switcher is the fastest way to bounce between recently used editors without hunting through the tab bar. Press CtrlTab on every platform, then keep cycling while Ctrl is held.
Prefer the Tab Switcher for recent context switching, and the file finder (⌘P / CtrlP when you need a file that is not already open.
Smart Navigation
Jump to Line
- Open the go-to-line dialog from the Command Palette, or use your configured go-to-line binding
- Enter the line number and press Enter
- Many file finders also accept
filename:linestyle jumps when opening a path
Bracket Matching
- Jump between matching brackets with the Command Palette action for matching bracket navigation
- Combine with expand-selection editing commands when you need to select the whole block
Problem Navigation
- Next problem: F8 jumps to the next error or warning
- Previous problem: ShiftF8 jumps to the previous error or warning
- Use the Outline Panel and diagnostics multibuffers for a broader view of issues
Navigation History
Zed keeps track of your navigation positions so you can return after a definition jump or search:
- Go Back: return to the previous location after jumping elsewhere
- Go Forward: move forward again through the history stack
- Use these after F12 or project search so you never lose your place
Search-Based Navigation
Find in File
- Press ⌘F (macOS) or CtrlF (Linux/Windows) to search within the current file
- Step through matches with the find next / previous controls
- Toggle case sensitivity, whole word, and regex as needed
Text Finder
The Text Finder is a quick picker for finding a string and opening the matching file without opening the full project search UI first:
| Action | macOS | Linux/Windows |
|---|---|---|
| Text search picker | ⌥⌘F | CtrlAltF |
Need extra filters afterward? Move into project search from the Actions menu in the picker's bottom-right corner.
Find in Project
| Action | macOS | Linux/Windows |
|---|---|---|
| Project search | ⌘ShiftF | CtrlShiftF |
- Type the query, then press Enter to run the search
- Results appear in a multibuffer, so you can review and edit matches in place
- Click a result excerpt to jump to that location, or edit directly in the multibuffer
Toggle regex in the search UI for powerful pattern matching across your codebase. Pair project search with the Outline Panel to move quickly between match groups in a multibuffer.
Multi-File Navigation
Split Editors
Navigate between multiple editor panes when you need reference and implementation side by side:
- Create splits: use the Command Palette or split actions to create vertical or horizontal panes
- Focus next editor: move focus between panes without reaching for the mouse
- Independent following: in collaboration sessions, each pane can follow a different person
Tab Navigation
- Tab Switcher: CtrlTab for recent tabs
- Adjacent tabs: use next/previous tab bindings to walk the tab bar in order
- File finder: open another file into the current pane without closing what you already have
Multibuffer Search Results
Project search, references, and multi-definition jumps often open as multibuffers. Treat them as navigable documents:
- Scroll through excerpts from many files in one view
- Edit matches in place, then save
- Use the Outline Panel to jump between excerpts and symbols inside the multibuffer
Navigation Workflow Examples
Example 1: Finding a Function Implementation
-
Find the function call
Use project search (⌘ShiftF / CtrlShiftF or the Text Finder to locate the call site.
-
Jump to the definition
Position the cursor on the symbol and press F12. If there are multiple definitions, review them in the multibuffer.
-
Inspect references
Press ⌥ShiftF12 / AltShiftF12 to open every usage, then return through navigation history when finished.
Example 2: Exploring an Unfamiliar Codebase
-
Start with entry points
Open main files (
main.rs,index.ts,app.py, and so on) with ⌘P / CtrlP. -
View file symbols
Press ⌘ShiftO / CtrlShiftO for an outline of the current file, or keep the Outline Panel open with ⌘ShiftB / CtrlShiftB.
-
Search for key concepts
Use project search for important terms, then edit or browse the resulting multibuffer while the Project Panel shows surrounding structure.
Create a split view to keep a reference file visible while navigating related code in another pane. Use CtrlTab to bounce back to the files you touched most recently.
What's Next?
Now that you've mastered navigation in Zed, you're ready to learn how to collaborate with others in real time—one of Zed's most powerful features.