Pages

Jun 3, 2009

Pythonで補完


Twitterで”bpythonがいい”という書き込みを見たので試してみた。ついでに補完でpythonのプログラミングを楽にする方法を自分のためにメモ。


ところで補完ってのは一般の人に通じそうでない通じないIT用語の筆頭格だよね。


vimを使う場合


pydyctionというvimの拡張機能を使います。僕はここをみながらやりました。


ここからダウンロードして。下の設定をvimrcにいれるだけです。簡単。



" Pydictionを読み込む
if has("autocmd")
autocmd FileType python set complete+=k~/.pydiction/pydiction iskeyword+=.,(
endif
" has("autocmd")
" python supportが有効ならこれでいけるはず. Mac OSは駄目だった。
"autocmd FileType python set omnifunc=pythoncomplete#Complete
" Python tab
set tabstop=8
set softtabstop=4
set shiftwidth=4
set expandtab
set smarttab

ついでだからタブの設定まわりも書いておきました。


これで次回以降ソースを書くときにCtrl+nもしくはCtrl+pを押すと以下のスクリーンショットのように候補がずらずらでてきます。


f:id:kkomiyama:20090603232802p:image



素のviしか知らない人にこれを見せると驚かれます。カラースキームで背景を黒にしていると、デフォルトの色設定が結構つらいかも。


インタラクティブシェルでの補完


pythonのインタラクティブシェルはなにかと便利なのですが、これもbpython(http://www.noiseforfree.com/bpython/)というツールを使うと補完できます。UbuntuやFedoraなどのメジャーなOSを使っている人はapt,yumでインストールできるっぽいです。僕はMacなのでmacportsを使ってインストールします。


既にmacportsがはいってるなら一行だけ。



$ sudo port install py26-bpython

久しぶりだったので、ついでに他のパッケージも更新しておきましたが。



$ sudo port selfupdate # macportsそのものとデータベースを最新に
$ port outdated # 古いパッケージリストアップ
$ port upgrade installed # ついでだから他のパッケージを更新

で、あとは/opt/local/bin/bpythonと起動すると、シンタックスを色分けしたpythonのインタラクティブシェルが起動します。こんな感じ。


f:id:kkomiyama:20090603232837p:image



importした自作のプログラムの関数や変数も当然補完されます。ピリオドを打つと補完候補を表示するあたりはVisual Studioなどの一般的なIDEと一緒でなじみやすいです。それからCTRL+Rで前の行を消して戻れるところが癖になりそう。


そのほか具体例はこちら(http://www.noiseforfree.com/bpython/screenshots.html


うん、bpythonよくできてるね!