谢谢推荐,我去看看,我喜欢简洁的方案哈哈
简单的了解下,看起来borg似乎是straight.el或者package.el的替代品?和use-package setup之类的目的不太一样,并不能简化配置管理。不过似乎在包管理上具有许多优势,我比较喜欢基于git的版本管理方案,有空深入用用看
谢谢推荐,我去看看,我喜欢简洁的方案哈哈
简单的了解下,看起来borg似乎是straight.el或者package.el的替代品?和use-package setup之类的目的不太一样,并不能简化配置管理。不过似乎在包管理上具有许多优势,我比较喜欢基于git的版本管理方案,有空深入用用看
Borg 和 straight还不太一样。但它用的就是git submodule,另处是会将包编译生成elc文件。我的使用来看,仅需要使用setq 进行包的配置,(xxx-mode)开启某个模式,个别使用with-eval-after-load 包裹,不需要使用use-package 对某个包 lazy load等。
Borg assimilate 后,大部份包连 require都不需要。
我现在己经把 use-package, leaf 删除了。
我用了3个月 Borg + use-package,感觉就是通过 Borg assimilate 后的包和内置包的使用差不多了。 用 use-package 也就是为了方便绑定按键,写配置,不用 use-package 确实也可以。
Borg 也有不方便的地方:
我的按键绑定主要用到了meow和one-key,其他按键绑定我用 global-define-key 和 define-key 就搞定。
borg管理,依赖不使用epkg主动查也行,assimilate时会提示你少某个包,那就再assimilate依赖包直到成功,然后再重新build那个包。
依赖外部的包的确是要自己手动,但是好在不是很多。有些通过build-step也可以搞定。
最近出了个rational-emacs,我看它使用emacs自带的版本管理进行配置的版本控制,你或许可以看看。
依赖安装还是查询一下比较稳妥,因为 Borg 是直接从包的 Git 仓库安装,作者的 Makefile 是包含了所有支持的使用方式,有些依赖其实用不到的。不过这种安装方式,会让用户更加了解新安装的包。
回头了解一下 rational-emacs,感谢分享。
你说的不需要的依赖,我用no-byte-compile规避。比如依赖ivy helm的,不用自然就不需要装相应依赖。
LTeX 需要联网吗?还是离线也能用?
看是 offline 了,这样的话不错。
是离线的,我个人也喜欢离线的解决方案,稳定可靠
是的,我也是这样做的。这些操作都是要使用者更加了解使用的包。总的来说,Borg 适合有一定基础的 Emacs 用户,不适合初学者。
配置得细腻贴心,很多情况都考虑到了,回头抄一波思路哈哈
花了一晚上时间,我也转了borg,目前感觉还不错。相比之前我用的straight.el,简单对比一下供感兴趣的大佬参考,首先是优点:
其次是一些增加的工作量:
现在的话因为git submodule的问题,之前的分离配置就比较麻烦了。我把配置也移动到.emacs.d里,因为这里有很多杂文件大部分都不需要备份,我索性写了一个全部ignore然后添加需要的gitignore:
/*
!.gitignore
!.gitmodules
!Makefile
!init.org
!README.org
!etc/
!/lib/
这样本地看起来比较杂乱的配置如下图
每次维护的只有这些了
听起来似乎是抱怨比较多,但其实我对borg还是比较满意的。这种基于submodule方法的最大优点,在我看来是进一步增强了对package的把控细节和把控程度,有助于把握配置和排错。而且我喜欢这种先编译检查再运行的方法。
为什么我觉得 straight 才是最方便的,感觉就一个 straight-use-package
,其他啥都不用管。
straight.el确实是最方便的,不管是安装,更新,卸载,额外配置,编译,都是一站式服务。甚至所有的package管理都在配置里,不用维护gitmodules。
我个人是转了borg才体会到straight做了这么多工作哈哈,不过目前用borg也挺爽的,编译和启动分开了,感觉舒服。borg可能最大的优点就是简单,当然,比直接用git submodule多了一些复杂度,我感觉是一种“偷懒,但没有完全偷懒”哈哈
我转 Borg 也有一段时间了,挺好用的。
用了子模块就不要分离了,直接放在 .emacs.d 下面的 lib 文件夹,方便查看和维护。如果出问题了,直接回滚,重新编译(make clean all)
另外,我配置了在开启native-comp 的情况下直接native编译,不需要编译 elc文件。这样在make all
和borg-assimilate
后就不会再去编译一遍eln。缺点是编译的时间,长一点。
在 ~/.emacs.d/lib/borg/config.el
加入下面的配置:
(when (native-comp-available-p)
(setq borg-compile-function #'native-compile))
最近用了 vterm
,make
的操作都在 vterm 中执行,不用再切到外部终端。
哈哈,我就是吃了你的安利,谢谢推荐。
borg有提供native的make,但你这个对于native的方法更智能一些。
至于分离配置的问题,其实straight在分不分离配置的回滚都很方便。而我用这种方法的原因是之前用doom的时候,觉得分开配置保证了隔离性,好找好查好搜索,原地grep就行,同时也方便其他人使用我的配置。
“你的vterm配置不错,现在是我的了”
emacs 配置破产了 来试试你的 希望有新的感悟
这个是因为我用了最新的emacs-30,里面自带which-key,就移除了本身的which-key。你这个报错是因为emacs-29没有这个,我后面还是加上去吧,这样旧版本也能用