Keyboard Shortcuts

Master Zed's keyboard shortcuts to boost productivity

Introduction to Zed Shortcuts

Keyboard shortcuts are at the heart of an efficient workflow in Zed. The binding system is fully customizable: rebind any action, create key sequences, and define context-specific shortcuts.

If you are used to another editor, set base_keymap in Settings or settings.json (or run zed: toggle base keymap selector). Supported base keymaps:

  • Zed (default)
  • VS Code
  • Atom
  • Emacs (Beta)
  • JetBrains
  • Sublime Text
  • TextMate
  • Cursor
  • None — disables all key bindings

You can also enable vim_mode or helix_mode for modal editing on top of your base keymap. See Zed’s Vim and Helix docs for mode-specific contexts.

Tables below list default-style Zed shortcuts for macOS and Linux/Windows. A different base_keymap may change some bindings — check the Keymap Editor for your setup.

Shortcut Notation

Throughout this guide:

  • — Command (macOS) / often mapped as the platform modifier
  • Ctrl — Control
  • Alt / — Option / Alt
  • Shift — Shift

Chord sequences are written as “press A, then B” (for example CtrlG then D). In keymap.json, sequences are space-separated: "cmd-k cmd-s".

Customizing Keyboard Shortcuts

Customize shortcuts with the Keymap Editor UI or by editing keymap.json directly.

Keymap Editor

Open the Keymap Editor to browse every action and its binding, then change or add shortcuts with the pencil icon, double-click, or Enter:

Action macOS Linux / Windows
Open Keymap Editor K then S CtrlK then CtrlS
Open Settings , Ctrl,

You can also run zed: open keymap from the Command Palette. Changes in the editor are written to your user keymap file.

Keymap Editor

Keymap File Locations

  • macOS / Linux: ~/.config/zed/keymap.json
  • Windows: %APPDATA%\Zed\keymap.json

Open it with zed: open keymap file from the Command Palette.

Changing the Base Keymap

  1. Open Settings

    Use the Settings shortcut, or open settings.json with zed: open settings.

  2. Set base_keymap

    Choose a preset (Zed, VS Code, Atom, Emacs, JetBrains, Sublime Text, TextMate, Cursor, or None), or set "base_keymap": "VSCode" (and similar) in JSON.

  3. Optional: Modal Editing

    Enable "vim_mode": true or "helix_mode": true if you want modal bindings.

Custom Bindings and Contexts

The keymap file is a JSON array of objects with a bindings map. Omit context for global bindings; set it to limit when a binding is active. Contexts form a tree (for example WorkspacePaneEditor). Debug the active tree with dev: open key context view.

json
[ { "bindings": { "ctrl-right": "editor::SelectLargerSyntaxNode", "ctrl-left": "editor::SelectSmallerSyntaxNode" } }, { "context": "ProjectPanel && not_editing", "bindings": { "o": "project_panel::Open" } } ]

User keymaps load after built-ins, so later bindings at the same context level win. More specific (deeper) contexts beat broader ones. Default keymaps for each OS live in the Zed repository under assets/keymaps/.

Disabling Bindings and SendKeystrokes

Set an action to null to disable a binding in a given context:

json
[ { "context": "Workspace", "bindings": { "cmd-r": null } } ]

To replay a sequence of keys from one shortcut, use workspace::SendKeystrokes (for example map a chord to several arrow presses, or "j k" → Escape in Vim insert mode). Prefer it for short synchronous sequences; async UI (opening palettes, network) will not finish mid-sequence.

Essential Shortcuts Reference

Dual-platform reference for the shortcuts you will use most often.

Command Palette & Settings

Action macOS Linux / Windows
Command Palette ShiftP CtrlShiftP
File finder P CtrlP
Settings , Ctrl,
Keymap Editor K S CtrlK CtrlS
Extensions gallery ShiftX CtrlShiftX

Files & Tabs

Action macOS Linux / Windows
Save S CtrlS
Close tab W CtrlW
New file N CtrlN
Open recent / project Command Palette → search “recent” or “project”

Editing

Action macOS Linux / Windows
Undo / Redo Z / ShiftZ CtrlZ / CtrlShiftZ
Cut / Copy / Paste X / C / V CtrlX / C / V
Select next occurrence D CtrlD
Delete line ShiftK CtrlShiftK
Move line up / down / Alt / Alt
Toggle line comment / Ctrl/
Format document Command Palette → “format” (bind your preferred action in keymap.json)

Navigation & Search

Action macOS Linux / Windows
Find in file F CtrlF
Find in project ShiftF CtrlShiftF
Go to line G CtrlG
Go to symbol in file ShiftO CtrlShiftO
Select larger / smaller syntax node Often Ctrl / Ctrl (confirm in Keymap Editor)

Panels & Layout

Action macOS Linux / Windows
Toggle left dock / project panel B or Command Palette CtrlB or Command Palette
Toggle terminal Ctrl` Ctrl`
Git Panel focus Command Palette → git panel: toggle focus
Split editor Command Palette → “split” (vertical / horizontal)

Git

Action macOS Linux / Windows
Project Diff CtrlG then D CtrlG then D
Commit Enter CtrlEnter
Push / Pull CtrlG / CtrlG /
Fetch CtrlG CtrlG CtrlG CtrlG
Generate commit message AltTab AltL

AI — Agent Panel

Action macOS Linux / Windows
Toggle Agent Panel ShiftA CtrlShiftA

Agent and inline-assist shortcuts can vary with settings and extensions. Search the Keymap Editor for “agent” or “assistant” to see your active bindings.

Terminal

Action macOS Linux / Windows
Toggle terminal Ctrl` Ctrl`
New terminal Command Palette → “terminal: new”
Forward keys to terminal (Linux/Windows tip) In keymap, context Terminal, bind e.g. "ctrl-n": ["terminal::SendKeystroke", "ctrl-n"]

Categories of Shortcuts (Deeper Dive)

Beyond the essentials, group your learning by workflow. Revisit each category until the chords feel automatic.

Editor Navigation

Action macOS Linux / Windows
Move by word / Ctrl / (layout-dependent)
Line start / end / Home / End
Document start / end / CtrlHome / End

Multi-cursor & Selection

Action macOS Linux / Windows
Add cursor above / below / CtrlAlt /
Select all occurrences ShiftL CtrlShiftL
Expand / shrink syntax selection Bind or use base-keymap defaults for editor::SelectLargerSyntaxNode / SelectSmallerSyntaxNode

Print or bookmark the Essential Shortcuts tables and practice five chords a day. Use the Keymap Editor’s search to discover actions you did not know existed.

Quick Reference Card

A compact card of high-frequency actions:

Essential Shortcuts at a Glance

Category Action macOS Linux / Windows
General Command Palette ShiftP CtrlShiftP
File finder P CtrlP
Agent Panel ShiftA CtrlShiftA
Editing Multi-cursor next match D CtrlD
Comment line / Ctrl/
Git / AI Project Diff CtrlG D CtrlG D
Terminal Ctrl` Ctrl`

You've Completed Zed 101

Congratulations — you’ve finished the Zed 101 tutorial series. You covered getting started, the interface, editing, navigation, collaboration, the terminal, Git, extensions, and keyboard shortcuts.

Recommended next steps:

  • Practice the dual-platform shortcuts you use every day until they are muscle memory
  • Set a base_keymap that matches your previous editor, then customize from there
  • Install language, theme, and MCP extensions you need from the gallery
  • Join the Zed Discord and read the official docs

Or return to the home page to browse the full tutorial list.