我使用以下结构来跟踪软件包和文件
~/.emacs.d
|-- elpa ;; Package.el packages
|-- hack ;; Development versions of packages (e.g. org, personal packages)
|-- single-lisp ;; Individual lisp files from outside sources (e.g. EmacsWiki)
|-- site-lisp ;; Lisp packages not managed by package.el (directories)
|-- user-config ;; Machine/situation specific customization (work vs home)
| `-- custom.el ;; Customization settings
|-- lisp ;; Individual .el files to keep init.el clean
| `-- defaults.el ;; Default configuration settings
`-- init.el
然后use-package
,我用于管理加载了哪些软件包以及为每个软件包设置了哪些自定义设置。大多数的只是时间hack
和elpa
需要更新,其他文件夹往往是一次性的包装,我想测试或使用简单,但并不需要负载(甚至袖手旁观)。
custom.el
用于自定义设置,我不希望使用(即使使用,也不要版本化)。
defaults.el
用于常规配置(菜单栏,字体,编码等),然后可以在任何.el文件中覆盖该常规配置,user-config/
以使系统可以按我期望的方式工作,但可以根据环境进行调整。
我以前曾试图保持functions
,macros
,advice
分别包装,以允许内容之间的描绘,而是跑进定义/要求问题,所以已经把这些放回init.el
。他们最终可能会放回去~/.emacs.d/lisp/
。
我会尽量保持init.el
整洁,按功能和目的对内容进行排序,以便再次找到它很简单。我拥有整体init.el
文件,并一直在末尾(或我认为合适的地方)添加新内容,然后最终在寻找时不知道我添加了什么或在哪里添加了(以及有时使用isearch
进行搜索没有帮助,因为我不记得当时我是如何命名事物的)。