在VSCode中,保存时退出Vim插入模式

14

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

这个能做到吗?

3个回答

16

我也在寻找类似于这个问题的解决方案。

看起来在vscode中不能将多个命令映射到键绑定,但是我找到了一个叫做macros的扩展程序,可以让您实现此功能。

如果您使用以下步骤与宏扩展程序,我相信您会找到您正在寻找的解决方案,直到vscode实现解决此功能请求的方法。

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

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

第二步,编辑键盘绑定:

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

1
修改名字中的小错字“saveand…”为“saveAnd”之后,它运行得非常好。 - iacobSon
请注意,如果在成功启用宏之前启用键盘绑定,则可能需要通过某些其他方式保存设置文件,因为使用cmd+s将失败。 - Gabe Kopley
1
这个很好用...非常感谢!对于未来的读者,要打开您的首选项和键绑定:可以通过使用“打开设置(JSON)”命令和“打开键盘快捷方式(JSON)”命令来编辑底层的settings.json文件。 - brianz

8

VSCodeVim扩展支持插入模式按键绑定。 这里 是一个链接,指向扩展说明中描述此功能的部分。

下面是你可以放在settings.json中的代码片段。

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

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

奇怪。我使用ctrl + n进行了测试,因为我将其他内容绑定到了ctrl + s,这对我来说似乎有效。 - alexriedl
我在扩展的 Github 上创建了一个问题:https://github.com/VSCodeVim/Vim/issues/2411 - alexriedl
1
谢谢,目前我一直将其绑定到[":", "w"],但需要额外按下一个按键。 - earllee

-1

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接