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    }
150  },
151  {
152    "context": "Editor && vim_mode == normal && (vim_operator == none || vim_operator == n) && !VimWaiting",
153    "bindings": {
154      "c": [
155        "vim::PushOperator",
156        "Change"
157      ],
158      "shift-c": "vim::ChangeToEndOfLine",
159      "d": [
160        "vim::PushOperator",
161        "Delete"
162      ],
163      "shift-d": "vim::DeleteToEndOfLine",
164      "shift-j": "editor::JoinLines",
165      "y": [
166        "vim::PushOperator",
167        "Yank"
168      ],
169      "z": [
170        "vim::PushOperator",
171        {
172          "Namespace": "Z"
173        }
174      ],
175      "i": [
176        "vim::SwitchMode",
177        "Insert"
178      ],
179      "shift-i": "vim::InsertFirstNonWhitespace",
180      "a": "vim::InsertAfter",
181      "shift-a": "vim::InsertEndOfLine",
182      "x": "vim::DeleteRight",
183      "shift-x": "vim::DeleteLeft",
184      "o": "vim::InsertLineBelow",
185      "shift-o": "vim::InsertLineAbove",
186      "~": "vim::ChangeCase",
187      "v": [
188        "vim::SwitchMode",
189        {
190          "Visual": {
191            "line": false
192          }
193        }
194      ],
195      "shift-v": [
196        "vim::SwitchMode",
197        {
198          "Visual": {
199            "line": true
200          }
201        }
202      ],
203      "p": "vim::Paste",
204      "u": "editor::Undo",
205      "ctrl-r": "editor::Redo",
206      "/": "vim::Search",
207      "?": [
208        "vim::Search",
209        {
210          "backwards": true
211        }
212      ],
213      "ctrl-f": "vim::PageDown",
214      "pagedown": "vim::PageDown",
215      "ctrl-b": "vim::PageUp",
216      "pageup": "vim::PageUp",
217      "ctrl-d": "vim::ScrollDown",
218      "ctrl-u": "vim::ScrollUp",
219      "ctrl-e": "vim::LineDown",
220      "ctrl-y": "vim::LineUp",
221      "r": [
222        "vim::PushOperator",
223        "Replace"
224      ],
225      "s": "vim::Substitute",
226      "> >": "editor::Indent",
227      "< <": "editor::Outdent",
228      "ctrl-pagedown": "pane::ActivateNextItem",
229      "ctrl-pageup": "pane::ActivatePrevItem"
230    }
231  },
232  {
233    "context": "Editor && vim_operator == n",
234    "bindings": {
235      "0": [
236        "vim::Number",
237        0
238      ]
239    }
240  },
241  {
242    "context": "Editor && vim_operator == g",
243    "bindings": {
244      "g": "vim::StartOfDocument",
245      "h": "editor::Hover",
246      "t": "pane::ActivateNextItem",
247      "shift-t": "pane::ActivatePrevItem",
248      "d": "editor::GoToDefinition",
249      "shift-d": "editor::GoToTypeDefinition",
250      "*": [
251        "vim::MoveToNext",
252        {
253          "partialWord": true
254        }
255      ],
256      "#": [
257        "vim::MoveToPrev",
258        {
259          "partialWord": true
260        }
261      ]
262    }
263  },
264  {
265    "context": "Editor && vim_operator == c",
266    "bindings": {
267      "c": "vim::CurrentLine"
268    }
269  },
270  {
271    "context": "Editor && vim_operator == d",
272    "bindings": {
273      "d": "vim::CurrentLine"
274    }
275  },
276  {
277    "context": "Editor && vim_operator == y",
278    "bindings": {
279      "y": "vim::CurrentLine"
280    }
281  },
282  {
283    "context": "Editor && vim_operator == z",
284    "bindings": {
285      "t": "editor::ScrollCursorTop",
286      "z": "editor::ScrollCursorCenter",
287      "b": "editor::ScrollCursorBottom"
288    }
289  },
290  {
291    "context": "Editor && VimObject",
292    "bindings": {
293      "w": "vim::Word",
294      "shift-w": [
295        "vim::Word",
296        {
297          "ignorePunctuation": true
298        }
299      ],
300      "s": "vim::Sentence",
301      "'": "vim::Quotes",
302      "`": "vim::BackQuotes",
303      "\"": "vim::DoubleQuotes",
304      "(": "vim::Parentheses",
305      ")": "vim::Parentheses",
306      "[": "vim::SquareBrackets",
307      "]": "vim::SquareBrackets",
308      "{": "vim::CurlyBrackets",
309      "}": "vim::CurlyBrackets",
310      "<": "vim::AngleBrackets",
311      ">": "vim::AngleBrackets"
312    }
313  },
314  {
315    "context": "Editor && vim_mode == visual && !VimWaiting",
316    "bindings": {
317      "u": "editor::Undo",
318      "c": "vim::VisualChange",
319      "d": "vim::VisualDelete",
320      "x": "vim::VisualDelete",
321      "y": "vim::VisualYank",
322      "p": "vim::VisualPaste",
323      "s": "vim::Substitute",
324      "~": "vim::ChangeCase",
325      "r": [
326        "vim::PushOperator",
327        "Replace"
328      ],
329      "ctrl-c": [
330        "vim::SwitchMode",
331        "Normal"
332      ],
333      ">": "editor::Indent",
334      "<": "editor::Outdent"
335    }
336  },
337  {
338    "context": "Editor && vim_mode == insert",
339    "bindings": {
340      "escape": "vim::NormalBefore",
341      "ctrl-c": "vim::NormalBefore",
342      "ctrl-[": "vim::NormalBefore"
343    }
344  },
345  {
346    "context": "Editor && VimWaiting",
347    "bindings": {
348      "tab": "vim::Tab",
349      "enter": "vim::Enter",
350      "escape": [
351        "vim::SwitchMode",
352        "Normal"
353      ],
354      "ctrl+[": [
355        "vim::SwitchMode",
356        "Normal"
357      ]
358    }
359  },
360  {
361    "context": "BufferSearchBar",
362    "bindings": {
363      "enter": "vim::SearchSubmit",
364      "escape": "buffer_search::Dismiss"
365    }
366  }
367]