Vimperator Advent Calendar 2012 4日目のebithです。
今日はVimperatorプラグインを書いてみたい、もしくは書こうとは思ったけど良くわからなかった人向けの情報などを紹介します。
だいたいは僕がプラグインを作り始めた時に困ったりハマったりしたことですが、お役に立てれば幸いです。
そもそもどう書けば良いの
サンプル用のプラグインにプラグインには欠かせないコマンドやマッピングなどの定義例が書いてあります。
また、vimpr/vimperator-pluginsには200近いプラグインがあるので参考になるはずです。
プラグイン作るときに便利なやつ
ライブラリ
Vimperator組込みのutil
や_libly.jsがあります。
コマンド
:js
や:echo
を使えば手軽にJavaScriptを実行できます。例) :echo util
:source
がプラグインの再読み込みに使えます。
プラグイン
auto_source.js - 指定ファイルが変更されると自動的に:sourceします。
echopy.js - echoしつつクリップボードにコピーします。
プリントデバッグ
:js!
で開くエラーコンソールに、liberator.log()で出力できます。
ログに残るタイプのechoであるliberator.echomsg()やliberator.echoerr()も便利です。:messages
であとからでも読めます。
既存の動作を変更するプラグインを書きたい
_libly.jsの$U.aroundを使います。anekosさんの記事が詳しいです。
Vimperator 本体のメソッドを書き換えるときの指針、
vimperator で、既存のコマンドにオレオレ動作を差しこむ
ググってもググっても情報出てこない
プラグインに限らずVimperator全体に言えることですが、Googleなどで検索してもまとまった日本語の情報はイマイチ出てきません。
vimpr/vimperator-pluginsをgrepしたりしてなんとかしましょう。
JavaScript自体に関してはMozilla Developer Networkが心強いです。
最後に
やってみると案外なんとかなるもので、単なるソフトウェアオタクでも少しはプラグイン書けるようになりました。
多くの人がプラグインを書けばそれだけVimperatorが便利になってみんなが幸せなので是非ともチャレンジしてください。