From ed4b5f69144ee6f93e0c7059b3676c230cbce581 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Fri, 19 Nov 2021 22:28:06 +0900 Subject: vim: make vim XDG-Base-Directory-aware --- .config/vim/my/autoload/autosave.vim | 70 ++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 .config/vim/my/autoload/autosave.vim (limited to '.config/vim/my/autoload/autosave.vim') diff --git a/.config/vim/my/autoload/autosave.vim b/.config/vim/my/autoload/autosave.vim new file mode 100644 index 0000000..0c34d0e --- /dev/null +++ b/.config/vim/my/autoload/autosave.vim @@ -0,0 +1,70 @@ +scriptencoding utf-8 + + + +if !exists('g:autosave_interval_ms') + let g:autosave_interval_ms = 10 * 1000 +endif + +if !exists('g:autosave_silent') + let g:autosave_silent = v:true +endif + + + +function! autosave#handler(timer_id) abort + if !&modified + return + endif + if &readonly + return + endif + if &buftype !=# '' + return + endif + if expand('%') ==# '' + return + endif + + if !g:autosave_silent + echohl Comment + echo 'Auto-saving...' + echohl None + endif + + silent! write + + if !g:autosave_silent + echohl Comment + echo 'Saved.' + echohl None + endif +endfunction + + +function! autosave#enable() abort + if has('+timers') + echohl Error + echo "Feature '+timers' not available." + echohl None + return + endif + if exists('b:autosave_timer') + return + endif + + let b:autosave_timer = timer_start( + \ g:autosave_interval_ms, + \ 'autosave#handler', + \ { 'repeat': -1 }) +endfunction + + +function! autosave#disable() abort + if !exists('b:autosave_timer') + return + endif + + call timer_stop('b:autosave_timer') + unlet b:autosave_timer +endfunction -- cgit v1.2.3-70-g09d2