不谈Spacemacs,只谈Centaur Emacs

我 windows 下在 doom emacs 和 spacemacs 中安装使用 lsp-bridge,也是很卡,明显比 lsp mode 慢至少半秒到一秒。三台 windows 设备上都是如此。但是 Emacs 只安装 lsp-bridge 依赖的那几个包,确实非常丝滑。应该还是插件冲突的问题,比如在 spacemacs 和 doom emacs 中,我都没有完全删除 lsp mode。

图片

这是custome-post.el里的内容,后者为什么不行呢? 我之前在自己的配置里就是这样写的。

:config 改成 :init.

行了,感谢!狗哥的包有点bug,我去提个issue。

难道是custom-post.el自己的机制吗?按理来说:config才是正确的啊

:config 相当于 with-eval-after-load,你把启动这个包的函数放在:config后面那这个包自然永远不会启动

狗哥好像说,我应该用:config。。。

你再看看他回复你的内容,"yyy"的部分应该是你写的 (meow-global-mode) (meow-setup), 对应到use-package 呢

:init会提示这个出错(setq meow-cheatsheet-layout meow-cheatsheet-layout-qwerty),其它都能正常使用。不用use-package,而用require则是完全正常,不会有错。 但是我看文档说use-package是相当于require的,我也不知道哪出了问题。

所以我才怀疑是不是:init 和 :config的问题,现在看来似乎不是它们的问题。

仔细看看use-package的文档。

建议安装 macrostep 这个包,用这个包的命令 macrostep-expand 去宏展开 use-packge。宏展开多了你就知道use-package under the hood 到底在做什么了。use-package 是个很简单的包,多对它宏展开多了就会用了。瞎琢磨没什么用,直接看代码是最好的。

自己来回答一下,好像evil,meow这些packages,在use-package里要加上:demand t让它马上加载才能正常用。

你还是没有理解延迟加载的概念。还是那个建议,仔细阅读use-package的文档。

不需要加demand。

可能是因为 use-package-always-defer t 的设置。

use-package相关链接是这样说的,it’s possible that without adding :demand t to those declarations, your package will never be loaded

另外,论坛中也有类似的讨论。

这两天把自己配置从 Spacemacs 转到 Centaur Emacs,

  1. 好像也没有什么大毛病.即使是evil,我用了好几年,但是切换回Emacs原生键位,好像也挺容易习惯.
  2. 在 Spacemacs 里面,有时为了工程化,反而把不少快捷键变更复杂了
  3. 同时,切换后的配置文件夹也小了近 80%.

这样看来,Spacemacs 里面大部分内容对我来说是完全冗余的…以后准备主要用 Centaur Emacs 了.

1 个赞

多宏展开。瞎猜瞎试验是没用的,直接宏展开就知道use-package到底在做什么,就很清楚怎么用了。宏展开比看文档效果都好,很多时候文档都说不清楚如果同时加了若干个参数以后到底会发生什么样的协同效果,这时就得看宏展开才能知道了。

@seagle0128 @Jousimies 我试过了,不加:demand t是用不了的啊。

我觉得问题应该就是 @org 说的那样导致的。

确实打开了这个设置。

我这就去研究一下宏展开

简单点说,demand 是强制加载,defer是该使用的时候才加载。

好好研究哈,我就没深入看怎么回事,我受到影响的还有包有smartparens和orderless,我都强制加载了。