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を押すと以下のスクリーンショットのように候補がずらずらでてきます。


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

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

pythonインタラクティブシェルはなにかと便利なのですが、これもbpython(http://www.noiseforfree.com/bpython/)というツールを使うと補完できます。UbuntuFedoraなどのメジャーな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インタラクティブシェルが起動します。こんな感じ。


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

そのほか具体例はこちら(http://www.noiseforfree.com/bpython/screenshots.html
うん、bpythonよくできてるね!