Pythonには、PEP8にという標準のコーディング規約があります。
この規約に準じてコーディングすると、コードのスタイルが統一され読み易くなります。
各エディターには、PEP8に準じたコードへ自動整形できる拡張ツールが大抵あります。
Emacsでは、py-autopep8を利用することで以下のように自動整形を実現できます。
py-autopep8に機能ついて
標準のpy-autopep8には以下の機能がありました。
- バッファ全体を自動整形
- 保存時にバッファ全体を自動整形
ただ上記機能だと、さわりたくないコードも自動整形されて
意図しないcommit履歴ができてしまうので
リジョン選択で自動整形できる機能をforkして追加しました。
導入方法
autopep8をインストール
$ pip install autopep8
以下から、py-autopep8.elを落してelispのload-path先へ配置
init.elへ追記
(require 'py-autopep8)
(define-key python-mode-map (kbd "C-c F") 'py-autopep8) ; バッファ全体のコード整形
(define-key python-mode-map (kbd "C-c f") 'py-autopep8-region) ; 選択リジョン内のコード整形
;; 保存時にバッファ全体を自動整形する
(add-hook 'before-save-hook 'py-autopep8-before-save)