vi(){ cp $1 $1.`date +%Y%m%d%H%M%S`; command vi $1; }
これではまずいので、savevers.vim を導入しました。
$ wget http://www.vim.org/scripts/download_script.php?src_id=261 -O ~/.vim/plugin/savevers.vim $ echo 'set backup' >> ~/.vimrc $ echo ':set patchmode=.clean' >> ~/.vimrc $ echo ':let savevers_types = "*"' >> ~/.vimrc $ echo ':let savevers_dirs = &backupdir' >> ~/.vimrc $ echo ':let versdiff_no_resize=1' >> ~/.vimrc $ echo ':nmap <silent> <F5> :VersDiff -<cr>' >> ~/.vimrc $ echo ':nmap <silent> <F6> :VersDiff +<cr>' >> ~/.vimrc $ echo ':nmap <silent> <F8> :VersDiff -c<cr>' >> ~/.vimrc
削除系のコマンドはこわいのでショートカット登録 (というのかは不明) しなかった。詳しい使い方は savevers.vim の配布ページに載っているのでそこを参照してほしい。
:Purge | 編集中のファイルのバックアップの内最も古いもの以外を全て削除 |
:Purge 0 | 編集中のファイルのバックアップを全て削除 |
:Purge -a 0 | 編集中のファイルのバックアップがあるディレクトリの中にあるバックアップを全て削除(編集中のファイルも編集中でないファイルもとにかく全て) |
ひとつ気付いた事がある。それは、:Purge する場合、削除されるのは新しいファイルからということだ。例えば、:Purge -v N とした場合。1 番目から N 番目までが残り、N + 1 番目以降は消去される。新しいファイルのほうが、数が大きくなるので、古いファイルが残り、新しいファイルが消去されることになる。手動でバックアップファイルを消去して、わざと欠番を作った場合、その欠番を数が小さいほうから順に埋めるようにしてバックアップが作成されるようだ。