py文件目录需要有 才能用 lsp-mode。

如果我只想编辑单文件的话会提示 LSP :: not in project


随便起个什么项目就行了。比如可以git init

如果用了projectils,最环保的方式是touch .projectile



不必为 创建 foo 目录。

但 总归是放在某个目录下,比如 “/path/to/misc”。这时就可以手动设置 misc 为项目根目录。

出现这个问题,是因为你之前某一次操作,手太快,把这个目录放到 lsp 黑名单了。

我在这里有提到:如何让 lsp-mode 根据文件后缀或其它策略选取服务 - #7,来自 twlz0ne

楼下 yyoncho 也说了打算改进,不知现在是否已经实现。

2 个赞

This is implemented, you could have activation function and start the server based on whatever criteria you want.

@zhscn I guess you have set lsp-auto-guess-root to t? If you set it to nil which is the recommended setting you will be asked to select a root if lsp-mode cannot detect the current root.

2 个赞

It works after setting lsp-auto-guess-root to nil. Thanks :smile:

是 lsp-auto-guess-root的原因,已经解决了



I set lsp-auto-guess-root to nil, however, I still get LSP :: No LSP server for python-mode.

好像是这样,有什么办法解决么 PS 重装 lsp 解决了

Make sure that lsp-mode is able to find pyls - (executable-find "pyls") should return the path to “pyls”. You may alter emacs path by (add-to-list 'exec-path "/some-path") or you could change lsp-clients-python-command.

session 信息保存在 ~/.emacs.d/.lsp-session-v1 文件里,lsp 启动之后就读到内存了,所以你修改必须连内存里的 session 也一起修改,才有效。然后再回写文件保证下一次有效。

或者删掉 .lsp-session-v1 然后重启 Emacs。

1 个赞