初学者是不是还是手动比较好

目前接触了 melpa、straight & use-package 和 borg

配置推倒了几次重来,但中间都会遇到解决不了的问题,有时要耗上几天

当然问题主要在自己(不限于基础差不肯看全手册源码等等),目前的感受就是,因为不是所有包都能 M-x package-install,就不要学高手了

那是不是省些精力的还是都两步(因为要用的包尚不超过10个):

1. 下载包到一个目录
2. 在init.el
    (add-to-list 'load-path "~/.emacs.d/somepackage")
    (require 'somepackage)

目前能想到可能会遇到的问题是有些包 readme 里就只写用包管理的例子

一点点感想碎碎念一下

ps: 写完上面这段又搜索到了 el-get ,准备试一下

1 个赞

可以找个现成的配置发行版,先用起来再说,然后再研究配置代码

1 个赞

我也算折腾了很久配置,从最开始用 spacemacs,然后转到 doomemacs,最后整了份自己的配置

折腾这么长时间,给我最大的感受就是懒猫说得真对:

这其实就是一个投入产出比的问题,手动安装包虽然费时,但是一劳永逸,相对于 package.el 这种安装时间短,但是一旦出错调试时间远远超过 package.el 给你节省的安装那点时间,你会花费更多的时间去分析更复杂的出错原因。

Emacs 本身就是一坨屎墙,每个人都去墙上抹一点,你不自己抹,你最后只会被这些插件之间的复杂性臭死。

我现在充其量只能算是不那么新的新手,但如果要我给初学者推荐的话,我的推荐就是 emacs.g。我现在的配置可以说就是基于这个配置,然后参考 Purcell 或者 centaur 一类的配置一点点积累起来的。

如果你懂了这个配置是怎么工作的:说白了就是 Borg 把安装的插件添加到 load-path 中,然后你通过 use-package 去加载安装的这些插件;你懂了这些,懂一点 elisp,别的可以说就是一通百通了

emacs没必要折腾啥包管理器,本来就是添加路径和require两步的事情,现在这些包管理器非要整些没用的语法糖,浪费时间啊。

4 个赞

我的 elpa 包 146 个,git submodule 和 其他来源的包 31 个。

折腾了几个月了,正打算推倒重来用 org-roam 管理配置。

猫大说的在理,用 package.el 安装插件只适合比较稳定的、在镜像中的包,一旦需要自己定制,就要 fork 源代码,那就要用 git,既然用了 git,submodule + 手动管理就是必备技能了。

补充下 package.el 的槽点:package-vc-install 不是像 GitHub 下载仓库的 zip 一样而是直接 clone,这就导致了你的 emacs.d 仓库里有非 submodule 的仓库。

昨晚初学者本者恰好的读borg manual,看了之后感觉略简单一点的就是就这个seed方法

但是:

git clone [email protected]:emacscollective/emacs.g.git ~/.config/emacs
cd ~/.config/emacs
make bootstrap-borg
make bootstrap

也许是晚上我脑子不转了,执行第一句就报无权限就卡住了,刚刚突然想到是应该替换成这个项目的网址再 clone,这就是初学者的困惑 :rofl:,当然老鸟会说你咋不学GIT,基本的前置知识你必须都得知道,要不这个就不是给你用的blabla :expressionless: 我是觉得都manual了,也许考虑到新人可能的问题会少一些弯路

当然还是承认自己学艺不精的

1 个赞

git submodule 的包是指啥(疑惑点:为啥不是 git 的包,而是 git submodule),能给个例子吗

补充:我去查了下,似乎是指自己在 git 上有个库,下面的子模块用于管理配置的意思

emacs.g 用的 Borg 就是采用 git 来管理你所安装的插件

采用 [email protected] 也就是 ssh,需要你配置过相关的 ssh,如果你之前用过 GitHub(按照 GitHub 的教程走过一遍),不会遇到问题才是(提示:~/.ssh/config,这种问题推荐先在网上搜一下吧,太常见了)

git submodule 就是在你的 git 仓库下添加一个子仓库

新手建议 spacemacs

1 个赞

就是用 git submodule 下载和管理的包。borg 就是基于 git submodule。

我看了眼 Borg User Manuel 真的太长了,直接 git 一把梭,要什么第三方包管理器啊 :laughing:

可以把多个配置一起下载到电脑上,慢慢折腾。

emacs --init-directory="~/.config/emacs.d"
emacs --init-directory="~/.config/spacemacs"

人生很长,可以多来回折腾几遍 :laughing:

1 个赞

初步切换到 el-get 了,需要的包都跑起来了,可以用一段啦

但是自己管理git submodule, 你怎么管理那些包还有的其他依赖呢?

spacemacs 包的升级如果没有科学上网,会比较麻烦!

顺带问一下,请问各位道友有没有关于 spacemacs 包升级的方法「无科学上网环境」?

我要不是想用非 elpa/melpa 的包、修改上游原始插件包,我会选 git submodule 吗?

我都选择 git submodule 手动管理插件包了,还要追求自动管理依赖吗?

这是方向问题,不是功能选择的问题。

用 git submodule 就是要自己管理包的依赖了,所以在安装那种依赖又多又复杂的包就会头疼。

我是用 epkg 来查看包的依赖关系,包的安装用 Borg。

1 个赞

emacs用上一两年,可能时不时会有改包的冲动,因为总有不如意的地方。于是 git 系列包管理器就会慢慢进入视野,不管是手动/borg/straight。

我还不到一年就想改包了,不过有点吃力,目前也就能看懂一点正则。

Borg 引入了一个 Makefile 对我这样的非程序员来说提高了复杂度,不过自带的 8 个函数挺好的。

虽然我还没用起来 borg,只是下载了 emacs.g 尝试了一下。

嗯,之前没了解过两个包,看了下包作者是magit的作者,包本身也组织得很有意思,我后面尝试下。我有时候确实想自己改改包的配置,或者单纯有时候更新包的时候,就会遇到Emacs报错,还得手动删除重新装,比较麻烦,也没有帮我理解细节问题到底在哪里。多谢。

这三行comment掉,从此borg-remove横着走。 多数情况下,我不关心submodule的变化情况,喜欢的包我都会commit/push到自己的repo,不担心误删。