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