539 lines · 14.8 KB · JSON
RawDownload
[  {    "context": "Editor && VimControl && !VimWaiting && !menu",    "bindings": {      "i": [        "vim::PushOperator",        {          "Object": {            "around": false          }        }      ],      "a": [        "vim::PushOperator",        {          "Object": {            "around": true          }        }      ],      ":": "command_palette::Toggle",      "h": "vim::Left",      "left": "vim::Left",      "backspace": "vim::Backspace",      "j": "vim::Down",      "down": "vim::Down",      "enter": "vim::NextLineStart",      "tab": "vim::Tab",      "shift-tab": "vim::Tab",      "k": "vim::Up",      "up": "vim::Up",      "l": "vim::Right",      "right": "vim::Right",      "space": "vim::Space",      "$": "vim::EndOfLine",      "^": "vim::FirstNonWhitespace",      "_": "vim::StartOfLineDownward",      "g _": "vim::EndOfLineDownward",      "shift-g": "vim::EndOfDocument",      "w": "vim::NextWordStart",      "{": "vim::StartOfParagraph",      "}": "vim::EndOfParagraph",      "|": "vim::GoToColumn",      "shift-w": [        "vim::NextWordStart",        {          "ignorePunctuation": true        }      ],      "e": "vim::NextWordEnd",      "shift-e": [        "vim::NextWordEnd",        {          "ignorePunctuation": true        }      ],      "b": "vim::PreviousWordStart",      "shift-b": [        "vim::PreviousWordStart",        {          "ignorePunctuation": true        }      ],      "n": "search::SelectNextMatch",      "shift-n": "search::SelectPrevMatch",      "%": "vim::Matching",      "f": [        "vim::PushOperator",        {          "FindForward": {            "before": false          }        }      ],      "t": [        "vim::PushOperator",        {          "FindForward": {            "before": true          }        }      ],      "shift-f": [        "vim::PushOperator",        {          "FindBackward": {            "after": false          }        }      ],      "shift-t": [        "vim::PushOperator",        {          "FindBackward": {            "after": true          }        }      ],      ";": "vim::RepeatFind",      ",": "vim::RepeatFindReversed",      "ctrl-o": "pane::GoBack",      "ctrl-i": "pane::GoForward",      "ctrl-]": "editor::GoToDefinition",      "escape": ["vim::SwitchMode", "Normal"],      "ctrl-[": ["vim::SwitchMode", "Normal"],      "v": "vim::ToggleVisual",      "shift-v": "vim::ToggleVisualLine",      "ctrl-v": "vim::ToggleVisualBlock",      "ctrl-q": "vim::ToggleVisualBlock",      "0": "vim::StartOfLine", // When no number operator present, use start of line motion      "ctrl-f": "vim::PageDown",      "pagedown": "vim::PageDown",      "ctrl-b": "vim::PageUp",      "pageup": "vim::PageUp",      "ctrl-d": "vim::ScrollDown",      "ctrl-u": "vim::ScrollUp",      "ctrl-e": "vim::LineDown",      "ctrl-y": "vim::LineUp",      // "g" commands      "g e": "vim::PreviousWordEnd",      "g shift-e": ["vim::PreviousWordEnd", { "ignorePunctuation": true }],      "g g": "vim::StartOfDocument",      "g h": "editor::Hover",      "g t": "pane::ActivateNextItem",      "g shift-t": "pane::ActivatePrevItem",      "g d": "editor::GoToDefinition",      "g shift-d": "editor::GoToTypeDefinition",      "g n": "vim::SelectNext",      "g shift-n": "vim::SelectPrevious",      "g >": [        "editor::SelectNext",        {          "replace_newest": true        }      ],      "g <": [        "editor::SelectPrevious",        {          "replace_newest": true        }      ],      "g a": "editor::SelectAllMatches",      "g s": "outline::Toggle",      "g shift-s": "project_symbols::Toggle",      "g .": "editor::ToggleCodeActions", // zed specific      "g shift-a": "editor::FindAllReferences", // zed specific      "g space": "editor::OpenExcerpts", // zed specific      "g *": [        "vim::MoveToNext",        {          "partialWord": true        }      ],      "g #": [        "vim::MoveToPrev",        {          "partialWord": true        }      ],      "g j": [        "vim::Down",        {          "displayLines": true        }      ],      "g down": [        "vim::Down",        {          "displayLines": true        }      ],      "g k": [        "vim::Up",        {          "displayLines": true        }      ],      "g up": [        "vim::Up",        {          "displayLines": true        }      ],      "g $": [        "vim::EndOfLine",        {          "displayLines": true        }      ],      "g end": [        "vim::EndOfLine",        {          "displayLines": true        }      ],      "g 0": [        "vim::StartOfLine",        {          "displayLines": true        }      ],      "g home": [        "vim::StartOfLine",        {          "displayLines": true        }      ],      "g ^": [        "vim::FirstNonWhitespace",        {          "displayLines": true        }      ],      "shift-h": "vim::WindowTop",      "shift-m": "vim::WindowMiddle",      "shift-l": "vim::WindowBottom",      // z commands      "z t": "editor::ScrollCursorTop",      "z z": "editor::ScrollCursorCenter",      "z b": "editor::ScrollCursorBottom",      "z c": "editor::Fold",      "z o": "editor::UnfoldLines",      "z f": "editor::FoldSelectedRanges",      "shift-z shift-q": [        "pane::CloseActiveItem",        {          "saveIntent": "skip"        }      ],      "shift-z shift-z": [        "pane::CloseActiveItem",        {          "saveIntent": "saveAll"        }      ],      // Count support      "1": ["vim::Number", 1],      "2": ["vim::Number", 2],      "3": ["vim::Number", 3],      "4": ["vim::Number", 4],      "5": ["vim::Number", 5],      "6": ["vim::Number", 6],      "7": ["vim::Number", 7],      "8": ["vim::Number", 8],      "9": ["vim::Number", 9],      // window related commands (ctrl-w X)      "ctrl-w left": ["workspace::ActivatePaneInDirection", "Left"],      "ctrl-w right": ["workspace::ActivatePaneInDirection", "Right"],      "ctrl-w up": ["workspace::ActivatePaneInDirection", "Up"],      "ctrl-w down": ["workspace::ActivatePaneInDirection", "Down"],      "ctrl-w h": ["workspace::ActivatePaneInDirection", "Left"],      "ctrl-w l": ["workspace::ActivatePaneInDirection", "Right"],      "ctrl-w k": ["workspace::ActivatePaneInDirection", "Up"],      "ctrl-w j": ["workspace::ActivatePaneInDirection", "Down"],      "ctrl-w ctrl-h": ["workspace::ActivatePaneInDirection", "Left"],      "ctrl-w ctrl-l": ["workspace::ActivatePaneInDirection", "Right"],      "ctrl-w ctrl-k": ["workspace::ActivatePaneInDirection", "Up"],      "ctrl-w ctrl-j": ["workspace::ActivatePaneInDirection", "Down"],      "ctrl-w shift-left": ["workspace::SwapPaneInDirection", "Left"],      "ctrl-w shift-right": ["workspace::SwapPaneInDirection", "Right"],      "ctrl-w shift-up": ["workspace::SwapPaneInDirection", "Up"],      "ctrl-w shift-down": ["workspace::SwapPaneInDirection", "Down"],      "ctrl-w shift-h": ["workspace::SwapPaneInDirection", "Left"],      "ctrl-w shift-l": ["workspace::SwapPaneInDirection", "Right"],      "ctrl-w shift-k": ["workspace::SwapPaneInDirection", "Up"],      "ctrl-w shift-j": ["workspace::SwapPaneInDirection", "Down"],      "ctrl-w g t": "pane::ActivateNextItem",      "ctrl-w ctrl-g t": "pane::ActivateNextItem",      "ctrl-w g shift-t": "pane::ActivatePrevItem",      "ctrl-w ctrl-g shift-t": "pane::ActivatePrevItem",      "ctrl-w w": "workspace::ActivateNextPane",      "ctrl-w ctrl-w": "workspace::ActivateNextPane",      "ctrl-w p": "workspace::ActivatePreviousPane",      "ctrl-w ctrl-p": "workspace::ActivatePreviousPane",      "ctrl-w shift-w": "workspace::ActivatePreviousPane",      "ctrl-w ctrl-shift-w": "workspace::ActivatePreviousPane",      "ctrl-w v": "pane::SplitLeft",      "ctrl-w ctrl-v": "pane::SplitLeft",      "ctrl-w s": "pane::SplitUp",      "ctrl-w shift-s": "pane::SplitUp",      "ctrl-w ctrl-s": "pane::SplitUp",      "ctrl-w c": "pane::CloseAllItems",      "ctrl-w ctrl-c": "pane::CloseAllItems",      "ctrl-w q": "pane::CloseAllItems",      "ctrl-w ctrl-q": "pane::CloseAllItems",      "ctrl-w o": "workspace::CloseInactiveTabsAndPanes",      "ctrl-w ctrl-o": "workspace::CloseInactiveTabsAndPanes",      "ctrl-w n": ["workspace::NewFileInDirection", "Up"],      "ctrl-w ctrl-n": ["workspace::NewFileInDirection", "Up"],      "-": "pane::RevealInProjectPanel"    }  },  {    // escape is in its own section so that it cancels a pending count.    "context": "Editor && vim_mode == normal && vim_operator == none && !VimWaiting",    "bindings": {      "escape": "editor::Cancel",      "ctrl-[": "editor::Cancel"    }  },  {    "context": "Editor && vim_mode == normal && vim_operator == none && !VimWaiting",    "bindings": {      ".": "vim::Repeat",      "c": ["vim::PushOperator", "Change"],      "shift-c": "vim::ChangeToEndOfLine",      "d": ["vim::PushOperator", "Delete"],      "shift-d": "vim::DeleteToEndOfLine",      "shift-j": "vim::JoinLines",      "y": ["vim::PushOperator", "Yank"],      "shift-y": "vim::YankLine",      "i": "vim::InsertBefore",      "shift-i": "vim::InsertFirstNonWhitespace",      "a": "vim::InsertAfter",      "shift-a": "vim::InsertEndOfLine",      "x": "vim::DeleteRight",      "shift-x": "vim::DeleteLeft",      "o": "vim::InsertLineBelow",      "shift-o": "vim::InsertLineAbove",      "~": "vim::ChangeCase",      "ctrl-a": "vim::Increment",      "ctrl-x": "vim::Decrement",      "p": "vim::Paste",      "shift-p": [        "vim::Paste",        {          "before": true        }      ],      "u": "editor::Undo",      "ctrl-r": "editor::Redo",      "/": "vim::Search",      "?": [        "vim::Search",        {          "backwards": true        }      ],      "*": "vim::MoveToNext",      "#": "vim::MoveToPrev",      "r": ["vim::PushOperator", "Replace"],      "s": "vim::Substitute",      "shift-s": "vim::SubstituteLine",      "> >": "editor::Indent",      "< <": "editor::Outdent",      "ctrl-pagedown": "pane::ActivateNextItem",      "ctrl-pageup": "pane::ActivatePrevItem"    }  },  {    "context": "Editor && VimCount",    "bindings": {      "0": ["vim::Number", 0]    }  },  {    "context": "Editor && vim_operator == c",    "bindings": {      "c": "vim::CurrentLine",      "d": "editor::Rename" // zed specific    }  },  {    "context": "Editor && vim_operator == d",    "bindings": {      "d": "vim::CurrentLine"    }  },  {    "context": "Editor && vim_operator == y",    "bindings": {      "y": "vim::CurrentLine"    }  },  {    "context": "Editor && VimObject",    "bindings": {      "w": "vim::Word",      "shift-w": [        "vim::Word",        {          "ignorePunctuation": true        }      ],      "s": "vim::Sentence",      "'": "vim::Quotes",      "`": "vim::BackQuotes",      "\"": "vim::DoubleQuotes",      "|": "vim::VerticalBars",      "(": "vim::Parentheses",      ")": "vim::Parentheses",      "b": "vim::Parentheses",      "[": "vim::SquareBrackets",      "]": "vim::SquareBrackets",      "{": "vim::CurlyBrackets",      "}": "vim::CurlyBrackets",      "shift-b": "vim::CurlyBrackets",      "<": "vim::AngleBrackets",      ">": "vim::AngleBrackets"    }  },  {    "context": "Editor && vim_mode == visual && !VimWaiting && !VimObject",    "bindings": {      "u": "vim::ConvertToLowerCase",      "U": "vim::ConvertToUpperCase",      "o": "vim::OtherEnd",      "shift-o": "vim::OtherEnd",      "d": "vim::VisualDelete",      "x": "vim::VisualDelete",      "shift-d": "vim::VisualDelete",      "shift-x": "vim::VisualDelete",      "y": "vim::VisualYank",      "shift-y": "vim::VisualYank",      "p": "vim::Paste",      "shift-p": [        "vim::Paste",        {          "preserveClipboard": true        }      ],      "s": "vim::Substitute",      "shift-s": "vim::SubstituteLine",      "shift-r": "vim::SubstituteLine",      "c": "vim::Substitute",      "~": "vim::ChangeCase",      "*": [        "vim::MoveToNext",        {          "partialWord": true        }      ],      "#": [        "vim::MoveToPrev",        {          "partialWord": true        }      ],      "ctrl-a": "vim::Increment",      "ctrl-x": "vim::Decrement",      "g ctrl-a": [        "vim::Increment",        {          "step": true        }      ],      "g ctrl-x": [        "vim::Decrement",        {          "step": true        }      ],      "shift-i": "vim::InsertBefore",      "shift-a": "vim::InsertAfter",      "shift-j": "vim::JoinLines",      "r": ["vim::PushOperator", "Replace"],      "ctrl-c": ["vim::SwitchMode", "Normal"],      "escape": ["vim::SwitchMode", "Normal"],      "ctrl-[": ["vim::SwitchMode", "Normal"],      ">": "editor::Indent",      "<": "editor::Outdent",      "i": [        "vim::PushOperator",        {          "Object": {            "around": false          }        }      ],      "a": [        "vim::PushOperator",        {          "Object": {            "around": true          }        }      ]    }  },  {    "context": "Editor && vim_mode == insert",    "bindings": {      "escape": "vim::NormalBefore",      "ctrl-c": "vim::NormalBefore",      "ctrl-[": "vim::NormalBefore",      "ctrl-x ctrl-o": "editor::ShowCompletions",      "ctrl-x ctrl-a": "assistant::InlineAssist", // zed specific      "ctrl-x ctrl-c": "copilot::Suggest", // zed specific      "ctrl-x ctrl-l": "editor::ToggleCodeActions", // zed specific      "ctrl-x ctrl-z": "editor::Cancel",      "ctrl-w": "editor::DeleteToPreviousWordStart",      "ctrl-u": "editor::DeleteToBeginningOfLine"    }  },  {    "context": "Editor && VimWaiting",    "bindings": {      "tab": "vim::Tab",      "enter": "vim::Enter",      "escape": ["vim::SwitchMode", "Normal"],

Lines 1–500 of 539.