EmacsでPythonの設定

·2 分で読めます

最近Pythonいいなぁと思ってPython始めているのですが、コードを書くにあたってエディタの設定も多少しとかないと、ということでEmacsでPython回りの設定をしました。あんまりヘビーなことはしないので、とりあえず今回はpython-mode.elとflymakeの設定だけしています。

python-mode.el

ここからpython-mode.elをダウンロードして load-path が通っているところに置きます。自分はこんな感じのコードを .emacs に書いています。

(add-hook 'python-mode-hook

'(lambda ()

(setq indent-tabs-mode nil)

(setq py-indent-offset 4)))

flymake(PyFlakes)

Pythonのコードのシンタックスチェックを行うPyFlakesというソフトウェアをダウンロードして下記の要領でインストールします。

$ tar xvzf pyflakes-0.4.0.tar.gz

$ cd pyflakes-0.4.0

$ sudo python setup.py install

DebianやUbuntuにはdebがあるので

sudo aptitude install pyflakes

すればよいでしょう。あとは下記の設定を .emacs に追加すれば、.pyなファイルを保存したときに pyflakes によるシンタックスチェックが走ります。

(defun flymake-python-init ()

(let* *1

(local-file (file-relative-name

temp-file

(file-name-directory buffer-file-name))))

(list "pyflakes" (list local-file))))

(defconst flymake-allowed-python-file-name-masks '*2

(ad-activate 'flymake-post-syntax-check)

(setq flymake-allowed-file-name-masks (append flymake-allowed-file-name-masks flymake-allowed-python-file-name-masks))

(setq flymake-err-line-patterns flymake-python-err-line-patterns)

(flymake-mode t))

(add-hook 'python-mode-hook '(lambda () (flymake-python-load)))

実行イメージとしてはこんな感じ。

pyflakes_on_emacs

ちなみに自分は C-c e でエラー内容が表示できるように下記の設定も足しています。

(defun next-flymake-error ()

(interactive)

(flymake-goto-next-error)

(let ((err (get-char-property (point) 'help-echo)))

(when err

(message err))))

(global-set-key "C-c e" 'next-flymake-error)

さて、これからPythonのコードをガンガン書いていきます!

[tmkm-amazon]4797353953[/tmkm-amazon]

*1:temp-file (flymake-init-create-temp-buffer-copy

'flymake-create-temp-inplace

*2:"\.py$" flymake-python-init)))

(defvar flymake-python-err-line-patterns '(("\(.*\):\([0-9]+\):\(.*\)" 1 2 nil 3)))

(defun flymake-python-load ()

(interactive)

(defadvice flymake-post-syntax-check (before flymake-force-check-was-interrupted)

(setq flymake-check-was-interrupted t