Home

Awesome

AutoSave

Description

AutoSave - automatically save changes to disk without having to use :w (or any binding to it) every time a buffer has been modified.

Inspired by the same feature in RubyMine text editor.

Installation and Usage

Use vundle or download packaged version from vim.org.

AutoSave is disabled by default, run :AutoSaveToggle to enable/disable it.
If you want plugin to be always enabled it can be done with g:auto_save option:

" .vimrc
let g:auto_save = 1  " enable AutoSave on Vim startup

AutoSave relies on CursorHold event and sets the updatetime option to 200 so that modifications are saved almost instantly.
But sometimes changing the updatetime option may affect other plugins and break things.
You can prevent AutoSave from changing the updatetime with g:auto_save_no_updatetime option:

" .vimrc
let g:auto_save_no_updatetime = 1  " do not change the 'updatetime' option

You can disable AutoSave in insert mode with the g:auto_save_in_insert_mode option:

" .vimrc
let g:auto_save_in_insert_mode = 0  " do not save while in insert mode

AutoSave will display on the status line on each auto-save by default.

(AutoSaved at 08:40:55)

You can silence the display with the g:auto_save_silent option:

" .vimrc
let g:auto_save_silent = 1  " do not display the auto-save notification

If you need an autosave hook (such as generating tags post-save) then use g:auto_save_postsave_hook option:

" .vimrc
let g:auto_save_postsave_hook = 'TagsGenerate'  " this will run :TagsGenerate after each save

Contribution

Development is made in 907th/vim-auto-save repo.
Feel free to contribute!

License

Distributed under the MIT License (see LICENSE.txt).

Copyright (c) 2013-2014 Alexey Chernenkov