Python+iPython+Emacsの設定 (Mac)

今まで何を思ったかipythonはwindows用のpythonだと思っていて、調べたところより便利なpythonシェルだということが判明したので入れてみた。
iPythonには基本的なunixコマンドが移植されていて、それでwindowsでcygwing代わりにiPython起動してる人が多いらしい。それで勘違いしたんだろう。たぶん。

導入

iPython導入の解説はたくさんあったけど、easy_installからいれるのが迷わなくてよかった。

sudo easy_install ipython

rc

pythonインタプリタは起動時にbashで指定されたPYTHONSTARTUPのpythonを読んでくれるのだけど、iPythonは別にrcファイルを持っていて、そっちを設定してやらなきゃいけないっぽい
~/.ipython/ipythonrc の末尾に以下を記入

execfile ~/.pyrc

Python基礎文法最速マスター - D++のはまり日誌で紹介されてたseeライブラリが便利だったので、指定しておく。

~/.pyrc

from see import see
import os,sys

もっと詰め込んでもいいんだけど、頻繁に起動するものを重くするのも嫌なので。
ipython -p math などで個別に読み込むプリセットを指定できるみたいだ。

Emacs上で iPython

python-mode(python.el)ではないpython-mode(python-mode.el)をいれる。

http://launchpadlibrarian.net/21781107/python-mode.el
http://ipython.scipy.org/dist/ipython.el

.emacs.elに追記

(autoload 'python-mode "python-mode" "Python Mode." t)
(add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))
(add-to-list 'interpreter-mode-alist '("python" . python-mode))
 
(setq ipython-command "/usr/local/bin/ipython")
(require 'ipython)

これで pythonモードで C-c!すれば ipythonが起動する。

これから

pymacsを使った補完、pycomplete ropemacs pysmell を三つとも試したんだけど、どれも上手くいかなかった。現状どうしようもないので放置する
viper-modeでノーマルモードに戻るときにIMをオフにしたいんだけど、いい方法ないかなぁ。

(setq ipython-command "/usr/local/bin/ipython")
(require 'ipython)