LoginSignup
1
0

More than 1 year has passed since last update.

emacs lsp-mode pythonの設定備忘録

Last updated at Posted at 2022-05-03

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が必要なのでインストールする

terminal
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash

そうすると .zshrcにnvmの環境pathがインストールされるので以下を追記

.zshrc
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をインストール

terminal
nvm install v16.3.0

これでnode.jsは入った
続いてpyrightを入れる

terminal
npm install -g pyright

このあとはターミナルでpyrightと入力したらサーバーが入った(?)
少しわからない動きをしたので不安。。。

3. その他のインストール

他のパッケージはM-x list-packagesから入れた
必要なパッケージ

  • lsp-mode
  • lsp-ui
  • company
  • lsp-pyright

4. init.el

あとは記述するだけ

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/

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0