私はblackをpythonコードのformatterに用いているので、blackの仕様に合うようにisortを設定して動かしたいというわけである。isortをEmacsから触るためにはpy-isortを用いる。以下の記事は参考になる。
isortのマニュアルはこちらから: pycqa.github.io
まずisortをインストールする。
pip3 install isort
py-isortはEmacsのパッケージシステムから容易にインストール可能である。その後、Emacs設定ファイルに以下を追記する。こうするとバッファ保存時にisortが走ってくれるので便利である(=つまりインポート順を自分で編集する必要がなくなる!)。
;; py-sort: isortを使ってライブラリのimport順をソート (eval-when-compile (require 'py-isort)) ;; for black (setq py-isort-options '("--multi-line=3" "--line-length=88" "--trailing-comma" "--use-parentheses" "--ensure-newline-before-comments" "--force-grid-wrap=0")) ;; バッファ保存時に自動ソート (add-hook 'before-save-hook 'py-isort-before-save)
なおこれらのオプション値はblack公式のドキュメントを参考にした。 black.readthedocs.io