phoenix-powerVim の自動保存を実現するプラグインの紹介です。

airsave.vim

install

1
NeoBundle 'syui/airsave.vim'

:NeoBundleInstall

または、

1
$ curl -o ~/.vim/plugin/airsave.vim https://raw.githubusercontent.com/syui/airsave.vim/master/plugin/airsave.vim

setting

~/.vimrc
1
2
3
4
5
6
7
8
" オートセーブを有効にする
let g:air_auto_write = 1
" 書き込みを表示する
let g:air_auto_write_nosilent = 1
" オートセーブを開始する
nm <Leader>s  <Plug>(AirAutoWriteStart)
" オートセーブを停止する
nm <Leader>ss <Plug>(AirAutoWriteStop)

code

airsave.vimの最小構成

autocmdを使います。このコマンドを使う場合は、グループ化する必要があります。

~/.vim/bundle/airsave.vim/plugin/airsave.vim
1
2
3
4
aug vimrc_airsave_vim
  au!
  au TextChanged * w
aug END

上のコードは、テキストが変更された時TextChanged、保存コマンド:wを実行するというものです。

airsave.vimの有効、無効を設定する

~/.vim/bundle/airsave.vim/plugin/airsave.vim
1
2
3
4
5
6
7
8
9
10
11
if !exists("g:air_auto_write")
  let g:air_auto_write = 0
en

fu! s:air_auto_write_start()
  "ここにコマンド群を記述
endf

if g:air_auto_write >= 1
  call <SID>air_auto_write_start()
en

上の処理は、まず、グローバル変数のg:air_auto_writeが設定されていなければ、0を入れます。

そして、最後の行に当該変数が1以上ならば定義したコマンド群function:air_auto_write_startを実行するというものです。

これにより設定ファイルにlet g:air_auto_write = 1を書くことにより有効にできます。