学习emacs几天。以前用vim,一直在用ycm,虽然没有vs code那么全,也算够用。
emacs折腾了一天,终于把lsp-mode跑起来了,结果发现很卡呀。后来专门下了neovim,装上coc,除了提示框打快了闪来闪去,补全速度和vscode没太大差别,反而嫌太快闪得荒,想把补全数量设为4个了…
最后上了ycmd,只试了js,感觉比lsp-mode流畅得多,lsp-mode基本只能追上我单手打字的速度,实在不够用。内容方面因为都是走tsserver,貌似差不多。
我觉得肯定是我姿势不对(~_~;)
我之前也遇到过,然后没再用lsp-mode了。在spacemacs里写go项目跳转的时候,CPU会飙升很高,跳转速度也很慢
最近也有这种感觉。
也就前三四天吧,手贱把package全部更新了一遍,就卡的要死。。之前都感觉不错的,不晓得是哪里出了问题。。之前还是挺好的。。坐等更新回去
哦哦,好久没碰cpp好像都忘光了:joy:今天又试了下eglot,比ycm卡,比lsp-mode稍微好一点。
js 的话卡顿有相当一部分原因是垃圾回收造成的,可以尝试值设大一点,体验会好很多,比如设置成 32M
(setq gc-cons-threshold (* 32 1024 1024))
yicao
8
我是默认使用company-dabbrev-code,也会使用lsp-mode,但是默认使用company-dabbrev-code进行补全,这样是buffer内补全,涉及不到lsp,补全速度贼快.当无法补全时,就用绑定到快捷键的company-lsp进行补全,虽然多了个手动触发,但是不卡了,cpu也下来了.基本不影响使用了.我还是windows环境.
1 个赞
Windows 上使用 Emacs 需要很大的勇气啊
不知道用wsl跑emacs会不会卡,vim还可以。以前因为办公室打印机没有linux驱动经常要开windows,最近买了几个树莓派完美解决了~
yicao
11
完全没影响啊,用的是msys2.基本用的都是gnu的工具.除了调试编译用vs,其他都能满足需求
yicao
13
我用的spacemacs,不过我改了一些spacemacs c++ layer的源码,不然无法默认使用 company-dabbrev-code,回头我看看都改了哪里,发上来
更新下情况。
这两天把几个JS补全方案都试了一遍。目前看来,最流畅的方案是tide+tsserver和tern,补全方面tide更强一下,两个都比YCM略快,很好用。eglot不如YCM流畅,虽然比lsp-mode快一点,但跟不上打字速度。lsp-mode连打字都略卡,吐槽下lsp-mode配置真的麻烦,弄了好久才跑起来,卡估计也是我配置问题。
lsp-mode 配置现在也不是很复杂了,跟 eglot 差不多了吧。新的默认 server 是包装的 tsserver,所以效率应该差不多。我还是觉得目前最大的瓶颈是 JSON 解析,对大项目有点吃力。
一开始搞复杂了,不懂elisp,网上搜的配置不知道是不是版本问题,lsp-mode好不容易才弄出补全:disappointed_relieved:最近在学common lisp好多了…
您的centaur有下过,整个界面都很漂亮清爽,也借鉴了好些内容,感谢~
真黑
其实 vim 那边的 vim-go 已经默认用 gopls 补全了
1 个赞
感谢指正。
简单试了一下,的确补全和跳转到定义已经可以了。vim-go 用了 gocode + gopls,也许是 gopls 还有未完善的地方,各位自行体验去吧:
;; Pre-install:
;; go get -u golang.org/x/tools/cmd/gopls
(lsp-register-client
(make-lsp-client :new-connection (lsp-stdio-connection "gopls")
:major-modes '(go-mode)
:priority 0
:initialization-options 'lsp-clients-go--make-init-options
:server-id 'gopls
:library-folders-fn (lambda (_workspace)
lsp-clients-go-library-directories)))
为啥我用gopls一直报 no room in queue,