首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VSCode + VSCodeVim撤消密钥重新绑定

VSCode + VSCodeVim撤消密钥重新绑定
EN

Stack Overflow用户
提问于 2017-11-28 08:36:16
回答 2查看 3.2K关注 0票数 4

VSCodeVim使用不同的撤销堆栈,当取消所有未保存的vim撤销堆栈的更改后,VSCode仍然显示文件未保存,这让我很恼火。因此,我想使用VSCode的撤销堆栈并将"u“映射到"Ctrl+z”。我的密钥绑定如下:

{“键”:"u",“命令”:“撤消”,“何时”:"editorTextFocus && !editorReadonly && vim.active & vim.mode !=‘插入’“}

问题是,即使我指定当vim模式是Insert时,它也不应该工作,但它仍然取消最后的更改并插入'u‘。有人能建议什么是正确的方式重新绑定吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-28 15:29:35

我试过道克托·奥斯瓦多的求婚,但由于某种原因它不起作用。然而,我设法找到了一个解决方案:

代码语言:javascript
复制
"vim.otherModesKeyBindingsNonRecursive": [ 
     { 
         "before": ["u"], 
         "after": [],
         "commands": [
             {
                 "command": "undo", 
                 "args": []
             }
         ] 
     } 
 ]
票数 9
EN

Stack Overflow用户

发布于 2021-04-03 23:41:04

背弃dtasevcomment

..。"args": []似乎没有必要,"otherModesKeyBindingsNonRecursive"也不再作为一种选择存在。我把我的绑在normalModeKeyBindings上。还将<C-r>绑定到redo以使用VSCode的重做堆栈

this answer上(并且明确地使用JSON),这就是我使用vim.normalModeKeyBindingsNonRecursive而不是vim.normalModeKeyBindings在settings.json中使用的内容

代码语言:javascript
复制
"vim.normalModeKeyBindingsNonRecursive": [
        { 
            "before": ["u"], 
            "after": [],
            "commands": [
                {
                    "command": "undo", 
                    "args": []
                }
            ] 
        }, 
        { 
            "before": ["<C-r>"], 
            "after": [],
            "commands": [
                {
                    "command": "redo", 
                    "args": []
                }
            ] 
        } 
    ]
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47527162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档