vital.vim を使うときはそれなりの覚悟が必要

この記事は Vim Advent Calendar 2013 181 日目の記事になります.

vital.vim とは

vital.vim は, vim 本体にはないけどあると便利なライブラリ群です. vim-jp の有志とその愉快な仲間たちによって開発されています. vitalize 時のプラグイン名さえ重複しなければ複数のバージョンの vital.vim が存在していても問題ないような仕組みがあります.

ujihisa
とにかく一番厳しいのは既存の関数の挙動を変えるときにchangelogに書くという点だけです
(この情報が:Vitalize時に表示されるので)
changelogというよりnewsといってもいいかも
あのchangelogとvitalizeの仕組みを考案・開発した人は神です

http://lingr.com/room/vim/archives/2013/07/13#message-15897280

5/26 に usevim で紹介され, 5/27 あたりに vital.vim ブームがやってきました.

crazymaster
vital.vimgithubのTrendにのりましたね
todayとweekly

vim-jp – Lingr

http://f.st-hatena.com/images/fotolife/s/syngan/20140527/20140527214451.png

今も weekly で 9 位にいます.
http://f.st-hatena.com/images/fotolife/s/syngan/20140530/20140530213349.png

ちょっと待ってよ

暗黒美夢王は lingr で良く以下の趣旨の発言をされています.

:Vitalizeするとほとんどの場合、プラグインの互換性が壊れて修正が必要になるため、
積極的にやりたくならないのです。

vim-jp – Lingr

vital の更新はかなりリスクが高い
破壊的変更も多いし、そもそもプラグインが大量にあると時間がかかる

vim-jp – Lingr

どういうことかというと, 「複数のバージョン〜仕組み」があるために, 頻繁に非互換が発生する修正が取り込まれています. 一応、非互換が出た場合には Changes に記述することになっています. 見てもらえばわかりますが, 結構大胆です. 関数がなくなったり, モジュール名が変わったり...
たとえ Changelog 書いてあったとしても, 複数個所で使用している関数すべてを問題なく修正できる保証はありませんし, 普通は vitalize は一度しかやらなくて済むほうが平和です.しかし, vital.vim にはバグはありますし, vim の非互換 update によって, vital.vim を更新しないといけなくなることもあります.

また, Changes に書かれていないものもあります.

それから, 仕様が固まっていないものがそのことが明記されずに公開されているものがあり, vital.vim の動向を追いかけている人でないと把握できないようにもなっています.

今後取り込まれると, 非互換が発生することが確実な issueたちも.

別の問題として, 残念なことにテストが十分になされていません.
テスト自体がないものもありますし, ある場合でも自動的に行っているのは Travis-CI でデフォルトで提供される vim のみです. windows ルートや他のバージョンでのテストは現時点では行われていません.

raa0121
WindowsでVitalのテストする手順がほしいなぁ
Vimproc必須なのかな
travis-ci以外でWindowsのテストも常時叩くべきかも
vim本体含め

vim-jp – Lingr

ということで, vital.vim を利用する場合には, ただ恩恵が得られるだけではないことを理解しておく必要があると思います.

そうはいっても

vital.vim は便利です.
issues に報告しさえすれば問題点は修正してもらえるはずですし, こんなんほしいなーとかつぶやくと対応してくれる人がいるかもしれませんし, 積極的に使うべきだと思います. 多くのものは基本的な機能の提供なので vim script のお勉強にも便利です.
また使われることによってふわふわな部分の仕様も確定していくのだと思います.

それでも気になってしまう人は, ライセンス上ソースコードをコピーして利用することが許されているので, 使用する部分が少ない場合にはコピーするのも一つの手段だと思います.

追記1

lingr ログをいくつか追加しました.