読者です 読者をやめる 読者になる 読者になる

保存の度に指定ディレクトリにバックアップを残すプラグイン autobackup.vim を作りました。

autobackup.vim はありていに言うと効率化された savevers.vim です。
私の愛用していたプラグインsavevers.vim というのがありました。ファイルを更新する度に更新前のバージョンを通し番号を付けてバックアップしてくれる奴です。
ただ、このプラグインは設計が古くてファイルが分割されていないのでVim起動に時間がかかるのと、通し番号を得るのに、いちいち全てのバックアップファイルを何度も調べていて、ファイルの数が増えてくるほど動作が遅くなるという問題がありました。
それで最近保存の度にいよいよVimが固まるようになってきたのでさすがにヤバさを感じて*1、これを効率よくした autobackup.vim を作りました。

autobackup.vim はデジカメのように内部で覚えている番号を振っている*2だけなのでかかる時間は一定です(たとえバックアップファイルを消してもそれが次に振られる番号に影響しません)。

まぁ、このご時世だからバックアップはバージョン管理が主なのでしょうけど、常に全てのファイルをバージョン管理しているわけでもないですし、実際、savevers.vim に命を救われたことは何度かあります。
そんなわけで、お守り程度に使っててもいいんじゃないかなーって思うわけです。

あと、バックアップファイル名をフルパスからの変換にしたので、同じファイル名でも区別してバックアップすることができるようになりました。

なお、savevers.vim にはバックアップファイルを削除する :Purge やバックアップの差分を見る :VersDiff といったコマンドがありますけど、正直これらのコマンドを使ったことが皆無ですし、それこそ重要なファイルならバージョン管理した上でバージョン管理の diff を使えばいいわけで、特に必要そうでもないし、めんどくさそうなのでそういうコマンドは作っていません*3

*1:そもそもsavevers.vimは定期的に:Purgeでバックアップを一掃することを想定した設計だと思われる

*2:正確には永続化した番号なのでVimが終了しても次に振られる番号はリセットされません。

*3::Purge に似たコマンドは作りかけてたけど、インターフェイスがイマイチだったしそもそもそういったことは Vim のする仕事じゃないと思い直して削除しました