emacsのjediパッケージの使い方

emacs上でpythonの補完を可能にするjediパッケージの使い方をまとめました。

python-modeと一緒に使っています。

 

1 jediパッケージとは

emacs上でpythonのコード補完するemacsパッケージです。Pythonのserverスクリプト(jediepcserver.py)を使います。本ページはauto-completeの設定を済ませた状態で実行しています。

1.1 他のemacsコード補完パッケージについて

ac-pythonはpython-mode.elでは動作しないようです(そもそもpython.elを使うことを前提としている)。pycompleteもシンボル解決ができない問題が発生します。2015年9月現在、emacs上で動作するのはjediパッケージだけのようです。

2 jediパッケージのインストール

M-x package-list-packages経由でインストールします。

jedi               0.2.5        installed  a Python auto-completion for Emacs

3 virtualenvのインストール

python-pipでvirtualenvをインストールします。

$ sudo pip install virtualenv

4 jediepcserverのインストール

jediepcserver.pyをpythonライブラリにインストールします。jedi:install-serverは使わない方が良いかもしれません。

$ sudo pip install --upgrade ~/.emacs.d/elpa/jedi-core-0.2.5

5 .emacsの設定

jediをロードし、python-modeのフックスクリプトでjediを呼び出します。

(require 'jedi)
(add-hook 'python-mode-hook
          '(lambda()
             (jedi:ac-setup)
             (setq jedi:complete-on-dot t)
             (local-set-key (kbd "M-TAB") 'jedi:complete)))

6 実行例

適時M-TABを押すことで補完されます。

0001_jedi.png

ただし、補完できないライブラリもあったりします(jedi公式ページの例にあるos.path.existsが見つけられない)。別のマシンだとできたりできなかったりするので環境依存の問題でしょうか。