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