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