1[
2 {
3 "bindings": {
4 "ctrl-alt-s": "zed::OpenSettings",
5 "ctrl-{": "pane::ActivatePreviousItem",
6 "ctrl-}": "pane::ActivateNextItem",
7 "shift-escape": null, // Unmap workspace::zoom
8 "ctrl-~": "git::Branch",
9 "ctrl-f2": "debugger::Stop",
10 "f6": "debugger::Pause",
11 "f7": "debugger::StepInto",
12 "f8": "debugger::StepOver",
13 "shift-f8": "debugger::StepOut",
14 "f9": "debugger::Continue",
15 "shift-f9": "debugger::Start",
16 "alt-shift-f9": "debugger::Start",
17 },
18 },
19 {
20 "context": "Editor",
21 "bindings": {
22 "ctrl->": ["zed::IncreaseBufferFontSize", { "persist": true }],
23 "ctrl-<": ["zed::DecreaseBufferFontSize", { "persist": true }],
24 "ctrl-shift-j": "editor::JoinLines",
25 "ctrl-d": "editor::DuplicateSelection",
26 "ctrl-y": "editor::DeleteLine",
27 "ctrl-m": "editor::ScrollCursorCenter",
28 "ctrl-pagedown": "editor::MovePageDown",
29 "ctrl-pageup": "editor::MovePageUp",
30 // "ctrl-alt-shift-b": "editor::SelectToPreviousWordStart",
31 "ctrl-alt-enter": "editor::NewlineAbove",
32 "shift-enter": "editor::NewlineBelow",
33 // "ctrl--": "editor::Fold", // TODO: `ctrl-numpad--` (numpad not implemented)
34 // "ctrl-+": "editor::UnfoldLines", // TODO: `ctrl-numpad+` (numpad not implemented)
35 "alt-shift-g": "editor::SplitSelectionIntoLines",
36 "alt-j": ["editor::SelectNext", { "replace_newest": false }],
37 "alt-shift-j": ["editor::SelectPrevious", { "replace_newest": false }],
38 "ctrl-/": ["editor::ToggleComments", { "advance_downwards": true }],
39 "ctrl-w": "editor::SelectLargerSyntaxNode",
40 "ctrl-shift-w": "editor::SelectSmallerSyntaxNode",
41 "shift-alt-up": "editor::MoveLineUp",
42 "shift-alt-down": "editor::MoveLineDown",
43 "ctrl-alt-l": "editor::Format",
44 "ctrl-alt-o": "editor::OrganizeImports",
45 "shift-f6": "editor::Rename",
46 "ctrl-alt-left": "pane::GoBack",
47 "ctrl-alt-right": "pane::GoForward",
48 "alt-f7": "editor::FindAllReferences",
49 "ctrl-alt-f7": "editor::FindAllReferences",
50 "ctrl-b": "editor::GoToDefinition", // Conflicts with workspace::ToggleLeftDock
51 "ctrl-alt-b": "editor::GoToImplementation", // Conflicts with workspace::ToggleRightDock
52 "ctrl-shift-b": "editor::GoToTypeDefinition",
53 "ctrl-alt-shift-b": "editor::GoToTypeDefinitionSplit",
54 "f2": "editor::GoToDiagnostic",
55 "shift-f2": "editor::GoToPreviousDiagnostic",
56 "ctrl-alt-shift-down": "editor::GoToHunk",
57 "ctrl-alt-shift-up": "editor::GoToPreviousHunk",
58 "ctrl-alt-z": "git::Restore",
59 "ctrl-home": "editor::MoveToBeginning",
60 "ctrl-end": "editor::MoveToEnd",
61 "ctrl-shift-home": "editor::SelectToBeginning",
62 "ctrl-shift-end": "editor::SelectToEnd",
63 "alt-left": "editor::MoveToPreviousSubwordStart",
64 "alt-right": "editor::MoveToNextSubwordEnd",
65 "shift-alt-left": "editor::SelectToPreviousSubwordStart",
66 "shift-alt-right": "editor::SelectToNextSubwordEnd",
67 "ctrl-f8": "editor::ToggleBreakpoint",
68 "ctrl-shift-f8": "editor::EditLogBreakpoint",
69 "ctrl-shift-u": "editor::ToggleCase",
70 },
71 },
72 {
73 "context": "Editor && mode == full",
74 "bindings": {
75 "ctrl-f12": "outline::Toggle",
76 "ctrl-r": ["buffer_search::Deploy", { "replace_enabled": true }],
77 "ctrl-e": "file_finder::Toggle",
78 "ctrl-shift-n": "file_finder::Toggle",
79 "ctrl-alt-n": "file_finder::Toggle",
80 "ctrl-g": "go_to_line::Toggle",
81 "alt-enter": "editor::ToggleCodeActions",
82 "ctrl-space": "editor::ShowCompletions",
83 "ctrl-q": "editor::Hover",
84 "ctrl-p": "editor::ShowSignatureHelp",
85 "ctrl-\\": "assistant::InlineAssist",
86 },
87 },
88 {
89 "context": "Editor && mode == auto_height",
90 "bindings": {
91 "shift-enter": "editor::Newline",
92 "ctrl-shift-enter": "editor::NewlineBelow",
93 },
94 },
95 {
96 "context": "BufferSearchBar",
97 "bindings": {
98 "shift-enter": "search::SelectPreviousMatch",
99 },
100 },
101 {
102 "context": "BufferSearchBar || ProjectSearchBar",
103 "bindings": {
104 "alt-c": "search::ToggleCaseSensitive",
105 "alt-e": "search::ToggleSelection",
106 "alt-x": "search::ToggleRegex",
107 "alt-w": "search::ToggleWholeWord",
108 },
109 },
110 {
111 "context": "Workspace",
112 "bindings": {
113 "ctrl-shift-f12": "workspace::ToggleAllDocks",
114 "ctrl-shift-r": ["pane::DeploySearch", { "replace_enabled": true }],
115 "alt-shift-f10": "task::Spawn",
116 "shift-f10": "task::Spawn",
117 "ctrl-f5": "task::Rerun",
118 "ctrl-e": "file_finder::Toggle",
119 "ctrl-k": "git_panel::ToggleFocus", // bug: This should also focus commit editor
120 "ctrl-shift-n": "file_finder::Toggle",
121 "ctrl-alt-n": "file_finder::Toggle",
122 "ctrl-n": "project_symbols::Toggle",
123 "ctrl-shift-a": "command_palette::Toggle",
124 "shift shift": "command_palette::Toggle",
125 "ctrl-alt-shift-n": "project_symbols::Toggle",
126 "alt-0": "git_panel::ToggleFocus",
127 "alt-1": "project_panel::ToggleFocus",
128 "alt-5": "debug_panel::ToggleFocus",
129 "alt-6": "diagnostics::Deploy",
130 "alt-7": "outline_panel::ToggleFocus",
131 },
132 },
133 {
134 "context": "Pane", // this is to override the default Pane mappings to switch tabs
135 "bindings": {
136 "alt-1": "project_panel::ToggleFocus",
137 "alt-2": null, // Bookmarks (left dock)
138 "alt-3": null, // Find Panel (bottom dock)
139 "alt-4": null, // Run Panel (bottom dock)
140 "alt-5": "debug_panel::ToggleFocus",
141 "alt-6": "diagnostics::Deploy",
142 "alt-7": "outline_panel::ToggleFocus",
143 "alt-8": null, // Services (bottom dock)
144 "alt-9": null, // Git History (bottom dock)
145 "alt-0": "git_panel::ToggleFocus",
146 },
147 },
148 {
149 "context": "Workspace || Editor",
150 "bindings": {
151 "alt-f12": "terminal_panel::Toggle",
152 "ctrl-shift-k": "git::Push",
153 },
154 },
155 {
156 "context": "Pane",
157 "bindings": {
158 "ctrl-alt-left": "pane::GoBack",
159 "ctrl-alt-right": "pane::GoForward",
160 "alt-left": "pane::ActivatePreviousItem",
161 "alt-right": "pane::ActivateNextItem",
162 },
163 },
164 {
165 "context": "ProjectPanel",
166 "bindings": {
167 "enter": "project_panel::Open",
168 "ctrl-shift-f": "project_panel::NewSearchInDirectory",
169 "backspace": ["project_panel::Trash", { "skip_prompt": false }],
170 "delete": ["project_panel::Trash", { "skip_prompt": false }],
171 "shift-delete": ["project_panel::Delete", { "skip_prompt": false }],
172 "shift-f6": "project_panel::Rename",
173 },
174 },
175 {
176 "context": "Terminal",
177 "bindings": {
178 "ctrl-shift-t": "workspace::NewTerminal",
179 "alt-f12": "workspace::CloseActiveDock",
180 "ctrl-up": "terminal::ScrollLineUp",
181 "ctrl-down": "terminal::ScrollLineDown",
182 "shift-pageup": "terminal::ScrollPageUp",
183 "shift-pagedown": "terminal::ScrollPageDown",
184 },
185 },
186 { "context": "GitPanel", "bindings": { "alt-0": "workspace::CloseActiveDock" } },
187 { "context": "ProjectPanel", "bindings": { "alt-1": "workspace::CloseActiveDock" } },
188 { "context": "DebugPanel", "bindings": { "alt-5": "workspace::CloseActiveDock" } },
189 { "context": "Diagnostics > Editor", "bindings": { "alt-6": "pane::CloseActiveItem" } },
190 { "context": "OutlinePanel", "bindings": { "alt-7": "workspace::CloseActiveDock" } },
191 {
192 "context": "Dock || Workspace || OutlinePanel || ProjectPanel || CollabPanel",
193 "bindings": {
194 "escape": "editor::ToggleFocus",
195 "shift-escape": "workspace::CloseActiveDock",
196 },
197 },
198 {
199 "context": "Editor && mode == auto_height",
200 "bindings": {
201 "escape": "editor::Cancel",
202 },
203 },
204]