Eu uso a seguinte estrutura para acompanhar pacotes e arquivos
~/.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
Em seguida, uso use-package
para gerenciar quais pacotes são carregados e quais personalizações são definidas para cada pacote. Na maioria das vezes, apenas hack
e elpa
exigem atualização, as outras pastas geralmente são para pacotes únicos que eu quero testar ou usar brevemente, mas não precisam carregar (mesmo que ociosamente).
custom.el
é para Personalizar configurações, que eu prefiro não usar (e não versão mesmo que eu use).
defaults.el
é para configuração geral (barra de menus, fonte, codificação etc.) que pode ser substituída em qualquer arquivo .el user-config/
para permitir um sistema que funcione conforme o esperado, mas que pode ser ajustado ao ambiente.
Eu já tinha tentado manter functions
, macros
, advice
em pacotes separados para permitir a delimitação entre conteúdo, mas correu para definição / exigem questões tão ter colocado os de volta em init.el
. Eles podem eventualmente ser colocados de volta ~/.emacs.d/lisp/
.
Tento me manter init.el
organizado, classificar o conteúdo por função e finalidade, para que seja fácil encontrá-lo novamente. Eu tinha o init.el
arquivo monolítico e continuava adicionando novo conteúdo no final (ou onde eu achava que poderia caber) e depois acabava sem saber o que eu adicionei ou onde o adicionei quando fui procurá-lo (e às vezes, pesquisar usando isearch
não ajudou, pois não conseguia me lembrar de como nomeei as coisas na época).