把Emacs调整成半手动包管理后,怎么统一编译成elc文件?

之前使用package.el。

看了 讨论一下Emacs半手动包管理后,现在把package调整成半手动。

我把那些包放到site-lisp里,但是里面的el文件不会自动被编译成elc。

有没有办法把它们统一编译成elc呢?

1 个赞

async-byte-recompile-directory 或者 byte-recompile-directory

1 个赞

多谢,可以了。 用这个:C-u 0 M-x byte-recompile-directory

不过你们手动管理package都是这样每次clone好package,然后手动调用这个吗:

没有每次启动默认编译,然后记录一个时间戳实现增量编译的机制吧?

自动的,每次更新包的时候自动把所有包都编译一遍。

现在已经手动管理了,应该已经不存在更新包的概念了吧?

怎么实现的?

https://github.com/casouri/lunarymacs/blob/master/core/cowboy.el

半手动,更新就是删了重下一个,简单粗暴

谢谢你,不过我可能用不到,因为我的方案和你的还不一样。

我现在是手动编译了,因为那些package的源码我可能也会改动。如果能有增量编译就好了,没有就算了(主要是害怕有时候改了源文件忘了编译,然后发现没效果就很尬了,因为时间长了可能忘记)

2 个赞

使用了这个包以后,第一次启动org-mode的时候加载时间特别长,要20s左右。 请问下,package.el 安装/更新包的时候是不是会自动重新编译。如果是的话,就没必要搞这个自动编译了,太影响体验。

本来就是给习惯自己改包的人用的,改完避免忘记byte compile,如果这东西意外重新compile了org mode,大概是你干了啥让org的mtime被重置了

有办法定位是什么配置动了org的mtime吗?
用的是Purcell的配置,提了个issue,目前还没找到原因。