【问题标题】:How do I get vim user Shortcuts to work in vscode如何让 vim 用户快捷方式在 vscode 中工作
【发布时间】:2022-09-30 13:16:26
【问题描述】:

vscode > 首选项:打开设置(JSON)

{  
    \"vim.normalModeKeyBindingsNonRecursive\": [
       
        {
            \"before\": [\"t\", \"s\"],
            \"commands\": [\"python.sortImports\"],
        }
    ]
}

我按照上面的方法设置了,但它不起作用。有什么问题? 我在 vim 正常模式下输入 \'t\' 和 \'s\'。 ctrl+alt+s 正在工作。但我想要自定义 vim 快捷方式

    标签: visual-studio-code


    【解决方案1】:

    尝试重新安装vim extension。如果失败,您可以尝试以下方法:

    1. 您的配置是否正确?

      将扩展的logging level 调整为'debug',重启VS Code。随着每个 > 重新映射的配置被加载,它被输出到控制台。在 Developer > Tools 控制台中,您是否看到任何错误?

      debug: Remapper: normalModeKeyBindingsNonRecursive. before=0. after=^.
      debug: Remapper: insertModeKeyBindings. before=j,j. after=<Esc>.
      error: Remapper: insertModeKeyBindings. Invalid configuration. Missing 'after' key or 'command'. before=j,k.
      

      错误配置的配置将被忽略。

      1. 扩展程序是否处理您尝试重新映射的键?

      VSCodeVim 通过 > package.json 明确指示 VS Code 我们关心哪些关键事件。如果您尝试重新映射的键是 vim/vscodevim 通常无法处理的键,那么此扩展很可能没有从 VS Code 接收这些键事件。将logging level 调整为“调试”,当您按下键时,您应该会看到类似于以下内容的输出:

      debug: ModeHandler: handling key=A.
      debug: ModeHandler: handling key=l.
      debug: ModeHandler: handling key=<BS>.
      debug: ModeHandler: handling key=<C-a>.
      

      当您按下要重新映射的键时,您看到它在此处输出了吗?如果没有,这意味着我们不订阅那些关键事件。仍然可以使用 VSCode 的 keybindings.json 重新映射这些键。

      来源:https://marketplace.visualstudio.com/items?itemName=vscodevim.vim#debugging-remappings

    【讨论】:

    • 我的设置[打开设置(JSON)]没有错,当我再次运行程序时,这个 vim-shortcuts 工作正常。但是,您提供的信息让我有了更多的知识。谢谢你。如果有人看到我的问题,您可以通过应用上述设置来扩展您自己的 vim 快捷方式。谢谢你的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 2011-07-20
    相关资源
    最近更新 更多