关于用 language server protocol 来对 Python 进行补全的体验。

如果没有找到server就会自动下载。你看看更新的README,配置简单很多。

Linux 最新版是 0.3.20 吗?emacs 直接拖不下来,到国外的服务器上下载下来再往回拖(不知道为啥SS proxy不好使)

目前最新版本是0.3.20。整个库包含dotnet运行时,解压后大概73M。 这是下载路径,你可以试试下载速度。 “https://pvsc.blob.core.windows.net/python-language-server-stable/Python-Language-Server-linux-x64.0.3.20.nupkg

1 个赞

下载解压到 mspyls 目录下,然后 LSP :: No LSP server for python-mode. :joy:

你是不是重设了lsp-python-ms-executable

没有

"~/.emacs.d/mspyls/Microsoft.Python.LanguageServer"

(executable-find lsp-python-ms-executable)

我可能忘记 755 了

那就对了,权限不对

嗯嗯,设了以后好了

我肯定什么地方没设置对,补全很简陋 :joy: 这是我的 company backends

(company-lsp
 (company-semantic company-dabbrev-code company-gtags company-etags company-keywords)
 company-files company-dabbrev)

可以和 vscode 做个对比。就知道是不是设置不对了。

非常讨厌flake8的默认代码风格警告,满屏都是。对我来说python主要是各种工具脚本,不会用来写大项目,我只需要自动补全和真正的错误警告。所以我直接把lsp python斜了,只用company-jedi+flymake(pyflakes),速度快,够用,没有一堆无用的风格警告。

flake8 也可以关掉那些警告的。

我不用 vscode 写 python,所以不知道 vscode 下是什么样的。除了 emacs 之外,我目前唯一使用的 python ide 是 pycharm professional 2019.1

终于用上了,原来是我之前不知道怎么把 home 加到 blacklist 了 :joy:

问题来了,如果要编辑单个文件(不是任何项目中的文件)应该怎么办?

能不能单个文件用 anaconda,项目用 lsp?

lsp现在似乎已经支持单独启动了

今天折腾了一下anaconda-mode+TRAMP, 发现anaconda-mode在编辑TRAMP file时确实是在服务器上创建jedi服务的, 所以没问题~ 之前没有成功发现是jedi版本的问题, jedi0.14.0有问题, 在anaconda-mode.el中制定jedi版本为0.13.3就没有问题了.

1 个赞

anaconda + tramp 速度和本地比如何?如果行的话我也试试,我目前是直接在服务器上用 terminal emacs