4 Reasons Doom Emacs Should Be Your Next Programming Project

Configurer un éditeur de texte n’est pas une idée amusante pour tout le monde. Mais vous êtes ici et vous êtes probablement à la recherche d’un nouveau projet. Doom rend la rampe d’accès à Emacs beaucoup plus facile, et pour le bricoleur, Emacs a un potentiel infini. J’ai quatre raisons pour lesquelles Doom Emacs devrait être votre prochain projet.
Cela facilite le démarrage d’Emacs
L’une des plaintes les plus courantes concernant les éditeurs de texte avancés est le temps requis pour la configuration. Doom Emacs résout ce problème, rendant le processus de configuration d’Emacs beaucoup plus facile. Essentiellement, Doom Emacs sert de cadre de configuration qui simplifie de nombreux aspects techniques d’Emacs.
Les étapes suivantes sont uniquement à des fins d’illustration et sont rédigées du point de vue d’un utilisateur Linux. Bien que cela ne soit pas courant, il est possible d’installer Doom Emacs sur Windows, mais ceci n’est pas un guide : c’est une démonstration de la facilité avec laquelle démarrer avec Doom Emacs. Si vous souhaitez installer Doom Emacs sur Windows, consultez la section de démarrage de la documentation officielle.
Tout d’abord, vous devez installer Emacs, alors reportez-vous à la documentation du gestionnaire de packages de votre distribution pour obtenir de l’aide. Je recommande d’installer le package Lucid Emacs, car il fonctionne considérablement mieux que le GTK Emacs standard. Si vous utilisez Windows, vous devez vous rendre sur la page de téléchargement d’Emacs et suivre les instructions qui s’y trouvent.
En supposant qu’Emacs soit installé, le processus d’installation de Doom Emacs est très simple. En deux étapes et cinq minutes d’attente, votre nouvelle installation de Doom Emacs est prête à fonctionner.
git clone --depth 1 https://github.com/doomemacs/doomemacs ~/.config/emacs
~/.config/emacs/bin/doom install
L’ajout du chemin bin Emacs à votre chemin shell vous facilitera la vie, car vous pourrez accéder au script Doom sans saisir son chemin complet. Consultez nos guides sur la façon de mettre à jour votre variable de chemin sous Linux ou Windows. Pour les utilisateurs Linux, placez le code suivant dans votre fichier .bashrc et rechargez votre shell.
export PATH="$PATH:$HOME/.config/emacs/bin"
Maintenant que Doom Emacs est installé, vous pouvez modifier la configuration par défaut si vous le souhaitez. Doom Emacs est livré avec une large gamme de packages préconfigurés (appelés modules), que je détaille dans la section suivante. Pour l’instant, sachez que vous pouvez configurer les packages Emacs dans deux fichiers simples trouvés dans le répertoire ~/.config/doom.
-
init.el : Le fichier de configuration principal utilisé pour activer ou désactiver les modules.
-
packages.el : le fichier dans lequel vous définissez les packages externes personnalisés que vous souhaitez installer.
L’image précédente montre le fichier inti.el par défaut. Les modules désactivés sont commentés.
Avec ces deux fichiers, vous pouvez activer ou désactiver n’importe quel package de votre choix. Si vous souhaitez installer des packages personnalisés que Doom Emacs n’inclut pas, vous pouvez visiter le référentiel de logiciels MELPA pour effectuer une recherche et mettre à jour votre fichier packages.el (abordé dans la dernière section). Lorsque vous spécifiez des packages dans le fichier packages.el et rechargez Doom Emacs, il utilisera son gestionnaire de packages intégré (appelé Straight) pour les installer rapidement. Straight est flexible et peut installer des packages à partir de plusieurs sources.
Après avoir modifié init.el ou packages.el, exécutez le synchronisation malheureuse commande. Si Emacs est déjà ouvert, vous devrez recharger sa configuration. Dans Emacs, appuyez sur Alt+X (alias Mx en langage Emacs), puis tapez malheur/rechargement et exécutez-le.
Si Emacs semble un peu brut au démarrage (comme le montre l’image ci-dessous), la présence d’un répertoire ~/.emacs.d vide en est probablement la cause. Emacs donne la priorité à ce répertoire par rapport à ~/.config/emacs. Si vous ne l’avez pas créé intentionnellement, vous pouvez le supprimer en toute sécurité.
En plus de ces deux fichiers de configuration, il existe un troisième fichier config.el assez important. Une fois que vous aurez acquis suffisamment d’expérience avec Emacs, vous souhaiterez peut-être commencer à résoudre vos propres problèmes en utilisant Elisp. Le fichier config.el est l’endroit où vous placez votre code Elisp personnalisé lorsque vous êtes prêt à relever ce défi. Emacs peut être considéré comme une base de code, et grâce au cadre de configuration Doom Emacs, vous avez le pouvoir et la flexibilité d’étendre Emacs (que j’aborderai plus tard) comme vous étendriez n’importe quelle autre base de code.
Emacs est puissant, et si vous avez toujours voulu tirer parti d’un écosystème mature pour alimenter un flux de travail avancé, Doom Emacs rend le démarrage relativement simple. Invariablement, il y a des problèmes inattendus, je vous renvoie donc à la documentation officielle de Doom Emacs ou au forum Doom Emacs Discourse pour plus d’aide.
Il est livré avec des piles incluses
Par défaut, Vanilla Emacs est livré avec des fonctionnalités relativement basiques, mais Doom Emacs est livré avec de nombreuses fonctionnalités supplémentaires (appelées modules) qui le rendent utile dès la sortie de la boîte. Une telle approche incluant les piles vous permet de vous concentrer sur vos objectifs à long terme au lieu de rester coincé au premier obstacle.
Comme indiqué précédemment, vous pouvez activer ou désactiver des modules à l’aide du fichier init.el. La documentation officielle maintient une liste des modules pris en charge par Doom Emacs. De nombreux modules prennent en charge des indicateurs facultatifs qui permettent des intégrations supplémentaires avec d’autres packages. Par exemple, vous pouvez activer l’intégration d’Org-Roam avec Org-Mode (deux packages de prise de notes populaires) en ajoutant « (org +roam) » à votre fichier init.el. J’expliquerai ces deux packages dans la section suivante.
Doom Emacs est également doté de fonctionnalités spécifiques à la programmation, telles que la coloration syntaxique et la prise en charge du LSP (Language Server Protocol). Bien que je n’utilise pas personnellement Emacs pour la programmation, beaucoup le font, et il s’agit d’un environnement de développement très performant, prenant en charge une grande variété de langages de programmation. De plus, Doom Emacs propose également la prise en charge d’un client de messagerie, d’un client IRC, de logiciels de comptabilité comme Ledger et Beancount, du mode Vim (alias Evil), et bien plus encore.
Avec Doom Emacs, vous n’avez pas besoin de repartir de zéro, car il fournit déjà une multitude de packages intégrés. Compte tenu de l’extensibilité d’Emacs, il s’agit d’une base solide sur laquelle bâtir et apprendre pendant que vous développez votre projet en un flux de travail avancé.
Intégration avec un workflow de projet et de prise de notes
Bien que Doom Emacs prenne en charge de nombreux outils prêts à l’emploi, les véritables avantages d’Emacs peuvent ne pas être apparents. Pourquoi devriez-vous vous en soucier lorsque vous disposez de OneNote et d’autres applications de prise de notes conventionnelles ?
Emacs est un écosystème mature, et des packages comme Org-Mode rendent l’organisation des informations triviale, sans égal. Par exemple, disons que vous travaillez sur une fonctionnalité ; votre outil de suivi des problèmes contient peut-être suffisamment de détails, mais il ne sert pas de mémoire de travail. Au lieu de cela, je crée souvent des fichiers de projet spécifiques à une branche de fonctionnalités et y organise mes tâches à effectuer et mes notes de projet. Je n’essaie pas de me souvenir de tout ou de créer un problème distinct pour les petites tâches macro. J’utilise simplement Org-Mode comme mémoire de travail.
Org-Roam est construit sur Org-Mode, et j’ai déjà expliqué comment j’utilise Org-Roam pour prendre des notes. Pour faire court : Org-Roam est un système de prise de notes basé sur des graphiques, étroitement intégré aux puissantes fonctionnalités d’organisation d’Org-Mode. Lorsque je travaille dans mon fichier de projet (ma mémoire de travail), je peux m’appuyer sur une vaste base de connaissances personnelles grâce à Org-Roam. Cela fusionne la mémoire à long et à court terme en un seul endroit. Cela me permet de me concentrer sur le code au lieu de lutter pour définir une voie à suivre à travers des défis difficiles.
Org-Mode est doté de nombreuses fonctionnalités, notamment un système de gestion des tâches appelé Org Agenda. Je recommande fortement de l’essayer.
Doom Emacs facilite la prise en main d’Org-Mode et d’Org-Roam. Avec une seule ligne dans le fichier de configuration, j’ai accès à des packages qui m’aident grandement et qui ont fondamentalement changé ma façon de travailler et de penser.
C’est puissant et éventuellement extensible
À terme, vous souhaiterez peut-être étendre Emacs avec du code personnalisé, comme vous le feriez avec n’importe quel autre projet. Mais comme Doom Emacs est livré avec une large gamme de modules préconfigurés, son extension est entièrement facultative. Doom vous laisse la porte ouverte lorsque vous êtes prêt. Et lorsque vous le faites, son approche de type cadre rend le processus simple.
Votre première escale consistera probablement à installer des packages personnalisés qui ne sont pas fournis par défaut avec Doom Emacs. C’est aussi simple que de saisir une seule ligne dans le fichier packages.el.
(package! rg)
L’extrait de code précédent appelle une fonction (en fait, une macro) appelée package!, qui installe un package appelé « rg » — le package ripgrep pour Emacs. Il récupère le package depuis MELPA et utilise le gestionnaire de packages Straight pour l’installer. N’oubliez pas de synchroniser et de recharger Doom par la suite.
Vous pouvez également installer des packages directement depuis GitHub, ou uniquement après l’installation d’un autre package.
(when (package! org-roam)
(package! org-roam-bibtex
:recipe (:host github :repo "org-roam/org-roam-bibtex")))
L’extrait précédent dit : “Lorsque le package org-roam est présent, installez org-roam-bibtex” (un gestionnaire de bibliographie pour Org-Roam).
Votre prochaine escale consiste probablement à ajouter des fonctions personnalisées pour résoudre les problèmes spécifiques que vous pourriez rencontrer. Ajoutez simplement votre code au fichier config.el, puis rechargez Doom. Par exemple, la fonction suivante imprime un message « Hello, World ! » message.
(defun my/hello-world ()
"Print the universal standard programmer greeting."
(interactive)
(message "Hello, World!"))
L’appel de fonction “interactif” garantit que “my/hello-world” apparaît dans le menu de commande Mx (accessible en appuyant sur Alt+X).
Comme toute autre base de code, vos fonctions personnalisées appelleront une API interne. Trois sources fournissent cette API : Emacs lui-même, Doom Emacs et vos packages installés. Étendre les packages de cette manière est très courant.
Certains disent que consacrer autant d’efforts à des éditeurs de texte avancés est une perte de temps. Je ne suis pas d’accord, car je gagne énormément en productivité et des packages comme Org-Roam ont fondamentalement changé ma façon de penser et de travailler. Honnêtement, je ne sais pas comment j’ai pu m’en passer, car il n’y a aucun moyen de me souvenir de tout ce que j’ai fait ces cinq dernières années. Emacs en vaut donc la peine. Doom Emacs rend cette rampe d’accès beaucoup plus simple ; Je doute que j’aurais réussi à configurer Emacs sans cela. Il est livré avec de nombreuses fonctionnalités prêtes à l’emploi, il est facile à installer et tout ce que vous avez à faire est de l’utiliser et de prendre votre temps pour apprendre à l’étendre pour votre propre bénéfice.
Doom Emacs est une fantastique distribution d’Emacs pour les débutants, malgré ce que prétendent ses détracteurs puristes. Cela rend l’entrée dans le monde Emacs beaucoup plus accessible pour la plupart des développeurs.



