Journal Emacs, le dinosaure fait de la résistance

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
55
15
jan.
2024

Aujourd'hui, un journal qui encense grave (une fois n'est pas coutume).

Je suis épaté qu'après toutes ces années, Emacs reste pertinent et apparemment tout aussi productif que moults IDE. Et encore, je m'y suis mis sérieusement sur le tard, durant mon 3ème boulot (j'étais un Visual Studio boy depuis mes 15 ans…). Voici donc les raisons qui à mon sens font d'Emacs un outil remarquable encore aujourd'hui.

  • Légèreté : même si considéré comme une usine à gaz à ses débuts (Eight Megs And Constantly Swapping), Emacs est maintenant d'une légèreté de gazelle par rapport aux IDE modernes. Je suis toujours surpris en regardant coder mes voisins de bureau à quel point ouvrir un fichier, ou même taper un peu de texte, semble mettre en branle toute une série de mécanismes complexes qui rendent l'utilisation aussi lourde qu'un pachyderme neurasthénique. Avec un IDE, on se traîne, alors qu'Emacs démarre à toute blinde, et taper ou effectuer des opérations sur du texte est toujours rapide

  • Mode texte : Grace à son mode texte, il est installé partout sur nos serveurs, et je peux aller bidouiller une config sans avoir à connaitre un autre éditeur de texte. Certes, je n'ai pas alors ma configuration perso, mais c'est déjà très bien d'avoir toutes les commandes standard dans les doigts (et si j'ai vraiment besoin, je peux toujours utiliser Tramps, voir plus bas)

  • Un système de greffons qui marche : J'avoue, je me méfie généralement des greffons dans les applications que j'utilise. C'est souvent synonyme de perte de performances, de mauvaise intégration, voire de crashs. Avec Emacs, et sans faire des folies, je trouve que les greffons s'intègrent de manière très stable, et je subodore que c'est grâce à l’interpréteur Lisp qui les empêche de faire trop de bêtises. Et en plus, les greffons se combinent et se complètent très bien. Par exemple…

  • Le greffon Tramps : Lui, c'est mon chouchou. Tramps permet non seulement d'ouvrir un fichier à distance, mais permet de chaîner les méthodes d'accès, par exemple d'effectuer de manière transparente un SSH suivi d'un docker exec pour éditer un fichier dans un pod sur un serveur distant. Je peux donc faire tourner Emacs en local sur ma machine du bureau, et éditer n'importe quoi n'importe où. Mais ce n'est que le hors d’œuvre, puisque Tramps permet également d'utiliser le mode Dired à distance (gestionnaire de fichiers), la compilation, et le debuggeur. Voulant me remettre à OCaml récemment et me souvenant du mode Tuareg qui permet de faire tourner un interpréteur dans une fenêtre Emacs, j'ai été épaté de voir que Tramps me permettait d'ouvrir l'interpréteur dans un Docker sur une autre machine, comme si j'avais tout en local. C'est juste magique. Et dernièrement, j'ai découvert les bookmarks de fichiers, qui me permettent d'aller chercher un chemin (parfois complexe quand c'est un chemin Tramps) à travers un simple nom que j'ai défini. "C-x r b moncode" et Emacs va faire un SSH, un Docker exec, et m'afficher le contenu du répertoire de ma base de code.

  • Les fenêtres et les buffers : j'ai besoin de voir 2 fichiers côte à côte, en quelques raccourcis claviers, c'est fait. J'en veux un 3ème en dessous, puis je veux refermer le premier, c'est tout aussi facile. C'est vraiment agréable de tuiler son environnement de manière aussi aisée, et je me retrouve à adapter en permanence ma vue à ce que j'essaie de faire.

  • Les raccourcis clavier : Alors oui, les C-quelquechose et M-quelquechose, c'est particulier, mais une fois qu'on a pris l'habitude, c'est extrêmement plaisant. Le chercher/remplacer, l'édition par rectangles, on apprend doucement ce dont on a besoin et qui rentre vite dans les doigts. Et l'on ajoute très facilement ses propres raccourcis (par exemple, j'ai F5 pour compiler, F7/F8 pour aller a l'erreur de compile précédente / suivante, et F9 pour passer du fichier source au fichier d'en-tête et vice versa).

  • Un fichier de config compréhensible : c'est mon autre hantise, la personnalisation soit via clicodrôme et donc difficile à exporter, soit dans d'immenses fichiers de config rapidement incompréhensibles. Je dois avoir une quinzaine de sections dans mon .emacs, souvent de simples lignes, plus rarement de petits scripts, et c'est tout ce dont j'ai besoin pour adapter Emacs aux petits oignons. La plupart des fonctionnalités existent déjà et il suffit de les activer. C'est donc très lisible, facile à copier d'une machine à une autre, facile à partager avec les copains qui peuvent extraire la section de configuration qui leur plait. Pour vous donner une idée de mes personnalisations:

    • Suppression du whitespace à la sauvegarde
    • Ajustements du mode C++ pour faire coller l'indentation au standard de mon équipe
    • Raccourcis claviers pour la compilation, pour passer à l'erreur précédente ou suivante, pour passer du fichier source au fichier d'en tête ou inversement
    • Ajustement des couleurs et de la fonte
    • Un peu de magie au niveau des buffers de copie afin d'avoir le copier/coller, le yank, et le clic du bouton du milieu de la souris qui utilisent tous le même buffer (probablement la partie la plus moche de ma config)
    • Affichage du numéro de ligne
    • Un script qui m'écrit un en-tête de fichier standard pour les sources du boulot (titre et auteur doxygen, #pragma once et tout le toutim)

Mais qui aime bien châtie bien, et ce ne serait pas juste de ne pas évoquer la fonctionnalité que les IDEs, à mon sens, font mieux: les sauts dans le code. C'est maintenant standard partout de pouvoir faire un clic droit sur une fonction, une variable, une inclusion, et pouvoir sauter directement à la définition, la déclaration, ou encore à tous les appelants. Là, Emacs fait sentir son manque d'intégration avec le langage, et j'utilise donc un mélange de "grep -r", de "find -name", et de navigateur ouvert sur le Doxygen pour retrouver mes billes. Je m'en accommode, mais je serais curieux si quelqu'un a une solution légère et qui s'intègre avec Tramp. Ayant regardé rapidos, il m'a semblé que de nombreux greffons Emacs tentaient de résoudre ce problème, mais l'utilisation me paraissait pour le coup lourde et complexe, souvent à base de service qui tourne en tâche de fond pour maintenir une liste de tous les tags, de manière souvent complètement syntactique plutôt que sémantique.

Mais ce n'est pas suffisant pour me faire regretter mon éditeur de texte favori, et que j'espère continuer à utiliser durant de longues années.

C-x C-c et à bientôt!

  • # Eglot

    Posté par  . Évalué à 10.

    Pour les sauts dans le code, je te conseille de te renseigner sur Eglot, qui est un package déjà intégré dans les dernières versions d'emacs, et plus généralement sur LSP (Langage Server Protocol).

    T'auras effectivement besoin d'un service en tâche de fond mais emacs peut s'occuper de le lancer et l'arrêter tout seul.

    Pour le C++ (comme c'est ce que tu semble utiliser), ça se base sur clang et ce n'est pas qu'une liste de tags syntaxiques, loin de là.

    • [^] # Re: Eglot

      Posté par  . Évalué à 2.

      Gros +1 pour eglot. Par contre oui il faut des services qui tournent en tâche de fond, même si eglot gère ça de manière transparente.

      Si tu veux quelque chose de plus simple pour gérer la navigation entre définition et déclaration, je suggère dumb-jump, qui utilise rg (ou ag, ou grep) pour trouver la cible. C'est moins précis qu'eglot si tu as plusieurs fonctions/méthodes avec le même nom, mais en général ça marche quand même très bien :)

    • [^] # Re: Eglot

      Posté par  (site web personnel) . Évalué à 4.

      Mais ça roxxe du poney, eglot ! En effet, c’est plutôt léger et ça marche presque tout seul, à travers Tramp, et j’ai en plus de la recherche plutôt bien fichue les alertes clang et les annotations de paramètres. L’essayer c’est l’adopter.

      • [^] # Re: Eglot

        Posté par  . Évalué à 2.

        Oui tu as également lsp

    • [^] # Re: Eglot

      Posté par  (site web personnel) . Évalué à 1.

      Noter au passage que lsp/eglot sont juste une réimplémentation pour Emacs du "Language Server Protocol" introduit par Visual Studio Code. C'est-à-dire que le service qui tourne en tâche de fond est le même pour lsp/eglot et VSCode.

      Source: Wikipedia

  • # doomemacs ?

    Posté par  (site web personnel) . Évalué à 3.

    Cela fait un moment que je me dis que je devrais tester doomemacs qui contient un bundle de plugin.

    https://github.com/doomemacs/doomemacs

    "La première sécurité est la liberté"

  • # vim

    Posté par  (site web personnel) . Évalué à 7.

    Oh la, ce journal appel à une réponse en faisant un copier-coller puis s/emacs/vim/

    • [^] # Re: vim

      Posté par  . Évalué à 3.

      Je me souviens de l'époque où je suis passé de Vi à Emacs, jusqu'à ce qu'un copain m'informe de l'existence d'une petit nouveau : Vim.
      Parait qu'il existe Neovim maintenant. Est-ce qu'il existe un Noemacs ?

      • [^] # Re: vim

        Posté par  . Évalué à 9.

        Il n'y a pas besoin d'un neoemacs, réfléchis un peu avant de poser ta question.

      • [^] # Re: vim

        Posté par  (site web personnel, Mastodon) . Évalué à 4.

        Ça existe et ça s’appelait XEmacs… l’univers emacsien est encore en avance ?

        “It is seldom that liberty of any kind is lost all at once.” ― David Hume

      • [^] # Re: vim

        Posté par  . Évalué à 2.

        Hum… Noemacs existe depuis avant emacs, et c'est vi, justement :-).

    • [^] # Re: vim

      Posté par  . Évalué à 2.

      Limite d'emacs :les sauts dans le code
      surtout que ça fonctionne trés bien pour vim je m'en sert en python tout les jours.

      • [^] # Re: vim

        Posté par  (site web personnel, Mastodon) . Évalué à 8.

        Attention qu’il y a plusieurs notions de « sauts » et Emacs en possède aussi pas mal (plus que la plupart des IDE, autant que la plupart des implémentations Vi même si je n’ai pas su retrouver toutes celles de Vim.)
        L’auteur du journal fait allusion aux TAGS-table et fonctionnalités similaires. Pour cela, il faut générer le fichier de tags, ou lancer la machinerie associée façon LSP ou autres (il y a d’ailleurs un fil sur Eglot plus haut.) Il se trouve que c’est la même chose avec Vim où on ferait la même conclusion si on n’a pas pris le temps de configurer certaines choses ou installer le(s) plugin(s) qui vont bien.

        “It is seldom that liberty of any kind is lost all at once.” ― David Hume

    • [^] # Re: vim

      Posté par  (site web personnel) . Évalué à 1.

      J'utilise spacemacs qui permet d'utiliser Emacs comme Vim, avec tout un tas de modes et plugins déjà configurés. C'est mon IDE idéal depuis quelques temps déjà !

  • # oui mais si on veut éditer un texte ?

    Posté par  (site web personnel) . Évalué à 7.

    Cet IDE/OS a l'air très bien, il ne lui manque qu'un éditeur de texte avec un clefliant (comment traduire keybinding?) normal.

    Quand je dois juste éditer un texte dans mon terminal, je préfère un éditeur normal comme micro.

    Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

    • [^] # Re: oui mais si on veut éditer un texte ?

      Posté par  (Mastodon) . Évalué à 2.

      C'est marrant, en terminal, j'utilise joe en mode jmacs, mais pas emacs directement.
      Côté légèreté on fait difficilement mieux.
      Ya challenge avec nano, au binaire plus petit mais avec plus de libs.so.

      • Yth.
      • [^] # Re: oui mais si on veut éditer un texte ?

        Posté par  (site web personnel) . Évalué à 1.

        Si tu veux du emacs-like léger, il y a aussi mg (le site officiel est cassé apparemment). 226 Ko installés (2,1 Mo pour joe). :)

        There is no spoon...

        • [^] # Re: oui mais si on veut éditer un texte ?

          Posté par  (Mastodon) . Évalué à 4.

          En simplifiant par linux-vdso, libtinfo, libc, ld-linux et libdl, on a ça :

          $ ls -sh /usr/bin/joe
          676K /usr/bin/joe
          $ ldd /usr/bin/joe
          libm, libncurses, libutil

          $ ls -sh /usr/bin/nano
          316K /usr/bin/nano
          $ ldd /usr/bin/nano
          libz, libmagic, libncursesw, liblzma, libbz2, libpthread

          $ ls -sh /usr/bin/jove
          228K /usr/bin/jove
          $ ldd /usr/bin/jove
          ø

          $ ls -sh /usr/bin/zile
          256K /usr/bin/zile
          $ ldd /usr/bin/zile
          libacl, libncursesw, libpthread, libattr

          $ ls -sh /usr/bin/micro
          12M /usr/bin/micro
          $ ldd /usr/bin/micro
          libresolv, libpthread, (mais pas libtinfo et libdl)

          mg, connais pas, pas dispo, flemme de chercher surtout si le site est mort ça va pas être facile, mais apparemment jove semble assez imbattable (sauf par ed).

          Franchement je reste sur joe, parce que ça permet de choisir entre joe, jmacs, jpico, et jstar, avec un seul binaire.
          Pour moi c'est jmacs, pour d'autres c'est au choix.
          Par habitude aussi :)

          • Yth.
          • [^] # Re: oui mais si on veut éditer un texte ?

            Posté par  (site web personnel) . Évalué à 2.

            Pour info :

            $ ldd /usr/bin/mg
            libbsd, libmd
            
            $ ls -sh /usr/bin/mg
            220K /usr/bin/mg

            Il est dispo dans Debian, je l'avais découvert il y a quelque temps. Mais en effet s'il n'est pas packagé dans ta distribution pas de raisons de creuser plus. ;)

            There is no spoon...

          • [^] # Re: oui mais si on veut éditer un texte ?

            Posté par  . Évalué à 3.

            Pendant très longtemps, j'ai utilisé jEdit. Niveau dépendance, le paradis : une seule, la JVM…

            A l'époque, pour coder en Java, c'était juste idéal. La concurrence, c'était JBuilder de Borland, qui était monstrueux, d'une lenteur à mourir. On pouvait ouvrir indifféremment du code ou des fichiers XML de 50 MB sans frémir. Y'avait des plugins pour tout ce dont j'avais besoin : accès FTP, navigation base de donnnées, lancement de mon script ant de build (maven n'existait pas encore), …

            Faudrait que je le réessaye aujourd'hui ; le projet est très calme, mais je vois encore des updates en 2022. Et il doit faire vraiment très léger désormais.

        • [^] # emacs légers

          Posté par  (site web personnel, Mastodon) . Évalué à 6.

          Outre JOE (Joe's Own Editor) —et ses 3 bindings j{macs,pico,star} et son absence de scripting—, il y aussi :
          Jupp —sorte d’upgrade de JOE initialement pour/par MirBSD—,
          JOVE (Jonathan's Own Version of Emacs) —sans scripting aussi—,
          JED (John E. Davis' version of Emacs) —qui utilise S-Lang au lieu de Lisp—,
          MicroEMACS —connu aussi pour être très prisé par L. Torvalds— et ses dérivés (voir plus bas),
          E3 —avec le plus petit binaire pour 5 bindings e3{em,vi,pi,ne,ws} et sans scripting aussi—,
          Zile (Zile Is Lossy Emacs) —le dernier venu, sous l’égide FSF, c’est GNUEmacs sans ELISP ni extension MELPA ou autre—.

          Moins lightweight et/car orienté X, il y a jEdit qui est en Java et a pas mal de keybindings Emacs.

          Quelques fun facts notables concernant MicroEMACS :

          • Initialement écrit par Dave Conroy en 1985, µEMACS a été maintenu et étendu par Daniel M. Lawrence jusqu’à sa mort en juin 2010. Le code n’était pas libre, juste ouvert avec du « in-house commercial use is allowed ». Le code a finalement été mis sous licence GPL en janvier 2002.
          • µEMACS a eu deux dérivées notables :
          • µEMACS a aussi servi de base pour des éditeurs qui n’utilisent pas le keybinding Emacs…
            • C’est sur le cœur de la version 3.6 qu’a été écrit PICO (Pine Composer)
            • C’est aussi sur un cœur de 1992 (la 3.8 je crois) qu’a été écrit ViLE (Vi Like Emacs)

          “It is seldom that liberty of any kind is lost all at once.” ― David Hume

    • [^] # Re: oui mais si on veut éditer un texte ?

      Posté par  (Mastodon) . Évalué à 6.

      Définis normal d'abord.

      Moi si j'utilises micro, je me retrouve avec des fichiers qui contiennent pleins ':' suivis de caractères alphabétiques. Moi perso je ne trouve pas ça normal.

    • [^] # Re: oui mais si on veut éditer un texte ?

      Posté par  (site web personnel, Mastodon) . Évalué à 2.

      Tsss, ça fait un bail (depuis 22.1.1 plus précisément) que GNU-Emacs a du CUA de base… (i.e. pas besoin de le télécharger séparément)
      Au passage, micro estime tellement que son clefliant n’est pas normal qu’il propose de pouvoir tout redéfinir bindings.json :)

      “It is seldom that liberty of any kind is lost all at once.” ― David Hume

      • [^] # Re: oui mais si on veut éditer un texte ?

        Posté par  (site web personnel) . Évalué à 4.

        Je viens de tester, même en mode CUA, le clefliant est anormal.

        Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

        • [^] # Re: oui mais si on veut éditer un texte ?

          Posté par  (site web personnel, Mastodon) . Évalué à 2.

          Raconte… Qu’as-tu testé et qu’est-ce qui n’a pas fonctionné ? Sachant l’extension intégrée fait strictement ce qu’on trouve ailleurs : avec ça, j’ai vu des personnes ne pas se rendre compte que je leur avais mis Emacs entre les mains.
          Peut-être es-tu habitué à des programmes qui ne sont pas CUA-compliant ? (c’est très courant, y compris ceux pondus par ms… Or une fois qu’on a pris l’habitude des aliments ultra transformés on a du mal à apprécier le goût normal…) Ou peut-être as-tu un problème de terminal ? (un souci ou piège connu.)

          “It is seldom that liberty of any kind is lost all at once.” ― David Hume

          • [^] # Re: oui mais si on veut éditer un texte ?

            Posté par  (site web personnel) . Évalué à 5.

            J'ai essayé CTRL+a pour tout sélectionner et CTRL-y pour redo. C'est sans doute réglable, mais je suis content avec mon éditeur normal hors de la boite.

            Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

            • [^] # Re: oui mais si on veut éditer un texte ?

              Posté par  (site web personnel, Mastodon) . Évalué à 3.

              La dernière fois que j’avais regardé (mais c’était aussi les documents initiaux, pas les mises à jour), il ne me semble pas qu’il y avait « CTRL+a » dans CUA …mais cela fait parti du standard de fait (de ce que j’ai pu constater) et ce n’est en effet pas mentionné dans la doc Emacs… Du coup, y a un truc à corriger certainement/probablement si quelqu’un veut bien signaler la chose (je pourrai éventuellement le faire dès que j’ai un moment, par contre côté suivi ça va pas être trop ça vu que je n’utilise pas souvent Emacs et que ce n’est pas installé sur tous mes postes.)

              Par contre j’ai un doute pour « CTRL+y » : non seulement ce n’est pas dans CUA, mais en plus il y a de tout pour le « redo » quelque soit la plateforme. Je trouve pas mal de « CTRL+SHIFT+z » aussi (devinez le « undo » dans ce cas ?), ainsi que du « CTRL+r » (d’habitude ces applis n’ont pas « refresh ») ou du « ALT+SHIFT+Backspace » (courant mais pas toujours documenté, et en regard avec le « undo » aussi). Puis divers trucs.

              “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • # Tu as franchi une première étape vers le Nirvana

    Posté par  . Évalué à 5.

    Les prochaines:
    - vim
    - vi
    - ed

  • # packages

    Posté par  . Évalué à 10. Dernière modification le 15 janvier 2024 à 13:47.

    Une petite liste de packages emacs que j'utilise pas mal:

    • lsp: similaire a eglot, permet les sauts dans le code dont tu parlais. Je l'utilise avec pyright pour du python. J'ai l'impression qu'il y a mieux dernierement.
    • magit: client git, super abouti, incontournable.
    • projectile: permet de naviguer dans un projet, pour rechercher des fichiers par nom, suivant le completion framework que tu as choisi, pour ma part j'utilise ivy.
    • quelques plugins orientes python: python-black, py-isort, pycoverage, python-pytest.
    • gitlab-pipeline: utile pour recuperer le statut et les logs si le CI est hoste sur gitlab, intégré a magit.
    • des packages plus annexes, mais tout de meme utiles: restclient, multiple-cursors, move-dup, djangonaut, counsel-spotify, docker, docker-compose

    Bref, oui Emacs depuis qu'il y a les packages je dirais il y a une dizaine d’années, c'est devenu top. Quand je partage mon écran avec des gens qui utilisent vim, les mecs bavent, c'est trop drôle :-)

    • [^] # Re: packages

      Posté par  (site web personnel) . Évalué à 1.

      je plussoie vivement magit.

      Je rajouterai org-mode, et org-roam pour tenir un journal et un wiki perso.

    • [^] # Re: packages

      Posté par  (site web personnel, Mastodon) . Évalué à 3.

      T’inquiètes, ces mêmes mecs bavent devant des gens qui utilisent vraiment Vim ou n’importe quel autre éditeur capable. Prions pour qu’ils ne passent pas à Emacs car ce serait la même pub catastrophique ;-)

      “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • # des outils rouillés

    Posté par  . Évalué à 5.

    j'utilise donc un mélange de "grep -r", de "find -name"

    Presque pareil ici, avec des alias utilisant ripgrep (rg) et fdfind (fd).
    Les gens qui braillent "il faut tout réécrire en rust" étaient saoulant, mais ça a donné des outils sympathiques (mais ça aurait pu être fait en n'importe quel autre langage).

  • # ELISP

    Posté par  . Évalué à -4.

    Alors… autant j'adore emacs mais autant je déteste ce GROS CACA d'elisp… mais qui a inventé ce langage ! Faut-être totalement maso !!!

    • [^] # Re: ELISP

      Posté par  (site web personnel) . Évalué à 5.

      Question de point de vue. Je ne suis pas programmeur professionnel, mais je suis très à l'aise avec l'Emacs Lisp. Au point que j'aimerais pouvoir n'utiliser que lui !

      Je l'ai trouvé très facile à apprendre, contrairement à beaucoup d'autres langages. Et je finis par chercher du Lisp/Scheme partout, parce que c'est le seul type de langage avec lequel tout me paraît clair et logique.

    • [^] # Re: ELISP

      Posté par  (site web personnel, Mastodon) . Évalué à 7.

      Le gars nous fait un caca nerveux pour cracher sur le fiston d’un des deux langages divins Bravo, t’as gagné tes points blasphématoires.

      “It is seldom that liberty of any kind is lost all at once.” ― David Hume

      • [^] # Re: ELISP

        Posté par  . Évalué à 0.

        Ce langage est totalement diabolique, il ne vient pas de Dieu mais du malin en personne

  • # Existe aussi Spacemacs

    Posté par  . Évalué à 4. Dernière modification le 16 janvier 2024 à 14:16.

    Spacemacs est une sur-couche de Emacs, dont le slogan est "The best editor is neither Emacs nor Vim, it's Emacs and Vim!". Plus sur https://develop.spacemacs.org/ .

    Ce sur-ensemble définit de nouvelles touches d'actions sur Emacs à partir de la barre d'espace.
    Ce qui fait que je l'ai adoptée depuis 3 ou 4 ans :
    - l'appui sur la barre d'espace affiche des choix de touches en bas d'écran (sorte d'aide contextuelle en ligne), ce qui minimise l'effort de mémorisation du moins au début. Si nécessaire, cette touche de barre d'espace est redéfinissable en une autre touche, j'ai choisi F12.
    - il intègre un gestionnaire de plugins très performant, défini à travers un fichier unique .spacemacs, dont une version prête à l'emploi est fournie d'office. A modifier selon ces envies et habitudes.
    - dans les plugins parfaitement intégrés à Spacemacs, on retrouve tous les grands classiques évoqués plus haut, comme projectile, org-mode, magit, helm, treemacs, etc… Plus le support de tous les langages de programmation classiques.
    - le projet est vivant, la version dite de développement est en mode rolling project, comme la testing de Debian.

    Le côté négatif :
    - le temps de chargement, dépendant évidemment du nombre de plugins. Ceci dit, si on a une session qui tourne pendant plusieurs jours ou semaines, ce temps devient négligeable. Pour avoir utilisé Eclipse dans une vie antérieure, ce n'est pas pire.
    - certaines fonctionnalités (je pense à l'agenda de org-mode) requiert d'insérer du code ELisp dans le .spacemacs. Ce qui n'est pas forcément évident quand on ne connait pas ce langage. Mais ne pas avoir un cliquodrome a aussi un prix.

  • # Ça me tente presque

    Posté par  . Évalué à 2.

    Dis-donc, ça me ferait presque réessayer Emacs. Je l'utilisais pas mal il y a une dizaine d'année, mais Tramp fonctionnait assez mal, et c'était un peu compliqué à configurer, c'était le bordel dans les packages. Les choses ont changé semble-t-il !

    Ce qui m'ennuyait le plus, c'était que je m'éloignait assez vite de la config par défaut, et donc dès que j'étais sur une autre machine (via ssh ou autre), j'étais mal à l'aise.

    Donc je suis passé à vim, qui me convient avec seulement quelques ajustements par-rapport aux défauts (comme limiter la coloration syntaxique au strict minimum).

    Bref, ton journal me fait reconsidérer cet éditeur vénérable sur lequel j'ai commis quelques affreux crimes logiciels. Merci !

  • # emacs et le debug

    Posté par  . Évalué à 1.

    Pour ma part j'ai malheureusement dû abandonner emacs (doom-emacs pour être précis) à contre coeur, simplement à cause d'une chose: la galère pour faire fonctionner les outils de debug.
    PHP (xdebug) qui marche quand il veut et JS (pas du tout) avec firefox https://marketplace.visualstudio.com/items?itemName=firefox-devtools.vscode-firefox-debug

    À un moment j'étais en mode schizophrène avec emacs par défaut, et vscode(ium) pour le debug (où là ça juste marche du 1er coup sans prise de tête). À la fin je me retrouvais avec le même fichier ouvert dans les 2 éditeurs, et ne plus savoir où j'en étais.
    Du coup je suis en ce moment avec vscodium en mode vim pour le clavier (comme doom emacs). C'est pas fou, mais bon ça fonctionne…

Suivre le flux des commentaires

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