Zed keyboard shortcuts
Zed is a fast code editor built for working with teammates and AI agents in the same window. Its default keys open files and pickers, edit and search code, run the agent panel, and drive the terminal and Git.
Windows, macOS, Linux · 186 shortcutsWorkspace and navigation
Open projects, move around the main regions, manage files and panels, and reach Zed's command-driven controls.
| Action | Shortcuts |
|---|---|
| Close the current window | Windows / LinuxCtrl + Shift + W macOSCmd + Shift + W |
| Toggle workspace zoom | Windows / macOS / LinuxShift + Esc |
| Open files or a project | Windows / LinuxCtrl + O macOSCmd + O |
| Open a projectTwo-stroke chord. | Windows / LinuxCtrl + K then Ctrl + O macOSCmd + K then Cmd + O |
| Increase the buffer font size | WindowsCtrl + =orCtrl + Shift + = macOSCmd + = LinuxCtrl + = |
| Decrease the buffer font size | Windows / LinuxCtrl + - macOSCmd + - |
| Reset the buffer font size | Windows / LinuxCtrl + 0 macOSCmd + 0 |
| Open the settings file | Windows / LinuxCtrl + Alt + , macOSCmd + Alt + , |
| Quit Zed | Windows / LinuxCtrl + Q macOSCmd + Q |
| Start the debugger | Windows / macOS / LinuxF4 |
| Rate edit predictionsThe current Windows default keymap does not assign this action a default key. | WindowsNot documented macOSCtrl + Cmd + Z LinuxCtrl + Alt + Z |
| Open the edit prediction menu | WindowsCtrl + Shift + I macOSCtrl + Cmd + I LinuxCtrl + Alt + Shift + I |
| Open the language-server menu | WindowsShift + Alt + L macOSCtrl + Cmd + L LinuxCtrl + Alt + L |
| Display names for multiple cursorsNo Linux default is assigned in the current keymap. | WindowsCtrl + Shift + Alt + C macOSCtrl + Cmd + C LinuxNot documented |
| Toggle worktree security | WindowsCtrl + Shift + Alt + S macOSCtrl + Cmd + S LinuxCtrl + Alt + Shift + S |
| Focus the next major workspace region | Windows / macOS / LinuxF6 |
| Focus the previous major workspace region | Windows / macOS / LinuxShift + F6 |
| Focus the next region without using plain F6Useful while a debugger has taken over F6. | Windows / LinuxCtrl + F6 macOSCmd + F6 |
| Toggle fullscreen | Windows / LinuxF11 macOSFn + ForCtrl + Cmd + F |
| Open a recent project | Windows / macOS / LinuxCtrl + R |
| Open a recent branch | WindowsShift + Alt + B macOSCmd + Ctrl + B LinuxCtrl + Alt + Shift + B |
| Open the worktree picker | WindowsShift + Alt + W macOSCmd + Ctrl + W LinuxCtrl + Alt + Shift + W |
| Run the action from a toast | Windows / macOS / LinuxAlt + Shift + Enter |
| Save the current buffer | Windows / LinuxCtrl + S macOSCmd + S |
| Save without formattingTwo-stroke chord. | WindowsCtrl + K then Ctrl + Shift + S macOSCmd + K then S LinuxCtrl + K then S |
| Save as | Windows / LinuxCtrl + Shift + S macOSCmd + Shift + S |
| Create a new file | Windows / LinuxCtrl + N macOSCmd + N |
| Create a new window | Windows / LinuxCtrl + Shift + N macOSCmd + Shift + N |
Panels, pickers, and tabs
Reach the command palette, file and symbol pickers, search panels, docks, tabs, and project navigation without leaving the keyboard.
| Action | Shortcuts |
|---|---|
| Open the command palette | Windows / LinuxF1orCtrl + Shift + P macOSCmd + Shift + P |
| Open the file finder | Windows / LinuxCtrl + PorCtrl + E macOSCmd + P |
| Search symbols across the project | Windows / LinuxCtrl + T macOSCmd + T |
| Open project-wide search | Windows / LinuxCtrl + Shift + F macOSCmd + Shift + F |
| Open project search with replace | Windows / LinuxCtrl + Shift + H macOSCmd + Shift + H |
| Reopen the last closed item | Windows / LinuxCtrl + Shift + T macOSCmd + Shift + T |
| Open the keymap editorTwo-stroke chord. | Windows / LinuxCtrl + K then Ctrl + S macOSCmd + K then Cmd + S |
| Open the theme selectorTwo-stroke chord. | Windows / LinuxCtrl + K then Ctrl + T macOSCmd + K then Cmd + T |
| Toggle light or dark modeTwo-stroke chord. | Windows / LinuxCtrl + K then Ctrl + Shift + T macOSCmd + K then Cmd + Shift + T |
| Focus the project panel | Windows / LinuxCtrl + Shift + E macOSCmd + Shift + E |
| Focus the outline panel | Windows / LinuxCtrl + Shift + B macOSCmd + Shift + B |
| Open diagnostics | Windows / LinuxCtrl + Shift + M macOSCmd + Shift + M |
| Focus the Git panel | Windows / macOS / LinuxCtrl + Shift + G |
| Focus the debugger panel | Windows / LinuxCtrl + Shift + D macOSCmd + Shift + D |
| Focus the agent panel | WindowsCtrl + Shift + / macOSCmd + ? LinuxCtrl + ? |
| Toggle the left dock | Windows / LinuxCtrl + B macOSCmd + B |
| Toggle the right dock | Windows / LinuxCtrl + Alt + B macOSCmd + Alt + B |
| Toggle the bottom dock | Windows / LinuxCtrl + J macOSCmd + J |
| Toggle the workspace sidebar | Windows / LinuxCtrl + Alt + J macOSCmd + Alt + J |
| Toggle all docks | WindowsCtrl + Shift + Y macOSCmd + Alt + Y LinuxCtrl + Alt + Y |
| Open the tab switcher | Windows / macOS / LinuxCtrl + Tab |
| Activate the previous tabThe tab switcher also supports Ctrl+Shift+Tab. | Windows / LinuxCtrl + PageUp macOSAlt + Cmd + Left |
| Activate the next tab | Windows / LinuxCtrl + PageDown macOSAlt + Cmd + Right |
| Activate an item by number in the focused paneUse the corresponding number through 9; 0 activates the last item. | Windows / LinuxAlt + 1 macOSCtrl + 1 |
| Close the active tab or itemCtrl+F4 also closes the active item on Windows and Linux. | Windows / LinuxCtrl + W macOSCmd + W |
| Toggle pin for the active tabTwo-stroke chord. | Windows / LinuxCtrl + K then Shift + Enter macOSCmd + K then Shift + Enter |
| Focus a pane in a directionUse Left, Up, or Down for the other directions. | Windows / LinuxCtrl + K then Ctrl + Right macOSCmd + K then Cmd + Right |
| Swap the pane in a directionUse Left, Up, or Down for the other directions. | Windows / LinuxCtrl + K then Shift + Right macOSCmd + K then Shift + Right |
Editor editing
Move through text, select and change code, format buffers, and use Zed's editor-specific commands in the current file.
| Action | Shortcuts |
|---|---|
| Cancel the current editor action | Windows / macOS / LinuxEsc |
| Delete the previous character | Windows / macOS / LinuxBackspace |
| Delete the next character | Windows / macOS / LinuxDelete |
| Indent or accept the current completion | Windows / macOS / LinuxTab |
| Outdent or move to the previous completion | Windows / macOS / LinuxShift + Tab |
| Rewrap the current paragraphTwo-stroke chord. | Windows / LinuxCtrl + K then Ctrl + QorCtrl + K then Q macOSCmd + K then Cmd + QorCmd + K then Q |
| Delete to the previous wordCtrl+W is an additional macOS default. | Windows / LinuxCtrl + Backspace macOSAlt + Backspace |
| Delete to the next word | Windows / LinuxCtrl + Delete macOSAlt + Delete |
| Delete to the start of the lineThe current macOS editor keymap assigns this binding; Linux and Windows do not assign a default editor binding. | Windows / LinuxNot documented macOSCmd + Backspace |
| Delete to the end of the lineThe current macOS editor keymap assigns this binding; Linux and Windows do not assign a default editor binding. | Windows / LinuxNot documented macOSCmd + Delete |
| Cut | Windows / LinuxCtrl + X macOSCmd + X |
| Copy | Windows / LinuxCtrl + C macOSCmd + C |
| Paste | Windows / LinuxCtrl + V macOSCmd + V |
| Undo | Windows / LinuxCtrl + Z macOSCmd + Z |
| Redo | Windows / LinuxCtrl + YorCtrl + Shift + Z macOSCmd + Shift + Z |
| Move one characterRight, Up, and Down perform the corresponding movement. | Windows / macOS / LinuxLeft |
| Move one lineDown performs the corresponding movement. | Windows / macOS / LinuxUp |
| Move by wordUse Right for the next word. | Windows / LinuxCtrl + Left macOSAlt + Left |
| Move to the start of the lineCmd+Left is the macOS logical-line variant. | Windows / macOS / LinuxHome |
| Move to the end of the lineCmd+Right is the macOS logical-line variant. | Windows / macOS / LinuxEnd |
| Move to the start of the buffer | Windows / LinuxCtrl + Home macOSCmd + Up |
| Move to the end of the buffer | Windows / LinuxCtrl + End macOSCmd + Down |
| Select all text | Windows / LinuxCtrl + A macOSCmd + A |
| Select the current line | Windows / LinuxCtrl + L macOSCmd + L |
| Extend the selection upward | Windows / macOS / LinuxShift + Up |
| Extend the selection downward | Windows / macOS / LinuxShift + Down |
| Indent | Windows / LinuxCtrl + ] macOSCmd + ] |
| Outdent | Windows / LinuxCtrl + [ macOSCmd + [ |
| Format the current buffer | WindowsShift + Alt + F macOSCmd + Shift + I LinuxCtrl + Shift + I |
| Organize imports | Windows / macOS / LinuxAlt + Shift + O |
| Insert a new line below | Windows / LinuxCtrl + Enter macOSCmd + Enter |
| Insert a new line above | Windows / LinuxCtrl + Shift + Enter macOSCmd + Shift + Enter |
| Toggle soft wrappingTwo-stroke chord. | Windows / LinuxCtrl + K then Ctrl + ZorCtrl + K then Z macOSCmd + K then Z |
| Open the character palette | Windows / LinuxCtrl + Alt + Space macOSCtrl + Cmd + Space |
| Toggle line numbers | Windows / LinuxCtrl + ; macOSCmd + ; |
| Show signature help | Windows / LinuxCtrl + I macOSCmd + I |
| Toggle edit prediction | WindowsCtrl + Alt + E macOSCtrl + Cmd + E LinuxCtrl + Alt + Shift + E |
| Toggle a breakpoint | Windows / macOS / LinuxF9 |
| Edit a log breakpoint | Windows / macOS / LinuxShift + F9 |
| Open the editor context menuThe Menu key is also a default on Windows and Linux. | Windows / macOS / LinuxShift + F10 |
Search, code navigation, and folds
Find text, navigate language-server results, apply quick fixes, comment code, and control folded regions in an editor.
| Action | Shortcuts |
|---|---|
| Find in the current buffer | Windows / LinuxCtrl + F macOSCmd + F |
| Open replace in the current bufferThe current macOS base keymap does not assign Cmd+H because macOS uses it to hide the app; use Cmd+Alt+L to deploy search with selection search there. | Windows / LinuxCtrl + H macOSNot documented |
| Select the next search match | Windows / macOS / LinuxF3 |
| Select the previous search match | Windows / macOS / LinuxShift + F3 |
| Go to a line | Windows / macOS / LinuxCtrl + G |
| Open the text finder | Windows / LinuxCtrl + Alt + F macOSCmd + Alt + F |
| Go to definition | Windows / macOS / LinuxF12 |
| Open the definition in a split | Windows / macOS / LinuxAlt + F12 |
| Go to the type definition | Windows / LinuxCtrl + F12 macOSCmd + F12 |
| Go to implementation | Windows / macOS / LinuxShift + F12 |
| Find all references | Windows / macOS / LinuxAlt + Shift + F12 |
| Rename the symbol | Windows / macOS / LinuxF2 |
| Show hover informationTwo-stroke chord. | Windows / LinuxCtrl + K then Ctrl + I macOSCmd + K then Cmd + I |
| Open code actions | Windows / LinuxCtrl + . macOSCmd + . |
| Toggle line comments | Windows / LinuxCtrl + / macOSCmd + / |
| Toggle block comments | Windows / macOS / LinuxShift + Alt + A |
| Go to the next diagnostic | Windows / macOS / LinuxF8 |
| Go to the previous diagnostic | Windows / macOS / LinuxShift + F8 |
| Fold the current regionThe physical key is layout-dependent; use the corresponding closing bracket to unfold. | WindowsCtrl + Shift + [ macOSAlt + Cmd + [ LinuxCtrl + { |
| Unfold the current region | WindowsCtrl + Shift + ] macOSAlt + Cmd + ] LinuxCtrl + } |
| Toggle the current foldTwo-stroke chord. | Windows / LinuxCtrl + K then Ctrl + L macOSCmd + K then Cmd + L |
| Fold all regionsTwo-stroke chord. | Windows / LinuxCtrl + K then Ctrl + 0 macOSCmd + K then Cmd + 0 |
| Unfold all regionsTwo-stroke chord. | Windows / LinuxCtrl + K then Ctrl + J macOSCmd + K then Cmd + J |
| Reveal the current file in the file managerTwo-stroke chord. | Windows / LinuxCtrl + K then R macOSCmd + K then R |
| Copy the current file pathTwo-stroke chord. | Windows / LinuxCtrl + K then P macOSCmd + K then P |
| Go to the next Git hunkThe current macOS default keymap does not assign a default for this action. | Windows / LinuxAlt + . macOSNot documented |
| Go to the previous Git hunkThe current macOS default keymap does not assign a default for this action. | Windows / LinuxAlt + , macOSNot documented |
Agent panel
Start and steer agent threads, change profiles or modes, review edits, manage permissions, and control queued messages in Zed's agent panel.
| Action | Shortcuts |
|---|---|
| Start a new agent thread | Windows / LinuxCtrl + N macOSCmd + N |
| Open agent settings | WindowsShift + Alt + C macOSCmd + Alt + C LinuxCtrl + Alt + C |
| Open the agent options menu | Windows / LinuxShift + Alt + I macOSCmd + Alt + M |
| Open the new-thread menu | WindowsCtrl + Shift + Alt + N macOSCmd + Alt + Shift + N LinuxCtrl + Alt + Shift + N |
| Open the agent thread switcher | Windows / macOS / LinuxCtrl + Tab |
| Open the thread switcher and select the previous thread | Windows / macOS / LinuxCtrl + Shift + Tab |
| Go back within the agent pane | Windows / macOS / LinuxCtrl + - |
| Manage agent profiles | WindowsShift + Alt + P macOSCmd + Alt + P LinuxCtrl + Alt + P |
| Manage agent skills | WindowsShift + Alt + L macOSCmd + Alt + L LinuxCtrl + Alt + L |
| Toggle the active profile selector | Windows / LinuxCtrl + I macOSCmd + I |
| Cycle the agent mode | Windows / macOS / LinuxShift + Tab |
| Open the model selector | WindowsShift + Alt + / macOSCmd + Alt + / LinuxCtrl + Alt + / |
| Cycle favorite modelsAlt+L is the additional Linux and Windows binding where Alt+Tab is intercepted by the desktop. | Windows / LinuxAlt + TaborAlt + L macOSAlt + Tab |
| Expand the agent message editor | Windows / macOS / LinuxShift + Alt + Esc |
| Add the editor selection to the thread | WindowsCtrl + Shift + . macOSCmd + > LinuxCtrl + > |
| Allow a requested action always | Windows / LinuxShift + Alt + Q macOSCmd + Alt + Y |
| Allow a requested action once | Windows / LinuxShift + Alt + A macOSCmd + Y |
| Open the permission dropdown | Windows / LinuxCtrl + Alt + A macOSCmd + Alt + A |
| Reject a requested action once | Windows / LinuxShift + Alt + X macOSCmd + Alt + Z |
| Open the agent diff | WindowsCtrl + Shift + R macOS / LinuxShift + Ctrl + R |
| Open the Git diff for the agent thread | Windows / LinuxCtrl + Shift + D macOSShift + Ctrl + D |
| Keep all agent edits | Windows / macOS / LinuxShift + Alt + Y |
| Reject all agent edits | Windows / macOS / LinuxShift + Alt + Z |
| Send a message and keep following the agent | Windows / LinuxCtrl + Enter macOSCmd + Enter |
| Send the agent message immediately | Windows / LinuxCtrl + Shift + Enter macOSCmd + Shift + Enter |
| Queue the next agent message | Windows / LinuxCtrl + Shift + Alt + Enter macOSCmd + Shift + Alt + Enter |
| Remove the first queued message | Windows / LinuxCtrl + Shift + Backspace macOSCmd + Shift + Backspace |
| Edit the first queued message | Windows / LinuxCtrl + Alt + E macOSCmd + Ctrl + E |
| Steer the first queued message | Windows / LinuxCtrl + Alt + S macOSCmd + Ctrl + S |
| Clear the agent message queue | Windows / LinuxCtrl + Alt + Backspace macOSCmd + Alt + Backspace |
| Paste raw text into the agent editor | Windows / LinuxCtrl + Shift + V macOSCmd + Shift + V |
| Open the add-context menu | Windows / macOS / LinuxCtrl + ; |
| Toggle agent thinking mode | Windows / LinuxCtrl + Alt + K macOSCmd + Alt + K |
| Open the thinking-effort menu | Windows / LinuxCtrl + Alt + ' macOSCmd + Alt + ' |
| Cycle thinking effort | Windows / macOS / LinuxCtrl + ' |
| Toggle fast mode | Windows / LinuxCtrl + Alt + . macOSCmd + Alt + . |
Terminal and Git
Open and control integrated terminals, then stage, restore, commit, and synchronize changes from the Git panel.
| Action | Shortcuts |
|---|---|
| Toggle the terminal panel | Windows / macOS / LinuxCtrl + ` |
| Open a new terminal | WindowsCtrl + Shift + ` macOS / LinuxCtrl + ~ |
| Copy terminal selection | Windows / LinuxCtrl + Shift + C macOSCmd + C |
| Paste into the terminal | Windows / LinuxCtrl + Shift + V macOSCmd + V |
| Clear the terminal | Windows / LinuxCtrl + Shift + L macOSCmd + K |
| Search terminal output | Windows / LinuxCtrl + Shift + F macOSCmd + F |
| Select all terminal text | Windows / LinuxCtrl + Shift + A macOSCmd + A |
| Scroll terminal output up one page | Windows / macOS / LinuxShift + PageUp |
| Scroll terminal output down one page | Windows / macOS / LinuxShift + PageDown |
| Scroll terminal output to the top | Windows / macOS / LinuxShift + Home |
| Scroll terminal output to the bottom | Windows / macOS / LinuxShift + End |
| Toggle vi-style navigation in the terminal | Windows / macOS / LinuxCtrl + Shift + Space |
| Open the Git panel's Changes tab | Windows / macOS / LinuxCtrl + 1 |
| Open the Git panel's History tab | Windows / macOS / LinuxCtrl + 2 |
| Stage all changes | Windows / LinuxCtrl + Space macOSCmd + Ctrl + Y |
| Unstage all changes | Windows / LinuxCtrl + Shift + Space macOSCmd + Ctrl + Shift + Y |
| Fetch from the remote | Windows / macOS / LinuxCtrl + G then Ctrl + G |
| Push to the remote | Windows / macOS / LinuxCtrl + G then Up |
| Pull from the remote | Windows / macOS / LinuxCtrl + G then Down |
| Pull with rebase | Windows / macOS / LinuxCtrl + G then Shift + Down |
| Force-push to the remote | Windows / macOS / LinuxCtrl + G then Shift + Up |
| Open the Git diff | Windows / macOS / LinuxCtrl + G then D |
| Restore tracked files | Windows / macOS / LinuxCtrl + G then Backspace |
| Trash untracked files | Windows / macOS / LinuxCtrl + G then Shift + Backspace |
| Commit from the Git panel | Windows / LinuxCtrl + Enter macOSCmd + Enter |
| Amend the current commit | Windows / LinuxCtrl + Shift + Enter macOSCmd + Shift + Enter |
| Generate a commit message in the commit editor | Windows / LinuxAlt + L macOSAlt + Tab |
Source
official Zed key bindings and default keymaps · Checked
Defaults from Zed's official per-platform keymap files checked in August 2026. Zed is fully customizable: a selected VS Code, Vim, Helix, or other base keymap, user keymap, extension, terminal context, or language-specific context can change the active binding.