Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

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

$
0
0

導入

皆さんは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ディレクトリ以下に入るようにします。

vimppm.jsを以下のように書き換える:

vimppm.js
functiongetVimppmDir(){varvimperatorDir=io.File(io.File.expandPath("~/.vimperator"));// if (vimperatorDir.exists()) return "~/.vimperator/vimppm";if(vimperatorDir.exists())return"~/.vimperator/plugin";vimperatorDir=io.File(io.File.expandPath("~/vimperator"));// if (vimperatorDir.exists()) return "~/vimperator/vimppm";if(vimperatorDir.exists())return"~/vimperator/plugin";vimperatorDir=io.File(io.File.expandPath("~/_vimperator"));if(vimperatorDir.exists())// return "~/_vimperator/vimppm";return"~/_vimperator/plugin";elsereturnfalse;}

このプラグインの使い方ですが、先ほどのブログ記事やREADMEを読めば解ると思いますが、GitHubの~/.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の知識が無いので、ぜひ誰かに書いてほしい…です。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>