30
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

emacs-jediのinstall

jediとはemacsでpython編集時に、入力のautocomplete(自動補完)を行なってくれるemacs lispです。簡単な設定でemacsに強力で、高速な自動補完環境を構築出来ます。

emacsでpythonだと、python.elやら(また別の)python.elやらpython-mode.elやらac-python.elやらと混在して、全部入れると、一体どれが正常に動いてるのやら確認するのも嫌になります。どれもネーミングが悪すぎる。

今回紹介する、jediもネーミングがよくわからないのですが、統一的な仕様になっているので使いやすいかもしれないと思ったからです。

主な参考サイト :
1. ここがメイン2012-10-21 関西Emacsにいってきた
2. 補助的2013-04-15 emacs-jedi で Emacs の Python のオムニ補完をする場合のメモ
3. 補助的2012年11月13日 Emacs で Python の補完を強化する jedi を設定してみた
4. 記事JEDI: A COMPLETION LIBRARY FOR PYTHON by mickey on January 10th, 2013

install

まずは、jedi関連のファイルをgitする場所を掘って、移動しておきます。
(私は、.elは全部用途別にファイル分割して、それをinit.elから読みに行っております。新しいパッケージはsite-lisp以下にパッケージごと(用途別じゃないのかい!)に整理しています。ご自分の環境では好きにしてください。)

mkdir ~/.emacs.d/site-lisp/jedi
cd ~/.emacs.d/site-lisp/jedi

ここで、gitからcloneしてきます。

git clone git://github.com/tkf/emacs-jedi
git clone git://github.com/kiwanami/emacs-deferred
git clone git://github.com/kiwanami/emacs-epc
git clone git://github.com/kiwanami/emacs-ctable

次は、virtualenvとかよくわからないのですが、次の呪文をemacs-jediで実行する必要があるようです。virtualenvやらpipがない人は、先にそちらをinstallする必要があります。

cd ~/.emacs.d/site-lisp/jedi/emacs-jedi
virtualenv env
source env/bin/activate
pip install jedi epc

設定

それが済んだら、ロードパスの通っているファイル(.emacs.d/init.elでもいいですし、私は.emacs.d/input-utils.elです)に以下を書き込みます。
auto-completeのセッティングの後に読み込まれるように書かないといけません。

(add-to-list 'load-path "~/.emacs.d/emacs-deferred")
(add-to-list 'load-path "~/.emacs.d/emacs-epc")
(add-to-list 'load-path "~/.emacs.d/emacs-ctable")
(add-to-list 'load-path "~/.emacs.d/emacs-jedi")
(require 'auto-complete-config)
(require 'python)
(require 'jedi)
(add-hook 'python-mode-hook 'jedi:ac-setup)
(define-key python-mode-map (kbd "<C-tab>") 'jedi:complete)

私はこれでうまく行かず、試行錯誤の結果以下で落ち着きました。

;;;この上にはpath設定やらsuto-completeの設定
(require 'jedi)
(add-hook 'python-mode-hook 'jedi:setup)
;;これを入れるとjediを手動<C-tab>で立ち上げないといけない。
;(setq jedi:setup-keys t)
(setq jedi:complete-on-dot t)

使い心地

python-modeよりはいい気がします。関数のヘルプが速いのに驚きました。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
30
Help us understand the problem. What are the problem?