想写一个自用的Emacs配置,恳请大家提点建议

先说明一下个人情况吧~ Emacs用了近半年,并且主要用的都是Spacemacs,但是Spacemacs有着太多功能了,很多都日常用不到(因为现在是本科在校学生,需要用到的工具有限),用起来感觉和IDE一样,没有自我掌控的感觉,并且常常因为一个bug找issue找半天。

想着正好快放暑假了,不如利用两个月的时间学习一下lisp以及写一个自用的Emacs配置来提高一下动手能力。因为之前用过一年多的Vim,所以键位肯定以Evil为主。

目前有三种选择:

  1. 利用Spacemacs-base来写
  2. 仿照Doom写一个类似的框架(提到Doom是因为之前看到有个帖子说花了一个星期仿照Doom写了个自用配置,因此想是不是可以把这个当作参考)(不知道Doom有没有Doom-base)
  3. 以陈斌的配置当作base,陈斌是fork的purcell的配置,并且用了Evil键位。

目前的意向是参考陈斌的来写,因为用了一段时间陈斌的配置,很简洁,仿照起来应该也会相对容易一些。

然而由于我对lisp系语言理解有限,所以不太懂以上各种选择的优缺点,也不知道现在是不是一个合适的时机去写自用配置(目前只读过一本ansi common lisp以及两本elisp,现在计划着读emacs内置elisp doc,但是动手能力有限)。

大体情况就这些,各位有什么建议呢

1 个赞

用陈斌的或者purcell的配置。 先写init.el文件,然后根据需要一个个其他的配置。 有什么需要就直接google,查一查emacs wiki,然后直接抄配置。 我就是这么搞的,不管是spacemacs,purcell,还是陈斌的配置,我用着都不爽~~ 自己搭的配置最好了

1 个赞

分享一下我的经历。我之前也用过 spacemacs,后来感觉启动速度太慢,响应有些迟钝,有些用法也不合我的口感,所以转向了自定配置。

第一次配置重构我是参考某位大神的配置,最大的收获应该是学到了 use-package。但后来遇到了不少维护上的问题,比如我直接参考别人的架构,但说不清他是如何划分组件的。就一直在打算第二次重构。

第二次重构,也就是目前正在进行的。我一不做二不休,索性从裸 Emacs 开始学习。这次我特别注意阅读学习 Emacs 本身的手册,学习内置功能,然后发现有不少内置功能以前都没注意到,属于基础不扎实,就去贸然乱做配置;而且之前配完之后并没有经常去用 Emacs,这样感觉完全是浪费了时间,只是把 Emacs 当作玩具去玩(说实话哪里有游戏好玩)。

如果让我总结我的经验,就是还是要注重 Emacs 自身的功能,然后慢慢形成自己的配置,我现在的配置大概只有 400 行,含注释和空行,大体已经满足使用需求(因为 Emacs 确实内置了很多好东西!),之后会根据需要继续逐渐增强。我目前已经快把 Emacs manual 刷一遍了,Emacs Lisp manual 也大概读了一点。总之,就是学会 Emacs 的简单配置后,会自然而然地去学 Emacs Lisp :smiley: 何况你已经读过那么多 Lisp 的书,应该不会遇到很多困难,还是要由需求驱动,而不是为了学习而学习。

说了这么多,仅供参考吧~

1 个赞

推荐一下https://github.com/seagle0128/.emacs.d,我觉得你上面说的都太复杂了,这个模块化很好,但不支持evil,然后我修改支持了https://github.com/lemon0910/lemon-emacs.d,欢迎参考

1 个赞

受用了,最初我也是参照 Emacs Video 来写的,作者在里面讲了use-package,我按照他的配置写用了一阵子,但是后来感觉把所有use-package放到init.el文件比较乱,于是开始找一些模块化的配置。
提到Emacs自身的功能,陈斌坚持认为ivy比ido要好(微博里面提到过),所以我在考虑着要不要一开始重构就用ivy替换掉ido,但是ivy是一个很大的项目了,吃透它估计会花很多时间。

用其它配置一样有bug,不过spacemacs用的包多一些,所以可能中奖的机率大一些。我觉得用 emacs 的最高境界就是不管它什么 bug,只要不影响使用,就用。emacs相对容易hack的特性注定了包的质量是参差不齐的。

另外,不管是什么配置,关键得坚持使用,不断改进。而不是感觉不顺心就推倒重来,最后可能时间都花在这上面了。

抱歉有些说教了,如有冒犯请无视。

2 个赞

找一份传统的Emacs配置来抄,或者干脆不要站在巨人的肩膀上。

别抄Spacemacs,除非你想建立一个和它一样庞大的工程……

1 个赞

空的doom里没带啥乱七八糟的东西呀 不如考虑一下直接用空doom加自己的use-package配置?

3 个赞

直接用 *scratch* 保存到scratch.el 每次都M-x eval–buffer 觉得有用了再保存到 .emacs

1 个赞

谢谢推荐Centaur Emacs。由于个人不用evil,你可以自行添加配置,或者fork一个。个人觉得Emacs还是原汁原味对keymap最好,自己的配置也最有掌控,另外可以学到不少东西。当然,也很耗费时间和精力,个人可以权衡。spacemacs是入门的好东东,但是太大太笨重了,速度是个大问题,配置更新也赶不上包的更新速度,还有很多hack,长久用起来反而不顺手。我这个配置有个很重要的原则就是流畅,启动速度快一般不会超过2秒,所以对很多功能有所取舍,保留最有用的部分。由于是个人日常工作使用,更新还是比较快的。

1 个赞

看了你之前关于Doom的帖子,空Doom目前可以当首选方案了😁,回头好好研究下Doom~

1 个赞

有问题欢迎来 Discord 提问

spacemacs确实沉重一点,搞自己的配置没有问题的。Centaur Emacs做的很简洁,用做参考我觉得是很合适的。我之前参考doom写的自己的配置,稍微比Centaur厚一点。

自己积累配置学得最多,也最稳定,出了问题都有直觉去发现问题的根源。

欢迎偷我的十几年配置: GitHub - manateelazycat/lazycat-emacs: Andy Stewart's emacs

1 个赞

我就是学习你的会配置emacs了,然后自己加了个init-evil支持vim模式,模块化很好,很适合学习

这位是deepin那位大侠吗?

我是一上来就用了你的第一种方式,感觉现在spacemacs的启动速度明显提升了好多,我都换成spaceline-all-the-icons了,启动速度在我的16年的Mac小本本上还能稳定4s左右,300+的包,已经很不错了~

然后可以偶尔看看develop branch更新了些什么骚操作,然后它上面包的配置更新什么的也还挺全的。我是觉得挺好用的,目前也比较推崇这一套。相当于是看着每个packege的文档改配置,用spacemacs-base,然后每个Layer都去掉/选择你需要的包就行了,基本上就是做减法运算。

附上我的链接

2 个赞