vim.json

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