牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

Pythonの補完をEmacsでシンプルに最小労力で手早く使えるようにする

http://www.python.org/community/logos/python-logo.png

EmacsでのPython環境を整えるのはいろいろと面倒。
なので簡単に補完できる環境を作れるようにしてみた。

問題

  1. デフォルトのモードpython.elと、昔からよく使われてるpython-mode.elがある。
  2. python-mode.elは設定すれば多機能でとても便利。しかし、環境作るのは手間がかかる。pymacs入れたりpycompleteとかipythonとか色々ややこしい。
  3. Pythonでの補完をGoogleで調べると様々なやり方がでてくる。どれも面倒くさそう。
  4. 新しいPCを購入した時とか再インストール時とか、速攻Python書ける環境にしたい。
  5. python.elにはcomplete symbol(M-TAB)があるけど使い勝手が悪い。

結論 python.el + auto-complete-mode + ac-python

  1. ごちゃごちゃ考えず、デフォルトのpython.elを使ってしまう。
  2. auto-complete-modeのインストール。ここが多少面倒ではあるが、これは便利なものなので実用性を考えると入れておくのが吉。
  3. ac-python.elをダウンロードして、設定に(require 'ac-python)と書くだけ。
  4. 追記:環境によって ac-python.el を byte-compile する必要があるみたいです(nkt さんからの情報)

設定例

  1. auto-completeの設定のあとに(require 'ac-python) を書く
  2. 環境によるのかもしれないが ac-modes に python-2-mode を追加しないと、自動的にpython-modeでauto-completeが起動しない(Emacs23.3.1)
  3. auto-copleteのac-dictディレクトリの中のファイル『python-mode』をコピーして、『python-2-mode』とリネームする。*1
;;auto-completeの設定のあとに書く
(require 'ac-python) 

*2

;; この設定しないとpython-modeで自動的にauto-completeが起動しない
(add-to-list 'ac-modes 'python-2-mode)

実行してみる

import time
#Update Imports(C-c TAB) もしくは Eval buffer(C-c C-c)してから
time.       #<- ここでauto-completeで補完する

こんな感じになる。



*1:追記:20120105

*2:訂正:20120109