Я использую следующую структуру для отслеживания пакетов и файлов
~/.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
не помог, так как я не мог вспомнить, как я назвал вещи в то время).