确实,package-vc 还不成熟,use-package 也还没跟进支持。
请教各位大佬:最近用borg安装hyperbole, Assimilate时产生一些错误,不知道怎么排查。 .gitmodules文件的基础配置:
[submodule "hyperbole"]
path = lib/hyperbole
url = [email protected]:emacsmirror/hyperbole.git
load-path = .
load-path = kotl
产生如下错误
Error loading autoloads: (file-missing Cannot open load file No such file or directory hact)
于是加入 no-byte-compile = hact.el
[submodule "hyperbole"]
path = lib/hyperbole
url = [email protected]:emacsmirror/hyperbole.git
load-path = .
load-path = kotl
no-byte-compile = hact.el
但是出现了以下错误:
In toplevel form:
lib/hyperbole/hactypes.el:19:2: Error: Symbol’s function definition is void: htype:symbol
我又加入了 no-byte-compile = hactypes.el
[submodule "hyperbole"]
path = lib/hyperbole
url = [email protected]:emacsmirror/hyperbole.git
load-path = .
load-path = kotl
no-byte-compile = hact.el
no-byte-compile = hactypes.el
出现的错误和上面的一致。
我没有继续往下排查,因为这样的问题以后应该还会遇到。
目前想法是类似的包都不要byte-compile,但不知应该在gitmodules里加入什么参数,才能使整个包都不编译,因为它的子包数量有10几个,手动添加到 no-byte-compile 是一种办法,但有点儿费劲。
我阅读了borg 文档,没有找到答案,求指点。
修改:更正编译信息
请问下,borg如何加载由package中makefile生成的autoloads.el?
不知道现在你还需不需要解法,不过还是说一下,可以帮一下有同样问题的人 :
这是因为 borg 安装时会自动调用 borg-compile,可以自己定义下 build-step,不让 borg 默认执行 borg-compile:比如说直接啥都别干,生成个 autoload 就完事了。
[submodule "hyperbole"]
path = lib/hyperbole
url = [email protected]:emacsmirror/hyperbole.git
load-path = .
load-path = kotl
build-step = borg-update-autoloads
详细内容可以自己找 info 里的 (borg)Top > Variables
(borg-activate "package")
的时候会自动加载的
我当时用了土办法,一直往下找,最终忽略了三个有问题的文件:
no-byte-compile = hact.el
no-byte-compile = hactypes.el
no-byte-compile = hsys-youtube.el
学到了~多谢大佬
是这样的,有的package里的makefile提供自动生成autoload file的命令,但是这个文件的命名与borg生成的autoload file名称不一样。后来我发现只要多加一个build-step将文件名改为borg默认的那种形式就可以被borg加载了
最新的 emacs master 分支已经在 use-package中支持 :vc
关键字。
请教下使用 git submodule 的大佬,为什么在 magit 中执行了 git submodule update --recursive --remote
以后,有一些包会被标记 detached? 能否禁用这个行为,保留子模块在原来的分支( main/master)
如下图,是执行后的结果:
我希望在magit 中操作更新字模块中的包,效果和终端中执行git submodule foreach git pull
一样,不会改变分支。
已经解决:
原来这个是 git submodule update --remote
的默认行为,只要加 --merge
参数就可以达到目的。
这样升级时我只要在 magit 中按 o -M -U C-u u 就可以升级全部的包了,不加C-u就只升级选中的包。
参考这里:
多了个 u , 应该改为这样? o -M -U C-u u
更新:楼上已更新。
已经修改,多谢
新技能学到手,谢大佬分享
迁移到Borg后,时间从原来的1.6s变成了30s,是否需要进行什么配置,为什么会这么慢,是否因为autoload的原因?我看你的配置是全部写到init.el中,我这边是按原来的放到lisp下,分各个模块init-xxx.el,在lisp下大概十多个,除了这个差别,没看出其他差别
是否使用borg只能使用一个文件放配置,不能像这样搞成多个配置文件,分模块存放?
同样使用Borg 也拆分了文件,但是没有启动时间增加的情况,建议用benchmark看看启动时间占比
(use-package fd-dired
:when (executable-find "fd"))
这个导致的问题,去掉后由24s降到4s。这个配置在之前package管理中没有问题
是不是初始化的时候扫描什么目录了?
不晓得,先注释掉后面再慢慢排查,多谢指导