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