Journal Une configuration GNU Emacs communautaire qui vaut le détour : Doom Emacs

Posté par (page perso) . Licence CC by-sa.
Tags :
29
19
sept.
2019

Salut à tous,

Voilà quelques années que j'utilise Spacemacs. Il s'agit d'une configuration communautaire de GNU Emacs, centrée sur la barre Espace. Le projet est très sympa et fonctionnel, mais j'ai rencontré quelques soucis :

  • la création automatique de buffer dans la recherche de fichier est pénible. On se retrouve avec toute ses typos dans la liste des buffers.
  • C'est assez long à démarrer, mais bon, je suis satisfait de ma gestion du serveur Emacs : emacs1.
  • Le .spacemacs est assez pénible à mettre à jour : il faut se coltiner de la résolution de conflit.
  • Au final, j'ai un .spacemacs trop gros à mon goût.
  • Avec Python, j'ai souvent des problèmes avec le complètement.
  • Avec Python, Spacemacs ne respecte pas le fichier .python-version. Je recopier $VIRTUAL_ENV dans .venv. Ça fait doublon.
  • Une impression de bricolage avec des messages d'erreurs, des glitchs.

J'avais jeté un œil à Doom Emacs et je l'avais trouvé rude pour un vieil Emacsien comme moi !

Finalement, je lui redonne une chance. Faut reconnaitre que je suis séduit :

  • La configuration est simple.
  • C'est très rapide. Environ 0.6s pour ouvrir une nouvelle instance d'Emacs à chaud.
  • Le style est très lisible par défaut, je n'ai rien envie de changer. (ne serait-ce que la taille de la police).
  • Des onglets et une interface au niveau des Atom, Sublime, VSCode, etc.

Et bien sûr, l'auto-documentation si pratique d'Emacs ! J'ai trouvé aussi un vlog qui parle d'Emacs Doom : Zaiste sur youtube.

