ballはトモダチ、vimpはトモダチ (zoteroを例として) - Vimperator Advent Calendar 2012 8日目

Vimperator Advent Calendar 2012 8日目担当、日本目光会の kozo2 です。
今日は、 vimp 使い込みのために、文献管理pluginであるzoteroを例としてinteractiveにpluginのobjectを操作する方法を紹介します。

Zoteroとは

論文pdfなどのmeta dataを読み込みマイlibraryを作るのを手助けしてくれるfirefox addonです。
mendeleyのようなsocial機能は無いですがbrowser(firefox)と統合しているのが特徴です。
その他挙げますと

って感じですが、とりあえず http://www.zotero.org/download/ から Zotero for Firefox をインスコしてください。

なぜvimpはトモダチか

vimpというと

  • command lineで何でも操作できる
  • hit-a-hintでmouseいらず

ってのがpushされてる気がします。
しかし真価はinteractiveにjavascriptのobjectを補完機能付きでinspectできるところにあると思います。
それはPythonでのipythonのように。
vimp 使い込みにはこのjs objectと戯れることが肝要であります。
それはまるでsoccer ballと戯れる翼君の如し。

js objectにダイブ

vimp で任意のjavascriptを実行するにはcommand lineで

:js なんか

します。
Zoteroの場合であれば http://www.zotero.org/support/dev/client_coding/javascript_api に書かれている文をZoteroをonにした後に

:js

に続けて打っていくことでvimpがobjectをinspectしてくれinteractiveにplugin(Zotero)の情報を得られるのが実感できるでしょう。
例えばZoteroをonにした状態で

:js ZoteroPane.

と入力すると、下記のような補完が候補が出ます。

f:id:kozo2:20121209013522p:plain

また

:js ZoteroPane.

のあとに to と入力することで下記のように補完候補が絞られるのがわかるでしょう。

f:id:kozo2:20121209013743p:plain

ここで

:js ZoteroPane.toggleTab()

とすることでZoteroのtabがtoggleするのがわかるでしょう。
先ほどのZoteroのdocument http://www.zotero.org/support/dev/client_coding/javascript_api にはAn Easy Debugging Environmentとして

  • ExecuteJS
  • MozRepl

などが挙げられていますが、vimpの方が手軽かつ補完が強力な気がします。

その先は

あとはひたすらjs objectと戯れ、便利と思った文をpluginとしてまとめましょう。 pluginとしてまとめるには日本目光会会長の anekos さんによる function-template.js を見られることをおすすめします。
https://github.com/vimpr/vimperator-plugins/blob/master/function-template.js