vim.json

  1[
  2  {
  3    "context": "ProjectPanel || Editor",
  4    "bindings": {
  5      "ctrl-6": "pane::AlternateFile"
  6    }
  7  },
  8  {
  9    "context": "Editor && VimControl && !VimWaiting && !menu",
 10    "bindings": {
 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      ":": "command_palette::Toggle",
 28      "h": "vim::Left",
 29      "left": "vim::Left",
 30      "backspace": "vim::Backspace",
 31      "j": "vim::Down",
 32      "down": "vim::Down",
 33      "enter": "vim::NextLineStart",
 34      "tab": "vim::Tab",
 35      "shift-tab": "vim::Tab",
 36      "k": "vim::Up",
 37      "up": "vim::Up",
 38      "l": "vim::Right",
 39      "right": "vim::Right",
 40      "space": "vim::Space",
 41      "$": "vim::EndOfLine",
 42      "end": "vim::EndOfLine",
 43      "^": "vim::FirstNonWhitespace",
 44      "_": "vim::StartOfLineDownward",
 45      "g _": "vim::EndOfLineDownward",
 46      "shift-g": "vim::EndOfDocument",
 47      "{": "vim::StartOfParagraph",
 48      "}": "vim::EndOfParagraph",
 49      "|": "vim::GoToColumn",
 50      // Word motions
 51      "w": "vim::NextWordStart",
 52      "e": "vim::NextWordEnd",
 53      "b": "vim::PreviousWordStart",
 54      "g e": "vim::PreviousWordEnd",
 55      // Subword motions
 56      // "w": "vim::NextSubwordStart",
 57      // "b": "vim::PreviousSubwordStart",
 58      // "e": "vim::NextSubwordEnd",
 59      // "g e": "vim::PreviousSubwordEnd",
 60      "shift-w": [
 61        "vim::NextWordStart",
 62        {
 63          "ignorePunctuation": true
 64        }
 65      ],
 66      "shift-e": [
 67        "vim::NextWordEnd",
 68        {
 69          "ignorePunctuation": true
 70        }
 71      ],
 72      "shift-b": [
 73        "vim::PreviousWordStart",
 74        {
 75          "ignorePunctuation": true
 76        }
 77      ],
 78      "g shift-e": [
 79        "vim::PreviousWordEnd",
 80        {
 81          "ignorePunctuation": true
 82        }
 83      ],
 84      "/": "vim::Search",
 85      "g /": "pane::DeploySearch",
 86      "?": [
 87        "vim::Search",
 88        {
 89          "backwards": true
 90        }
 91      ],
 92      "*": "vim::MoveToNext",
 93      "#": "vim::MoveToPrev",
 94      "n": "vim::MoveToNextMatch",
 95      "shift-n": "vim::MoveToPrevMatch",
 96      "%": "vim::Matching",
 97      "f": [
 98        "vim::PushOperator",
 99        {
100          "FindForward": {
101            "before": false
102          }
103        }
104      ],
105      "t": [
106        "vim::PushOperator",
107        {
108          "FindForward": {
109            "before": true
110          }
111        }
112      ],
113      "shift-f": [
114        "vim::PushOperator",
115        {
116          "FindBackward": {
117            "after": false
118          }
119        }
120      ],
121      "shift-t": [
122        "vim::PushOperator",
123        {
124          "FindBackward": {
125            "after": true
126          }
127        }
128      ],
129      "m": [
130        "vim::PushOperator",
131        "Mark"
132      ],
133      "'": [
134        "vim::PushOperator",
135        {
136          "Jump": {
137            "line": true
138          }
139        }
140      ],
141      "`": [
142        "vim::PushOperator",
143        {
144          "Jump": {
145            "line": false
146          }
147        }
148      ],
149      ";": "vim::RepeatFind",
150      ",": "vim::RepeatFindReversed",
151      "ctrl-o": "pane::GoBack",
152      "ctrl-i": "pane::GoForward",
153      "ctrl-]": "editor::GoToDefinition",
154      "escape": [
155        "vim::SwitchMode",
156        "Normal"
157      ],
158      "ctrl-[": [
159        "vim::SwitchMode",
160        "Normal"
161      ],
162      "v": "vim::ToggleVisual",
163      "shift-v": "vim::ToggleVisualLine",
164      "ctrl-v": "vim::ToggleVisualBlock",
165      "ctrl-q": "vim::ToggleVisualBlock",
166      "shift-k": "editor::Hover",
167      "shift-r": "vim::ToggleReplace",
168      "0": "vim::StartOfLine",
169      "home": "vim::StartOfLine",
170      "ctrl-f": "vim::PageDown",
171      "pagedown": "vim::PageDown",
172      "ctrl-b": "vim::PageUp",
173      "pageup": "vim::PageUp",
174      "ctrl-d": "vim::ScrollDown",
175      "ctrl-u": "vim::ScrollUp",
176      "ctrl-e": "vim::LineDown",
177      "ctrl-y": "vim::LineUp",
178      // "g" commands
179      "g g": "vim::StartOfDocument",
180      "g h": "editor::Hover",
181      "g t": "pane::ActivateNextItem",
182      "g shift-t": "pane::ActivatePrevItem",
183      "g d": "editor::GoToDefinition",
184      "g shift-d": "editor::GoToTypeDefinition",
185      "g cmd-d": "editor::GoToImplementation",
186      "g x": "editor::OpenUrl",
187      "g n": "vim::SelectNextMatch",
188      "g shift-n": "vim::SelectPreviousMatch",
189      "g l": "vim::SelectNext",
190      "g shift-l": "vim::SelectPrevious",
191      "g >": [
192        "editor::SelectNext",
193        {
194          "replace_newest": true
195        }
196      ],
197      "g <": [
198        "editor::SelectPrevious",
199        {
200          "replace_newest": true
201        }
202      ],
203      "g a": "editor::SelectAllMatches",
204      "g s": "outline::Toggle",
205      "g shift-s": "project_symbols::Toggle",
206      "g .": "editor::ToggleCodeActions", // zed specific
207      "g shift-a": "editor::FindAllReferences", // zed specific
208      "g space": "editor::OpenExcerpts", // zed specific
209      "g *": [
210        "vim::MoveToNext",
211        {
212          "partialWord": true
213        }
214      ],
215      "g #": [
216        "vim::MoveToPrev",
217        {
218          "partialWord": true
219        }
220      ],
221      "g j": [
222        "vim::Down",
223        {
224          "displayLines": true
225        }
226      ],
227      "g down": [
228        "vim::Down",
229        {
230          "displayLines": true
231        }
232      ],
233      "g k": [
234        "vim::Up",
235        {
236          "displayLines": true
237        }
238      ],
239      "g up": [
240        "vim::Up",
241        {
242          "displayLines": true
243        }
244      ],
245      "g $": [
246        "vim::EndOfLine",
247        {
248          "displayLines": true
249        }
250      ],
251      "g end": [
252        "vim::EndOfLine",
253        {
254          "displayLines": true
255        }
256      ],
257      "g 0": [
258        "vim::StartOfLine",
259        {
260          "displayLines": true
261        }
262      ],
263      "g home": [
264        "vim::StartOfLine",
265        {
266          "displayLines": true
267        }
268      ],
269      "g ^": [
270        "vim::FirstNonWhitespace",
271        {
272          "displayLines": true
273        }
274      ],
275      "g v": "vim::RestoreVisualSelection",
276      "g ]": "editor::GoToDiagnostic",
277      "g [": "editor::GoToPrevDiagnostic",
278      "g i": "vim::InsertAtPrevious",
279      "g ,": "vim::ChangeListNewer",
280      "g ;": "vim::ChangeListOlder",
281      "shift-h": "vim::WindowTop",
282      "shift-m": "vim::WindowMiddle",
283      "shift-l": "vim::WindowBottom",
284      // z commands
285      "z t": "editor::ScrollCursorTop",
286      "z z": "editor::ScrollCursorCenter",
287      "z .": [
288        "workspace::SendKeystrokes",
289        "z z ^"
290      ],
291      "z b": "editor::ScrollCursorBottom",
292      "z c": "editor::Fold",
293      "z o": "editor::UnfoldLines",
294      "z f": "editor::FoldSelectedRanges",
295      "shift-z shift-q": [
296        "pane::CloseActiveItem",
297        {
298          "saveIntent": "skip"
299        }
300      ],
301      "shift-z shift-z": [
302        "pane::CloseActiveItem",
303        {
304          "saveIntent": "saveAll"
305        }
306      ],
307      // Count support
308      "1": [
309        "vim::Number",
310        1
311      ],
312      "2": [
313        "vim::Number",
314        2
315      ],
316      "3": [
317        "vim::Number",
318        3
319      ],
320      "4": [
321        "vim::Number",
322        4
323      ],
324      "5": [
325        "vim::Number",
326        5
327      ],
328      "6": [
329        "vim::Number",
330        6
331      ],
332      "7": [
333        "vim::Number",
334        7
335      ],
336      "8": [
337        "vim::Number",
338        8
339      ],
340      "9": [
341        "vim::Number",
342        9
343      ],
344      // window related commands (ctrl-w X)
345      "ctrl-w left": [
346        "workspace::ActivatePaneInDirection",
347        "Left"
348      ],
349      "ctrl-w right": [
350        "workspace::ActivatePaneInDirection",
351        "Right"
352      ],
353      "ctrl-w up": [
354        "workspace::ActivatePaneInDirection",
355        "Up"
356      ],
357      "ctrl-w down": [
358        "workspace::ActivatePaneInDirection",
359        "Down"
360      ],
361      "ctrl-w h": [
362        "workspace::ActivatePaneInDirection",
363        "Left"
364      ],
365      "ctrl-w l": [
366        "workspace::ActivatePaneInDirection",
367        "Right"
368      ],
369      "ctrl-w k": [
370        "workspace::ActivatePaneInDirection",
371        "Up"
372      ],
373      "ctrl-w j": [
374        "workspace::ActivatePaneInDirection",
375        "Down"
376      ],
377      "ctrl-w ctrl-h": [
378        "workspace::ActivatePaneInDirection",
379        "Left"
380      ],
381      "ctrl-w ctrl-l": [
382        "workspace::ActivatePaneInDirection",
383        "Right"
384      ],
385      "ctrl-w ctrl-k": [
386        "workspace::ActivatePaneInDirection",
387        "Up"
388      ],
389      "ctrl-w ctrl-j": [
390        "workspace::ActivatePaneInDirection",
391        "Down"
392      ],
393      "ctrl-w shift-left": [
394        "workspace::SwapPaneInDirection",
395        "Left"
396      ],
397      "ctrl-w shift-right": [
398        "workspace::SwapPaneInDirection",
399        "Right"
400      ],
401      "ctrl-w shift-up": [
402        "workspace::SwapPaneInDirection",
403        "Up"
404      ],
405      "ctrl-w shift-down": [
406        "workspace::SwapPaneInDirection",
407        "Down"
408      ],
409      "ctrl-w shift-h": [
410        "workspace::SwapPaneInDirection",
411        "Left"
412      ],
413      "ctrl-w shift-l": [
414        "workspace::SwapPaneInDirection",
415        "Right"
416      ],
417      "ctrl-w shift-k": [
418        "workspace::SwapPaneInDirection",
419        "Up"
420      ],
421      "ctrl-w shift-j": [
422        "workspace::SwapPaneInDirection",
423        "Down"
424      ],
425      "ctrl-w g t": "pane::ActivateNextItem",
426      "ctrl-w ctrl-g t": "pane::ActivateNextItem",
427      "ctrl-w g shift-t": "pane::ActivatePrevItem",
428      "ctrl-w ctrl-g shift-t": "pane::ActivatePrevItem",
429      "ctrl-w w": "workspace::ActivateNextPane",
430      "ctrl-w ctrl-w": "workspace::ActivateNextPane",
431      "ctrl-w p": "workspace::ActivatePreviousPane",
432      "ctrl-w ctrl-p": "workspace::ActivatePreviousPane",
433      "ctrl-w shift-w": "workspace::ActivatePreviousPane",
434      "ctrl-w ctrl-shift-w": "workspace::ActivatePreviousPane",
435      "ctrl-w v": "pane::SplitLeft",
436      "ctrl-w ctrl-v": "pane::SplitLeft",
437      "ctrl-w s": "pane::SplitUp",
438      "ctrl-w shift-s": "pane::SplitUp",
439      "ctrl-w ctrl-s": "pane::SplitUp",
440      "ctrl-w c": "pane::CloseAllItems",
441      "ctrl-w ctrl-c": "pane::CloseAllItems",
442      "ctrl-w q": "pane::CloseAllItems",
443      "ctrl-w ctrl-q": "pane::CloseAllItems",
444      "ctrl-w o": "workspace::CloseInactiveTabsAndPanes",
445      "ctrl-w ctrl-o": "workspace::CloseInactiveTabsAndPanes",
446      "ctrl-w n": [
447        "workspace::NewFileInDirection",
448        "Up"
449      ],
450      "ctrl-w ctrl-n": [
451        "workspace::NewFileInDirection",
452        "Up"
453      ],
454      "ctrl-w d": "editor::GoToDefinitionSplit",
455      "ctrl-w g d": "editor::GoToDefinitionSplit",
456      "ctrl-w shift-d": "editor::GoToTypeDefinitionSplit",
457      "ctrl-w g shift-d": "editor::GoToTypeDefinitionSplit",
458      "ctrl-w space": "editor::OpenExcerptsSplit",
459      "ctrl-w g space": "editor::OpenExcerptsSplit",
460      "-": "pane::RevealInProjectPanel"
461    }
462  },
463  {
464    // escape is in its own section so that it cancels a pending count.
465    "context": "Editor && vim_mode == normal && vim_operator == none && !VimWaiting",
466    "bindings": {
467      "escape": "editor::Cancel",
468      "ctrl-[": "editor::Cancel"
469    }
470  },
471  {
472    "context": "Editor && vim_mode == normal && vim_operator == none && !VimWaiting",
473    "bindings": {
474      ".": "vim::Repeat",
475      "c": [
476        "vim::PushOperator",
477        "Change"
478      ],
479      "shift-c": "vim::ChangeToEndOfLine",
480      "d": [
481        "vim::PushOperator",
482        "Delete"
483      ],
484      "shift-d": "vim::DeleteToEndOfLine",
485      "shift-j": "vim::JoinLines",
486      "y": [
487        "vim::PushOperator",
488        "Yank"
489      ],
490      "shift-y": "vim::YankLine",
491      "i": "vim::InsertBefore",
492      "shift-i": "vim::InsertFirstNonWhitespace",
493      "a": "vim::InsertAfter",
494      "shift-a": "vim::InsertEndOfLine",
495      "x": "vim::DeleteRight",
496      "shift-x": "vim::DeleteLeft",
497      "o": "vim::InsertLineBelow",
498      "shift-o": "vim::InsertLineAbove",
499      "~": "vim::ChangeCase",
500      "ctrl-a": "vim::Increment",
501      "ctrl-x": "vim::Decrement",
502      "p": "vim::Paste",
503      "shift-p": [
504        "vim::Paste",
505        {
506          "before": true
507        }
508      ],
509      "u": "editor::Undo",
510      "ctrl-r": "editor::Redo",
511      "r": [
512        "vim::PushOperator",
513        "Replace"
514      ],
515      "s": "vim::Substitute",
516      "shift-s": "vim::SubstituteLine",
517      ">": [
518        "vim::PushOperator",
519        "Indent"
520      ],
521      "<": [
522        "vim::PushOperator",
523        "Outdent"
524      ],
525      "g u": [
526        "vim::PushOperator",
527        "Lowercase"
528      ],
529      "g shift-u": [
530        "vim::PushOperator",
531        "Uppercase"
532      ],
533      "g ~": [
534        "vim::PushOperator",
535        "OppositeCase"
536      ],
537      "\"": [
538        "vim::PushOperator",
539        "Register"
540      ],
541      "ctrl-pagedown": "pane::ActivateNextItem",
542      "ctrl-pageup": "pane::ActivatePrevItem",
543      // tree-sitter related commands
544      "[ x": "editor::SelectLargerSyntaxNode",
545      "] x": "editor::SelectSmallerSyntaxNode",
546      "] d": "editor::GoToDiagnostic",
547      "[ d": "editor::GoToPrevDiagnostic",
548      "] c": "editor::GoToHunk",
549      "[ c": "editor::GoToPrevHunk"
550    }
551  },
552  {
553    "context": "Editor && vim_mode == visual && vim_operator == none && !VimWaiting",
554    "bindings": {
555      "\"": [
556        "vim::PushOperator",
557        "Register"
558      ],
559      // tree-sitter related commands
560      "[ x": "editor::SelectLargerSyntaxNode",
561      "] x": "editor::SelectSmallerSyntaxNode"
562    }
563  },
564  {
565    "context": "Editor && VimCount && vim_mode != insert",
566    "bindings": {
567      "0": [
568        "vim::Number",
569        0
570      ]
571    }
572  },
573  {
574    "context": "Editor && vim_operator == c",
575    "bindings": {
576      "c": "vim::CurrentLine",
577      "d": "editor::Rename" // zed specific
578    }
579  },
580  {
581    "context": "Editor && vim_mode == normal && vim_operator == c",
582    "bindings": {
583      "s": [
584        "vim::PushOperator",
585        {
586          "ChangeSurrounds": {}
587        }
588      ]
589    }
590  },
591  {
592    "context": "Editor && vim_operator == d",
593    "bindings": {
594      "d": "vim::CurrentLine"
595    }
596  },
597  {
598    "context": "Editor && vim_operator == gu",
599    "bindings": {
600      "g u": "vim::CurrentLine",
601      "u": "vim::CurrentLine"
602    }
603  },
604  {
605    "context": "Editor && vim_operator == gU",
606    "bindings": {
607      "g shift-u": "vim::CurrentLine",
608      "shift-u": "vim::CurrentLine"
609    }
610  },
611  {
612    "context": "Editor && vim_operator == g~",
613    "bindings": {
614      "g ~": "vim::CurrentLine",
615      "~": "vim::CurrentLine"
616    }
617  },
618  {
619    "context": "Editor && vim_mode == normal && vim_operator == d",
620    "bindings": {
621      "s": [
622        "vim::PushOperator",
623        "DeleteSurrounds"
624      ]
625    }
626  },
627  {
628    "context": "Editor && vim_operator == y",
629    "bindings": {
630      "y": "vim::CurrentLine"
631    }
632  },
633  {
634    "context": "Editor && vim_mode == normal && vim_operator == y",
635    "bindings": {
636      "s": [
637        "vim::PushOperator",
638        {
639          "AddSurrounds": {}
640        }
641      ]
642    }
643  },
644  {
645    "context": "Editor && vim_operator == ys",
646    "bindings": {
647      "s": "vim::CurrentLine"
648    }
649  },
650  {
651    "context": "Editor && vim_operator == >",
652    "bindings": {
653      ">": "vim::CurrentLine"
654    }
655  },
656  {
657    "context": "Editor && vim_operator == <",
658    "bindings": {
659      "<": "vim::CurrentLine"
660    }
661  },
662  {
663    "context": "Editor && VimObject",
664    "bindings": {
665      "w": "vim::Word",
666      "shift-w": [
667        "vim::Word",
668        {
669          "ignorePunctuation": true
670        }
671      ],
672      "t": "vim::Tag",
673      "s": "vim::Sentence",
674      "p": "vim::Paragraph",
675      "'": "vim::Quotes",
676      "`": "vim::BackQuotes",
677      "\"": "vim::DoubleQuotes",
678      "|": "vim::VerticalBars",
679      "(": "vim::Parentheses",
680      ")": "vim::Parentheses",
681      "b": "vim::Parentheses",
682      "[": "vim::SquareBrackets",
683      "]": "vim::SquareBrackets",
684      "{": "vim::CurlyBrackets",
685      "}": "vim::CurlyBrackets",
686      "shift-b": "vim::CurlyBrackets",
687      "<": "vim::AngleBrackets",
688      ">": "vim::AngleBrackets",
689      "a": "vim::Argument"
690    }
691  },
692  {
693    "context": "Editor && vim_mode == visual && !VimWaiting && !VimObject",
694    "bindings": {
695      "u": "vim::ConvertToLowerCase",
696      "U": "vim::ConvertToUpperCase",
697      "o": "vim::OtherEnd",
698      "shift-o": "vim::OtherEnd",
699      "d": "vim::VisualDelete",
700      "x": "vim::VisualDelete",
701      "shift-d": "vim::VisualDeleteLine",
702      "shift-x": "vim::VisualDeleteLine",
703      "y": "vim::VisualYank",
704      "shift-y": "vim::VisualYank",
705      "p": "vim::Paste",
706      "shift-p": [
707        "vim::Paste",
708        {
709          "preserveClipboard": true
710        }
711      ],
712      "s": "vim::Substitute",
713      "shift-s": "vim::SubstituteLine",
714      "shift-r": "vim::SubstituteLine",
715      "c": "vim::Substitute",
716      "~": "vim::ChangeCase",
717      "*": [
718        "vim::MoveToNext",
719        {
720          "partialWord": true
721        }
722      ],
723      "#": [
724        "vim::MoveToPrev",
725        {
726          "partialWord": true
727        }
728      ],
729      "ctrl-a": "vim::Increment",
730      "ctrl-x": "vim::Decrement",
731      "g ctrl-a": [
732        "vim::Increment",
733        {
734          "step": true
735        }
736      ],
737      "g ctrl-x": [
738        "vim::Decrement",
739        {
740          "step": true
741        }
742      ],
743      "shift-i": "vim::InsertBefore",
744      "shift-a": "vim::InsertAfter",
745      "shift-j": "vim::JoinLines",
746      "r": [
747        "vim::PushOperator",
748        "Replace"
749      ],
750      "ctrl-c": [
751        "vim::SwitchMode",
752        "Normal"
753      ],
754      "escape": [
755        "vim::SwitchMode",
756        "Normal"
757      ],
758      "ctrl-[": [
759        "vim::SwitchMode",
760        "Normal"
761      ],
762      ">": "vim::Indent",
763      "<": "vim::Outdent",
764      "i": [
765        "vim::PushOperator",
766        {
767          "Object": {
768            "around": false
769          }
770        }
771      ],
772      "a": [
773        "vim::PushOperator",
774        {
775          "Object": {
776            "around": true
777          }
778        }
779      ]
780    }
781  },
782  {
783    "context": "Editor && vim_mode == normal && !VimWaiting",
784    "bindings": {
785      "g c c": "vim::ToggleComments"
786    }
787  },
788  {
789    "context": "Editor && vim_mode == visual",
790    "bindings": {
791      "g c": "vim::ToggleComments"
792    }
793  },
794  {
795    "context": "Editor && vim_mode == insert",
796    "bindings": {
797      "escape": "vim::NormalBefore",
798      "ctrl-c": "vim::NormalBefore",
799      "ctrl-[": "vim::NormalBefore",
800      "ctrl-x ctrl-o": "editor::ShowCompletions",
801      "ctrl-x ctrl-a": "assistant::InlineAssist", // zed specific
802      "ctrl-x ctrl-c": "editor::ShowInlineCompletion", // zed specific
803      "ctrl-x ctrl-l": "editor::ToggleCodeActions", // zed specific
804      "ctrl-x ctrl-z": "editor::Cancel",
805      "ctrl-w": "editor::DeleteToPreviousWordStart",
806      "ctrl-u": "editor::DeleteToBeginningOfLine",
807      "ctrl-t": "vim::Indent",
808      "ctrl-d": "vim::Outdent",
809      "ctrl-r": [
810        "vim::PushOperator",
811        "Register"
812      ]
813    }
814  },
815  {
816    "context": "Editor && vim_mode == replace",
817    "bindings": {
818      "escape": "vim::NormalBefore",
819      "ctrl-c": "vim::NormalBefore",
820      "ctrl-[": "vim::NormalBefore",
821      "tab": "vim::Tab",
822      "enter": "vim::Enter",
823      "backspace": "vim::UndoReplace"
824    }
825  },
826  {
827    "context": "Editor && vim_mode != replace && VimWaiting",
828    "bindings": {
829      "tab": "vim::Tab",
830      "enter": "vim::Enter",
831      "escape": [
832        "vim::SwitchMode",
833        "Normal"
834      ],
835      "ctrl-[": [
836        "vim::SwitchMode",
837        "Normal"
838      ]
839    }
840  },
841  {
842    "context": "Editor && vim_mode == insert && VimWaiting",
843    "bindings": {
844      "escape": "vim::NormalBefore",
845      "ctrl-[": "vim::NormalBefore"
846    }
847  },
848  {
849    "context": "BufferSearchBar && !in_replace",
850    "bindings": {
851      "enter": "vim::SearchSubmit",
852      "escape": "buffer_search::Dismiss"
853    }
854  },
855  {
856    "context": "EmptyPane || SharedScreen",
857    "bindings": {
858      ":": "command_palette::Toggle",
859      "g /": "pane::DeploySearch"
860    }
861  },
862  {
863    // netrw compatibility
864    "context": "ProjectPanel && not_editing",
865    "bindings": {
866      ":": "command_palette::Toggle",
867      "%": "project_panel::NewFile",
868      "/": "project_panel::NewSearchInDirectory",
869      "d": "project_panel::NewDirectory",
870      "enter": "project_panel::OpenPermanent",
871      "escape": "project_panel::ToggleFocus",
872      "h": "project_panel::CollapseSelectedEntry",
873      "j": "menu::SelectNext",
874      "k": "menu::SelectPrev",
875      "l": "project_panel::ExpandSelectedEntry",
876      "o": "project_panel::OpenPermanent",
877      "shift-d": "project_panel::Delete",
878      "shift-r": "project_panel::Rename",
879      "t": "project_panel::OpenPermanent",
880      "v": "project_panel::OpenPermanent",
881      "p": "project_panel::Open",
882      "x": "project_panel::RevealInFinder",
883      "shift-g": "menu::SelectLast",
884      "g g": "menu::SelectFirst",
885      "-": "project_panel::SelectParent"
886    }
887  }
888]