EmacsでPythonコードをPEP8に準じたコードへ自動整形

  • 19
    Like
  • 0
    Comment
More than 1 year has passed since last update.

Pythonには、PEP8にという標準のコーディング規約があります。
この規約に準じてコーディングすると、コードのスタイルが統一され読み易くなります。
各エディターには、PEP8に準じたコードへ自動整形できる拡張ツールが大抵あります。

Emacsでは、py-autopep8を利用することで以下のように自動整形を実現できます。

py-autopep8.gif

py-autopep8に機能ついて

標準のpy-autopep8には以下の機能がありました。
- バッファ全体を自動整形
- 保存時にバッファ全体を自動整形

ただ上記機能だと、さわりたくないコードも自動整形されて
意図しないcommit履歴ができてしまうので
リジョン選択で自動整形できる機能をforkして追加しました。

導入方法

autopep8をインストール

$ pip install autopep8

以下から、py-autopep8.elを落してelispのload-path先へ配置

https://github.com/fujimisakari/py-autopep8.el/blob/master/py-autopep8.el

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)