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            "cmd-k 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            "alt-cmd-c": [
151                "search::ToggleSearchOption",
152                {
153                    "option": "CaseSensitive"
154                }
155            ],
156            "alt-cmd-w": [
157                "search::ToggleSearchOption",
158                {
159                    "option": "WholeWord"
160                }
161            ],
162            "alt-cmd-r": [
163                "search::ToggleSearchOption",
164                {
165                    "option": "Regex"
166                }
167            ]
168        }
169    },
170    {
171        "context": "BufferSearchBar",
172        "bindings": {
173            "escape": "buffer_search::Dismiss",
174            "cmd-f": "buffer_search::FocusEditor",
175            "enter": "search::SelectNextMatch",
176            "shift-enter": "search::SelectPrevMatch"
177        }
178    },
179    // Bindings from VS Code
180    {
181        "context": "Editor",
182        "bindings": {
183            "cmd-[": "editor::Outdent",
184            "cmd-]": "editor::Indent",
185            "cmd-alt-up": "editor::AddSelectionAbove",
186            "cmd-ctrl-p": "editor::AddSelectionAbove",
187            "cmd-alt-down": "editor::AddSelectionBelow",
188            "cmd-ctrl-n": "editor::AddSelectionBelow",
189            "cmd-d": [
190                "editor::SelectNext",
191                {
192                    "replace_newest": false
193                }
194            ],
195            "cmd-k cmd-d": [
196                "editor::SelectNext",
197                {
198                    "replace_newest": true
199                }
200            ],
201            "cmd-/": "editor::ToggleComments",
202            "alt-up": "editor::SelectLargerSyntaxNode",
203            "alt-down": "editor::SelectSmallerSyntaxNode",
204            "cmd-u": "editor::UndoSelection",
205            "cmd-shift-U": "editor::RedoSelection",
206            "f8": "editor::GoToNextDiagnostic",
207            "shift-f8": "editor::GoToPrevDiagnostic",
208            "f2": "editor::Rename",
209            "f12": "editor::GoToDefinition",
210            "alt-shift-f12": "editor::FindAllReferences",
211            "ctrl-m": "editor::MoveToEnclosingBracket",
212            "alt-cmd-[": "editor::Fold",
213            "alt-cmd-]": "editor::UnfoldLines",
214            "ctrl-space": "editor::ShowCompletions",
215            "cmd-.": "editor::ToggleCodeActions"
216        }
217    },
218    {
219        "context": "Editor && mode == full",
220        "bindings": {
221            "cmd-shift-O": "outline::Toggle",
222            "ctrl-g": "go_to_line::Toggle"
223        }
224    },
225    {
226        "context": "Pane",
227        "bindings": {
228            "ctrl--": "pane::GoBack",
229            "shift-ctrl-_": "pane::GoForward",
230            "cmd-shift-F": "project_search::ToggleFocus"
231        }
232    },
233    {
234        "context": "Workspace",
235        "bindings": {
236            "cmd-shift-F": "project_search::Deploy",
237            "cmd-k cmd-t": "theme_selector::Toggle",
238            "cmd-k cmd-s": "zed::OpenKeymap",
239            "cmd-t": "project_symbols::Toggle",
240            "cmd-p": "file_finder::Toggle",
241            "cmd-shift-P": "command_palette::Toggle",
242            "cmd-shift-M": "diagnostics::Deploy",
243            "cmd-alt-s": "workspace::SaveAll"
244        }
245    },
246    // Bindings from Sublime Text
247    {
248        "context": "Editor",
249        "bindings": {
250            "ctrl-shift-K": "editor::DeleteLine",
251            "cmd-shift-D": "editor::DuplicateLine",
252            "cmd-shift-L": "editor::SplitSelectionIntoLines",
253            "ctrl-cmd-up": "editor::MoveLineUp",
254            "ctrl-cmd-down": "editor::MoveLineDown",
255            "ctrl-alt-backspace": "editor::DeleteToPreviousSubwordStart",
256            "ctrl-alt-h": "editor::DeleteToPreviousSubwordStart",
257            "ctrl-alt-delete": "editor::DeleteToNextSubwordEnd",
258            "ctrl-alt-d": "editor::DeleteToNextSubwordEnd",
259            "ctrl-alt-left": "editor::MoveToPreviousSubwordStart",
260            "ctrl-alt-b": "editor::MoveToPreviousSubwordStart",
261            "ctrl-alt-right": "editor::MoveToNextSubwordEnd",
262            "ctrl-alt-f": "editor::MoveToNextSubwordEnd",
263            "ctrl-alt-shift-left": "editor::SelectToPreviousSubwordStart",
264            "ctrl-alt-shift-B": "editor::SelectToPreviousSubwordStart",
265            "ctrl-alt-shift-right": "editor::SelectToNextSubwordEnd",
266            "ctrl-alt-shift-F": "editor::SelectToNextSubwordEnd"
267        }
268    },
269    {
270        "bindings": {
271            "cmd-k cmd-left": "workspace::ActivatePreviousPane",
272            "cmd-k cmd-right": "workspace::ActivateNextPane"
273        }
274    },
275    // Bindings from Atom
276    {
277        "context": "Pane",
278        "bindings": {
279            "cmd-k up": "pane::SplitUp",
280            "cmd-k down": "pane::SplitDown",
281            "cmd-k left": "pane::SplitLeft",
282            "cmd-k right": "pane::SplitRight"
283        }
284    },
285    // Bindings that should be unified with bindings for more general actions
286    {
287        "context": "Editor && renaming",
288        "bindings": {
289            "enter": "editor::ConfirmRename"
290        }
291    },
292    {
293        "context": "Editor && showing_completions",
294        "bindings": {
295            "enter": "editor::ConfirmCompletion",
296            "tab": "editor::ConfirmCompletion"
297        }
298    },
299    {
300        "context": "Editor && showing_code_actions",
301        "bindings": {
302            "enter": "editor::ConfirmCodeAction"
303        }
304    },
305    // Custom bindings
306    {
307        "bindings": {
308            "ctrl-alt-cmd-f": "workspace::FollowNextCollaborator",
309            "cmd-alt-i": "zed::DebugElements"
310        }
311    },
312    {
313        "context": "Editor",
314        "bindings": {
315            "alt-enter": "editor::OpenExcerpts"
316        }
317    },
318    {
319        "context": "ProjectSearchBar",
320        "bindings": {
321            "cmd-enter": "project_search::SearchInNew"
322        }
323    },
324    {
325        "context": "Workspace",
326        "bindings": {
327            "cmd-1": [
328                "workspace::ToggleSidebarItemFocus",
329                {
330                    "side": "Left",
331                    "item_index": 0
332                }
333            ],
334            "cmd-shift-!": [
335                "workspace::ToggleSidebarItem",
336                {
337                    "side": "Left",
338                    "item_index": 0
339                }
340            ],
341            "cmd-9": [
342                "workspace::ToggleSidebarItemFocus",
343                {
344                    "side": "Right",
345                    "item_index": 0
346                }
347            ],
348            "cmd-shift-(": [
349                "workspace::ToggleSidebarItem",
350                {
351                    "side": "Right",
352                    "item_index": 0
353                }
354            ]
355        }
356    },
357    {
358        "context": "ProjectPanel",
359        "bindings": {
360            "left": "project_panel::CollapseSelectedEntry",
361            "right": "project_panel::ExpandSelectedEntry",
362            "cmd-x": "project_panel::Cut",
363            "cmd-c": "project_panel::Copy",
364            "cmd-v": "project_panel::Paste",
365            "cmd-alt-c": "project_panel::CopyPath",
366            "f2": "project_panel::Rename",
367            "backspace": "project_panel::Delete"
368        }
369    }
370]