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