J'utilise la structure suivante pour garder une trace des packages et des fichiers
~/.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
J'utilise ensuite use-package
pour gérer quels packages sont chargés et quelles personnalisations sont définies pour chaque package. La plupart du temps uniquement hack
et elpa
nécessitent une mise à jour, les autres dossiers sont souvent destinés à des packages ponctuels que je souhaite tester ou utiliser brièvement mais que je n'ai pas besoin de charger (même inactif).
custom.el
est pour les paramètres de personnalisation, que je préfère ne pas utiliser (et ne pas utiliser de version même si j'utilise).
defaults.el
est pour la configuration générale (barre de menus, police, encodage, etc.) qui peut ensuite être écrasée dans n'importe quel fichier .el user-config/
pour permettre un système qui fonctionnera comme je m'y attendais, mais qui peut être ajusté pour s'adapter à l'environnement.
J'avais déjà essayé de garder functions
, macros
, advice
dans des emballages séparés pour permettre la délimitation entre le contenu, mais dans la définition RAN / require questions ont donc mis de nouveau dans les init.el
. Ils peuvent éventuellement être réintégrés ~/.emacs.d/lisp/
.
J'essaie de garder en init.el
ordre, de trier le contenu par fonction et par but afin que le retrouver soit simple. J'ai eu le init.el
fichier monolithique et j'ai continué à ajouter du nouveau contenu à la fin (ou à l'endroit où je pensais qu'il pouvait convenir) et je finissais par ne pas savoir ce que j'avais ajouté ou où je l'avais ajouté quand je suis allé le chercher (et parfois, la recherche à l'aide isearch
n'a pas aidé car je ne me souvenais pas comment j'avais nommé les choses à l'époque).