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