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