default.json

  1[
  2    // Standard macOS bindings
  3    {
  4        "bindings": {
  5            "up": "menu::SelectPrev",
  6            "ctrl-p": "menu::SelectPrev",
  7            "down": "menu::SelectNext",
  8            "ctrl-n": "menu::SelectNext",
  9            "cmd-up": "menu::SelectFirst",
 10            "cmd-down": "menu::SelectLast",
 11            "enter": "menu::Confirm",
 12            "escape": "menu::Cancel",
 13            "ctrl-c": "menu::Cancel",
 14            "shift-cmd-{": "pane::ActivatePrevItem",
 15            "shift-cmd-}": "pane::ActivateNextItem",
 16            "cmd-w": "pane::CloseActiveItem",
 17            "alt-cmd-w": "pane::CloseInactiveItems",
 18            "cmd-s": "workspace::Save",
 19            "cmd-=": "zed::IncreaseBufferFontSize",
 20            "cmd--": "zed::DecreaseBufferFontSize",
 21            "cmd-,": "zed::OpenSettings"
 22        }
 23    },
 24    {
 25        "context": "Editor",
 26        "bindings": {
 27            "escape": "editor::Cancel",
 28            "backspace": "editor::Backspace",
 29            "ctrl-h": "editor::Backspace",
 30            "delete": "editor::Delete",
 31            "ctrl-d": "editor::Delete",
 32            "tab": "editor::Tab",
 33            "shift-tab": "editor::TabPrev",
 34            "ctrl-k": "editor::CutToEndOfLine",
 35            "cmd-backspace": "editor::DeleteToBeginningOfLine",
 36            "cmd-delete": "editor::DeleteToEndOfLine",
 37            "alt-backspace": "editor::DeleteToPreviousWordStart",
 38            "alt-delete": "editor::DeleteToNextWordEnd",
 39            "alt-h": "editor::DeleteToPreviousWordStart",
 40            "alt-d": "editor::DeleteToNextWordEnd",
 41            "cmd-x": "editor::Cut",
 42            "cmd-c": "editor::Copy",
 43            "cmd-v": "editor::Paste",
 44            "cmd-z": "editor::Undo",
 45            "cmd-shift-Z": "editor::Redo",
 46            "up": "editor::MoveUp",
 47            "down": "editor::MoveDown",
 48            "left": "editor::MoveLeft",
 49            "right": "editor::MoveRight",
 50            "ctrl-p": "editor::MoveUp",
 51            "ctrl-n": "editor::MoveDown",
 52            "ctrl-b": "editor::MoveLeft",
 53            "ctrl-f": "editor::MoveRight",
 54            "alt-left": "editor::MoveToPreviousWordStart",
 55            "alt-b": "editor::MoveToPreviousWordStart",
 56            "alt-right": "editor::MoveToNextWordEnd",
 57            "alt-f": "editor::MoveToNextWordEnd",
 58            "cmd-left": "editor::MoveToBeginningOfLine",
 59            "ctrl-a": "editor::MoveToBeginningOfLine",
 60            "cmd-right": "editor::MoveToEndOfLine",
 61            "ctrl-e": "editor::MoveToEndOfLine",
 62            "cmd-up": "editor::MoveToBeginning",
 63            "cmd-down": "editor::MoveToEnd",
 64            "shift-up": "editor::SelectUp",
 65            "ctrl-shift-P": "editor::SelectUp",
 66            "shift-down": "editor::SelectDown",
 67            "ctrl-shift-N": "editor::SelectDown",
 68            "shift-left": "editor::SelectLeft",
 69            "ctrl-shift-B": "editor::SelectLeft",
 70            "shift-right": "editor::SelectRight",
 71            "ctrl-shift-F": "editor::SelectRight",
 72            "alt-shift-left": "editor::SelectToPreviousWordStart",
 73            "alt-shift-B": "editor::SelectToPreviousWordStart",
 74            "alt-shift-right": "editor::SelectToNextWordEnd",
 75            "alt-shift-F": "editor::SelectToNextWordEnd",
 76            "cmd-shift-up": "editor::SelectToBeginning",
 77            "cmd-shift-down": "editor::SelectToEnd",
 78            "cmd-a": "editor::SelectAll",
 79            "cmd-l": "editor::SelectLine",
 80            "cmd-shift-left": [
 81                "editor::SelectToBeginningOfLine",
 82                {
 83                    "stop_at_soft_wraps": true
 84                }
 85            ],
 86            "ctrl-shift-A": [
 87                "editor::SelectToBeginningOfLine",
 88                {
 89                    "stop_at_soft_wraps": true
 90                }
 91            ],
 92            "cmd-shift-right": [
 93                "editor::SelectToEndOfLine",
 94                {
 95                    "stop_at_soft_wraps": true
 96                }
 97            ],
 98            "ctrl-shift-E": [
 99                "editor::SelectToEndOfLine",
100                {
101                    "stop_at_soft_wraps": true
102                }
103            ],
104            "pageup": "editor::PageUp",
105            "pagedown": "editor::PageDown"
106        }
107    },
108    {
109        "context": "Editor && mode == full",
110        "bindings": {
111            "enter": "editor::Newline",
112            "cmd-f": [
113                "buffer_search::Deploy",
114                {
115                    "focus": true
116                }
117            ],
118            "cmd-e": [
119                "buffer_search::Deploy",
120                {
121                    "focus": false
122                }
123            ]
124        }
125    },
126    {
127        "context": "Editor && mode == auto_height",
128        "bindings": {
129            "alt-enter": [
130                "editor::Input",
131                "\n"
132            ]
133        }
134    },
135    {
136        "context": "Pane",
137        "bindings": {
138            "cmd-f": "project_search::ToggleFocus",
139            "cmd-g": "search::SelectNextMatch",
140            "cmd-shift-G": "search::SelectPrevMatch"
141        }
142    },
143    {
144        "context": "BufferSearchBar",
145        "bindings": {
146            "escape": "buffer_search::Dismiss",
147            "cmd-f": "buffer_search::FocusEditor",
148            "enter": "search::SelectNextMatch",
149            "shift-enter": "search::SelectPrevMatch"
150        }
151    },
152    // Bindings from VS Code
153    {
154        "context": "Editor",
155        "bindings": {
156            "cmd-[": "editor::Outdent",
157            "cmd-]": "editor::Indent",
158            "cmd-alt-up": "editor::AddSelectionAbove",
159            "cmd-ctrl-p": "editor::AddSelectionAbove",
160            "cmd-alt-down": "editor::AddSelectionBelow",
161            "cmd-ctrl-n": "editor::AddSelectionBelow",
162            "cmd-d": [
163                "editor::SelectNext",
164                {
165                    "replace_newest": false
166                }
167            ],
168            "cmd-k cmd-d": [
169                "editor::SelectNext",
170                {
171                    "replace_newest": true
172                }
173            ],
174            "cmd-/": "editor::ToggleComments",
175            "alt-up": "editor::SelectLargerSyntaxNode",
176            "alt-down": "editor::SelectSmallerSyntaxNode",
177            "cmd-u": "editor::UndoSelection",
178            "cmd-shift-U": "editor::RedoSelection",
179            "f8": "editor::GoToNextDiagnostic",
180            "shift-f8": "editor::GoToPrevDiagnostic",
181            "f2": "editor::Rename",
182            "f12": "editor::GoToDefinition",
183            "alt-shift-f12": "editor::FindAllReferences",
184            "ctrl-m": "editor::MoveToEnclosingBracket",
185            "alt-cmd-[": "editor::Fold",
186            "alt-cmd-]": "editor::UnfoldLines",
187            "ctrl-space": "editor::ShowCompletions",
188            "cmd-.": "editor::ToggleCodeActions"
189        }
190    },
191    {
192        "context": "Editor && mode == full",
193        "bindings": {
194            "cmd-shift-O": "outline::Toggle",
195            "ctrl-g": "go_to_line::Toggle"
196        }
197    },
198    {
199        "context": "Pane",
200        "bindings": {
201            "ctrl--": "pane::GoBack",
202            "shift-ctrl-_": "pane::GoForward",
203            "cmd-shift-F": "project_search::ToggleFocus"
204        }
205    },
206    {
207        "context": "Workspace",
208        "bindings": {
209            "cmd-shift-F": "project_search::Deploy",
210            "cmd-k cmd-t": "theme_selector::Toggle",
211            "cmd-k t": "theme_selector::Reload",
212            "cmd-t": "project_symbols::Toggle",
213            "cmd-p": "file_finder::Toggle",
214            "cmd-shift-P": "command_palette::Toggle"
215        }
216    },
217    // Bindings from Sublime Text
218    {
219        "context": "Editor",
220        "bindings": {
221            "ctrl-shift-K": "editor::DeleteLine",
222            "cmd-shift-D": "editor::DuplicateLine",
223            "cmd-shift-L": "editor::SplitSelectionIntoLines",
224            "ctrl-cmd-up": "editor::MoveLineUp",
225            "ctrl-cmd-down": "editor::MoveLineDown",
226            "ctrl-alt-backspace": "editor::DeleteToPreviousSubwordStart",
227            "ctrl-alt-h": "editor::DeleteToPreviousSubwordStart",
228            "ctrl-alt-delete": "editor::DeleteToNextSubwordEnd",
229            "ctrl-alt-d": "editor::DeleteToNextSubwordEnd",
230            "ctrl-alt-left": "editor::MoveToPreviousSubwordStart",
231            "ctrl-alt-b": "editor::MoveToPreviousSubwordStart",
232            "ctrl-alt-right": "editor::MoveToNextSubwordEnd",
233            "ctrl-alt-f": "editor::MoveToNextSubwordEnd",
234            "ctrl-alt-shift-left": "editor::SelectToPreviousSubwordStart",
235            "ctrl-alt-shift-B": "editor::SelectToPreviousSubwordStart",
236            "ctrl-alt-shift-right": "editor::SelectToNextSubwordEnd",
237            "ctrl-alt-shift-F": "editor::SelectToNextSubwordEnd"
238        }
239    },
240    {
241        "bindings": {
242            "cmd-k cmd-left": "workspace::ActivatePreviousPane",
243            "cmd-k cmd-right": "workspace::ActivateNextPane"
244        }
245    },
246    {
247        "context": "Pane",
248        "bindings": {
249            "cmd-k up": [
250                "pane::Split",
251                "Up"
252            ],
253            "cmd-k down": [
254                "pane::Split",
255                "Down"
256            ],
257            "cmd-k left": [
258                "pane::Split",
259                "Left"
260            ],
261            "cmd-k right": [
262                "pane::Split",
263                "Right"
264            ]
265        }
266    },
267    // Bindings that should be unified with bindings for more general actions
268    {
269        "context": "Editor && renaming",
270        "bindings": {
271            "enter": "editor::ConfirmRename"
272        }
273    },
274    {
275        "context": "Editor && showing_completions",
276        "bindings": {
277            "enter": "editor::ConfirmCompletion",
278            "tab": "editor::ConfirmCompletion"
279        }
280    },
281    {
282        "context": "Editor && showing_code_actions",
283        "bindings": {
284            "enter": "editor::ConfirmCodeAction"
285        }
286    },
287    // Custom bindings
288    {
289        "bindings": {
290            "ctrl-alt-cmd-f": "workspace::FollowNextCollaborator",
291            "cmd-alt-i": "zed::DebugElements",
292            "alt-cmd-,": "zed::OpenKeymap"
293        }
294    },
295    {
296        "context": "Editor",
297        "bindings": {
298            "ctrl-w": "editor::SelectLargerSyntaxNode",
299            "ctrl-shift-W": "editor::SelectSmallerSyntaxNode",
300            "alt-cmd-f": "editor::FoldSelectedRanges",
301            "alt-enter": "editor::OpenExcerpts",
302            "cmd-f10": "editor::RestartLanguageServer"
303        }
304    },
305    {
306        "context": "ProjectSearchBar",
307        "bindings": {
308            "cmd-enter": "project_search::SearchInNew"
309        }
310    },
311    {
312        "context": "Workspace",
313        "bindings": {
314            "alt-shift-D": "diagnostics::Deploy",
315            "ctrl-alt-cmd-j": "journal::NewJournalEntry",
316            "cmd-1": [
317                "workspace::ToggleSidebarItemFocus",
318                {
319                    "side": "Left",
320                    "item_index": 0
321                }
322            ],
323            "cmd-shift-!": [
324                "workspace::ToggleSidebarItem",
325                {
326                    "side": "Left",
327                    "item_index": 0
328                }
329            ]
330        }
331    },
332    {
333        "context": "ProjectPanel",
334        "bindings": {
335            "left": "project_panel::CollapseSelectedEntry",
336            "right": "project_panel::ExpandSelectedEntry"
337        }
338    }
339]