パーソナルツール

Pythonのモジュールをプラグインに同梱して配布する

作者: 小見 拓 最終変更 2012年01月08日 12時13分

Pythonのモジュールをプラグインに同梱して配布する

例えば、runtimepathのpluginディレクトリ以下に、chardetというモジュールを置くことを想定するなら、

$VIMRUNTIME
    |
    +-- plugin/
    |       +-- some-plugin.vim    ... pythonを使用するプラグイン
    |
    +-- plugin/chardet/            ... chardet Pythonモジュール
            +-- __init__.py
            +-- some1.py
            +-- some2.py

パスを特定後、site.addsitedir()でモジュールのパスを追加する。

" モジュールのパスを特定する
for i in split(globpath(&runtimepath, "plugin/chardet/__init__.py"), 'n')
    let adding_pythonpath = fnamemodify(i, ":p:h:h")
endfor


" Pythonのsite.addsitedir()で、モジュールのパスを追加する
python << EOF
from vim import *
import vim
import site
site.addsitedir(vim.eval('adding_pythonpath'))
EOF


" その後、モジュールを読み込み、処理を行う
python << EOF
import chardet
" do some thing
" do some thing
" do some thing
EOF
ドキュメントアクション
コメント
blog comments powered by Disqus