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-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            "ctrl-cmd-space": "editor::ShowCharacterPalette"
118        }
119    },
120    {
121        "context": "Editor && mode == full",
122        "bindings": {
123            "enter": "editor::Newline",
124            "cmd-f": [
125                "buffer_search::Deploy",
126                {
127                    "focus": true
128                }
129            ],
130            "cmd-e": [
131                "buffer_search::Deploy",
132                {
133                    "focus": false
134                }
135            ]
136        }
137    },
138    {
139        "context": "Editor && mode == auto_height",
140        "bindings": {
141            "alt-enter": "editor::Newline"
142        }
143    },
144    {
145        "context": "BufferSearchBar",
146        "bindings": {
147            "escape": "buffer_search::Dismiss",
148            "cmd-f": "buffer_search::FocusEditor",
149            "enter": "search::SelectNextMatch",
150            "shift-enter": "search::SelectPrevMatch"
151        }
152    },
153    {
154        "context": "Pane",
155        "bindings": {
156            "cmd-f": "project_search::ToggleFocus",
157            "cmd-g": "search::SelectNextMatch",
158            "cmd-shift-g": "search::SelectPrevMatch",
159            "alt-cmd-c": "search::ToggleCaseSensitive",
160            "alt-cmd-w": "search::ToggleWholeWord",
161            "alt-cmd-r": "search::ToggleRegex"
162        }
163    },
164    // Bindings from VS Code
165    {
166        "context": "Editor",
167        "bindings": {
168            "cmd-[": "editor::Outdent",
169            "cmd-]": "editor::Indent",
170            "cmd-alt-up": "editor::AddSelectionAbove",
171            "cmd-ctrl-p": "editor::AddSelectionAbove",
172            "cmd-alt-down": "editor::AddSelectionBelow",
173            "cmd-ctrl-n": "editor::AddSelectionBelow",
174            "cmd-d": [
175                "editor::SelectNext",
176                {
177                    "replace_newest": false
178                }
179            ],
180            "cmd-k cmd-d": [
181                "editor::SelectNext",
182                {
183                    "replace_newest": true
184                }
185            ],
186            "cmd-/": "editor::ToggleComments",
187            "alt-up": "editor::SelectLargerSyntaxNode",
188            "alt-down": "editor::SelectSmallerSyntaxNode",
189            "cmd-u": "editor::UndoSelection",
190            "cmd-shift-u": "editor::RedoSelection",
191            "f8": "editor::GoToNextDiagnostic",
192            "shift-f8": "editor::GoToPrevDiagnostic",
193            "f2": "editor::Rename",
194            "f12": "editor::GoToDefinition",
195            "alt-shift-f12": "editor::FindAllReferences",
196            "ctrl-m": "editor::MoveToEnclosingBracket",
197            "alt-cmd-[": "editor::Fold",
198            "alt-cmd-]": "editor::UnfoldLines",
199            "ctrl-space": "editor::ShowCompletions",
200            "cmd-.": "editor::ToggleCodeActions"
201        }
202    },
203    {
204        "context": "Editor && mode == full",
205        "bindings": {
206            "cmd-shift-o": "outline::Toggle",
207            "ctrl-g": "go_to_line::Toggle"
208        }
209    },
210    {
211        "context": "Pane",
212        "bindings": {
213            "ctrl-1": [
214                "pane::ActivateItem",
215                0
216            ],
217            "ctrl-2": [
218                "pane::ActivateItem",
219                1
220            ],
221            "ctrl-3": [
222                "pane::ActivateItem",
223                2
224            ],
225            "ctrl-4": [
226                "pane::ActivateItem",
227                3
228            ],
229            "ctrl-5": [
230                "pane::ActivateItem",
231                4
232            ],
233            "ctrl-6": [
234                "pane::ActivateItem",
235                5
236            ],
237            "ctrl-7": [
238                "pane::ActivateItem",
239                6
240            ],
241            "ctrl-8": [
242                "pane::ActivateItem",
243                7
244            ],
245            "ctrl-9": [
246                "pane::ActivateItem",
247                8
248            ],
249            "ctrl-0": "pane::ActivateLastItem",
250            "ctrl--": "pane::GoBack",
251            "ctrl-_": "pane::GoForward",
252            "cmd-shift-t": "pane::ReopenClosedItem",
253            "cmd-shift-f": "project_search::ToggleFocus"
254        }
255    },
256    {
257        "context": "Workspace",
258        "bindings": {
259            "cmd-1": [
260                "workspace::ActivatePane",
261                0
262            ],
263            "cmd-2": [
264                "workspace::ActivatePane",
265                1
266            ],
267            "cmd-3": [
268                "workspace::ActivatePane",
269                2
270            ],
271            "cmd-4": [
272                "workspace::ActivatePane",
273                3
274            ],
275            "cmd-5": [
276                "workspace::ActivatePane",
277                4
278            ],
279            "cmd-6": [
280                "workspace::ActivatePane",
281                5
282            ],
283            "cmd-7": [
284                "workspace::ActivatePane",
285                6
286            ],
287            "cmd-8": [
288                "workspace::ActivatePane",
289                7
290            ],
291            "cmd-9": [
292                "workspace::ActivatePane",
293                8
294            ],
295            "cmd-b": "workspace::ToggleLeftSidebar",
296            "cmd-shift-f": "project_search::Deploy",
297            "cmd-k cmd-t": "theme_selector::Toggle",
298            "cmd-k cmd-s": "zed::OpenKeymap",
299            "cmd-t": "project_symbols::Toggle",
300            "cmd-p": "file_finder::Toggle",
301            "cmd-shift-p": "command_palette::Toggle",
302            "cmd-shift-m": "diagnostics::Deploy",
303            "cmd-shift-e": "project_panel::Toggle",
304            "cmd-alt-s": "workspace::SaveAll"
305        }
306    },
307    // Bindings from Sublime Text
308    {
309        "context": "Editor",
310        "bindings": {
311            "ctrl-shift-k": "editor::DeleteLine",
312            "cmd-shift-d": "editor::DuplicateLine",
313            "cmd-shift-l": "editor::SplitSelectionIntoLines",
314            "ctrl-cmd-up": "editor::MoveLineUp",
315            "ctrl-cmd-down": "editor::MoveLineDown",
316            "ctrl-alt-backspace": "editor::DeleteToPreviousSubwordStart",
317            "ctrl-alt-h": "editor::DeleteToPreviousSubwordStart",
318            "ctrl-alt-delete": "editor::DeleteToNextSubwordEnd",
319            "ctrl-alt-d": "editor::DeleteToNextSubwordEnd",
320            "ctrl-alt-left": "editor::MoveToPreviousSubwordStart",
321            "ctrl-alt-b": "editor::MoveToPreviousSubwordStart",
322            "ctrl-alt-right": "editor::MoveToNextSubwordEnd",
323            "ctrl-alt-f": "editor::MoveToNextSubwordEnd",
324            "ctrl-alt-shift-left": "editor::SelectToPreviousSubwordStart",
325            "ctrl-alt-shift-b": "editor::SelectToPreviousSubwordStart",
326            "ctrl-alt-shift-right": "editor::SelectToNextSubwordEnd",
327            "ctrl-alt-shift-f": "editor::SelectToNextSubwordEnd"
328        }
329    },
330    {
331        "bindings": {
332            "cmd-k cmd-left": "workspace::ActivatePreviousPane",
333            "cmd-k cmd-right": "workspace::ActivateNextPane"
334        }
335    },
336    // Bindings from Atom
337    {
338        "context": "Pane",
339        "bindings": {
340            "cmd-k up": "pane::SplitUp",
341            "cmd-k down": "pane::SplitDown",
342            "cmd-k left": "pane::SplitLeft",
343            "cmd-k right": "pane::SplitRight"
344        }
345    },
346    // Bindings that should be unified with bindings for more general actions
347    {
348        "context": "Editor && renaming",
349        "bindings": {
350            "enter": "editor::ConfirmRename"
351        }
352    },
353    {
354        "context": "Editor && showing_completions",
355        "bindings": {
356            "enter": "editor::ConfirmCompletion",
357            "tab": "editor::ConfirmCompletion"
358        }
359    },
360    {
361        "context": "Editor && showing_code_actions",
362        "bindings": {
363            "enter": "editor::ConfirmCodeAction"
364        }
365    },
366    // Custom bindings
367    {
368        "bindings": {
369            "ctrl-alt-cmd-f": "workspace::FollowNextCollaborator",
370            "cmd-alt-i": "zed::DebugElements"
371        }
372    },
373    {
374        "context": "Editor",
375        "bindings": {
376            "alt-enter": "editor::OpenExcerpts"
377        }
378    },
379    {
380        "context": "ProjectSearchBar",
381        "bindings": {
382            "cmd-enter": "project_search::SearchInNew"
383        }
384    },
385    {
386        "context": "Workspace",
387        "bindings": {
388            "cmd-shift-c": "contacts_panel::Toggle",
389            "cmd-shift-b": "workspace::ToggleRightSidebar"
390        }
391    },
392    {
393        "context": "ProjectPanel",
394        "bindings": {
395            "left": "project_panel::CollapseSelectedEntry",
396            "right": "project_panel::ExpandSelectedEntry",
397            "cmd-x": "project_panel::Cut",
398            "cmd-c": "project_panel::Copy",
399            "cmd-v": "project_panel::Paste",
400            "cmd-alt-c": "project_panel::CopyPath",
401            "f2": "project_panel::Rename",
402            "backspace": "project_panel::Delete"
403        }
404    },
405    {
406        "context": "Terminal",
407        "bindings": {
408            // Overrides for global bindings, remove at your own risk:
409            "up": "terminal::Up",
410            "down": "terminal::Down",
411            "escape": "terminal::Escape",
412            "enter": "terminal::Enter",
413            "ctrl-c": "terminal::CtrlC",
414            // Useful terminal actions:
415            "cmd-c": "terminal::Copy",
416            "cmd-v": "terminal::Paste",
417            "cmd-k": "terminal::Clear"
418        }
419    },
420    {
421        "context": "ModalTerminal",
422        "bindings": {
423            "shift-escape": "terminal::DeployModal"
424        }
425    }
426]