Vimでオートセーブするプラグインを作った

vim
保存周りはあまり考えたことなかったので。

photo-credit: syui


https://github.com/syui/wauto.vim


ノーマルモードに移行した時、カレントバッファが変更されていたら、保存(:w)します。


NeoBundle 'syui/wauto.vim'



以下のコマンドでインストールします。

:so $MYVIMRC | NeoBundleInstall


使い方は、キーでオートセーブの有効無効を設定します。

nmap <Leader>s  <Plug>(AutoWriteStart)
nmap <Leader>ss <Plug>(AutoWriteStop)


ON/OFF キー
有効 <Leader>+s
無効 <Leader>+ss



最初からプラグインを有効の状態にしておきたい場合は、以下のように書きます。


"======================================
"    Plugin Name:  wauto.vim
"        Version:  0.0.3
"  Last Modified:  17.11.2013
"======================================

if !exists("g:auto_write")
let g:auto_write = 0
endif

" function! s:auto_write_start()
if g:auto_write >= 1
augroup vimrc-awrite
autocmd!
autocmd TextChanged * w
augroup END
endif
" endfunction

" command! -nargs=0 AutoWriteStart call <SID>auto_write_start()
command! -nargs=0 AutoWriteStop autocmd! vimrc-awrite

" nnoremap <silent> <Leader>s :set ei=TextChanged<CR>
" nnoremap <buffer> <Leader>s :AutoWriteStart<CR>
nnoremap <buffer> <Leader>ss :AutoWriteStop<CR>



デフォルトでは、無効になっているので、 ~/.vimrcに以下を追記します。

let g:auto_write = 1