只有两个文件 early-init.el 和 init.el,一套非常合理的现代化编辑器默认配置。
很多选项跟我自己配的一样,换上直接清空一半配置,清爽多了,减轻自己维护配置的负担。
early-init 优化基本都是最佳实践,启动时间比我以前瞎抄的快 0.4s 左右。
目录也整齐了,而且全都不用自己写,路径都定义好了。
只有两个文件 early-init.el 和 init.el,一套非常合理的现代化编辑器默认配置。
很多选项跟我自己配的一样,换上直接清空一半配置,清爽多了,减轻自己维护配置的负担。
early-init 优化基本都是最佳实践,启动时间比我以前瞎抄的快 0.4s 左右。
目录也整齐了,而且全都不用自己写,路径都定义好了。
它这个启动速度(README 里的那个 0.22s)有作弊的嫌疑。它是用 emacs-init-time 来衡量启动速度的,但是实际上它的配置里大量使用了 after-init-hook 来加载包。after-init-hook 加载包根本就不是懒加载,它是无论如何在启动的时候一定会被加载的,只不过不会被 emacs-init-time 所测量而已。而且个人配置里也不应该用 after-init-hook 来加载配置。after-init-hook 应该是给包的开发者想设置一些启动时自动开启的 minor-mode,但是又要留给用户禁止它们在启动时自动开启的权利采用的。
实际测量标准应该用 emacs-startup-hook 来测量,它在 README 里也给了一个 example 的代码片段
您说的很有道理,我之前也想过after-init是不是在很多场合被图省事滥用了。往往大多数mode最后都是hook到after-init里面的,可能好一些的会有global-xxx-mode而已。
我一直也犹豫是否应该引入一套类似doom的精细化的hook:GitHub - axgfn/on.el: Hooks for faster Emacs startup – GitHub mirror
这样除了evil这类的,大部分编辑时使用的包可以精细到打开buffer的时候再加载。不知道您实际使用的时候有没有什么关于这方面的心得/标准?
有的。我实际上借鉴了大量 doomemacs 的 lazyloading 的代码片段。比较常用的有
我一直也犹豫是否应该引入一套类似doom的精细化的hook
不建议引用别人的包搞这个。以上的例子都是一些非常简单的 elisp 包装就能搞定了,你让 AI 给你写一个 library 都很容易。自己用就好了,更灵活,还避免了别的包可能会搞的过度包装。
其实感觉这些延迟加载都是治标不治本, 最终方案还是全都加载进去再pdump, 下次启动emacs直接进入加载好的状态
最终方案是不关就好了。。。。之前linux是远程用,server端启动,不用了挂后台,用的时候ssh上以后切过去,然后换到mac,一个月重启不了一次,启动时间基本无视
谢谢分享,太详细了!
除了 minimal-emacs.el 之外,还有啥类似的初始配置?
prelude?
bedrock,nano
看了半天也没整明白 啥意思 就俩文件 其他文件自己配置在前后生命周期里?这架构也不行啊