如何避免 VS Code 和 vscodevim 之间的键绑定冲突?

How do you avoid key binding collisions between VS Code and vscodevim?

我有一些肩痛,我正试图通过使用 vscodevim 摆脱它。

到目前为止,vscodevim 最大的问题是它有时会与 VS 代码快捷方式发生冲突。例如,我经常用 Ctrl+K S 保存所有文件。但是随着 vscodevim 的启用,该组合键会做其他事情。

我对必须使用我自己的密钥 VS Code 键绑定构建配置的前景感到厌倦,这与 vsvim 不冲突。希望有更好的解决办法。

所以请问各位比较了解的同事,你们是怎么解决这个问题的?

没有简单的方法可以避免 vscode 快捷方式和 vscodevim 绑定之间的冲突。我建议您尽可能使用 vim 键绑定而不是 vscode 快捷键。 Vscodevim 可以证明是通往 vim 的良好途径,前提是您愿意重新学习如何使用 vscode.

与其构建不与 vscodevim 冲突的自己的配置,不如将精力转移到寻找在 vim 中执行相同操作的方法。您可以搜索网络或使用 vim 帮助。

Vim 帮助非常全面且易于阅读。 如果您安装了 vim,您可以使用 :help:h 后接特定主题,例如,如果您需要阅读导航类型 :h navigation.

现在您有两个选择,我将尝试使用您提供的示例,即保存文件:

  1. 使用绑定可用于在 vim.

    中保存文件

    Vim 提供了如此多的快捷方式,仅用于保存和退出文件,在 vim 中尝试 :help write:help quit 以了解更多信息。其中许多快捷方式也适用于 vscodevim。

    保存文件:

    • :w 保存单个文件

    • :wa 写入所有缓冲区(在 vscode 所有修改的文件中)。

  2. 删除 vscodevim 的绑定并使用 vscode 快捷方式。

    您可以将组合键委托回 vscode。我建议你只有在有任何 vscode 快捷方式对你来说是绝对必要的并且它与 vscodevim 冲突时才这样做,因为这样做可能会导致一些相关的 vim 绑定不工作。要了解 Ctrl+k 在 vim 中的作用,请在 vim.[=22= 中键入 :h ctrl-k ]

    如果您想使用 Ctrl+K S 保存文件,请执行以下操作:

    • 打开vscode设置搜索vim handlekeys或者直接打开vscode的settings.json:

    • 添加以下内容"vim.handleKeys": {"<C-k>": false}

我不知道这是否是更好的解决方案,但我遇到过您的情况并尝试了不同的方法来解决它。最后我发现使用 vim 键绑定比试图强制 vscodevim.

容易得多

我设置了一个“toggleVim”键绑定,如下所示:

当我想使用与 vim 冲突的热键时,我只是关闭 vim。