首页 > 解决方案 > 是否可以更改 VScode Vim 中的默认命令?

问题描述

我想将dd(删除并放入寄存器)更改为"_dd(删除并放入黑洞寄存器)。我在下面尝试重新映射,但无济于事。

  {
      "before": [
        "d",
        "d"
      ],
      "after": [
        "\"",
        "_",
        "d",
        "d",
      ]
    }


但是,当我尝试使用以下重新映射时leader,它可以工作。

   {
      "before": [
        "<leader>",
        "d"
      ],
      "after": [
        "\"",
        "_",
        "d",
        "d",
      ]
    },



甚至可以更改默认行为dd吗?

谢谢。

标签: vimvisual-studio-codevim-plugin

解决方案


你可以使用这个:

"vim.normalModeKeyBindingsNonRecursive": [
    {
        "before": ["d"],
        "after": [ "\"", "_", "d" ]
    }
]

但问题是它改变了'd',而不是改变'dd',即'dd'会按你的意愿工作,但它也会改变与'd'相关的每个键映射。

“dw”也将删除到“黑洞”寄存器,“dd”也将删除

要了解更多信息,请查看此https://github.com/VSCodeVim/Vim/pull/3081

重新映射 'dd' 不会像在 vim 中那样改变,如果你不想改变 'd' 的默认功能,最好使用 'leader d' 来获得你想要的东西。

简而言之,vim 可以做你想做的事,但 vscode 中的 vim 插件现在不支持它。


推荐阅读