Et vous ? Utilisez-vous une configuration communautaire ? Que pensez-vous de Doom Emacs ?

  • # Doom

    Posté par . Évalué à 10 (+13/-0).

    Déception. Je pensais que ça parlait de Doom tournant dans Emacs. Ça aurait fait un beau itrunsdoom.

  • # Quid ?

    Posté par (page perso) . Évalué à 10 (+9/-0).

    Un peu compliqué pour un utilisateur satisfait d'Emacs dans sa version la plus élémentaire de saisir de quoi il en retourne dans ce texte. Est-ce que quelques explications sur le pourquoi, (le comment,) et l'intérêt de ces configurations communautaires d'Emacs ne serait pas superflues pour rendre ce journal plus accessible ? D'après le premier lien on comprend bien que c'est plus mieux ; mais encore ?

    « IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » — Odes — Horace

    • [^] # Re: Quid ?

      Posté par . Évalué à 4 (+2/-0).

      N'étant pas pleinement satisfait d'emacs dans sa version la plus élémentaire, je suis pas certain que mon avis t'intéresse, mais dans le doute je me lance.

      L'intérêt principal est d'avoir rapidement une configuration avancée, intégrée, et soignée.

      Parce que oui, emacs sans plugins et configuration utilisateur, c'est un peu comme une maison avec une pièce de 4m² et une ampoule. Ca convient à beaucoup de choses, mais on peut faire mieux niveau confort, que ce soit pour les fonctions qu'on en attend (dormir) ou d'un point de vue visuel.

      Comme chacun le sais, configurer un emacs peut être relativement fastidieux. Une fois que tu l'as configuré correctement pour ton langage de prédilection, il faut encore confectionner un theme qui va bien et qui casse pas les couleurs des 10 plugins que tu as ajouté, sans quoi ça jure grave. On sait qu'il est souvent préférable pour un bon programmeur de s'abstenir de s'occuper de l'apparence des choses. Et si on ajoute à ça l'ergonomie… plein de devs avec des façons bien différentes de la penser, ben ça fait un beau bordel.

      Bref, une équipe de gens qui font tout ça bien l'a fait pour toi, et l'a nommé avec ce qui lui a fait le plus penser à l'enfer que c'est de tout configurer et de le maintenir.

      • [^] # Re: Quid ?

        Posté par . Évalué à 7 (+5/-0).

        Oubli majeur concernant ces configurations communautaires, elles sont faites pour des utilisateurs de VI refoulés (on sait tous que le vrai emacsien n'a pas peur d'avoir un look qui jure et des bugs dans sa conf). On sent qu'elles sont faites autour du evil-mode qui convertit emacs en vi-like. Mais ça reste de l'emacs, on peut en général retirer ce mode et en refaire un outil agréable à l'utilisation en faisant croire qu'on est ouvert aux utilisateurs d'autres logiciels. Le gros avantage est que ça éloigne les trolls.

        • [^] # Re: Quid ?

          Posté par (page perso) . Évalué à 2 (+0/-0).

          « […] suis pas certain que mon avis t'intéresse, mais dans le doute je me lance. »

          Mais si Lionel Elfir3. Ce n'était nullement une question rhétorique, et comme vôtre avis charrie de nombreux éléments de réponse… Merci.

          « IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » — Odes — Horace

    • [^] # Re: Quid ?

      Posté par (page perso) . Évalué à 6 (+4/-0).

      Salut Pierre-Matthieu,

      As-tu un .emacs.d ? As-tu beaucoup de code dedans ? Est-ce que tu le versionne ?

      Personnellement, j'ai partagé mon .emacs.d pendant quelques temps. Certains ayant d'excellent .emacs.d l'ont transformé en projet communautaire. Le premier était Purcell ou Prelude, ensuite les plus populaires sont Spacemacs et Doom Emacs. On les appelle StarterKits dans la langue de Rihanna.

      Les deux derniers ont la particularité d'être très orienté vim. En effet, il y a une grosse communauté de vimeurs qui passent à GNU Emacs pour avoir un editeur ultra-hackable, mais en gardant leurs habitudes. Doom Emacs va le plus loin dans ce sens.

      L'intérêt de ces configurations:

      • Maintenance partagée.
      • Fonctionnalités avancées.
      • Alignement du comportement des différents modes.
      • Un style léché et pratique pour le dév.
      • Performance. Un .emacs.d perso a souvent tendance à être de plus en plus lourd.

      Tout cela dépasse largement le travail d'un seul homme. Pourtant, on reconnaît un bon ouvrier à ses outils. Ça vaut la peine de s'y intéresser. En outre, Emacs refuse résolument de s'aligner sur les nouvelles UX. Et tant mieux, les configurations permettent d'en implémenter plusieurs.

      D'ailleurs, il y a même des outils pour basculer d'une configuration à l'autre, comme Chemacs.

      • [^] # Re: Quid ?

        Posté par . Évalué à -1 (+5/-1).

        Les deux derniers ont la particularité d'être très orienté vim. En effet, il y a une grosse communauté de vimeurs qui passent à GNU Emacs pour avoir un editeur ultra-hackable, mais en gardant leurs habitudes. Doom Emacs va le plus loin dans ce sens.

        Étant actuellement dans une crise existentialiste après 20ans de vi/m, les extensions deviennent des applications à part entière et pénible à mettre en place (ex: CoC), neovim qui stagne, l'envie de goûter à OrgMode notamment, bref ça pourrait être le moment.
        Ceci étant, je n'ai jamais été convaincu par l'émulation d'un mode vi/m pour un éditeur/ide, vi/m ce ne sont pas que des raccourcis clavier et on se heurte assez vite à devoir penser comme le logiciel original, ce qui devrait être le cas.

        Maintenant, je ne sais pas si Doom Emacs serait la bonne approche pour m'initier à Emacs, je suis d'avis qu'il faille commencer dans l'ordre mais Emacs m'intimide de manière assez irrationnelle.
        Et par rapport à la chaîne YouTube du journal, il semble ne s'attarder que sur l'aspect organisationnelle/gestion de tâches/journal plutôt que sur l'aspect IDE.

        • [^] # Re: Quid ?

          Posté par . Évalué à 3 (+1/-0).

          En fait, tout dépend de si tu veux conserver certains réflexes ou non.

          Pour l'avoir brièvement testé, Doom est pas mal, simplifie grandement la configuration initiale, et permettra de conserver un feeling a la vi. N'étant pas utilisateur de ce dernier, je ne peux m'étaler sur le sujet. Je pense que le contenu de vi sans plugin sera identique dans doom. Par contre, doom vient avec une belle panoplie de choses en plus de base. Donc oui, de ce côté là tu vas avoir du nouveau qui tranchera avec vi, mais le système de mode et les commandes de bases seront bien présentes.

          Si par contre tu veux plonger un peu plus et couper avec vi, Spacemacs offre le choix entre les deux, ce qui permet de tester l'un puis l'autre si besoin.

          Par contre, spacemacs souffre d'un problème courant avec les grosses configs emacs, la lenteur au démarrage.

        • [^] # Re: Quid ?

          Posté par (page perso) . Évalué à 3 (+1/-0).

          vi/m ce ne sont pas que des raccourcis clavier et on se heurte assez vite à devoir penser comme le logiciel original

          à creuser. evil-mode intègre plus que les raccourcis claviers, il y a par exemple toutes les pas mal de commandes genre :w; même si on est pas obligé de les utiliser. Je pense ensuite que certains packages vont ajouter des trucs venus du monde de vim.

          En revanche en natif, on va garder des différences. Je pense notamment aux buffers. Dans vim par défaut on est sur un buffer à la fois, si on veut switcher on doit sauvegarder. Emacs a une approche différente amenant naturellement à se retrouver avec 12 mille buffers non sauvegardés.

          • [^] # Re: Quid ?

            Posté par . Évalué à -2 (+3/-0).

            @Elfir3: non je veux garder mes reflèxes car 1) je continue à utiliser vim 2) 20 ans quoi, 3) je préfère apprendre la Emacs-way.

            @Saltimbanque: Vim fonctionne de la même façon, tu peux également avoir plusieurs buffers non enregistrés.

            • [^] # Re: Quid ?

              Posté par . Évalué à 4 (+2/-0).

              Je voulais dire garder les réflexes Vi(m)s sous Emacs :-)

              Mon approche a été commencer avec un emacs de base, et de le faire évoluer petit à petit en fonction des besoin, découvrir un mode après l'autre. Puis je suis passé à Spacemacs pendant quelques années avant de me dire que je me referais bien ma config perso à partir du vanilla, parce que j'aime coller au vanilla. Et plus j'avance dans cette direction, plus je me dis que l'équipe derrière Spacemacs a fait un bon boulot.

              En gros ça reste semblable a un emacs standard, mais pas mal de raccourcis on été rangés par catégories. Ça offre des facilités, et grâce aux indications on retrouve plus facilement le raccourci cherché.

              En ce qui concerne Doom (pour le peu que je l'ai testé), mais a part l'effet WOW pour la vitesse de démarrage d'un gros pack de modules, le reste m'a semblé trop vim pour que j'accroche. Je te déconseillerais donc Doom si t'essaie de t'en détacher. Spacemacs est beaucoup plus proche.

              Si tu choisis de mettre en place cette solution, n'hésite pas à mettre en place un emacs --daemon au demarrage et a utiliser emacsclient pour t'y connecter. Ça change une vie..

  • # vite vite vite

    Posté par (page perso) . Évalué à 4 (+2/-0).

    Utilisateur de Emacs 300 % satisfait en termes de fonctionnalité, mais très malheureux en termes de performance (démarrage, car j'utilise Emacs en ponctuel sur ordi souvent en veille) ; et malheuresuement aussi performance une fois ouvert - mais d'une moindre mesure quand mêmee.

    Je n'utilise pas de kit complet mais ai écrit un mode mineurs (enfin plusieurs) pour redéfinir les touches / les menus.

    à la lecture du journal j'ai surtout envie de tester ton amélioration de emacsclient! Cependant petite question quand même, quand tu écris que Doom Emacs est rapide à lancer, est-ce simplemnet au sens "pas plus lourd que emacs sans rien" ?

    • [^] # Re: vite vite vite

      Posté par (page perso) . Évalué à 5 (+3/-0).

      Ici:

      $ time emacs -Q --eval '(kill-emacs)'
      
      real    0m0,283s
      user    0m0,155s
      sys     0m0,032s
      $ time emacs --eval '(kill-emacs)'
      
      real    0m0,681s
      user    0m0,497s
      sys     0m0,085s
      

      J'ai juste une fenêtre qui clignote.

      Doom coûte 0,4s. C'est franchement raisonnable vu tout ce qu'il apporte. De plus, il reste rapide à l'usage !

  • # Remplacement des layers dans doom ?

    Posté par . Évalué à 2 (+1/-0).

    Hello Étienne,

    merci pour ton journal ! utilisateur d'emacs depuis 2000 la plupart du temps en custom, ces derniers temps je teste les starters kit. J'ai testé spacemacs, très bien mais un peu lourd.

    Ce qui est bien avec spacemacs je trouve c'est les layers configurés qui se chargent dynamiquement : si j'ai un .bat que j'ouvre pour la première spacemacs va me download le mode qui va bien avec une configuration qui va bien.

    Est ce que doom à ce genre de mécanismes ou bien devons nous reconfigurer tout cela nous même ?

  • # sacrée provoc

    Posté par . Évalué à -4 (+7/-13).

    Vue l'actualité, c'est quand même gratiné de promouvoir le sexisme, le viol, la pédophilie et le bouffage de croutes de pieds en postant un journal au sujet d'emacs.

  • # bépo

    Posté par . Évalué à 3 (+3/-0).

    Salut,

    Merci pour le retour sur Doom que je n'ai pas vraiment testé mais en tout cas moi j'ai glissé sur spacemacs pour sa gestion native de la disposition de clavier bépo … et j'en suis très content !

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.