Finding and Navigating Code - Zed
Navigate your codebase in Zed with file finder, project search, go to definition, symbol search, and the command palette.
Zed provides several ways to move around your codebase quickly. Here's an overview of the main navigation tools.
Command Palette
The Command Palette (command_palette::Toggle) is your gateway to almost everything in Zed. Type a few characters to filter commands, then press Enter to execute.
Learn more about the Command Palette →
Project Panel
The Project Panel (project_panel::ToggleFocus) shows a tree view of your workspace's files and directories. Browse, create, rename, move, and delete files without leaving the editor. It also surfaces git status and diagnostics at a glance.
Learn more about the Project Panel →
File Finder
Open any file in your project with file_finder::Toggle. Type part of the filename or path to narrow results.
Text Finder
Quickly find any string in your project and open the file with project_search::OpenTextFinder. Changed your mind and want a more detailed search with extra filters? Move to the project search using the button in the Actions menu in the right bottom corner.
Project Search
Search across all files with pane::DeploySearch. Type the query in the search field, then press Enter to run the search.
Results appear in a multibuffer, letting you edit matches in place.
Go to Definition
Jump to where a symbol is defined with editor::GoToDefinition (or Cmd+Click / Ctrl+Click). If there are multiple definitions, they open in a multibuffer.
Go to Symbol
- Current file:
outline::Toggleopens an outline of symbols in the active file - Entire project:
project_symbols::Togglesearches symbols across all files
Call Hierarchy
With the cursor on a function, call_hierarchy::ShowIncomingCalls (call_hierarchy::ShowIncomingCalls) lists the functions that call it, and call_hierarchy::ShowOutgoingCalls lists the functions it calls.
Both open a picker; selecting an entry jumps to the call site, and the secondary confirm opens it in an adjacent pane.
While the picker is open, call_hierarchy::ToggleDirection switches between callers and callees, menu::SelectChild re-roots the hierarchy at the selected function to explore one level deeper, and menu::SelectParent steps back up; the picker's footer shows the corresponding key bindings.
Both actions are also available in the editor's right-click menu.
The modal's width can be changed via the call_hierarchy.modal_max_width setting.
This requires the language server to support call hierarchy.
Outline Panel
The Outline Panel (outline_panel::ToggleFocus) shows a persistent tree view of symbols in the current file. It's especially useful with multibuffers for navigating search results or diagnostics.
Learn more about the Outline Panel →
Tab Switcher
Quickly switch between open tabs with tab_switcher::Toggle. Tabs are sorted by recent use—keep holding Ctrl and press Tab to cycle through them.
Learn more about the Tab Switcher →
Quick Reference
| Task | Keybinding |
|---|---|
| Command Palette | command_palette::Toggle |
| Open file | file_finder::Toggle |
| Project search | pane::DeploySearch |
| Text search picker | project_search::OpenTextFinder |
| Go to definition | editor::GoToDefinition |
| Find references | editor::FindAllReferences |
| Symbol in file | outline::Toggle |
| Symbol in project | project_symbols::Toggle |
| Outline Panel | outline_panel::ToggleFocus |
| Tab Switcher | tab_switcher::Toggle |
| Project Panel | project_panel::ToggleFocus |