default-key-bindings.md

  1# Default Key Bindings
  2
  3Zed ships with default key bindings optimized for each platform. You can customize these in your [keymap file](../key-bindings.md).
  4
  5## View Default Keymaps
  6
  7The complete default keymaps are maintained in the Zed repository:
  8
  9| Platform | Keymap File |
 10|----------|-------------|
 11| macOS | [default-macos.json](https://github.com/zed-industries/zed/blob/main/assets/keymaps/default-macos.json) |
 12| Windows | [default-windows.json](https://github.com/zed-industries/zed/blob/main/assets/keymaps/default-windows.json) |
 13| Linux | [default-linux.json](https://github.com/zed-industries/zed/blob/main/assets/keymaps/default-linux.json) |
 14
 15## Essential Bindings
 16
 17These are the most commonly used default bindings. Platform-specific keys are shown as `Cmd` (macOS) / `Ctrl` (Linux/Windows).
 18
 19### General
 20
 21| Action | macOS | Linux/Windows |
 22|--------|-------|---------------|
 23| Command palette | `Cmd+Shift+P` | `Ctrl+Shift+P` |
 24| Settings | `Cmd+,` | `Ctrl+,` |
 25| File finder | `Cmd+P` | `Ctrl+P` |
 26| Project search | `Cmd+Shift+F` | `Ctrl+Shift+F` |
 27| Toggle terminal | `` Ctrl+` `` | `` Ctrl+` `` |
 28| Toggle left dock | `Cmd+B` | `Ctrl+B` |
 29
 30### Editing
 31
 32| Action | macOS | Linux/Windows |
 33|--------|-------|---------------|
 34| Cut | `Cmd+X` | `Ctrl+X` |
 35| Copy | `Cmd+C` | `Ctrl+C` |
 36| Paste | `Cmd+V` | `Ctrl+V` |
 37| Undo | `Cmd+Z` | `Ctrl+Z` |
 38| Redo | `Cmd+Shift+Z` | `Ctrl+Shift+Z` |
 39| Save | `Cmd+S` | `Ctrl+S` |
 40| Find in buffer | `Cmd+F` | `Ctrl+F` |
 41| Replace in buffer | `Cmd+Alt+F` | `Ctrl+H` |
 42| Project search with replace | `Cmd+Shift+H` | `Ctrl+Shift+H` |
 43| Comment line | `Cmd+/` | `Ctrl+/` |
 44| Format document | `Cmd+Shift+I` | `Ctrl+Shift+I` |
 45
 46### Navigation
 47
 48| Action | macOS | Linux/Windows |
 49|--------|-------|---------------|
 50| Go to line | `Ctrl+G` | `Ctrl+G` |
 51| Go to definition | `F12` | `F12` |
 52| Go to implementation | `Shift+F12` | `Shift+F12` (Linux), `Ctrl+F12` (Windows) |
 53| Find all references | `Alt+Shift+F12` | `Alt+Shift+F12` (Linux), `Shift+Alt+F12` (Windows) |
 54| Go to symbol in file | `Cmd+Shift+O` | `Ctrl+Shift+O` |
 55| Go back | `Ctrl+-` | `Ctrl+Alt+-` (Linux), `Alt+Left` (Windows) |
 56| Go forward | `Ctrl+_` | `Ctrl+Alt+_` (Linux), `Alt+Right` (Windows) |
 57
 58### Multi-cursor
 59
 60| Action | macOS | Linux/Windows |
 61|--------|-------|---------------|
 62| Add cursor above | `Cmd+Alt+Up` | `Shift+Alt+Up` (Linux), `Ctrl+Alt+Up` (Windows) |
 63| Add cursor below | `Cmd+Alt+Down` | `Shift+Alt+Down` (Linux), `Ctrl+Alt+Down` (Windows) |
 64| Select next occurrence | `Cmd+D` | `Ctrl+D` |
 65| Select all occurrences | `Cmd+Shift+L` | `Ctrl+Shift+L` |
 66
 67### Panels
 68
 69| Action | macOS | Linux/Windows |
 70|--------|-------|---------------|
 71| Project panel | `Cmd+Shift+E` | `Ctrl+Shift+E` |
 72| Outline panel | `Cmd+Shift+B` | `Ctrl+Shift+B` |
 73| Git panel | `Ctrl+Shift+G` | `Ctrl+Shift+G` |
 74| Agent panel | `Cmd+?` | `Ctrl+?` (Linux), `Ctrl+Shift+/` (Windows) |
 75
 76## Predefined Keymaps
 77
 78If you prefer another editor's bindings, open the Settings Editor (`Cmd+,` on macOS, `Ctrl+,` on Linux/Windows) and search for `base_keymap`. Select your preferred keymap from the dropdown.
 79
 80Or add this to your settings.json:
 81
 82```json
 83{
 84  "base_keymap": "VSCode"
 85}
 86```
 87
 88Available options:
 89- `VSCode` (default)
 90- `JetBrains`
 91- `SublimeText`
 92- `Atom`
 93- `TextMate`
 94- `Emacs`
 95- `Cursor`
 96- `None`
 97
 98## See Also
 99
100- [Custom Key Bindings](../key-bindings.md) for creating your own bindings
101- [All Actions](./all-actions.md) for the complete list of bindable actions
102- [Vim Mode](../vim.md) for modal editing