如何在 vscodevim 中设置用户定义的命令

问题描述

当我使用 vim 时,我在 ~/.vimrc 中设置我的自定义设置,如下所示:

command Noh noh
command NOh noh
command NOH noh

这样我就可以执行 :noh:NOh:NOH,它们的工作方式就像 :nohl

现在我正在使用 Vscode 并且我安装了插件 vscodevim 1.20.2。我想进行相同的设置,但我不知道如何。我试过如下,但它不起作用:

"vim.normalModeKeyBindingsNonRecursive": [
        {
            "before": [
                ":NOH"
            ],"after": [],"commands": [
                {
                    "command": ":nohl","args": []
                }
            ]
        }
]

解决方法

我一直没能找到用VSCodeVim定义自定义命令的方法,但是如果你把"before"值拆分成一个字符数组(即"before": [":","N","O","H"]),你就可以模拟出想要的行为。这有点麻烦,因为正常模式键绑定显示在状态栏中的不同位置,但它似乎对我有用。

请注意,您也无法使用制表符补全,因为您没有定义真正的 Ex 命令,但您可以使用 "<Tab>" 作为 "before" 数组中的键,并且有用。这样,您就可以使用命令中最常用的前缀(附加 "<Tab>")作为 "before"

还要注意 VSCodeVim 添加了 experimental vimrc support,你可以试试。但是,似乎至少是某些自定义命令fail to work