从spacemacs迁移到doom,遇到几个小问题

一个小菜鸟,反复尝试各种配置和自己配置之后用了spacemacs,最后转到了doom。doom启动速度实在是诱人,运行也比spacemacs流畅。但是个人配置也是真的比spacemacs难。 最近遇到几个小问题,反复搜索尝试无果,discord讨论区也少有人回复,整理在下面,请赐教。

终端下使用emacs出现补全问题。

我平时以python为主,用anaconda-mode作为backend,用conda管理虚拟环境。GUI界面一切正常。但在iterm2下面启动emacs的时候,python模式下是不会弹出补全窗口的。如果M-x anaconda-mode-complete则会正常弹出补全,但每次都需要手动让它弹出。我不确定这个是doom的问题还是anaconda-mode的问题,搜索了很久但是好像根本没有人讨论这个?不知道有没有解决办法。

一些第三方包不能补全。

比如我是学物理的,有个包叫pyroot.在vscode里import ROOT之后是可以正常补全的,但是emacs下一直不能补全,找不到这里面的函数。代码里调用的时候语法检查也会一直给我报错,说无法import。(其实python环境已经激活,我确认运行没有问题)

latex下插入环境,label不允许空格

C-c C-e align/equation/figure等等,minibuffer里弹出要我输入label的时候,如果带了空格,会直接告诉我invalid character。 这点我就很奇怪了,latex一直是我用emacs的主要原因之一(cdlatex和preview太强了)。之前无论自己配置还是用spacemacs都没有遇到过这种问题。我的几个合作者都喜欢在label里用空格而不是各种连字符,这里不能用给我很大困扰。同样搜索了很久,怀疑是reftex的问题,但检查了reftex的函数之后也没有解决思路。

如何在某些模式下禁用yasnippet?

我猜这个可能两行就解决了,但我一直没有搜到这个命令。我喜欢在代码里用yasnippet,但不喜欢在latex下用(因为某些快捷键和cdlatex冲突)。如何在latex-mode下禁用yasnippet?

一口气写了这些,感觉自己还是太弱鸡了,还请不要嘲笑(哭)

doom的python补全应该是靠lsp的,你的问题没多少人遇到也正常。

在doom内启用lsp模块后,装个pyrightpyls就好(前者依赖node但比后者快太多了。

latex和yasnippet的问题你可能要查查issue/自己提issue/问其他doom用户之类的,这种高度结构化的配置旁人一时半会儿看不清楚配置结构。

自己设一下yasnippet的快捷键,我用M-y.我个人一般不用插件作者提供的默认快捷键。我自己开发的插件一般也不提供默认快捷键。插件装多了容易冲突。

不好意思回复晚了。这几天折腾了一下lsp,该有的补全功能都在。终端现在用lsp也可以补全了。除了lsp依赖project folder导致有些时候略有些大动干戈以外,没任何毛病了。

自定义快捷键这个思路确实是最能从根本解决问题的。。。。