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            "alt-cmd-left": "pane::ActivatePrevItem",
 17            "alt-cmd-right": "pane::ActivateNextItem",
 18            "cmd-w": "pane::CloseActiveItem",
 19            "cmd-shift-W": "workspace::CloseWindow",
 20            "alt-cmd-t": "pane::CloseInactiveItems",
 21            "cmd-s": "workspace::Save",
 22            "cmd-shift-S": "workspace::SaveAs",
 23            "cmd-=": "zed::IncreaseBufferFontSize",
 24            "cmd--": "zed::DecreaseBufferFontSize",
 25            "cmd-0": "zed::ResetBufferFontSize",
 26            "cmd-,": "zed::OpenSettings",
 27            "cmd-q": "zed::Quit",
 28            "cmd-n": "workspace::NewFile",
 29            "cmd-shift-N": "workspace::NewWindow",
 30            "cmd-o": "workspace::Open"
 31        }
 32    },
 33    {
 34        "context": "Editor",
 35        "bindings": {
 36            "escape": "editor::Cancel",
 37            "backspace": "editor::Backspace",
 38            "shift-backspace": "editor::Backspace",
 39            "ctrl-h": "editor::Backspace",
 40            "delete": "editor::Delete",
 41            "ctrl-d": "editor::Delete",
 42            "tab": "editor::Tab",
 43            "shift-tab": "editor::TabPrev",
 44            "ctrl-k": "editor::CutToEndOfLine",
 45            "ctrl-t": "editor::Transpose",
 46            "cmd-backspace": "editor::DeleteToBeginningOfLine",
 47            "cmd-delete": "editor::DeleteToEndOfLine",
 48            "alt-backspace": "editor::DeleteToPreviousWordStart",
 49            "alt-delete": "editor::DeleteToNextWordEnd",
 50            "alt-h": "editor::DeleteToPreviousWordStart",
 51            "alt-d": "editor::DeleteToNextWordEnd",
 52            "cmd-x": "editor::Cut",
 53            "cmd-c": "editor::Copy",
 54            "cmd-v": "editor::Paste",
 55            "cmd-z": "editor::Undo",
 56            "cmd-shift-Z": "editor::Redo",
 57            "up": "editor::MoveUp",
 58            "down": "editor::MoveDown",
 59            "left": "editor::MoveLeft",
 60            "right": "editor::MoveRight",
 61            "ctrl-p": "editor::MoveUp",
 62            "ctrl-n": "editor::MoveDown",
 63            "ctrl-b": "editor::MoveLeft",
 64            "ctrl-f": "editor::MoveRight",
 65            "alt-left": "editor::MoveToPreviousWordStart",
 66            "alt-b": "editor::MoveToPreviousWordStart",
 67            "alt-right": "editor::MoveToNextWordEnd",
 68            "alt-f": "editor::MoveToNextWordEnd",
 69            "cmd-left": "editor::MoveToBeginningOfLine",
 70            "ctrl-a": "editor::MoveToBeginningOfLine",
 71            "cmd-right": "editor::MoveToEndOfLine",
 72            "ctrl-e": "editor::MoveToEndOfLine",
 73            "cmd-up": "editor::MoveToBeginning",
 74            "cmd-down": "editor::MoveToEnd",
 75            "shift-up": "editor::SelectUp",
 76            "ctrl-shift-P": "editor::SelectUp",
 77            "shift-down": "editor::SelectDown",
 78            "ctrl-shift-N": "editor::SelectDown",
 79            "shift-left": "editor::SelectLeft",
 80            "ctrl-shift-B": "editor::SelectLeft",
 81            "shift-right": "editor::SelectRight",
 82            "ctrl-shift-F": "editor::SelectRight",
 83            "alt-shift-left": "editor::SelectToPreviousWordStart",
 84            "alt-shift-B": "editor::SelectToPreviousWordStart",
 85            "alt-shift-right": "editor::SelectToNextWordEnd",
 86            "alt-shift-F": "editor::SelectToNextWordEnd",
 87            "cmd-shift-up": "editor::SelectToBeginning",
 88            "cmd-shift-down": "editor::SelectToEnd",
 89            "cmd-a": "editor::SelectAll",
 90            "cmd-l": "editor::SelectLine",
 91            "cmd-shift-left": [
 92                "editor::SelectToBeginningOfLine",
 93                {
 94                    "stop_at_soft_wraps": true
 95                }
 96            ],
 97            "ctrl-shift-A": [
 98                "editor::SelectToBeginningOfLine",
 99                {
100                    "stop_at_soft_wraps": true
101                }
102            ],
103            "cmd-shift-right": [
104                "editor::SelectToEndOfLine",
105                {
106                    "stop_at_soft_wraps": true
107                }
108            ],
109            "ctrl-shift-E": [
110                "editor::SelectToEndOfLine",
111                {
112                    "stop_at_soft_wraps": true
113                }
114            ],
115            "pageup": "editor::PageUp",
116            "pagedown": "editor::PageDown"
117        }
118    },
119    {
120        "context": "Editor && mode == full",
121        "bindings": {
122            "enter": "editor::Newline",
123            "cmd-f": [
124                "buffer_search::Deploy",
125                {
126                    "focus": true
127                }
128            ],
129            "cmd-e": [
130                "buffer_search::Deploy",
131                {
132                    "focus": false
133                }
134            ]
135        }
136    },
137    {
138        "context": "Editor && mode == auto_height",
139        "bindings": {
140            "alt-enter": [
141                "editor::Input",
142                "\n"
143            ]
144        }
145    },
146    {
147        "context": "BufferSearchBar",
148        "bindings": {
149            "escape": "buffer_search::Dismiss",
150            "cmd-f": "buffer_search::FocusEditor",
151            "enter": "search::SelectNextMatch",
152            "shift-enter": "search::SelectPrevMatch"
153        }
154    },
155    {
156        "context": "Pane",
157        "bindings": {
158            "cmd-f": "project_search::ToggleFocus",
159            "cmd-g": "search::SelectNextMatch",
160            "cmd-shift-G": "search::SelectPrevMatch",
161            "alt-cmd-c": "search::ToggleCaseSensitive",
162            "alt-cmd-w": "search::ToggleWholeWord",
163            "alt-cmd-r": "search::ToggleRegex"
164        }
165    },
166    // Bindings from VS Code
167    {
168        "context": "Editor",
169        "bindings": {
170            "cmd-[": "editor::Outdent",
171            "cmd-]": "editor::Indent",
172            "cmd-alt-up": "editor::AddSelectionAbove",
173            "cmd-ctrl-p": "editor::AddSelectionAbove",
174            "cmd-alt-down": "editor::AddSelectionBelow",
175            "cmd-ctrl-n": "editor::AddSelectionBelow",
176            "cmd-d": [
177                "editor::SelectNext",
178                {
179                    "replace_newest": false
180                }
181            ],
182            "cmd-k cmd-d": [
183                "editor::SelectNext",
184                {
185                    "replace_newest": true
186                }
187            ],
188            "cmd-/": "editor::ToggleComments",
189            "alt-up": "editor::SelectLargerSyntaxNode",
190            "alt-down": "editor::SelectSmallerSyntaxNode",
191            "cmd-u": "editor::UndoSelection",
192            "cmd-shift-U": "editor::RedoSelection",
193            "f8": "editor::GoToNextDiagnostic",
194            "shift-f8": "editor::GoToPrevDiagnostic",
195            "f2": "editor::Rename",
196            "f12": "editor::GoToDefinition",
197            "alt-shift-f12": "editor::FindAllReferences",
198            "ctrl-m": "editor::MoveToEnclosingBracket",
199            "alt-cmd-[": "editor::Fold",
200            "alt-cmd-]": "editor::UnfoldLines",
201            "ctrl-space": "editor::ShowCompletions",
202            "cmd-.": "editor::ToggleCodeActions"
203        }
204    },
205    {
206        "context": "Editor && mode == full",
207        "bindings": {
208            "cmd-shift-O": "outline::Toggle",
209            "ctrl-g": "go_to_line::Toggle"
210        }
211    },
212    {
213        "context": "Pane",
214        "bindings": {
215            "ctrl-1": [
216                "pane::ActivateItem",
217                0
218            ],
219            "ctrl-2": [
220                "pane::ActivateItem",
221                1
222            ],
223            "ctrl-3": [
224                "pane::ActivateItem",
225                2
226            ],
227            "ctrl-4": [
228                "pane::ActivateItem",
229                3
230            ],
231            "ctrl-5": [
232                "pane::ActivateItem",
233                4
234            ],
235            "ctrl-6": [
236                "pane::ActivateItem",
237                5
238            ],
239            "ctrl-7": [
240                "pane::ActivateItem",
241                6
242            ],
243            "ctrl-8": [
244                "pane::ActivateItem",
245                7
246            ],
247            "ctrl-9": [
248                "pane::ActivateItem",
249                8
250            ],
251            "ctrl-0": "pane::ActivateLastItem",
252            "ctrl--": "pane::GoBack",
253            "shift-ctrl-_": "pane::GoForward",
254            "cmd-shift-T": "pane::ReopenClosedItem",
255            "cmd-shift-F": "project_search::ToggleFocus"
256        }
257    },
258    {
259        "context": "Workspace",
260        "bindings": {
261            "cmd-1": [
262                "workspace::ActivatePane",
263                0
264            ],
265            "cmd-2": [
266                "workspace::ActivatePane",
267                1
268            ],
269            "cmd-3": [
270                "workspace::ActivatePane",
271                2
272            ],
273            "cmd-4": [
274                "workspace::ActivatePane",
275                3
276            ],
277            "cmd-5": [
278                "workspace::ActivatePane",
279                4
280            ],
281            "cmd-6": [
282                "workspace::ActivatePane",
283                5
284            ],
285            "cmd-7": [
286                "workspace::ActivatePane",
287                6
288            ],
289            "cmd-8": [
290                "workspace::ActivatePane",
291                7
292            ],
293            "cmd-9": [
294                "workspace::ActivatePane",
295                8
296            ],
297            "cmd-b": "workspace::ToggleLeftSidebar",
298            "cmd-shift-F": "project_search::Deploy",
299            "cmd-k cmd-t": "theme_selector::Toggle",
300            "cmd-k cmd-s": "zed::OpenKeymap",
301            "cmd-t": "project_symbols::Toggle",
302            "cmd-p": "file_finder::Toggle",
303            "cmd-shift-P": "command_palette::Toggle",
304            "cmd-shift-M": "diagnostics::Deploy",
305            "cmd-shift-E": "project_panel::Toggle",
306            "cmd-alt-s": "workspace::SaveAll"
307        }
308    },
309    // Bindings from Sublime Text
310    {
311        "context": "Editor",
312        "bindings": {
313            "ctrl-shift-K": "editor::DeleteLine",
314            "cmd-shift-D": "editor::DuplicateLine",
315            "cmd-shift-L": "editor::SplitSelectionIntoLines",
316            "ctrl-cmd-up": "editor::MoveLineUp",
317            "ctrl-cmd-down": "editor::MoveLineDown",
318            "ctrl-alt-backspace": "editor::DeleteToPreviousSubwordStart",
319            "ctrl-alt-h": "editor::DeleteToPreviousSubwordStart",
320            "ctrl-alt-delete": "editor::DeleteToNextSubwordEnd",
321            "ctrl-alt-d": "editor::DeleteToNextSubwordEnd",
322            "ctrl-alt-left": "editor::MoveToPreviousSubwordStart",
323            "ctrl-alt-b": "editor::MoveToPreviousSubwordStart",
324            "ctrl-alt-right": "editor::MoveToNextSubwordEnd",
325            "ctrl-alt-f": "editor::MoveToNextSubwordEnd",
326            "ctrl-alt-shift-left": "editor::SelectToPreviousSubwordStart",
327            "ctrl-alt-shift-B": "editor::SelectToPreviousSubwordStart",
328            "ctrl-alt-shift-right": "editor::SelectToNextSubwordEnd",
329            "ctrl-alt-shift-F": "editor::SelectToNextSubwordEnd"
330        }
331    },
332    {
333        "bindings": {
334            "cmd-k cmd-left": "workspace::ActivatePreviousPane",
335            "cmd-k cmd-right": "workspace::ActivateNextPane"
336        }
337    },
338    // Bindings from Atom
339    {
340        "context": "Pane",
341        "bindings": {
342            "cmd-k up": "pane::SplitUp",
343            "cmd-k down": "pane::SplitDown",
344            "cmd-k left": "pane::SplitLeft",
345            "cmd-k right": "pane::SplitRight"
346        }
347    },
348    // Bindings that should be unified with bindings for more general actions
349    {
350        "context": "Editor && renaming",
351        "bindings": {
352            "enter": "editor::ConfirmRename"
353        }
354    },
355    {
356        "context": "Editor && showing_completions",
357        "bindings": {
358            "enter": "editor::ConfirmCompletion",
359            "tab": "editor::ConfirmCompletion"
360        }
361    },
362    {
363        "context": "Editor && showing_code_actions",
364        "bindings": {
365            "enter": "editor::ConfirmCodeAction"
366        }
367    },
368    // Custom bindings
369    {
370        "bindings": {
371            "ctrl-alt-cmd-f": "workspace::FollowNextCollaborator",
372            "cmd-alt-i": "zed::DebugElements"
373        }
374    },
375    {
376        "context": "Editor",
377        "bindings": {
378            "alt-enter": "editor::OpenExcerpts"
379        }
380    },
381    {
382        "context": "ProjectSearchBar",
383        "bindings": {
384            "cmd-enter": "project_search::SearchInNew"
385        }
386    },
387    {
388        "context": "Workspace",
389        "bindings": {
390            "cmd-shift-C": "contacts_panel::Toggle",
391            "cmd-shift-B": "workspace::ToggleRightSidebar"
392        }
393    },
394    {
395        "context": "ProjectPanel",
396        "bindings": {
397            "left": "project_panel::CollapseSelectedEntry",
398            "right": "project_panel::ExpandSelectedEntry",
399            "cmd-x": "project_panel::Cut",
400            "cmd-c": "project_panel::Copy",
401            "cmd-v": "project_panel::Paste",
402            "cmd-alt-c": "project_panel::CopyPath",
403            "f2": "project_panel::Rename",
404            "backspace": "project_panel::Delete"
405        }
406    },
407    {
408        "context": "Terminal",
409        "bindings": {
410            "ctrl-c": "terminal::Sigint",
411            "escape": "terminal::Escape",
412            "ctrl-d": "terminal::Quit",
413            "backspace": "terminal::Del",
414            "enter": "terminal::Return",
415            "left": "terminal::Left",
416            "right": "terminal::Right",
417            "up": "terminal::Up",
418            "down": "terminal::Down",
419            "tab": "terminal::Tab",
420            "cmd-v": "terminal::Paste",
421            "cmd-c": "terminal::Copy",
422            "ctrl-l": "terminal::Clear"
423        }
424    },
425    {
426        "context": "ModalTerminal",
427        "bindings": {
428            "shift-escape": "terminal::DeployModal"
429        }
430    }
431]