Historique
Dans la grande querelle (je devrais dire le troll le plus vieux de l'histoire informatique), j'ai décidé de prendre parti pour la mode GNU et j'utilise au quotidien emacs pour à peu près tout (sauf faire le café). Mon .emacs a naturellement pas mal évolué au gré des emplois et des machines, jusqu'à devenir un gros tas de eLisp embrouillé et illisible. Je me suis donc décidé à faire une réécriture.
La clef, la modularisation
Afin de rendre le tout beaucoup plus lisible, maintenable et utilisable, la solution a tout simplement été de découper le fameux fichier .emacs en petits morceaux. Le résultat est le suivant :
- .emacs : le fichier principal reste. Il va être responsable de toutes les configurations génériques et de faire des tests pour charger les différents modules
- lisp/specific-linux.el : les configurations spécifiques pour linux
- lisp/specific-nt.el : les configurations spécifiques pour windows
- lisp/specific-nagra-corporate.el : les configurations spécifiques pour mon poste bureautique professionnel
- lisp/specific-bnp.el : les configurations spécifiques pour mon ancien poste professionnel. Ce fichier contient en particulier des settings pour utiliser db2 sous windows, ce qui est loin d'être simple.
- lisp/specific-nagra-secure.el : les configurations spécifiques pour mon poste de développement professionnel. Contient par exemple un coding style, les définitions d'imprimantes.
- lisp/specific-maison.el : les configurations spécifiques pour mon poste linux de la maison, dit le serveur, la tortue ou l'emmental.
- lisp/specific-maison2.el : les configurations spécifiques pour mon poste windows de la maison, dit Petit Gris, car le boîtier est une grande tour Chieftec couleur gris souris.
Comme je ne suis pas vache, voilà l'ensemble des fichiers dans un zip.
Explications de texte
Tous les fichiers doivent être abondamment commentés en anglais, ça ne coûte rien de le dire. Je suis à dispo pour toute explication si quelqu'un est intéressé.
Dans les points à noter, il faut voir que pour chaque mode, on va définir des raccourcis génériques, qui pourront être écrasés dans cet ordre par le biais de fonctions :
- par des settings liés à l'OS (valables pour tous les modes)
- par des settings liés à la machine (valables pour tous les modes)
- par des settings liés à ce mode et cet OS
- par des settings liés à ce mode et cette machine
L'intérêt de cette structure est de pouvoir décider qu'une machine a le mode svn (psvn.el), et donc binder svn-status sur C-c C-s pour tous les modes, sans utiliser un global-set-key qui risque de se faire écraser par un hook de mode qui va changer les bindings.
trucs utiles en vracs
Ce .emacs doit à toute la communauté (énormément), au web (beaucoup) et à mon code en lisp (très peu). Dans les trucs funs, je citerai :
- La conservation des fichiers ouverts quand on quitte emacs et on le relance
- les touches F3, et C-F3 pour chercher comme sous windows
- la touche F4 pour jouer une macro. Le cas pratique, on fait C-x (, on joue une transformation sur la ligne, on revient au début, on descend d'une ligne et on finit la macro avec C-x ). Il suffit ensuite de jouer avec F4 pour appliquer la même transformation à toutes les lignes.
- De manière générale, les bindings sur les touches de fonction...
En cas de pb pour faire une fonction particulière, vous pouvez me demander (mail en bas du menu et clef gpg dans le menu) ou l'excellente ressource qu'est emacswiki
