emacsでの設定を触り始めて1年くらい経つが、python環境にすごく悩まされていた。そこでlsp-modeというものを見つけ、手こずりながらもうまくいったので備忘録として取っておく
特にmako さん https://mako-note.com/ja/python-emacs-lsp/
が大変参考になり、助かりました。
1. 環境
m1 pro 2021
Mac OS monterey 12.3.1
lsp-mode
pyright
2. pyright
https://mako-note.com/ja/install-node14-on-m1-mac/
を参考にインストール
初めにnode.jsが必要なのでインストールする
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
そうすると .zshrcにnvmの環境pathがインストールされるので以下を追記
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
ここでターミナルを再起動(これを忘れたおかげでパニクった)
できたら以下を記述しnode.jsをインストール
nvm install v16.3.0
これでnode.jsは入った
続いてpyrightを入れる
npm install -g pyright
このあとはターミナルでpyright
と入力したらサーバーが入った(?)
少しわからない動きをしたので不安。。。
3. その他のインストール
他のパッケージはM-x list-packages
から入れた
必要なパッケージ
- lsp-mode
- lsp-ui
- company
- lsp-pyright
4. init.el
あとは記述するだけ
;; lsp-mode
(require 'lsp-mode)
(setq gc-cons-threshold 100000000)
(setq read-process-output-max (* 1024 1024))
(setq lsp-completion-provider :capf)
(setq lsp-idle-delay 0.500)
(require 'lsp-ui)
(setq lsp-ui-imenu-enable t)
(setq lsp-headerline-breadcrumb-enable t)
;;https://kazuhira-r.hatenablog.com/entry/2020/11/02/002728
(use-package lsp-pyright
:ensure t
:hook (python-mode . (lambda ()
(require 'lsp-pyright)
(lsp)))) ; or lsp-deferred
途中からuse-pakage入れたので混ざってますすみません
これで動いた!
jediで頭を抱えていた頃が懐かしい
flycheckのjsonの配置がわからなかったりまだまだ改造したりないのだがGWはもうお休みしようかな。
lspによって楽になったと聞くけど、初心者にはまだまだしんどかったです。。。
5 参考リスト
https://kazuhira-r.hatenablog.com/entry/2020/11/02/002728
https://mako-note.com/ja/python-emacs-lsp/