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