自作の vital モジュールをまとめた

作りすぎて自分でも把握しきれなくなってきたのでとりあえずざっくりとまとめてみた。
なお、ここに上げたモジュールの殆どはアンドキュメントであり仕様はまだ固まってないのがほとんどな模様。

vital-over

独自コマンドラインを使用するためのフレームワーク
もともと over.vim で実装していたものを汎用化して切り出したもの。
今では over.vim 以外にも incsearch.vim でも使用されている。
半分近くのコマンドラインの機能(<C-v><C-r>、コマンド履歴の補完など)をエミュレートしたり cmap/cnoremap の設定をインポートしたりと地味にがんばってる。

vital-coaster

バッファやウィンドウに対する操作を行うモジュール。
カーソル下の単語を取得したり、ウィンドウハイライト(matchadd())の管理、カレント以外のバッファを操作するモジュールがある。

  • Coaster.Buffer - バッファを操作するモジュール
  • Coaster.Search - カーソル位置を基準とした任意のパータンのテキストを取得するモジュール
  • Coaster.Highlight - ウィンドウハイライトを管理するモジュール

vital-gift

gift.vim の vital 版。
ウィンドウやタブページに対して固有の数値をナンバリングし、移動したりするモジュール。

vital-reunions

reunions.vim の vital 版。
外部プロセスを非同期で実行し、ポーリングするためのモジュール。
monster.vim や marching.vim などで非同期補完を行ったり、unite-github、unite-web_feed で非同期通信を行うために使用されている。
仕様はまだ固まってないがかなり便利。

vital-reti

reti.vim の vital 版。
Vim script で無名関数を定義するためのモジュール。
Vim script にヒアドキュメントがあればもっと使いやすくなるはず。

vital-palette

Vim コマンドの出力結果をパースするためのモジュール。
最近実装した over.vim の cma/cnoremap のインポートもこれを使用している。

  • Palette.Keymapping
  • :map の出力結果をパースする

vital-unlocker

Vim のオプションや設定などを一時的に保存し、元に戻すためのモジュール。
つくったもののまだほとんど使ってないので使っていきたい。

まとめ

vital.vim が外部モジュールに対応してからオレオレライブラリがつくりやすくなったので、節操無くつくってます。
逆に作りすぎて飽和してしまっている感がすごい。

一応、それぞれ目的があるのでまとまってるようには見えるんですが vital-coaster とかはちょっと曖昧になりつつあるのでここら辺をどうにか切り分けたいですねぇ…。
とりあえず、汎用的なのを雑に vital-coaster に突っ込みまくってしまってるので…。
特にバッファを操作するのはちょっと目的が違ってきそうなのでここら辺をうまく切り離したいところではあります。

しかし、Vim プラグイン書いていると、汎用的な処理を vital でモジュール化したくなってしまって全然先に進まない…。
ちなみにここであげてない vital モジュールがまだ手元にいくつかあったりします。