使用 Vim 扩展名时,如何在 Esc 上自动将文件保存在 VSCode 中?

How to auto save file in VSCode on Esc when using Vim extension?

我想知道,在 Vim 中按 Esc 键退出插入模式后,如何在 VSCode 中自动保存当前文件?

您可以像这样将 insertModeKeyBinding 添加到 settings.json 中的 Esc 键:

"vim.insertModeKeyBindingsNonRecursive": [
    {
        "before": ["<Esc>"],
        "after": ["<Esc>", ":", "w", "<Enter>"]
    }
]

请注意,只有当您使用 Esc 键从插入模式切换到正常模式时,这才会保存。

编辑: 经过一些测试,我发现您需要在上次更改后保持插入模式大约 2 秒才能生效,否则它不会'无法将 <Esc> 击键视为单个事件。

作为变通方法,如果您立即需要它,您可以映射到 <leader><Esc>

"vim.insertModeKeyBindingsNonRecursive": [
    {
        "before": ["<leader>", "<Esc>"],
        "after": ["<Esc>", ":", "w", "<Enter>"]
    }
]

<Esc> 替换为 <Esc>:w<Enter> 可行,但这可能是一个稍微更优雅的解决方案(例如,如果您有其他想要 运行 的保存命令)。

    "vim.insertModeKeyBindingsNonRecursive": [
    {
        "before": [
            "<Esc>"
        ],
        "after": [
            "<Esc>"
        ],
        "commands": [
            "workbench.action.files.save"
        ]
    }
],