vimperatorのプラグイン管理を考えてみた


導入

皆さんはvimperator使ってますか?vimperatorはfirefoxの拡張機能で、Vim的なキーバインドでブラウザを操作できるだけでなく、プラグインを入れることによって、更に便利に使いこなすことができるようになります。(といっても、プラグインはあまり使ってこなかったのだけれど)

で、プラグインつかってみようかなーと思った時に、VimのNeoBundle的なvimperatorのプラグイン管理プラグインはないんか!ということでいろいろ調べて、ひとまず解決したと思うので書いておきます。

どうするか

有名どころですが、vimperator-pluginsplugin_loader.jsは、自分でどこかからかダウンロードしてきたプラグインのあるディレクトリを指定し、プラグイン名(jsファイル)を指定することによって~/.vimperator/plugin/以下にシンボリックリンクを貼らずともプラグインを有効にすることができます。

" set the root dir for loading plugins(you can set multiple directories)
let g:plugin_loader_roots = "~/.path/to/vimperator/plugins,~/path/to/another/plugins"

" specify the plugin you use (you can omit '.js')
let g:plugin_loader_plugins = "plugin1,plugin2"

ただ、NeoBundleのように、GitHubのリポジトリを指定するだけでインストールから何までやってくれるわけではないようです。

そこで、vimppmというプラグインを使います。

作者さんの説明の通りにvimppm.jsをダウンロードしてきて、vimppmというディレクトリを作り、先ほどのplugin_loader.jsで管理する方法でもいいのですが、今回は面倒なのでvimppm.jsのソースを書き換えて、ダウンロードしてきたプラグインが直接pluginディレクトリ以下に入るようにします。

(追記:2015/07/04)

上で言ったような操作は必要ないです。詳しくは下のコメントを参照してください。

(追記ここまで)

このプラグインの使い方ですが、先ほどのブログ記事やREADMEを読めば解ると思いますが、~/.vimperatorrc

source ~/.vimperator/vimppm/vimppm/plugin/vimppm.js " vimppmを置いた場所

vimppm "plugin1.js"
vimppm "plugin2.js"

のように書いておき、firefoxを再起動してから:vimppm installとすると、ここに指定されたプラグインが~/.vimperator/vimppm(今回は~/.vimperator/plugin)内にプラグインがクローン(ソース見る限りはwget)されます。また、:vimppm updateで最新版に更新することもできます。また、vimpr/vimperator-pluginsの中のプラグインは、そのプラグイン名だけで指定することができます。このようにすれば、複数マシンを使っていてもvimperatorのプラグインを共有できるので良いですね!また、設定ファイルにどのプラグインを入れているかを直接書くことになるので、後から自分が見た時や、他の人が見た時にわかりやすくなっていいと思います。

まとめ

plugin_loader.jsとvimppm.jsが合体すればさいつよなんだろうけど、自分にはJavaScriptの知識が無いので、ぜひ誰かに書いてほしい…です。現在vimppm.jsだけでうまく管理できてまず。感謝!