【问题标题】:In VSCode, Exit Vim Insert Mode on Save在 VSCode 中,在保存时退出 Vim 插入模式
【发布时间】:2018-03-01 12:49:45
【问题描述】:

我使用带有 VSCodeVim 扩展的 VSCode。在插入模式下,我可以按“CMD-S”保存。当我这样做时,我还想自动退出插入模式,而不是按“ESC”。

这可能吗?

【问题讨论】:

    标签: vim visual-studio-code vscodevim


    【解决方案1】:

    我也在寻找与此问题类似的解决方案。

    似乎多个命令无法映射到 vscode 中的键绑定;但是,我找到了一个扩展程序 macros,可以让你这样做。

    如果您将以下步骤与宏扩展一起使用,我相信您将获得您正在寻找的解决方案,直到 vscode 实现一些东西来解决此功能请求。

    第一步,使用以下内容编辑用户设置:

    "macros": {
        "saveAndExitVimInsertMode": [
            "workbench.action.files.save",
            "extension.vim_escape"
        ]
    }
    

    第二步,编辑键盘绑定:

        {
        "key": "cmd+s",
        "command": "macros.saveAndExitVimInsertMode"
        }
    

    【讨论】:

    • 名称“saveand...”与“saveAnd”中的小错字。修复此问题后,效果很好
    • 请注意,您可能需要通过 cmd+s 以外的其他方式保存设置文件,因为如果您在成功启用宏之前启用键盘绑定,则 cmd-s 将失败。
    • 这很好用...非常感谢!对于未来的读者,要打开您的首选项和键盘绑定:“...使用打开设置 (JSON) 命令编辑底层 settings.json 文件”和“打开键盘快捷键 (JSON)”命令。
    【解决方案2】:

    VSCodeVim 扩展支持插入模式键绑定。 Here 是描述此功能的扩展自述文件的链接。

    这是一个可以放入 settings.json 的 sn-p。

    "vim.insertModeKeyBindingsNonRecursive": [
        {
            "before": [ "<C-s>" ],
            "commands": [
                { "command": "workbench.action.files.save" },
                { "command": "extension.vim_escape" }
            ]
        }
    ],
    

    重新加载 vscode 窗口后,您可以按 ctrl+s 退出插入模式并保存文件。

    【讨论】:

    • 奇数。我使用 ctrl+n 对其进行了测试,因为我有其他绑定到 ctrl+s 的东西,这似乎对我有用。
    • 我在扩展的 github 上创建了一个问题:github.com/VSCodeVim/Vim/issues/2411
    • 谢谢,我暂时将它绑定到[":", "w"],但需要额外击键。
    【解决方案3】:

    打开显示命令面板 (Ctrl+Shift+P)。输入“打开键盘快捷键”, 搜索 'extension.vim_escape' 并将其编辑为 2 倍大写锁定键。

    【讨论】:

      猜你喜欢
      • 2023-03-28
      • 1970-01-01
      • 2020-09-07
      • 2018-08-01
      • 1970-01-01
      • 2014-04-29
      • 2011-04-29
      • 2020-06-06
      • 2013-06-24
      相关资源
      最近更新 更多