Uso la seguente struttura per tenere traccia di pacchetti e file
~/.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
Quindi utilizzo use-package
per gestire quali pacchetti vengono caricati e quali personalizzazioni vengono impostate per ciascun pacchetto. Il più delle volte solo hack
e elpa
richiedono un aggiornamento, le altre cartelle sono spesso per pacchetti una tantum che voglio testare o usare brevemente ma non è necessario caricare (anche al minimo).
custom.el
è per le impostazioni personalizzate, che preferisco non usare (e non versione anche se lo uso).
defaults.el
è per la configurazione generale (barra dei menu, font, codifica, ecc.) che può quindi essere sovrascritta in qualsiasi file .el user-config/
per consentire un sistema che funzionerà come mi aspetto, ma che può essere adattato all'ambiente.
Avevo cercato in precedenza di tenere functions
, macros
, advice
in pacchetti separati per consentire la delimitazione tra contenuto, ma ha incontrato definizione / richiedere questioni così hanno messo di nuovo in quelle init.el
. Alla fine potrebbero essere rimessi ~/.emacs.d/lisp/
.
Cerco di mantenere init.el
ordinato, ordinare i contenuti in base alla funzione e allo scopo in modo che ritrovarli sia semplice. Ho avuto il init.el
file monolitico e ho continuato ad aggiungere nuovi contenuti alla fine (o dove pensavo potesse adattarsi) e poi avrei finito per non sapere cosa avevo aggiunto o dove l'avevo aggiunto quando sono andato a cercarlo (e a volte la ricerca usando isearch
non mi ha aiutato poiché non riuscivo a ricordare come ho chiamato le cose in quel momento).