A Day in the Life

vimperator で svn:externals + plugin_loader.js を使った設定ファイル管理

vimperator で svn:externals + plugin_loader.js を使った設定ファイル管理

はてなグループの終了日を2020年1月31日(金)に決定しました - はてなグループ日記 - 機能変更、お知らせなど の続き。

  • 設定ファイルを使い回したい
  • coderepos のプラグインを使いたい
    • 最新版を保ちたい

という場合、svn externals と plugin_loader.js を利用するとよい。

vimperator
|-- coderepos_plugin
|-- colors
|-- info
|-- plugin
`-- vimperatorrc

な感じの vimperator ディレクトリを svn につっこむ。そして svn:externals として

http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk coderepos_plugin

を設定すれば、coderepos の trunk が coderepos_plugin ディレクトリに checkout される。ここでプラグイン修正したければ変更したりして coderepos にコミットなんかもできる。vimperator/plugin には、plugin_loader.js (と、coderepos 以外のプラグイン) のみを入れておくだけ。

で、vimperatorrc に

" plugin_loader.js
let g:plugin_loader_roots = '~/vimperator/coderepos_plugin/';
" 利用するプラグインたち
js <<EOF
liberator.globalVariables.plugin_loader_plugins = <>
    _libly
    auto_reload
    auto_source
    ...
.toString().split(/\s+/).filter(function(n) n);
EOF

と書いておけばおk。coderepos に追加された新しいプラグインを使いたいときも svn up して plugin_loader_plugins に追加するだけで簡単。plugin_loader++。

ただこの方法だと、信頼ならない第三者が coderepos にコミットした、悪意のあるアップデートされたプラグインが chrome 権限で実行される恐れがあるので、その辺は自己責任で。

記事の一覧 >