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