Quelques années d'Emacs
Si vous cherchez ma configuration, vous en trouverez une copie en ligne ici: https://source.cipherbliss.com/tykayn/scripts/src/branch/master/assets/org/config.org C'est fou comme le temps passe vite, on est en 2026 et j'ai commencé ce texte en 2022. Petit retour d'expérience.
Comment je suis tombé dans ce traquenard en 2021 ?
La faute de passages dans des GULLs, dans le Chapril, et suite à la lecture de quelques articles parlant d'orgmode, dont celui de Madix sur la méthode GTD dans le mode Orgmode d'Emacs. Je m'y suis intéressé en entant parler d'orgmode qui semblait faire des choses intéressantes rapidement en matière de gestiondeprojet et prise de notes.
Ainsi parla Cpm. J'étais moyen convaincu, mais c'était le moment de tester, je n'ai pas grand chose à perdre, surtout qu'avec les confinements à répétitions on a le temps de rester chez soi à lire des trucs. Enfin, quand on a des enfants autonomes qui ne nous foutent pas la misère, hein :D
J'ai fini par installer le bouzin avec un simple coup de ligne de commande et snap, la version apt n'était pas assez récente pour les tutos que j'avais lu chez Snapcraft.
snap install emacs --classicLire des documentations, des posts de blog, chercher des captures d'écran de ce qu'on peut obtenir comme résultat, voir des vidéos live entièrement faites avec, et tenter de commencer par un objectif pas trop méchant: écrire des posts de blog avec, et faire la migration de ma gestion de projets anciennement avec plein d'outils différents et du Getting Things Gnome vers des fichiers Orgmode. Surtout un seul fichier org pour commencer: tasks.org.
Après quelques essais tout bêtes je me lance dans la migration de mon gestionnaire de tâches existant qui contient environ 350 trucs que je comptais faire ou tout du moins songer à réfléchir à des choses sur ce qu'évoque la tâche, accumulés depuis quelques années. Un petit script plus tard, je peux extraire les tâches de Getting Things Gnome et de sa base de données en XML. Je récupère une bibliothèque qui parse du xml, j'en fais un objet en javascript, puis je le range et écris un fichier texte selon le format des tâches d'Orgmode. Après quelques ajustements j'ai donc un bon gros fichier de près de 300 tâches dans un seul fichier Org.
Une vitesse d'action incroyable
Ça dépote quand on change nos notes de trucs à faire, tout est local et en format de texte simple. C'est tout simplement le moyen le plus rapide de gérer ses tâches.
Je saisis de quoi noter des choses à faire ou des notes de réunion avec une simple suite de touches, et avec un raccourci pour sauvegarder le tout c'est placé à un endroit qui fait sens dans mes fichiers d'organisation, et je peux continuer à utiliser l'éditeur de texte comme avant, le tout juste au clavier avec les raccourcis que je veux.
La personnalisation à foison
En listant moult posts de blogs et des configurations partagées par d'autres, j'ai fini par comprendre quelques trucs. Le tas de gens francophones sur Mastodon est assez utilisateur de ce genre de chose et toujours volontaire pour filer un coup de main. Je découvrai d'ailleurs qu'il existe des évènements dédiés à Emacs et Orgmode, que des tas de gens partagent leurs connaissances autour de ça, et qu'il existe des gens mordus de "self quantification" qui concurrencent Google quant à la collection des choses qu'ils mesurent sur leur propre activité.
C'est bien plus vaste qu'un simple éditeur de texte, c'est tout un Operating System. C'est tout un language de programmation embarqué dans un éditeur de texte, donc ce que peut faire le language, qui est plutôt bas niveau, on peut le faire en ayant cette interface d'éditeur de texte. L'avantage d'une interface minimale c'est aussi sa grande rapidité. Emacs signifiant Editing Macros, je peux attacher n'importe quelle maquereau à un raccourci clavier. #passionTraduction
Relier ses idées avec un wiki personnel
J'utilisais Zettlr pour faire un wiki personnel, j'ai converti tous ces fichiers markdown au fur et à mesure.
Choses choquantes au départ
Il y a fort longtemps, quand j'avais 15 ans, j'ai eu mes premières rencontres avec les logiciels permettant d'éditer du texte. J'ai écrit et codé des choses avec Notepad++, Frontpage, puis Netbeans, qui se rapproche beaucoup plus d'un Environnement de Développement Intégré moderne que ce qu'on voit la première fois qu'on ouvre Emacs et son fameux tutoriel super long qui n'explique pas les subtilités de son propre jargon. Quelle agression la première fois qu'on ouvre Emacs. Les typos moches, l'interface, beaucoup de choses manquantes que l'on retrouve dans n'importe quel logiciel libre permettant d'éditer du texte, notamment le très bon "Gedit" que l'on trouve sur Ubuntu de base:
- un menu pour ouvrir les fichiers récents
- des marges autour du texte
- les frames qui apparaissent sans que je comprenne comment elles se placent là où elles se placent.
- Pas d'explorateur de fichiers intégré et visible
- Le fonctionnement des frames
- des raccourcis clavier super chelou, bien plus que 10 à apprendre pour avoir une utilisation fluide
- une doc qui décrit des touches qui n'existent plus depuis 30 ans sur les claviers
- une config rangée curieusement
- un language de programmation de plus à comprendre pour ne serait-ce que changer la police du texte
- un système de plugin inhabituel
- aucune aide visuelle pour les débutants
- plein de raccourcis clavier qwerty dignes de 1970 à apprendre
Vocabulaire à la noix
Emacs jargon Traduction moderne M-x Alt + x C-x Ctrl + x Frame Fenêtre Emacs Window Split/zone Buffer Bloc de texte/données contigus Point Position du curseur dans le buffer Active Region Texte sélectionné Region Plage de texte (pas surlignée par la sélection, qui se fait avec Ctrl+Espace) Face Propriétés de police, couleur et affichage
Choix de thème
Https://emacsthemes.com/ Mettre dans la config le nom du thème. Après plusieurs essais de configuration j'ai opté pour la méthode Straight.el qui permet de déclarer les paquets et de documenter la configuration dans un fichier Org, traduit et interprêté au démarrage.
Comment j'organise le contenu de mes tâches et de mon wiki
Un seul fichier pour les notes c'est bien. Mais je ne suis pas toujours devant un ordi, j'utilise donc du papier et mon ordiphone avec les notes de Nextcloud pour prendre notre d'idées qui apparaissent forcément à des moments où mon attention n'est pas captive. Ça me permet de les reporter ensuite dans ma liste de tâches. J'ai aussi des évènements dans mon agenda partagé avec ma moitié.
Je fais des révisions de mes tâches pas tous les jours mais presque, et de temps à autre des révisions de toutes mes tâches avec une vue personnalisée d'Agenda Orgmode.
J'utilise Org Roam pour relier plein de textes, et sa très sympathique interface en noeuds de réseau graphique: org-roam-ui. Si je dédiais des temps à des thématiques, je pourrai opérer vraiment des projets et les faire avancer d'avantage. Par exemple, me dire que "tel Lundi je le consacre à la glandouille, tel Jeudi à des choses hors ligne comme du sport, telle suite de jours je supprime les moyens de me contacter de façon rapide", définir des "gros galets" avec un créneau par semaine pour m'y consacrer, comme le "rendez-vous des tâches importantes" de l'April le Mercredi à 10h.
Ce qui m'importe c'est d'arriver à faire des choses par grappe, à ne pas oublier des choses importantes, à me motiver à sortir de la routine, prendre le temps de faire des choses plaisantes et à vraiment clarifier mes réflexions.
Où trouver de l'aide
A une tonne d'endroits, il existe d'ailleurs des gens qui font de la recherche académique ou qui écrivent des livres avec cet éditeur, alors qu'ils ne codent pas du tout.
- Le forum Emacs Doctor
- Dans des conférences de Pas Sage En Seine
- Sur invidious, proxy client à Youtube
- En demandant sur Mastodon
- Des canaux de discussion IRC / Matrix / XMPP
- Le wiki Emacs
- Le blog de Karl Voilt
- Le blog de Sacha Chua
- Aux gens qui disent GNU plus Linux
- Vous pouvez me contacter de plusieurs façons aussi: https://www.cipherbliss.com/contact
Emacs est bien plus de choses qu'un simple éditeur de texte personnalisable, c'est quasiment un système d'exploitation de plus dans votre ordinateur, riche d'outils et d'une communauté qui a su lui faire traverser les âges. Certains s'en servent pour tout et n'importe quoi, et c'est tout le fun du truc.
D'autres utilisent neovim pour faire cela, et comme on peut tout personnaliser c'est assez vite tentant de tester des choses, cependant si on ne sait pas comment débugguer ça n'est pas évident de trouver ce qui fait tout péter.
C'est ce qui me sert à rédiger des tas de choses et à gérer mes projets, mais pas mes mots de passe. J'ai envisagé de l'utiliser comme IDE mais ça reste une configuration pas évidente pour retrouver ses habitudes de développement. Essayer un autre outil permet aussi de questionner son rapport aux habitudes que l'on prend à cause des outils précédents, et à quel point ceux-ci nous enferment dans des habitudes que l'on a pas choisir. Avec Emacs vous avez bien plus la main sur le résultat que dans n'importe quel IDE, y compris dans des environnements serveur headless. Je suis content d'avoir pu essayer plein de choses en m'inspirant des autres avec un simple copier coller de config et un relancement de programme. J'ai supprimé au fur et à mesure des packages dont je ne me servais pas, j'ai fouillé mes habitudes de raccourcis pris avec Netbeans il y a 20 ans de cela pour voir comment les remettre dans Emacs, et je me sers principalement de fichiers Org pour la gestion de mes tâches au quotidien, reliées sur mon mobile Android par Orgzly.
Commencez petit et vous verrez que vous n'avez pas besoin d'une configuration de ouf à rallonge pour faire votre café.
Havez fun!