default.json

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