vim.json

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