emacsでpython開発をするのにとりあえず設定したこと
しばらく続いたrails開発の案件から、python開発に移って、最初はeclipse+pydevで開発しようかなと思ったのですが、
なんだかんだで結局emacsに戻ってます。
ただ、ずっと使ってたemacsの設定ファイルが、windows、mac、linuxで共通で使えるようにしようとしてたせいもあって、
ごちゃごちゃになってたので、一度すっぱりすてて、設定をシンプルにしようとしてます。
当分macでしか開発しないですし。
いまのところインストールしたライブラリはanything、monky.el、moccur-edit、python-mode.el、flymake-cursor.el、color-theme.elくらいものです。
flymakeの設定はここで紹介されていたものをパクってるのですが、素敵すぎます。
pep8とpyflakesのチェックが常にかかり、エラー行を示してくれ、ミニバッファには何がpep8に違反しているのかが表示されます。
こいつを設定する前は、行末に無駄なスペースがあったり、空行が余計にあったりするコードを書いてしまってましたが、
今ではなくなったはず。
今のところの設定はだいたいこんな感じです。
;; 現在行に色をつける (global-hl-line-mode nil) ;; 対応する括弧を表示させる (show-paren-mode 1) ;; シェルに合わせるため、C-hをバックスペースに割り当てる (global-set-key (kbd "C-h") 'delete-backward-char) ;; モードラインに時刻を表示 (display-time) ;; 行番号、桁番号を表示する (line-number-mode t) (column-number-mode t) ;; リージョンに色をつける (transient-mark-mode 1) ;; yes -> y (defalias 'yes-or-no-p 'y-or-n-p) ;; hide toolbar and scrollbar (if (fboundp 'scroll-bar-mode) (scroll-bar-mode -1)) (if (fboundp 'tool-bar-mode) (tool-bar-mode -1)) (if (fboundp 'menu-bar-mode) (menu-bar-mode -1)) ;; Invoke M-x without the Alt key (global-set-key "\C-x\C-m" 'execute-extended-command) (global-set-key "\C-c\C-m" 'execute-extended-command) ;; Prefer backward-kill-word over Backspace (global-set-key "\C-w" 'backward-kill-word) (global-set-key "\C-x\C-k" 'kill-region) (global-set-key "\C-c\C-k" 'kill-region) ;; back slash (define-key global-map [?\] [?\\]) ;; alt と commandを入れ替える (setq ns-command-modifier (quote meta)) (setq ns-alternate-modifier (quote super)) (require 'moccur-edit) ;; color-theme (require 'color-theme-zenburn) (color-theme-zenburn) ;; monky (global-set-key (kbd "M-G") 'monky-status) ;; anything (global-set-key (kbd "C-l") 'anything-for-files) ;; python (autoload 'python-mode "python-mode" "Python editing mode." t) (setq auto-mode-alist (cons '("\\.py$" . python-mode) auto-mode-alist)) (setq interpreter-mode-alist (cons '("python" . python-mode) interpreter-mode-alist)) ;;; flymake for python (add-hook 'python-mode-hook 'flymake-find-file-hook) (when (load "flymake" t) (defun flymake-pyflakes-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 "pycheckers" (list local-file)))) (add-to-list 'flymake-allowed-file-name-masks '("\\.py\\'" flymake-pyflakes-init))) (load-library "flymake-cursor")
必要になったらちょこちょこ設定を追加していこうと思います。