自作の 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 モジュールがまだ手元にいくつかあったりします。