EmacsでPythonを書く設定2024

はじめに

2024年もPythonまわりのEmacsの設定を色々と試してみる。

設定

MELPAからインストール可能。 melpa.org

  • Language server

Emacsからlanguage serverを使うためにeglotを入れる. 最近はeglotはEmacsに最初から入るようになったようだ。

PythonのLauguage serverとしてpython-lsp-serverおよびプラグインpython-lsp-ruffを入れる。Ruff自体が高速なPython linterであり,それを活用するpython-lsp-ruffも当然高速(動作が軽い)。

github.com

github.com

  • その他の3rd Party Plugins
pip3 install python-lsp-isort
pip3 install python-lsp-black

python-lsp-isortはimport順を自動でソートしてくれるパッケージである。 python-lsp-blackはblackの仕様に沿ってコードをフォーマットしてくれるパッケージである。

実際の設定はこんな感じ。

;; Python
(add-hook 'python-mode-hook #'eglot-ensure)

;; 保存時に自動整形 (eglot)
(add-hook 'python-mode-hook
          #'(lambda ()
              (add-hook 'before-save-hook
                        'eglot-format-buffer nil t)))

追記

RuffをEmacsから触るときには以下の記事もまた参考になる。

mako-note.com