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