VSCODE VSCODEVIM撤消键重新启动



vscodevim使用不同的撤消堆栈,当撤消VIM撤消堆栈中的所有未保存更改后,它会使我感到烦恼,VSCODE仍然表明该文件未保存。因此,我想将VSCODE的撤消堆栈和映射为" Ctrl Z"。我的钥匙限制如下:

{
    "key": "u",
    "command": "undo",
    "when": "editorTextFocus && !editorReadonly && vim.active && vim.mode != 'Insert'" 
}

问题在于,即使我指定它在插入VIM模式时不应工作,但它仍然会消除最后一个更改并插入" U"。谁能建议重新启动的正确方法是什么?

我尝试了Doktor Oswaldo的建议,但由于某种原因,它行不通。但是我设法找到了一个解决方案:

"vim.otherModesKeyBindingsNonRecursive": [ 
     { 
         "before": ["u"], 
         "after": [],
         "commands": [
             {
                 "command": "undo", 
                 "args": []
             }
         ] 
     } 
 ]

to dtasev的评论

...似乎不需要"args": [],并且"otherModesKeyBindingsNonRecursive"不再存在作为选项。我将我的normalModeKeyBindings绑定到。还将<C-r>绑定到redo,以使用VSCODE的重做堆栈

在此答案上(要与JSON明确说明),这是我在设置中放置的。JSON使用vim.normalModeKeyBindingsNonRecursive而不是vim.normalModeKeyBindings

"vim.normalModeKeyBindingsNonRecursive": [
        { 
            "before": ["u"], 
            "after": [],
            "commands": [
                {
                    "command": "undo", 
                    "args": []
                }
            ] 
        }, 
        { 
            "before": ["<C-r>"], 
            "after": [],
            "commands": [
                {
                    "command": "redo", 
                    "args": []
                }
            ] 
        } 
    ]

相关内容

  • 没有找到相关文章

最新更新