EmacsでPythonの設定
最近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* ((temp-file (flymake-init-create-temp-buffer-copy 'flymake-create-temp-inplace)) (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 '(("\\.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)) (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)))
実行イメージとしてはこんな感じ。
ちなみに自分は 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のコードをガンガン書いていきます!
こちらもあわせてどうぞ


コメント