[vim][python] vim を python で拡張し,anything-like なインターフイスで実行する。
Vim のコマンドは沢山あってたまにしか使わないものは覚えられない。
特定の時期に頻繁に使って、専用のキーバインドを設定しても、暫く使わないとそんなキーバインドを設定した事すら忘れてしまう。
というのに困ってる人は俺だけではないはずだ。
Emacs はそれぞれの機能が emacs-lisp の関数として実装されていて、わりと分かりやすい名前がついている。
anything という超強力なプラグインのおかげで、大量にある elisp の関数をあいまい検索して実行できるようになったから、これによって「うろ覚え」でも関数を呼べるようになった。
つまり、覚えなくてもよくなったって事。
こういうのが Vim にもあれば便利だ。
実際にいくつかプラグインがあり、fuzzyfinder, ku, unite がある。どれも日本人が作ってるってのがすごい!
unite はまさに Vim 版 anythong を志向しているようで、おそらく決定版になるだろうと思う。
俺も先週ぐらいから unite を使っていて、もうちょっとしたら fuzzyfinder は使わなくてすむようになると思う。
ああ、前置きが長くなってしまった。
本題。
python のお勉強をしている。
python で Vim を気軽に拡張したい。
つくった python の関数を anything like なインターフェイスで、ランチャのように起動したい。
と妄想して、それっぽいものを作った。
なんせ、python の初心者(先週の水曜ぐらいからか始めた)なのと、まだ module , class, 変数の scope とかもちゃんとわかってないレベル
で書いてるので、とりあえずでっち上げたというレベルですが。。バグバグですが、アイデア共有ってことで。
vimrc に
nnoremap <D-f><D-p> :python vim_py()<CR> vnoremap <D-f><D-p> :python vim_py()<CR> pyfile "~/.vim/plugin/pyvim_anything_like.py"
みたいに設定して、
python の docstring がそのままランチャの help なる。
※ インターフェイスは CommandT をかなりパクって作ってます。