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