邀请大家分享一下个人配置的架构


#1

现在配置只有一个init.el的人已经很少了,每个配置或多或少都有一定的结构,更不用说spacemacs,doom-emacs等大型的配置。大家自己配置的架构有没有什么亮点, 希望推荐给其他人参考的?或者大概介绍一下 组织方式启动流程设计之初的目标 (快速启动,方便调整,etc)等等,也可以给别人做一定参考。

另一个问题就是,随着portable dumper越来越近,autoload可能不再必要,相应的架构也会有变化,大家怎么看?你会对自己的配置做什么调整吗?


#2

我还是一个init.el


#3

等到 portable dumper 更是一个 init.el就够了


#4

This is My personal Emacs configurations in which I use the approach from Master Emacs in 21 Days. However, I am new to Emacs, thus I don’t know how to name that.
The arch of that is:

init.el
lisp/
      | init-config1.el
      | init-config2.el
......

The reason I use this kind of approach is that I want to KISS (Keep It Simple, Stupid) which is also used by Arch Linux.
And another principle that I follow is that I should understand my configurations clearly, line by line. The configurations itself should also be organized in a coherent way.


#5

草(日语)记错了,是portable dumper


#6

我的配置也基本集中在一个init.el里。目标是简单和快速启动,参考的use-package作者 John Wiegley,他的配置也集中在init.el,内部按照package的首字母顺序组织的。


#7

我的配置包括init.elniwtr-init.orgrepo文件夹三部分。 其中init.el是配置加载的入口,声明了package相关的内容,以及声明接下来要加载niwtr-init.org tangle出来的代码。

niwtr-init.org是我配置的主要文件,借助了org-mode的“文学编程”功能。配置文件分章节,比如programming languages(各类编程语言包库定义)、jumping aroundace-jump、窗口跳转等包库定义),章节下再分小节,比如programming languages下分pythoncommon-lispCXX等。org-mode能让我像写文档一样写我的配置文件,现在想想是利大于弊的。

repo是一个文件夹,他包含了我在自己写的一些包库,比如用于扩展eshell功能的eshell-extensions.el,以及我自己修改的一个特定版本的doom-modeline.el,还有一些其他的。这些包库会在之前的.org文件里用(use-package)引用。


#8

分享一下自己的结构:

.emacs.d
├── lisp
├── private
│   ├── icons
│   ├── themes
│   └── snippets
└── init.el

#9

目前是下面这种结构,借鉴于 Steve Purcell :slight_smile:


#10

在Emacs论坛,你甚至可以学习日语。 :+1:


#11
.emacs.d
├── lisp/
│   ├── init-basic.el
│   ├── init-custom.el
│   ├── init-ui.el
│   └── ...
├── site-lisp/
└── init.el

#12

我的做法是以 Package 为单位,一个一个加就完了:

;;; init.el --- Your Emacs Configuration  -*- lexical-binding: t; -*-

;; Package 1

;; Package 2

...

;; Package N

;;; init.el ends here

整个 init.el 就是一个个 Package 的设置,从这点看配置并不复杂,比如安装和设置 Magit 能怎么折腾呢?此外我也不照搬别人的设置,我看不明白的、用不上的绝不放进自己的配置中。实际上我已经很长时间没看过别人的配置了,没什么兴趣。但我时常更新自己的配置,根据自己需求、兴趣、心情,并以此为乐。


#13

看来大部分人的配置结构还是以简洁为主。我也打算简化一下自己的结构了……


#14
  • lib 放插件和snippet
  • etc 配置
  • var 储存插件保存的一堆dotfiles,不要堆在.emacs.d里看着心烦
  • opt 储存一些第三方工具,比如autohotkey,shell脚本

没有bin :blush:


#15

架构越复杂,bug越多,维护起来更麻烦。正所谓大道至简吧。 这也是个人不喜欢J2EE的原因之一,有很多是故意把简单的弄复杂了,美其名曰设计模式。


#16

dotfile无解… 不管是*nix还是emacs,一个一个设置真的烦


#17

最近在学习#+AUTHOR: Henry Weller.emacs.d.

他提到以正常加载的方式太慢了,然后他就“build and dump”一个 image。

I use such an extensive set of packages and configurations that loading them at run-time in the normal manner is prohibitively slow. To avoid this problem I build and dump an image of =emacs= containing nearly all of the packages and configuration files as =eemacs=; the script thats perform this task is [[https://github.com/Henry/dot-emacs/blob/master/bin/makeEemacs][bin/makeEemacs]].

目前我还在学习这个方法,不是完全理解其中的原理,不过或许能给正在构建自己 emacs 的朋友一点启示。


#18

#19

image
借鉴的 @seagle0128 :joy:


#20

和楼上的差不多只不过用了early-init.el