Humanity

Edit the world by your favorite way

Vimperatorのプラグインをアップデートするいくつかの方法

git/svnCodeReposリポジトリを持ってきて、必要なものだけシンボリックリンクを貼る

VimperatorのプラグインをCodereposからアップデートするPerlスクリプト - Humanityブコメid:sendさんに教えてもらった。

自分はgithubで管理してるので、シンボリックリンクとして記録されたくない。
その場合はコピーする時にシンボリックリンクを解決するか
シンボリックリンクをやめてハードリンクにする。

git/svnCodeReposリポジトリを持ってきて、pluginLoader.jsを使う

シンボリックリンクが使えない環境とか使いたくない場合では便利そう。
自分はLinuxWindows(cygwin)を両方使うのでこれを使うかもしれない。

git/svnCodeReposリポジトリを持ってきて、runtimepathに加える

詳しくは:help 'runtimepath'に書いてあるけど

set runtimepath+=~/.myvimperator

のようにすれば~/.vimperatorに加えて~/.myvimperatorも読み込まれる。

pluginManager.jsでアップデートする

以下を.vimperatorrcに書いておくと自動的にアップデートされる。

autocmd VimperatorEnter .* pluginmanager update

...はず。
中には「unknown version」とか出てるものもあるので実際はアップデートされてるのかはよく分からない。
ずっとこれを使っていたんだけど、ちょっと前のバージョンではこれが動かなくなっていて困っていた。
でもまぁ最新では普通に動いてました。ちゃんとアップデートはするべき、というかそのためのエントリだけど。

glvpを使う

glvpとは何か。それはGet Latest Vimperator Pluginの略である。
昨晩pluginLoader.jsの存在を知らずに、あるいはpluginManager.jsが既に正常に動いてることを知らずに
タカをくくって書き始めたものの、gitで管理もせずに書き始めたせいか色々ハマった。
あと無駄にコアじゃないモジュールを使わないように作ってたり。*1

$ ./glvp

プラグインのアップデートができます。-vオプションなんかつけるとさらに詳細なメッセージが見られます。

$ ./glvp -h

でヘルプが見られるので参考にしてください。


追記:
あとそういえば前こんなのを書いて、このコードパクれば余裕だろと思ってたのもあります。
実際前のコードとやること変わりません。
.vimeratorディレクトリを指定せずに済むので微妙に快適になったという程度。

多分やりそうにないTODO
  • ~/.glvp/以下にHTMLをキャッシュして、指定時間内はキャッシュを参照する
  • ~/.glvp/revision/以下にそれぞれのプラグインのリビジョンを保存して古かったらアップデート

詳しくはコードに書いてある。
Windowsとかだったら~/.glvpは現在のフォルダでいいのかな。
それとも%APPDATA%?いまいち勝手が分からない。

というか

これだけ方法あるのになんで気づかなかったのか、正直分からない。

*1:正直cpanm使えば「cpanのインストールは難しい」なんてすでに幻想だと思うけども