正如问题标题所述。我希望在我输入VIM(插入模式)时自动保存文件。
这可能吗?如何实现呢?
答案 0 :(得分:3)
您可以使用AutoSave插件执行该操作:
https://github.com/907th/vim-auto-save
请注意默认情况下禁用AutoSave,运行:AutoSaveToggle
启用/禁用它。
答案 1 :(得分:2)
这将处理只读缓冲区(如netrw)和未检测到的文件类型。使用TextChangedI而不是InsertLeave似乎会对在插入模式下键入的每个字符产生写入,这可能是您想要的,也可能不是您想要的。
augroup autosave
autocmd!
autocmd BufRead * if &filetype == "" | setlocal ft=text | endif
autocmd FileType * autocmd TextChanged,InsertLeave <buffer> if &readonly == 0 | silent write | endif
augroup END
答案 2 :(得分:1)
Vim中没有自动保存的原生支持。 但您可以使用vim-auto-save插件来执行此操作。
此插件仅在默认情况下自动保存在正常模式下,但是a section in it's README描述了如何配置插件以便在插入模式下保存。 提示:您应该将插件配置为自动保存CursorHoldI
和/或TextChangedI
Vim事件。
请参阅插件文档,了解如何安装和使用它。
答案 3 :(得分:0)
答案 4 :(得分:0)
907th / vim-auto-save自动保存文件。但是,如果您的.vimrc依赖于write事件,则可能有问题。
最近,我注意到https://github.com/chrisbra/vim-autosave,它将文件保存到备份目录,如果您的.vimrc依赖于写入事件,这听起来很有希望。
答案 5 :(得分:0)
不知道有人提到过这个。 自动保存每种文件类型
(在本例中是Markdown * .md文件)
autocmd BufNewFile,BufRead *.md :autocmd TextChanged,TextChangedI <buffer> silent write
这将在文件修改后立即写入文件内容,但仅用于Markdown(* .md)文件。