在neovim中配置基于事件触发的自动保存

 
Category: Tips

配置

采用纯lua脚本的方式进行vim中自动保存的配置, 参考了 Stack Overflow 的一个回答1, 如下:

    vim.api.nvim_create_autocmd({ "InsertLeave" }, {
        callback = function()
            vim.fn.execute("silent! write")
            vim.notify("Autosaved!", vim.log.levels.INFO, {})
        end,
    })

事件采用了InsertLeave, 即当编辑器离开插入模式, 便触发保存, 通过Neovim的内置函数vim.fn.execute完成调用.

并且, 在执行write之前调用了silent!不显示错误信息, 所以这里就需要注意, 如果保存了一个未命名的新文件, 并不会提示错误, 但是其实并没有完成保存. j 这里不加pattern参数的话默认是对全局生效, 注意这里我还加了一个提示弹窗, 通过notify插件来完成,

ref