Visual studio code vscode vim扩展不写入实际字符?
我已经在vscode中定制了vim扩展,对于大多数模式,它都能正确执行命令。但是,如果我尝试编写实际的字符(因此不再是命令),则不会。为什么呢 例如:Visual studio code vscode vim扩展不写入实际字符?,visual-studio-code,vim,vscode-settings,Visual Studio Code,Vim,Vscode Settings,我已经在vscode中定制了vim扩展,对于大多数模式,它都能正确执行命令。但是,如果我尝试编写实际的字符(因此不再是命令),则不会。为什么呢 例如: "vim.insertModeKeyBindingsNonRecursive": [ { "before": [ "<leader>", "o"
"vim.insertModeKeyBindingsNonRecursive": [
{
"before": [
"<leader>",
"o"
],
"after": [
"<Esc>",
"i",
"Abcd"
]
},
]
“vim.InsertModeKeyBindings非递归”:[
{
“之前”:[
"",
“o”
],
“之后”:[
"",
“我”,
“Abcd”
]
},
]
这应该只写
Abcd
,因为在该序列之前是i
,切换到插入模式。(因此,
->i
是冗余的,这里只是一个示例)。vscode vim扩展执行
和i
(因为我知道在该命令后我回到插入模式),但不会打印Abcd
。为什么?扩展是否仅配置为执行命令而不是实际打印某些内容?如何启用该功能?看起来您只需将中“Abcd”
的每个字符拆分为一行:
"vim.insertModeKeyBindingsNonRecursive": [
{
"before": [
"<leader>",
"o"
],
"after": [
"<Esc>",
"i",
"A",
"b",
"c",
"d"
]
},
]
“vim.InsertModeKeyBindings非递归”:[
{
“之前”:[
"",
“o”
],
“之后”:[
"",
“我”,
“A”,
“b”,
“c”,
“d”
]
},
]
如项目的第页所述,您应该传递一个键字符(普通键为一个字符,特殊键为多个字符,如箭头键或转义键)
更新after值将解决以下问题:
"after": [
"<Esc>",
"i",
"A", "b", "c", "d"
]
“之后”:[
"",
“我”,
“A”、“b”、“c”、“d”
]
您可以查看插件的内部结构,了解为什么插件不能处理多个字符传入,特别是函数,它可以用多个字符包装任何字符串。这可能是一个愚蠢的问题。但是您是否尝试过从映射中删除
,“i”
部分?@DoktorOSwaldo我尝试过-相同的结果。但这只是一个例子。无论如何,在这两种情况下,Vscode vim都不会输出ithmm,请参见此处的调试选项。它还应该允许调试映射。不幸的是,由于我不使用vscode,因此我无法进一步帮助您。我只是对问题可能是什么有一个想法,而你的评论并没有指向这个方向。你能澄清一下你想要实现什么吗?在插入模式下,o
将Abcd写入当前光标位置的文件?@dwrecked是的,应该这样做。但事实并非如此。我试图简单地“打印”(例如,使用快捷方式写入Abcd
),但是使用vim扩展,我似乎无法像那样“打印”,这也没有帮助。嗯,除了将我的设置为显式的“\\”而不是,上面的内容目前对我来说很好。不幸的是,我不知道还有什么可以贡献-对此我很抱歉@milanHrabos还有一个问题-你是否看到你打字时插入的o
,然后被删除了?当这对我有效时,这些字符将被插入,然后被删除并替换为Abcd
。如果原始字符未被删除,则表明该命令从未触发。