VSCodeVim使用不同的撤销堆栈,当取消所有未保存的vim撤销堆栈的更改后,VSCode仍然显示文件未保存,这让我很恼火。因此,我想使用VSCode的撤销堆栈并将"u“映射到"Ctrl+z”。我的密钥绑定如下:
{“键”:"u",“命令”:“撤消”,“何时”:"editorTextFocus && !editorReadonly && vim.active & vim.mode !=‘插入’“}
问题是,即使我指定当vim模式是Insert时,它也不应该工作,但它仍然取消最后的更改并插入'u‘。有人能建议什么是正确的方式重新绑定吗?
发布于 2017-11-28 15:29:35
我试过道克托·奥斯瓦多的求婚,但由于某种原因它不起作用。然而,我设法找到了一个解决方案:
"vim.otherModesKeyBindingsNonRecursive": [
{
"before": ["u"],
"after": [],
"commands": [
{
"command": "undo",
"args": []
}
]
}
]发布于 2021-04-03 23:41:04
..。
"args": []似乎没有必要,"otherModesKeyBindingsNonRecursive"也不再作为一种选择存在。我把我的绑在normalModeKeyBindings上。还将<C-r>绑定到redo以使用VSCode的重做堆栈
在this answer上(并且明确地使用JSON),这就是我使用vim.normalModeKeyBindingsNonRecursive而不是vim.normalModeKeyBindings在settings.json中使用的内容
"vim.normalModeKeyBindingsNonRecursive": [
{
"before": ["u"],
"after": [],
"commands": [
{
"command": "undo",
"args": []
}
]
},
{
"before": ["<C-r>"],
"after": [],
"commands": [
{
"command": "redo",
"args": []
}
]
}
]https://stackoverflow.com/questions/47527162
复制相似问题