1[
2 {
3 "context": "Editor && VimControl && !VimWaiting && !menu",
4 "bindings": {
5 "i": [
6 "vim::PushOperator",
7 {
8 "Object": {
9 "around": false
10 }
11 }
12 ],
13 "a": [
14 "vim::PushOperator",
15 {
16 "Object": {
17 "around": true
18 }
19 }
20 ],
21 "h": "vim::Left",
22 "left": "vim::Left",
23 "backspace": "vim::Backspace",
24 "j": "vim::Down",
25 "down": "vim::Down",
26 "enter": "vim::NextLineStart",
27 "tab": "vim::Tab",
28 "shift-tab": "vim::Tab",
29 "k": "vim::Up",
30 "up": "vim::Up",
31 "l": "vim::Right",
32 "right": "vim::Right",
33 "$": "vim::EndOfLine",
34 "^": "vim::FirstNonWhitespace",
35 "shift-g": "vim::EndOfDocument",
36 "w": "vim::NextWordStart",
37 "{": "vim::StartOfParagraph",
38 "}": "vim::EndOfParagraph",
39 "shift-w": [
40 "vim::NextWordStart",
41 {
42 "ignorePunctuation": true
43 }
44 ],
45 "e": "vim::NextWordEnd",
46 "shift-e": [
47 "vim::NextWordEnd",
48 {
49 "ignorePunctuation": true
50 }
51 ],
52 "b": "vim::PreviousWordStart",
53 "shift-b": [
54 "vim::PreviousWordStart",
55 {
56 "ignorePunctuation": true
57 }
58 ],
59 "n": "search::SelectNextMatch",
60 "shift-n": "search::SelectPrevMatch",
61 "%": "vim::Matching",
62 "f": [
63 "vim::PushOperator",
64 {
65 "FindForward": {
66 "before": false
67 }
68 }
69 ],
70 "t": [
71 "vim::PushOperator",
72 {
73 "FindForward": {
74 "before": true
75 }
76 }
77 ],
78 "shift-f": [
79 "vim::PushOperator",
80 {
81 "FindBackward": {
82 "after": false
83 }
84 }
85 ],
86 "shift-t": [
87 "vim::PushOperator",
88 {
89 "FindBackward": {
90 "after": true
91 }
92 }
93 ],
94 "ctrl-o": "pane::GoBack",
95 "ctrl-]": "editor::GoToDefinition",
96 "escape": [
97 "vim::SwitchMode",
98 "Normal"
99 ],
100 "ctrl+[": [
101 "vim::SwitchMode",
102 "Normal"
103 ],
104 "*": "vim::MoveToNext",
105 "#": "vim::MoveToPrev",
106 "0": "vim::StartOfLine", // When no number operator present, use start of line motion
107 // "g" commands
108 "g g": "vim::StartOfDocument",
109 "g h": "editor::Hover",
110 "g t": "pane::ActivateNextItem",
111 "g shift-t": "pane::ActivatePrevItem",
112 "g d": "editor::GoToDefinition",
113 "g shift-d": "editor::GoToTypeDefinition",
114 "g *": [
115 "vim::MoveToNext",
116 {
117 "partialWord": true
118 }
119 ],
120 "g #": [
121 "vim::MoveToPrev",
122 {
123 "partialWord": true
124 }
125 ],
126 // z commands
127 "z t": "editor::ScrollCursorTop",
128 "z z": "editor::ScrollCursorCenter",
129 "z b": "editor::ScrollCursorBottom",
130 // Count support
131 "1": [
132 "vim::Number",
133 1
134 ],
135 "2": [
136 "vim::Number",
137 2
138 ],
139 "3": [
140 "vim::Number",
141 3
142 ],
143 "4": [
144 "vim::Number",
145 4
146 ],
147 "5": [
148 "vim::Number",
149 5
150 ],
151 "6": [
152 "vim::Number",
153 6
154 ],
155 "7": [
156 "vim::Number",
157 7
158 ],
159 "8": [
160 "vim::Number",
161 8
162 ],
163 "9": [
164 "vim::Number",
165 9
166 ],
167 // window related commands (ctrl-w X)
168 "ctrl-w left": [
169 "workspace::ActivatePaneInDirection",
170 "Left"
171 ],
172 "ctrl-w right": [
173 "workspace::ActivatePaneInDirection",
174 "Right"
175 ],
176 "ctrl-w up": [
177 "workspace::ActivatePaneInDirection",
178 "Up"
179 ],
180 "ctrl-w down": [
181 "workspace::ActivatePaneInDirection",
182 "Down"
183 ],
184 "ctrl-w h": [
185 "workspace::ActivatePaneInDirection",
186 "Left"
187 ],
188 "ctrl-w l": [
189 "workspace::ActivatePaneInDirection",
190 "Right"
191 ],
192 "ctrl-w k": [
193 "workspace::ActivatePaneInDirection",
194 "Up"
195 ],
196 "ctrl-w j": [
197 "workspace::ActivatePaneInDirection",
198 "Down"
199 ],
200 "ctrl-w ctrl-h": [
201 "workspace::ActivatePaneInDirection",
202 "Left"
203 ],
204 "ctrl-w ctrl-l": [
205 "workspace::ActivatePaneInDirection",
206 "Right"
207 ],
208 "ctrl-w ctrl-k": [
209 "workspace::ActivatePaneInDirection",
210 "Up"
211 ],
212 "ctrl-w ctrl-j": [
213 "workspace::ActivatePaneInDirection",
214 "Down"
215 ],
216 "ctrl-w g t": "pane::ActivateNextItem",
217 "ctrl-w ctrl-g t": "pane::ActivateNextItem",
218 "ctrl-w g shift-t": "pane::ActivatePrevItem",
219 "ctrl-w ctrl-g shift-t": "pane::ActivatePrevItem",
220 "ctrl-w w": "workspace::ActivateNextPane",
221 "ctrl-w ctrl-w": "workspace::ActivateNextPane",
222 "ctrl-w p": "workspace::ActivatePreviousPane",
223 "ctrl-w ctrl-p": "workspace::ActivatePreviousPane",
224 "ctrl-w shift-w": "workspace::ActivatePreviousPane",
225 "ctrl-w ctrl-shift-w": "workspace::ActivatePreviousPane",
226 "ctrl-w v": "pane::SplitLeft",
227 "ctrl-w ctrl-v": "pane::SplitLeft",
228 "ctrl-w s": "pane::SplitUp",
229 "ctrl-w shift-s": "pane::SplitUp",
230 "ctrl-w ctrl-s": "pane::SplitUp",
231 "ctrl-w c": "pane::CloseAllItems",
232 "ctrl-w ctrl-c": "pane::CloseAllItems",
233 "ctrl-w q": "pane::CloseAllItems",
234 "ctrl-w ctrl-q": "pane::CloseAllItems"
235 }
236 },
237 {
238 "context": "Editor && vim_mode == normal && (vim_operator == none || vim_operator == n) && !VimWaiting",
239 "bindings": {
240 "c": [
241 "vim::PushOperator",
242 "Change"
243 ],
244 "shift-c": "vim::ChangeToEndOfLine",
245 "d": [
246 "vim::PushOperator",
247 "Delete"
248 ],
249 "shift-d": "vim::DeleteToEndOfLine",
250 "shift-j": "editor::JoinLines",
251 "y": [
252 "vim::PushOperator",
253 "Yank"
254 ],
255 "i": [
256 "vim::SwitchMode",
257 "Insert"
258 ],
259 "shift-i": "vim::InsertFirstNonWhitespace",
260 "a": "vim::InsertAfter",
261 "shift-a": "vim::InsertEndOfLine",
262 "x": "vim::DeleteRight",
263 "shift-x": "vim::DeleteLeft",
264 "o": "vim::InsertLineBelow",
265 "shift-o": "vim::InsertLineAbove",
266 "~": "vim::ChangeCase",
267 "v": [
268 "vim::SwitchMode",
269 {
270 "Visual": {
271 "line": false
272 }
273 }
274 ],
275 "shift-v": [
276 "vim::SwitchMode",
277 {
278 "Visual": {
279 "line": true
280 }
281 }
282 ],
283 "p": "vim::Paste",
284 "u": "editor::Undo",
285 "ctrl-r": "editor::Redo",
286 "/": "vim::Search",
287 "?": [
288 "vim::Search",
289 {
290 "backwards": true
291 }
292 ],
293 "ctrl-f": "vim::PageDown",
294 "pagedown": "vim::PageDown",
295 "ctrl-b": "vim::PageUp",
296 "pageup": "vim::PageUp",
297 "ctrl-d": "vim::ScrollDown",
298 "ctrl-u": "vim::ScrollUp",
299 "ctrl-e": "vim::LineDown",
300 "ctrl-y": "vim::LineUp",
301 "r": [
302 "vim::PushOperator",
303 "Replace"
304 ],
305 "s": "vim::Substitute",
306 "> >": "editor::Indent",
307 "< <": "editor::Outdent",
308 "ctrl-pagedown": "pane::ActivateNextItem",
309 "ctrl-pageup": "pane::ActivatePrevItem"
310 }
311 },
312 {
313 "context": "Editor && vim_operator == n",
314 "bindings": {
315 "0": [
316 "vim::Number",
317 0
318 ]
319 }
320 },
321 {
322 "context": "Editor && vim_operator == c",
323 "bindings": {
324 "c": "vim::CurrentLine"
325 }
326 },
327 {
328 "context": "Editor && vim_operator == d",
329 "bindings": {
330 "d": "vim::CurrentLine"
331 }
332 },
333 {
334 "context": "Editor && vim_operator == y",
335 "bindings": {
336 "y": "vim::CurrentLine"
337 }
338 },
339 {
340 "context": "Editor && VimObject",
341 "bindings": {
342 "w": "vim::Word",
343 "shift-w": [
344 "vim::Word",
345 {
346 "ignorePunctuation": true
347 }
348 ],
349 "s": "vim::Sentence",
350 "'": "vim::Quotes",
351 "`": "vim::BackQuotes",
352 "\"": "vim::DoubleQuotes",
353 "(": "vim::Parentheses",
354 ")": "vim::Parentheses",
355 "[": "vim::SquareBrackets",
356 "]": "vim::SquareBrackets",
357 "{": "vim::CurlyBrackets",
358 "}": "vim::CurlyBrackets",
359 "<": "vim::AngleBrackets",
360 ">": "vim::AngleBrackets"
361 }
362 },
363 {
364 "context": "Editor && vim_mode == visual && !VimWaiting",
365 "bindings": {
366 "u": "editor::Undo",
367 "c": "vim::VisualChange",
368 "d": "vim::VisualDelete",
369 "x": "vim::VisualDelete",
370 "y": "vim::VisualYank",
371 "p": "vim::VisualPaste",
372 "s": "vim::Substitute",
373 "~": "vim::ChangeCase",
374 "r": [
375 "vim::PushOperator",
376 "Replace"
377 ],
378 "ctrl-c": [
379 "vim::SwitchMode",
380 "Normal"
381 ],
382 ">": "editor::Indent",
383 "<": "editor::Outdent"
384 }
385 },
386 {
387 "context": "Editor && vim_mode == insert",
388 "bindings": {
389 "escape": "vim::NormalBefore",
390 "ctrl-c": "vim::NormalBefore",
391 "ctrl-[": "vim::NormalBefore"
392 }
393 },
394 {
395 "context": "Editor && VimWaiting",
396 "bindings": {
397 "tab": "vim::Tab",
398 "enter": "vim::Enter",
399 "escape": [
400 "vim::SwitchMode",
401 "Normal"
402 ],
403 "ctrl+[": [
404 "vim::SwitchMode",
405 "Normal"
406 ]
407 }
408 },
409 {
410 "context": "BufferSearchBar > VimEnabled",
411 "bindings": {
412 "enter": "vim::SearchSubmit",
413 "escape": "buffer_search::Dismiss"
414 }
415 }
416]