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 "cmd-{": "pane::ActivatePrevItem",
15 "cmd-}": "pane::ActivateNextItem",
16 "alt-cmd-left": "pane::ActivatePrevItem",
17 "alt-cmd-right": "pane::ActivateNextItem",
18 "cmd-w": "pane::CloseActiveItem",
19 "cmd-shift-w": "workspace::CloseWindow",
20 "alt-cmd-t": "pane::CloseInactiveItems",
21 "cmd-s": "workspace::Save",
22 "cmd-shift-s": "workspace::SaveAs",
23 "cmd-=": "zed::IncreaseBufferFontSize",
24 "cmd--": "zed::DecreaseBufferFontSize",
25 "cmd-0": "zed::ResetBufferFontSize",
26 "cmd-,": "zed::OpenSettings",
27 "cmd-q": "zed::Quit",
28 "cmd-h": "zed::Hide",
29 "alt-cmd-h": "zed::HideOthers",
30 "cmd-m": "zed::Minimize",
31 "cmd-n": "workspace::NewFile",
32 "cmd-shift-n": "workspace::NewWindow",
33 "cmd-o": "workspace::Open"
34 }
35 },
36 {
37 "context": "Editor",
38 "bindings": {
39 "escape": "editor::Cancel",
40 "backspace": "editor::Backspace",
41 "shift-backspace": "editor::Backspace",
42 "ctrl-h": "editor::Backspace",
43 "delete": "editor::Delete",
44 "ctrl-d": "editor::Delete",
45 "tab": "editor::Tab",
46 "shift-tab": "editor::TabPrev",
47 "ctrl-k": "editor::CutToEndOfLine",
48 "ctrl-t": "editor::Transpose",
49 "cmd-backspace": "editor::DeleteToBeginningOfLine",
50 "cmd-delete": "editor::DeleteToEndOfLine",
51 "alt-backspace": "editor::DeleteToPreviousWordStart",
52 "alt-delete": "editor::DeleteToNextWordEnd",
53 "alt-h": "editor::DeleteToPreviousWordStart",
54 "alt-d": "editor::DeleteToNextWordEnd",
55 "cmd-x": "editor::Cut",
56 "cmd-c": "editor::Copy",
57 "cmd-v": "editor::Paste",
58 "cmd-z": "editor::Undo",
59 "cmd-shift-z": "editor::Redo",
60 "up": "editor::MoveUp",
61 "down": "editor::MoveDown",
62 "left": "editor::MoveLeft",
63 "right": "editor::MoveRight",
64 "ctrl-p": "editor::MoveUp",
65 "ctrl-n": "editor::MoveDown",
66 "ctrl-b": "editor::MoveLeft",
67 "ctrl-f": "editor::MoveRight",
68 "alt-left": "editor::MoveToPreviousWordStart",
69 "alt-b": "editor::MoveToPreviousWordStart",
70 "alt-right": "editor::MoveToNextWordEnd",
71 "alt-f": "editor::MoveToNextWordEnd",
72 "cmd-left": "editor::MoveToBeginningOfLine",
73 "ctrl-a": "editor::MoveToBeginningOfLine",
74 "cmd-right": "editor::MoveToEndOfLine",
75 "ctrl-e": "editor::MoveToEndOfLine",
76 "cmd-up": "editor::MoveToBeginning",
77 "cmd-down": "editor::MoveToEnd",
78 "shift-up": "editor::SelectUp",
79 "ctrl-shift-p": "editor::SelectUp",
80 "shift-down": "editor::SelectDown",
81 "ctrl-shift-n": "editor::SelectDown",
82 "shift-left": "editor::SelectLeft",
83 "ctrl-shift-b": "editor::SelectLeft",
84 "shift-right": "editor::SelectRight",
85 "ctrl-shift-f": "editor::SelectRight",
86 "alt-shift-left": "editor::SelectToPreviousWordStart",
87 "alt-shift-b": "editor::SelectToPreviousWordStart",
88 "alt-shift-right": "editor::SelectToNextWordEnd",
89 "alt-shift-f": "editor::SelectToNextWordEnd",
90 "cmd-shift-up": "editor::SelectToBeginning",
91 "cmd-shift-down": "editor::SelectToEnd",
92 "cmd-a": "editor::SelectAll",
93 "cmd-l": "editor::SelectLine",
94 "cmd-shift-left": [
95 "editor::SelectToBeginningOfLine",
96 {
97 "stop_at_soft_wraps": true
98 }
99 ],
100 "ctrl-shift-a": [
101 "editor::SelectToBeginningOfLine",
102 {
103 "stop_at_soft_wraps": true
104 }
105 ],
106 "cmd-shift-right": [
107 "editor::SelectToEndOfLine",
108 {
109 "stop_at_soft_wraps": true
110 }
111 ],
112 "ctrl-shift-e": [
113 "editor::SelectToEndOfLine",
114 {
115 "stop_at_soft_wraps": true
116 }
117 ],
118 "pageup": "editor::PageUp",
119 "pagedown": "editor::PageDown",
120 "ctrl-cmd-space": "editor::ShowCharacterPalette"
121 }
122 },
123 {
124 "context": "Editor && mode == full",
125 "bindings": {
126 "enter": "editor::Newline",
127 "cmd-f": [
128 "buffer_search::Deploy",
129 {
130 "focus": true
131 }
132 ],
133 "cmd-e": [
134 "buffer_search::Deploy",
135 {
136 "focus": false
137 }
138 ]
139 }
140 },
141 {
142 "context": "Editor && mode == auto_height",
143 "bindings": {
144 "alt-enter": "editor::Newline"
145 }
146 },
147 {
148 "context": "BufferSearchBar",
149 "bindings": {
150 "escape": "buffer_search::Dismiss",
151 "cmd-f": "buffer_search::FocusEditor",
152 "enter": "search::SelectNextMatch",
153 "shift-enter": "search::SelectPrevMatch"
154 }
155 },
156 {
157 "context": "Pane",
158 "bindings": {
159 "cmd-f": "project_search::ToggleFocus",
160 "cmd-g": "search::SelectNextMatch",
161 "cmd-shift-g": "search::SelectPrevMatch",
162 "alt-cmd-c": "search::ToggleCaseSensitive",
163 "alt-cmd-w": "search::ToggleWholeWord",
164 "alt-cmd-r": "search::ToggleRegex"
165 }
166 },
167 // Bindings from VS Code
168 {
169 "context": "Editor",
170 "bindings": {
171 "cmd-[": "editor::Outdent",
172 "cmd-]": "editor::Indent",
173 "cmd-alt-up": "editor::AddSelectionAbove",
174 "cmd-ctrl-p": "editor::AddSelectionAbove",
175 "cmd-alt-down": "editor::AddSelectionBelow",
176 "cmd-ctrl-n": "editor::AddSelectionBelow",
177 "cmd-d": [
178 "editor::SelectNext",
179 {
180 "replace_newest": false
181 }
182 ],
183 "cmd-k cmd-d": [
184 "editor::SelectNext",
185 {
186 "replace_newest": true
187 }
188 ],
189 "cmd-/": "editor::ToggleComments",
190 "alt-up": "editor::SelectLargerSyntaxNode",
191 "alt-down": "editor::SelectSmallerSyntaxNode",
192 "cmd-u": "editor::UndoSelection",
193 "cmd-shift-u": "editor::RedoSelection",
194 "f8": "editor::GoToDiagnostic",
195 "shift-f8": "editor::GoToPrevDiagnostic",
196 "f2": "editor::Rename",
197 "f12": "editor::GoToDefinition",
198 "cmd-f12": "editor::GoToTypeDefinition",
199 "alt-shift-f12": "editor::FindAllReferences",
200 "ctrl-m": "editor::MoveToEnclosingBracket",
201 "alt-cmd-[": "editor::Fold",
202 "alt-cmd-]": "editor::UnfoldLines",
203 "ctrl-space": "editor::ShowCompletions",
204 "cmd-.": "editor::ToggleCodeActions"
205 }
206 },
207 {
208 "context": "Editor && mode == full",
209 "bindings": {
210 "cmd-shift-o": "outline::Toggle",
211 "ctrl-g": "go_to_line::Toggle"
212 }
213 },
214 {
215 "context": "Pane",
216 "bindings": {
217 "ctrl-1": [
218 "pane::ActivateItem",
219 0
220 ],
221 "ctrl-2": [
222 "pane::ActivateItem",
223 1
224 ],
225 "ctrl-3": [
226 "pane::ActivateItem",
227 2
228 ],
229 "ctrl-4": [
230 "pane::ActivateItem",
231 3
232 ],
233 "ctrl-5": [
234 "pane::ActivateItem",
235 4
236 ],
237 "ctrl-6": [
238 "pane::ActivateItem",
239 5
240 ],
241 "ctrl-7": [
242 "pane::ActivateItem",
243 6
244 ],
245 "ctrl-8": [
246 "pane::ActivateItem",
247 7
248 ],
249 "ctrl-9": [
250 "pane::ActivateItem",
251 8
252 ],
253 "ctrl-0": "pane::ActivateLastItem",
254 "ctrl--": "pane::GoBack",
255 "ctrl-_": "pane::GoForward",
256 "cmd-shift-t": "pane::ReopenClosedItem",
257 "cmd-shift-f": "project_search::ToggleFocus"
258 }
259 },
260 {
261 "context": "Workspace",
262 "bindings": {
263 "cmd-1": [
264 "workspace::ActivatePane",
265 0
266 ],
267 "cmd-2": [
268 "workspace::ActivatePane",
269 1
270 ],
271 "cmd-3": [
272 "workspace::ActivatePane",
273 2
274 ],
275 "cmd-4": [
276 "workspace::ActivatePane",
277 3
278 ],
279 "cmd-5": [
280 "workspace::ActivatePane",
281 4
282 ],
283 "cmd-6": [
284 "workspace::ActivatePane",
285 5
286 ],
287 "cmd-7": [
288 "workspace::ActivatePane",
289 6
290 ],
291 "cmd-8": [
292 "workspace::ActivatePane",
293 7
294 ],
295 "cmd-9": [
296 "workspace::ActivatePane",
297 8
298 ],
299 "cmd-b": "workspace::ToggleLeftSidebar",
300 "cmd-shift-f": "project_search::Deploy",
301 "cmd-k cmd-t": "theme_selector::Toggle",
302 "cmd-k cmd-s": "zed::OpenKeymap",
303 "cmd-t": "project_symbols::Toggle",
304 "cmd-p": "file_finder::Toggle",
305 "cmd-shift-p": "command_palette::Toggle",
306 "cmd-shift-m": "diagnostics::Deploy",
307 "cmd-shift-e": "project_panel::Toggle",
308 "cmd-alt-s": "workspace::SaveAll"
309 }
310 },
311 // Bindings from Sublime Text
312 {
313 "context": "Editor",
314 "bindings": {
315 "ctrl-shift-k": "editor::DeleteLine",
316 "cmd-shift-d": "editor::DuplicateLine",
317 "cmd-shift-l": "editor::SplitSelectionIntoLines",
318 "ctrl-cmd-up": "editor::MoveLineUp",
319 "ctrl-cmd-down": "editor::MoveLineDown",
320 "ctrl-alt-backspace": "editor::DeleteToPreviousSubwordStart",
321 "ctrl-alt-h": "editor::DeleteToPreviousSubwordStart",
322 "ctrl-alt-delete": "editor::DeleteToNextSubwordEnd",
323 "ctrl-alt-d": "editor::DeleteToNextSubwordEnd",
324 "ctrl-alt-left": "editor::MoveToPreviousSubwordStart",
325 "ctrl-alt-b": "editor::MoveToPreviousSubwordStart",
326 "ctrl-alt-right": "editor::MoveToNextSubwordEnd",
327 "ctrl-alt-f": "editor::MoveToNextSubwordEnd",
328 "ctrl-alt-shift-left": "editor::SelectToPreviousSubwordStart",
329 "ctrl-alt-shift-b": "editor::SelectToPreviousSubwordStart",
330 "ctrl-alt-shift-right": "editor::SelectToNextSubwordEnd",
331 "ctrl-alt-shift-f": "editor::SelectToNextSubwordEnd"
332 }
333 },
334 {
335 "bindings": {
336 "cmd-k cmd-left": "workspace::ActivatePreviousPane",
337 "cmd-k cmd-right": "workspace::ActivateNextPane"
338 }
339 },
340 // Bindings from Atom
341 {
342 "context": "Pane",
343 "bindings": {
344 "cmd-k up": "pane::SplitUp",
345 "cmd-k down": "pane::SplitDown",
346 "cmd-k left": "pane::SplitLeft",
347 "cmd-k right": "pane::SplitRight"
348 }
349 },
350 // Bindings that should be unified with bindings for more general actions
351 {
352 "context": "Editor && renaming",
353 "bindings": {
354 "enter": "editor::ConfirmRename"
355 }
356 },
357 {
358 "context": "Editor && showing_completions",
359 "bindings": {
360 "enter": "editor::ConfirmCompletion",
361 "tab": "editor::ConfirmCompletion"
362 }
363 },
364 {
365 "context": "Editor && showing_code_actions",
366 "bindings": {
367 "enter": "editor::ConfirmCodeAction"
368 }
369 },
370 // Custom bindings
371 {
372 "bindings": {
373 "ctrl-alt-cmd-f": "workspace::FollowNextCollaborator",
374 "cmd-alt-i": "zed::DebugElements"
375 }
376 },
377 {
378 "context": "Editor",
379 "bindings": {
380 "alt-enter": "editor::OpenExcerpts"
381 }
382 },
383 {
384 "context": "ProjectSearchBar",
385 "bindings": {
386 "cmd-enter": "project_search::SearchInNew"
387 }
388 },
389 {
390 "context": "Workspace",
391 "bindings": {
392 "cmd-shift-c": "contacts_panel::Toggle",
393 "cmd-shift-b": "workspace::ToggleRightSidebar"
394 }
395 },
396 {
397 "context": "ProjectPanel",
398 "bindings": {
399 "left": "project_panel::CollapseSelectedEntry",
400 "right": "project_panel::ExpandSelectedEntry",
401 "cmd-x": "project_panel::Cut",
402 "cmd-c": "project_panel::Copy",
403 "cmd-v": "project_panel::Paste",
404 "cmd-alt-c": "project_panel::CopyPath",
405 "f2": "project_panel::Rename",
406 "backspace": "project_panel::Delete"
407 }
408 },
409 {
410 "context": "Terminal",
411 "bindings": {
412 // Overrides for global bindings, remove at your own risk:
413 "up": "terminal::Up",
414 "down": "terminal::Down",
415 "escape": "terminal::Escape",
416 "enter": "terminal::Enter",
417 "ctrl-c": "terminal::CtrlC",
418 // Useful terminal actions:
419 "cmd-c": "terminal::Copy",
420 "cmd-v": "terminal::Paste",
421 "cmd-k": "terminal::Clear"
422 }
423 },
424 {
425 "context": "ModalTerminal",
426 "bindings": {
427 "shift-escape": "terminal::DeployModal"
428 }
429 }
430]