亲爱的这个插件的用户!抱歉,我不再维护它了!如果你们中有人有兴趣维护它,请与我联系,我会将您添加为贡献者。
自动保存 - 每次修改缓冲区或基于您的首选事件时,都会自动将更改保存到磁盘,而无需使用:w
(或对其进行任何绑定)。
受到 RubyMine 文本编辑器中相同功能的启发。
默认情况下,每次在正常模式下发生更改以及用户离开插入模式时,自动保存都会保存。此配置是“尽可能频繁地保存”和“尝试避免破坏依赖于文件写入事件的其他插件”之间的混合。
使用 vundle 或从 vim.org 下载打包版本。
默认情况下禁用自动保存,运行:AutoSaveToggle
来启用/禁用它。
如果您希望在启动时启用插件,请使用g:auto_save
选项。
" .vimrc
let g: auto_save = 1 " enable AutoSave on Vim startup
还可以为每个缓冲区或窗口单独覆盖全局g:auto_save
值。例如,如果您全局启用了自动保存,则可以选择退出某些文件。反之亦然,当您全局禁用自动保存时,请选择某些文件。
let g: auto_save = 0
augroup ft_markdown
au !
au FileType markdown let b: auto_save = 1
augroup END
默认情况下,自动保存将显示在每次自动保存的状态行上:
(AutoSave) saved at 08:40:55
您可以使用g:auto_save_silent
选项使显示静音:
" .vimrc
let g: auto_save_silent = 1 " do not display the auto-save notification
可以使用g:auto_save_events
选项调整自动保存将执行保存的事件。默认情况下,仅使用InsertLeave
和TextChanged
将保存正常模式下以及每次离开插入模式时的每次更改。
" .vimrc
let g: auto_save_events = [ " InsertLeave " , " TextChanged " ]
您可能想使用的其他事件:
TextChangedI
将在插入模式下对当前缓冲区中的文本进行更改后保存。CursorHold
将保存正常模式下updatetime
选项中定义的每一毫秒数。CursorHoldI
将在插入模式下执行相同的操作。CompleteDone
还将在每次完成事件后触发保存。其中一些命令可能不可用,具体取决于您的 Vim 安装。有关完整列表,请参阅自动命令概述 ( :h autocommand-events
)。
警告!建议小心使用updatetime
选项,因为它已被证明在设置太小时会导致问题。 200 似乎已经太小而无法与某些其他插件一起使用。使用 1000 进行更保守的设置。
如果您需要自动保存挂钩(例如保存后生成标签,或提前中止保存),请使用g:auto_save_postsave_hook
或g:auto_save_presave_hook
选项:
" .vimrc
" This will run :TagsGenerate after each save
let g: auto_save_postsave_hook = ' TagsGenerate '
" This will run AbortIfNotGitDirectory function before each save
let g: auto_save_presave_hook = ' call AbortIfNotGitDirectory() '
" Example hook from vim-auto-save-git-hook plugin
function ! AbortIfNotGitDirectory ()
if ...
let g: auto_save_abort = 0
else
let g: auto_save_abort = 1
endif
endfunction
默认情况下,仅写入当前缓冲区(如:w
)。您可以使用g:auto_save_write_all_buffers
选项(如:wa
)选择在自动保存时写入所有缓冲区。
" .vimrc
let g: auto_save_write_all_buffers = 1 " write all open buffers as if you would use :wa
doc/auto-save.txt
是README.md
的转换版本。不要直接编辑它。而是安装 md2vim 并运行update_doc_from_readme.sh
脚本。
开发是在 907th/vim-auto-save repo 中进行的。请报告任何错误和/或建议。欢迎任何贡献!
根据 MIT 许可证分发(请参阅 LICENSE.txt)。
版权所有 (c) 2013-2021 阿列克谢·切尔年科夫