niwtr
1
大家好~
我是lsp-mode
的重度用户,日常用它来写写python。用lsp-mode
得一年多了吧,大多数时候还是很顺手的,但是有的时候总会发生一些莫名其妙的事情,不知道大家有没有遇到过:
- 原来好好的自动补全突然不奏效了,有的时候连定义的局部变量都补全不出来(但是可以弹出一些其他的变量……)
- 十分恼人的flymake……我明明已经设置了
(add-hook 'python-mode-hook (lambda () (flymake-mode -1))
以及(setq lsp-prefer-flymake nil)
,但是当我出现问题,调用lsp-restart-workspace
的时候,flymake会莫名其妙地被重启。
- 对于有的代码库,
lsp-find-definition
莫名其妙地不管用,连局部变量都找不到在哪里定义的。但是对于另一些代码库,这个功能又是好的。
如上的这些bug,各位高手有没有遇到过?怎么解决呢?
1 个赞
niwtr
3
我的项目应该已经index完了,因为我是在emacs daemon上写程序,language server常年开着。我以前也以为是buffer没写入文件导致的,但是写入了之后好像还是不奏效,很迷。
学到了,过会儿试试看~谢谢
Youmu
4
注意一定要把这个关闭,不然非常容易出现提示不对的情况
niwtr
5
其实很多emacs package都让我感到很痛苦,不是因为这个package功能不强,而是经常会出现很多莫名其妙的bug,需要用户各种tweak才能解决。
disable flycheck-mode in lsp-mode 有点bug,需要改下源码。我试过了,这样work。不过, 不知道flymake的情况
niwtr
9
是nox吗?已经开始试用了~很清爽,也很快速。
有一个小问题啊。在用python的时候(搭配ms-pyls),当import 某个包库的时候emacs会变得非常卡顿。我附上了一个mem+cpu profile的截图:
我对elisp不太熟,看不出什么东西,请大神看看,也许可以辅助性能优化?
环境:Ubuntu 16.04 Emacs 27.0.60
最好给个 import 哪个包? 这样可以对比分析
niwtr
11
比如from PIL import Image
在我计算机上,当打字到import的时候已经出现比较严重的卡顿、拖慢了
vscode jetbrains用户用的多数是官方提供的功能,它们多半是很难很难发现bug的,而稍微容易点出bug的社区插件呢,多数用户可能一共就装了那么三五个,那总的来说碰上bug的几率就比较小。相反一个Emacs用户呢,起码得有三五十个插件是社区提供的。再加上些你自己写的东西。而且它们用的Emacs提供的基础设施也就那么点,很容易就用了同一个API然后boom……
1 个赞
200个到300个插件是正常水准吧。如果就用 stable.melpa.org , 不会有什么问题。
我的python用的pyls做backend,遇到tensorflow的包都补全不了。。。numpy这种倒是可以
查了进程中的pyls,发现原来是我自己的问题。。。启动emacs的时候要先切到虚拟环境,否则运行的是其他环境的pyls
本以为spacemacs已经够开箱可用了,结果还是有很多坑。。。
是在打开python文件前切换么?还是在打开后,利用pyenv切换?
感觉和spacemacs 也没关系吧,它怎么知道用哪个环境运行pyls