Sacha Chua - category - emacs-chat-podcast

Sacha Chua

Emacs, sketches, and life

Episodes

  1. Sep 1

    Emacs Chat 30: Fabrice Niessen (en français, partie 2)

    Nous avons parlé en direct avec Fabrice Niessen d'Emacs pour la deuxième fois. Voici ses notes. Watch on YouTube Correction : J'ai voulu dire Speaches (un serveur de reconnaissance vocale) au lieu de speechd (un serveur de synthèse vocale) Voici notre conversation précédente : Emacs Chat 28: Fabrice Niessen (en français) Chapitres 0:00 Introduction 3:00 gptel 13:42 diff 17:52 gptel-commit-message 23:30 docstrings 24:03 hs-minor-mode - hideshow 31:03 Super-whisper 41:21 Dotfiler 59:12 Enseignement d'Emacs La transcription légèrement corrigée Details 0:00 Introduction Prot: Tu peux prendre le lien correct cette fois. Fabrice: Ah, voilà, je suis prêt avec. Sacha: Ah, ok. Ok. Nous sommes en direct. Prot: Ah, nous sommes en direct. Très bien. Sacha: Donc, je vais passer à vos notes. Bonjour à toutes et à tous et bienvenue au 30e épisode d'Emacs Chat. C'est la suite de notre conversation avec Fabrice Nissen. Merci de nouveau Fabrice d'être là et merci également à Prot de nous rejoindre. Donc, on continue. Lors de la conversation précédente, nous avons parlé de ton expérience sur Windows et sur WSL, des thèmes de publication vers HTML ou vers PDF, de ton kit de configuration Leuven, des petites améliorations et des automatisations et des formations et des cours particuliers en français, en anglais, en néerlandais et en espagnol. C'est incroyable, ça! Du coup, si ça ne te dérange pas, j'essaie d'en savoir plus sur ton flux de travail, puis repasser à une discussion sur l'enseignement d'Emacs, de nombreux changements et de grandes incertitudes à l'époque de l'IA. Qu'en penses-tu? Depuis notre conversation, tu as ajouté beaucoup de fonctions, d'outils, de préréglages (presets) de gptel à ta configuration. C'est un sujet très tendance YouTube a évidemment beaucoup de video de ce genre en anglais, mais pas encore en français, je pense. Peux-tu nous montrer ton flux de travail avec l'IA sur Emacs? Fabrice: Volontiers. Merci pour l'invitation et l'image bouge. Merci pour l'invitation pour cette trentième fois. Donc, je vais partager mon écran. Prot: Merci. Fabrice: Alors, je tape share, voilà. Et donc, ce sera celui-ci. Est-ce que vous voyez mon écran ? Prot: Oui, je peux voir ton écran. Fabrice: Ok, très bien. Très bien. 3:00 gptel Fabrice: Donc en fait, sur gptel, j'utilise pas encore beaucoup, beaucoup, beaucoup, mais de plus en plus. Je suis aussi un peu novice, un peu, mais j'ai effectivement, et récemment d'ailleurs, fait quelques petites améliorations de layout au standard. Donc j'ai, par exemple, utilisé le raccourci C- pour lancer… Je n'ai pas lancé le chat. Je vois que je n'ai pas ma dernière configuration. C'est peut-être l'occasion aussi de parler, juste un petit break. Vous voyez que j'utilise Helm. Je ne sais pas ce que vous utilisez vous. Je suis extrêmement content de Helm, ce qui me permet de taper. Je ne dois plus savoir où se trouve un fichier, dans quel répertoire. Il suffit que je connaisse quelques morceaux de son nom. Et je vais retrouver directement le fichier ou le buffer actif. Donc ici c'est gptel et ce sera le point el. Il est là. Donc ici, je vais lancer et je vais faire vb rapidement pour le keychord eval-buffer. Voilà, donc il est évalué. Donc je vais avoir un look un peu différent maintenant si je recommence. Voilà, C-. Donc on peut lui dire bonjour. C-c C-c pour envoyer. Voilà. Et donc ici il répond. Donc une petite utilisation que j'ai faite, c'est gptel-highlight-mode qui permet de mettre la réponse avec un certain fond et une petite barre ici dans la frange pour bien identifier la différence entre les questions et les réponses. Je peux lui demander d'écrire Un exemple de code Python. S'il fait comme d'habitude, il va faire la suite de Fibonacci. Voilà. Et donc, qu'est-ce qu'il a fait ? Ah non, les nombres premiers. Ici, c'est quelque chose que je commence à utiliser de plus en plus, le buffer de conversation gptel. Une petite customisation que j'ai faite. D'ailleurs, j'ai envoyé un issue à l'auteur de gptel pour éventuellement qu'il l'introduise directement dans... Dans gptel, c'est le fait de recoloriser les codes blocs dans les réponses en utilisant la couleur que j'ai dans mon thème pour Org Mode. Donc ici, c'est exactement comme dans un fichier Org Mode. J'ai le fond jaune pour le code et les délimiteurs ici, de début et de fin, en gris. Et ça, c'est très important, je trouve, pour mettre en évidence comme il faut le code bloc. Et le fait, bon ici ce n'est pas de l'Emacs Lisp, mais si j'avais demandé, si je pouvais demander de faire la version, donnez-moi la version de l'Emacs Lisp. C-c C-c. Et l'avantage évidemment de faire ici, donc à la fin de la réponse, il y a un scroll automatique vers le bas. Ah d'accord. Et ce qu'il fait aussi, c'est qu'il fait un formatting pour que ça reste moins de 80 caractères. Et donc ici, l'avantage, c'est que c'est dans Emacs et que c'est l'Emacs Lisp. Je peux directement faire C-x C-e. Et je pourrais tester les fonctions. Je pourrais faire ici. Ça me permet d'éviter de faire des copier-coller entre ChatGPT ou Copilot ou n'importe lequel. Ici j'ai tout directement là dedans. C'est extrêmement pratique. Sacha: Tu as aussi des fonctions pour ajouter des contextes, des fonctions, d'autres choses dans ta configuration. Au lieu d'utilisation de conversation buffer, tu as aussi utilisé les fonctionnalités gptel dans ton code. Fabrice: Il y a le rewrite que j'utilise parfois, ou alors pour répondre avec le contexte, il y a notamment le add context ou add context file. Je n'ai pas encore beaucoup joué avec, donc je sais qu'on peut aller dans Dired et puis faire gptel-add-file, add context file, je crois. Et je l’ai déjà bindé sur C-c g, donc tout ce qui est C-c g et c’est gptel. J’ai déjà utilisé le raccourci avec un petit a, donc C-c g a pour ajouter du contexte. Mais je ne l'ai pas encore vraiment utilisé, donc je n'ai pas encore beaucoup d'expérience avec. Par contre, je fais parfois dans des fichiers, je peux faire, si je prends un fichier Org, on peut aller dans le fichier ici avec mes petites notes d'aujourd'hui. Ça pourrait m'arriver ici de dire je veux traduire ces deux paragraphes en anglais par exemple. Je vais les sélectionner. Je vais faire C-u C-c RET pour avoir le menu de gptel. Là, je vais changer la directive puisque la directive ici c'est tu es un assistant, etc. Je vais changer la directive. Je vais en fait utiliser le S, Set System Message. Là, j'ai une série de prompt, en fait, de system prompt, de directives, ça s'appelle, sous gptel. Donc, une série de directives, de prompt qui sont prêts. Mais ici, je vais faire un spécifique. Donc, je vais encore faire une fois s. Et là, je vais taper, par exemple, traduit. Là, quand on a fini, on peut faire C-c C-c. Ici, on voit la directive qui est là. Pour l'instant, si je ne change rien, il va envoyer ma sélection et il va insérer la réponse. Là, je ne vois pas très bien. Il faut que je déplace un truc. Il va insérer la réponse à la fin. Je pourrais faire ça, par exemple, pour voir comment il a traduit. Comme ça, je garde au-dessus l'input. Je vais faire effectivement RET ici. Parfois, c'est un peu compliqué à lire. Prot: Qu'est-ce qu'il m'a fait ? Fabrice: On dirait qu'il a pris plus de lignes. Sacha: Il y a un problème des démos en direct. Fabrice: Je vais bien le refaire. C-u C-c RET. Je vais bien sectionner ma région. La directive est là. Donc, je vais faire ici Enter. Voilà. Donc j'ai vu que l'input était, la section était toujours sélectionnée, donc j’ai fait C-w pour l'entrée, et puis j'ai gardé ce qu'il y a. Donc ici, voilà, typiquement, il a fait le job facilement, donc je suis nouveau restant dans Directement dans Emacs, on fait des copies-coller avec d'autres interfaces externes. Sacha: Je vois que tu peux aussi remplacer la sélection avec les résultats ou peut-être rediriger l'output à un autre tampon pour comparaison. Fabrice: Exact. Donc, je n'ai pas encore tout utilisé, mais je pourrais ici essayer. On va essayer. On va traduire en français, par exemple. Donc, j'ai bien sélectionné. Je vais faire C-u C-c RET pour avoir de nouveau le menu. Ou alors, M-x, j'ai fait tel menu. Donc là, je vais changer et je vais mettre la directive 2 fois S. Et cette fois-ci, je vais traduire en français. C-c C-c, voilà. Et donc, je vais mettre ici le respond in place. Et donc, en théorie, il va écraser ma sélection par sa réponse. Donc, je vais faire le i ici. Et donc, en fait, il faut toujours lire la dernière ligne ici. On voit ce qu'il va faire. C'est un résumé de ce qu'il va faire en fonction des options qu'on a choisi. Donc ici, quand je vais faire ret, quand je vais faire return, il va remplacer la sélection avec la réponse. Donc je fais RET. Ah, et là j'ai peur. The conversation must end with a user message. Qu'est-ce qu'on va faire ? On va rester, on ne sait jamais. C-x C-x C-u RET… Non, ce n'était pas ça. C-x u. C-x u. Voilà. C-x C-x C-u RET Ben si, c'est ça. Non, C-u C-c RET. Il y a trop de raccourcis. Je fais la sélection, voilà. C-u C-c RET. J'ai mon menu, j'ai ma directive en haut qui est bonne. Je vais faire le i, Replace, la sélection du response, RET. Bon, j'ai l'erreur. Donc là, il faudrait que je regarde un peu plus. Je n'ai pas beaucoup utilisé ça. Et en fait, justement, sur le rewrite, il faut que j'utilise aussi un peu plus pour du texte et pour du code. Et je sais qu'il y a plusieurs possibilités après. 13:42 diff Fabrice: Il y a aussi moyen de dire, il va remplacer en théorie par le nouveau texte, mais il y a moyen de montrer aussi son changement sous forme de diff ou de ediff. Donc il y a moyen de dire accepte. J’ai vu qu’après on peut faire C-c C-a pour accepte, C-c C-e pour ediff, C-c C-d pour diff. Et donc i

  2. Aug 23

    Emacs Chat 29: Abdallah Maouche (en français)

    Nous allons parler en direct avec Abdallah Maouche (heiwiper) (heiwiper/emacs.d, Gitlab, Github) d'Emacs, de ses flux de travail, de sa configuration, et d'autres sujets en français. Je suis un peu intimidée, mais si vous posez vos questions dans le chat, je pense que nous pouvons survivre à mon faible niveau de français. =) Watch on YouTube J'ai essayé de corriger la transcription, mais je crois qu'il y a encore beaucoup d'erreurs, donc n'hésitez pas à m'envoyer un message. La transcription légèrement corrigée Details 0:01 Introduction Sacha: Ok, vous êtes en direct. Prot: On a le nouveau lien ou c'est le même ? Sacha: C'est le même lien que Google Meet mais je vais copier le nouveau lien. C'est YouTube.com, sachactube... C'est difficile. Oui. Prot: Oui. Sacha: Je ne peux pas poster le chat. Donc, je vais poster sur les conférences. Comment dire? Ah! Ajoutez un commentaire. Et je vais aussi ouvrir. Oui. Donc, le chat est ici. Je pense. Prot: Ah, take two. J'ai trouvé. Oui, oui. Abdallah: Oui, j'ai trouvé moi aussi. Sacha: Ça marche? Merci beaucoup pour votre patience. L'introduction ! Bonjour à toutes et à tous et bienvenue dans le troisième épisode d'Emacs Chat en français et le vingt-neuvième épisode de la série. Notre invité aujourd'hui est Abdallah Maouche, qui s'est fait aussi appeler par son pseudo heiwiper. Il vit en Algérie et le français n'est pas sa langue maternelle, mais il s'y est assez courageusement avec nous. Si on se retrouve totalement bloqué, comme moi, justement, pas de souci, nous pouvons passer au franglais ou à l'anglais. Ce n'est pas grave. Bonjour Abdallah et encore merci d'être là. Abdallah: Merci, merci beaucoup. Merci pour l'invitation. Ça me fait un grand plaisir de parler à vous deux, car je vous suis sur votre blog et sur la chaîne YouTube. Donc, j'ai très hâte de converser avec vous. Sacha: Et merci aussi à Prot de se rejoindre à nous pour cette expérience. Nous faisons de notre mieux ensemble. Merci beaucoup. Prot: Je t'en prie, je t'en prie. C'est parti. Oui, c'est magnifique, c'est magnifique. 3:13 Apprentissage Sacha: Abdallah, contrairement aux invités précédents, tu utilises Emacs depuis seulement sept ans. Je plaisante. C'est déjà pas mal, c'est génial. Peux-tu me raconter ton parcours d'apprentissage d'Emacs moderne? Comment est-ce que tu l'as découvert? Abdallah: Donc, ça a commencé environ 2019-2020. À ce moment, j'ai découvert Linux pour la première fois et j'ai commencé à explorer les applications open source. C'était quelque chose de nouveau pour moi. Donc, à un certain niveau, j'avais besoin d'un texte éditeur parce qu'en université, on avait utilisé des environnements de développement spécialisés pour des langages spécifiques. Par exemple, il y avait Eclipse pour Java et je pense CodeBlock, c'était pour C, C++. Et puis au master, il y avait tellement de langage que c'était difficile de garder le même flux de travail. Donc, je me suis rendu au répertoire des applications de distribution Linux que j'utilisais à l'époque. Et j'ai parcouru la liste et j'ai trouvé plusieurs éditeurs et parmi ces éditeurs, bien sûr Emacs. Je l'avais installé, j'ai installé tous les éditeurs en fait. Mais le problème c'est quand je l'ai testé, ça n'a pas vraiment, ça m'a pas plu. C'était un peu, l'interface graphique était un peu, je ne sais pas comment dire, un peu moche. Oui donc, et aussi il y avait le logo Emacs avec le GNU et le E ça ressemblait à le symbole Epsilon. Donc ça me rappelait un peu des maths et je voyais les keybindings avec les moins et tout. Je me suis dit c'est un éditeur pour les mathématiciens. Donc j'ai installé Atom et j'ai utilisé Atom. Après quelques mois, je pense, j'ai vu une vidéo à propos de Spacemacs. Parce que j'apprenais Game Engine Godot. Donc j'ai vu dans une chaîne Spacemacs et c'était très intéressant. Donc j'ai installé et j'ai appris les keybindings de Vim parce que c'est plus recommandé dans Spacemacs. Et je l'ai utilisé pour une période et puis je pense que j'ai J'ai changé la configuration pour utiliser les keybindings Emacs après parce que l'intégration de Evil, l'intégration des Vim keybindings n'était pas parfaite. Il y avait des trucs qui manquent et c'était un peu frustrant. Donc, j'ai dû switcher à Emacs Keybindings. Et je pense, après un certain temps, j'ai eu mal à configurer Spacemacs. La communauté était un peu trop petite. Oui, quand je rencontre des problèmes et je vais dans le Reddit d'Emacs, je ne sais pas comment appliquer les solutions à Spacemacs. Donc, je me suis dit, je vais devoir changer et utiliser Emacs, ce qu'on appelle Vanilla Emacs. Je pense que j'ai vu les vidéos de David Wilson. Est-ce que vous le connaissez? Sacha: Oui, bien sûr. Abdallah: Oui, System Crafters. C'est sa chaîne YouTube. Et j'ai suivi son tutoriel et depuis ce moment, je configure mon Emacs from scratch depuis le début. Et maintenant, j'ai une configuration, celle que je vous ai envoyée. Je l'ai publiée sur mon GitHub. Et je l'utilise quotidiennement pour les trucs personnels et au travail aussi. Sacha: Les kits de débutants Spacemacs réduisent les peurs pour toi. Et après que tu [t'es] habitué à Emacs, tu repasses vers Emacs. Abdallah: Oui, exactement. Je pense que le point important à l'époque, c'était l'interface graphique. Spacemacs avait une interface déjà configurée et c'était un peu attractif quand on voit la config Spacemacs. C'est pour ça que j'ai utilisé Atom, parce que c'était un peu aussi... Il avait une interface qui m'a plu. Prot: Je crois que c'est aussi plus facile de découvrir les fonctionnalités avec quelque chose comme Spacemacs. Oui, je pense... Oui, c'est difficile. Abdallah: Oui, parce qu'il y a des... La configuration de Spacemacs, c'est comme si... La configuration de Emacs avec beaucoup d'abstractions. C'est comme si on ajoute des couches de programmation, couche de langage, je ne sais pas, Java ou bien quelque chose comme ça. Donc, on va ignorer le fait qu'il y a des serveurs LSP et tout. En fait, il faut juste spécifier quel serveur tu veux utiliser et Spacemacs va configurer tout. Donc, c'est une abstraction de la configuration Emacs. Mais ça reste en Emacs Lisp. Sacha: Est-ce que c'est difficile de traduire ta configuration de Spacemacs à ta propre configuration? Abdallah: En fait, je ne connaissais pas assez Emacs Lisp, donc je n'ai pas essayé, mais ce n'était pas évident parce que Spacemacs, je pense que c'est C'est très différent de la configuration Emacs. Je pense qu'il y a beaucoup d'abstractions. Ce n'est pas évident de transférer la configuration et la traduire. Prot: Parce que si Spacemacs utilise [les macros Emacs Lisp], tu dois connaître les macros. Autrement, tu ne peux pas transférer le même code. Abdallah: Oui, évidemment, vous avez raison. Oui, les macros, c'est un peu sensible. Sacha: J'aime bien ta configuration. Ta façon d'utiliser des variables pour simplifier ta configuration d'org-capture est une bonne idée. Peux-tu rendre cette section de ta configuration pour nous la montrer? Abdallah: Oui, bien sûr. Je vais juste partager mon écran. Sacha: J'avais piqué l'idée. C'est plus simple que mienne. Prot: Voler à volonté. Abdallah: Oui, bien sûr. C'est disponible dans GitHub, donc je pense que c'est... Ok, donc là, j'ai essayé de créer une configuration spécifique pour cette démo, juste pour montrer les différents trucs d'Org Mode et tout. Donc, on va aller vers la configuration des Org Capture, c'est ça ? Sacha: Oui, org-capture-templates. Oui, oui. Oui, oui, oui, j'adore. J'adore l'utilisation de variables pour simplifier la configuration. Abdallah: Oui, ce qui me plaît dans cette configuration, c'est que la partie où je définis le template, On dirait que c'est la note parce qu'il y a le titre et puis il y a des sauts de ligne et la concaténation ici, elle fait comme si c'est une note réelle. Et puis, la partie ici, ce n'est pas assez chargée parce que là, je définis juste la variable. Donc, je peux voir toutes mes captures dans une seule page. Je n'ai pas besoin de... Faire un scroll tout au long du fichier pour voir toutes les captures que j'ai définies. Sacha: Ta variable heiwiper/org-jira-task est définie dans un autre fichier, je pense? Abdallah: Non, j'ai transféré toutes les parties intéressantes dans un seul fichier juste pour la démonstration. Donc, vous pouvez l'avoir ici. Donc, cette template, elle me permet de créer une tâche et aussi associer le lien Jira pour cette tâche parce qu'on utilise Jira au travail. Donc, je vais vous montrer un exemple. Par exemple, ici, je vais... Bon, j'ai exécuté l'org-capture. Vous voyez ici, il y a plusieurs captures, ce qu'on a défini ici. Et là, il y a Jira Task. Donc, je vais cliquer le J. Et bon, vous pouvez ignorer ceci. On va voir le prompt. Donc ici, ce que je fais, c'est que je prends la tâche Jira que j'ai sur email ou bien sur le navigateur. Je copie le lien. Par exemple, on va faire un exemple. https://jira.com/... Et là, d'habitude, les tâches Jira, c'est quelque chose comme ça. On va dire BG comme si c'était un bug ou... et une référence. On va dire 1, 2, 3, 4. Et puis, je vais cliquer entrer. On suppose que celui-ci est le lien de la tâche. Et là, je vais copier le titre de la tâche. Là, je vais juste écrire quelque chose. Et puis là, j'ai quelques tags. Ça va me servir plus tard pour organiser les tâches. Donc j'ai Bugfix, Feature, Refactor, Enhancement. Je vais sélectionner Bugfix. Et là, vous pouvez voir la tâche finale. Il y a le lien de la tâche. On peut cliquer sur C-c C-o pour accéder directement à la tâche. Il y a aussi la description. Et ce que j'aime dans ce workflow, c'est que je peux écrire Des choses ici à propos de cette tâche. Par exemple,

  3. Aug 14

    Emacs Chat 28: Fabrice Niessen (en français)

    Nous avons parlé en direct avec Fabrice Niessen (Formation Emacs Boost) d'Emacs, de ses flux de travail, de sa configuration, et d'autres sujets en français. Watch on YouTube J'ai essayé de corriger la transcription, mais je crois qu'il y a encore beaucoup d'erreurs, donc n'hésitez pas à m'envoyer un message. 0:00 Introduction 1:46 Le parcours 4:15 Emacs sur Windows : Cygwin et WSL 8:26 Les automatisations 12:15 Emacs Boost 15:45 Démarrage 21:15 Emacsclient 28:49 org-html-themes 35:02 Review 37:25 PDF 40:03 Key-chord 45:41 Copier sans sélectionner 48:29 fill-paragraph 50:02 Les macros 51:02 Volatile highlight 52:47 Les tableaux Org 55:43 Les formations et les cours particuliers La transcription un peu corrigée Details 0:00 Introduction Sacha: Ça marche! Prot: Maintenant, nous sommes en direct. Sacha: Succès! Bonjour à toutes et à tous et bienvenue dans le deuxième épisode d'Emacs Chat en français. C'est le 28e épisode de la série. J'espère que j'ai lancé la diffusion correctement cette fois. Aujourd'hui, notre invité est Fabrice Niessen, un consultant informatique qui habite en Belgique et qui a beaucoup de dépôts dédiés à Emacs et à Org Mode, tels que le kit de configuration Leuven et le thème de publication d'Org Mode org-html-themes. Il propose aussi des formations à Emacs en présentiel à Paris, à Rotterdam et dans d'autres villes. Merci d'être là, Fabrice. Fabrice: Merci pour l'invitation. C'est très sympa de votre part. Sacha: Merci aussi à Prot de m'aider pour la conversation. En fait, je pense que mon niveau de français est un peu trop faible pour ce genre de conversation, même avec le sous-titrage automatique de mon navigateur. Donc, je vais étudier le sous-titre après la conversation pour mieux en tirer parti. Nous faisons de notre mieux ensemble. Prot: Merci. Je t'en prie, je t'en prie. Non, de fait, très bien, très bien. Sacha: C'est parti. Fabrice, tu utilises Emacs depuis très longtemps. 1999, c'est plus logique en Belgique. Fabrice: Absolument. La Suisse est encore mieux avec le huitante. Sacha: Oui. 1:46 Le parcours Sacha: Comment t'as-tu découvert Emacs? Fabrice: En fait, j'ai découvert Emacs en 95, lors de mon stage de fin d'études. J'ai été dans une entreprise pendant six mois et là, ils utilisaient Linux. Enfin, Unix plutôt, un serveur Unix. Et donc, j'ai dû apprendre à développer sous Emacs. Alors, j'ai appris les keybindings, j'avais la refcard imprimée avec un stabilo pour souligner tous les trucs que j'apprenais au fur et à mesure. Ça m'a beaucoup aidé d'ailleurs, d'en apprendre comme ça, C-x C-s, et puis tous les suivants. Et après les six mois, c'était donc en 95, c'est l'époque de la sortie de Windows 3.11, je pense. J'avais un ordinateur avec Windows 3.11. Après, j'ai repris les habitudes point and click, donc des interfaces graphiques. Jusqu'en 99, à peu près 99, où un de mes collègues, Dominique, utilise Emacs. Et en fait, à l'époque, on avait déjà du versionning au boulot et c'était PCL CVS, c'était CVS le versionneur, donc un ancêtre de Subversion et un ancêtre de Git. Et il y avait un mode PCL CVS d'utiliser dans Emacs. Et quand j'ai vu ça une fois, c'est en fait un peu ça qui m'a fait sauter le pas de me dire il faut que je retourne parce que retourne regarder Emacs. Parce que c'était beaucoup plus simple pour lui, il avait modifié ses fichiers dans Emacs, il avait son petit truc où il sélectionnait les quelques fichiers qu'il voulait committer, il les sélectionnait, il faisait je ne sais plus quel key binding, et puis il mettait son message de commit, C-c C-c, et voilà, c'était fait. Et donc quand j'ai vu ça, alors que moi, il fallait que je passe dans le shell, il fallait que je fasse sans doute des CVS add ou des choses comme ça, des quelques fichiers, c'était beaucoup plus long. Beaucoup plus compliqué. Donc, j'ai recommencé à me réintéresser à Emacs. J'ai utilisé son .emacs et puis j'ai retiré un petit peu de trucs et j'en ai rajouté énormément. Et c'est comme ça que ça a commencé. Et voilà, c'est fantastique. Évidemment, une fois qu'on rentre dans Emacs, c’est-à-dire le C-s, rien que ça, la puissance du C-s, l’incrémental search, c’est dingue. Donc, c'est comme ça que j'ai commencé et puis je n'ai pas pu m'arrêter. 4:15 Emacs sur Windows : Cygwin et WSL Sacha: Tu utilises Emacs sur Windows. Fabrice: Exactement. Donc, effectivement, à l'époque, j'ai fait plusieurs tentatives. J'ai utilisé Cygwin, donc j'ai utilisé Emacs ou Cygwin. Je vais aussi utiliser le Emacs natif. Ce qui était compliqué, parce que j'écrivais quand même aussi beaucoup de shell scripts, etc. Donc là, c'était dans mon Cygwin. Avec les Emacs natifs, il y avait les montages, le /mnt, etc. Donc c'était surtout le Emacs Cygwin que j'utilisais. Et depuis maintenant 3-4 ans, 4-5 ans, Windows a eu la géniale idée de mettre le WSL, donc Windows Subsystem Linux, et donc dans mon Windows, j'ai un vrai Linux, encore mieux, qui est plus puissant que Cygwin encore. Et tout est prévu, tout est interconnecté. Donc je peux passer, je peux être dans le monde Linux et voir mes fichiers qui sont sur le c: et vice versa, ce qui était plus compliqué avant. Donc voilà, c'est fantastique et donc j'utilise maintenant WSL. Je n'ai plus que ça et ça marche extrêmement bien. Et c'est mon environnement de travail. Prot: A-t-il des difficultés d'utiliser Emacs sur Cygwin ? Ou c'est comme WSL ? Fabrice: C'était un émulateur. Il y avait à peu près tout ce que je voulais quand même. Mais il n'y avait pas tous les outils. Peut-être des outils style... Non, et encore, je dirais des bêtises. Top, je pensais à top, etc. Mais je pense que non, ça, c'était aussi implémenté. Mais bon, il y avait un certain souci. Il y avait un certain nombre de commandes implémentées. Ici, c'est un vrai Linux. Et alors avec sudo apt install, tandis que sous Cygwin, il fallait installer des packages séparément. Donc on a une petite interface, on sélectionne les packages. Ici, je recopie ce que je peux trouver sur le web. Si je veux installer R, j'utilise le langage R, sudo apt install R et des choses comme ça. Donc c'est beaucoup plus facile. C'est vraiment typiquement tout ce que les gens font qui n'ont que Linux. C'est exactement les mêmes commandes. Je trouve ça beaucoup mieux, c'est beaucoup plus intégré. Sacha: Je pense que c'est aussi plus vite qu'utiliser Emacs sur Windows directement parce que Magit, par exemple, Magit est trop lent, je pense, si tu utilises Magit sur Windows directement. Fabrice: Ça c'est un truc, c'était déjà pareil avant avec Cygwin aussi. Au début, j'avais installé mon WSL Linux, donc il est monté, et j'avais mis Emacs, je pense... Attends, comment ça allait ? Non, je mettais mes repos à l'extérieur, dans le C:. Et en fait, là, il y a quand même un passage entre les deux mondes qui est extrêmement lent. Rien que pour lancer Emacs, mon Emacs se lance en une à deux secondes. Là, dans ce cas-là, ça se lançait en une ou deux minutes. Donc, il y a une différence énorme. Donc, en fait, il faut vraiment tout mettre, vivre uniquement dans le monde WSL, dans le monde Linux. Donc, mes repos sont dans Linux. Mon Emacs, il est dans mon Linux. Mais en fait, les fenêtres sont partagées. C'est ça aussi qui est bien. Je peux avoir une fenêtre, ma fenêtre Emacs, elle est à côté d'une fenêtre Outlook, par exemple. Et les presse-papiers, etc. sont complètement interconnectés aussi. Donc, c'est vraiment comme si c'était une application Windows. Sauf que réellement, elle est dans le sous-système Linux. Mais il faut vraiment mettre tout dans le sous-système Linux pour que les performances soient potables. Sinon, il y a quand même des lenteurs pour les fichiers qui sont lus d'un domaine à l'autre, d'un espace à l'autre. Les shared files, quoi. Tout ce qui passe par le point de montage est quand même beaucoup plus long. 8:26 Les automatisations Sacha: Maintenant, tu as un environnement plus pratique pour tes automatisations. Parle-moi de tes automatisations préférées pour les tâches répétitives. Fabrice: Volontiers. En fait, j'ai préparé un fichier Org, évidemment, pour préparer cet entretien. Et donc, vous voyez mon écran ou je dois partager ? Oui, vous le voyez, c'est ça ? Toujours ? Prot: Oui, oui, oui, oui, je peux voir ton écran. Fabrice: Donc, voilà. Voilà, ici, j'ai mon Emacs en grand. Et vous voyez dans le titre ici ? Le titre, je le... Oui, toutes les 20 secondes, il y a un petit truc comme ça. Toutes les 20 minutes, il faut poser les yeux pendant 20 secondes. Toutes les 20 minutes, j'ai un programme qui m'interrompt pendant 20 secondes. Ça va encore arriver deux fois tout à l'heure. Et donc ici, dans le titre, vous voyez GNU Linux Emacs. Donc, on voit vraiment que c'est l'Emacs du GNU Linux. Et avec ici, j'ai la date dans laquelle il avait été compilé. Et puis j'ai le PID aussi. Parfois, dans le temps, j'avais plusieurs Emacs, donc j'ai le PID qui est aussi indiqué. Comme ça, quand je devais faire un kill, ça arrivait parfois de devoir faire des kills, je savais au moins lequel il fallait que je kill, parce que j'avais l'information directement dans le titre. Donc ici, j'ai une petite présentation Org. Avec un agenda. On a parlé de mon parcours, de comment j'ai fait la connaissance d'Emacs. Tu posais des questions sur différents repositories que j'ai rendus publics sur GitHub. Il y a le fameux thème de couleur Leuven. Leuven, pour information, c'est la ville où j'habite. Prot: Une belle ville. Fabrice: Très belle ville, absolument. Et voilà, j'ai un peu copié Till Tantau, je pense, le créateur de Beamer, qui avait donné des noms pour ses thèmes, Madrid, etc., Hanover, là où il était passé faire des séminaires. Donc c'est comme ça q

  4. Aug 6

    Emacs Chat 27: Richard Bonichon (en français)

    Prot et moi avons parlé en direct avec Richard Bonichon (emacs.d, GitHub) d'Emacs, d'OCaml, de ses flux de travail, de sa configuration et d'autres sujets en français. J'ai raté le début de la diffusion en direct. Je suis vraiment désolée ! Heureusement, j'ai enregistré toute la conversation localement. Voici la vidéo complète : Watch on YouTube J'ai essayé de corriger la transcription (voici le fichier VTT), mais je crois qu'il y a encore beaucoup d'erreurs, donc n'hésitez pas à m'envoyer un message. Merci beaucoup à Richard, à Prot, et à tous les auditeurs ! À la semaine prochaine pour le 13 août : Emacs Chat avec Fabrice Niessen ! La transcription un peu corrigée Chat Si vous voulez parler d'Emacs avec Prot et moi en français, n'hésitez pas à me contacter! La transcription un peu corrigée Details Chat sachactube:​​ J'ai totalement oublié de commencer la diffusion en direct ! Je vais publier l'enregstrement. alainlamourec6332:​ ​ca rigole syshYarak:​ ​bonjour j'ai une petite question pour vous j'ai deja travaillé pour emacs , avec la version préconfigurés spacemacs , orgmod etc ….. je préfère édité avec vim juste pour ne pas utiliser la souris, syshYarak:​ ​ma question c'est la suivante, je pense que c'est une rabbit hole au lieu de focaliser sur les choses les plus importantes, au lieu de créer des projets etc on se concentre sur les dotfiles etc ….. phyzixlab:​ ​Sacre bleu protesilaos:​ ​Salut les gens! alainlamourec6332:​ ​Salut Prot JonKishore11:​​ Vous ne connaissez pas l'anglais ? sachactube​​C'est: en français aujourd'hui, pour le pratiquer ! =) 8:28 AM@syshYarak​ ​mr si tu veux sauver un ancien utilisateur d'emacs on me proposant un M2 ou une thèse , car je suis ingénieur au Maroc , prot je ne t'ai pas reconnu t'avais de Long cheveux, protesilaos:​ ​Oui, maintenant mes cheveux sont courts. C'est une catastrophe, haha! syshYarak:​ ​j'avais l'habitude de suivre tes cours de politique européenne prot. from emacs to politics syshYarak:​ ​lisp programmation fonctionnel ? ahyass​​oui: c'est du fonctionnel 8:42 AM@ahyass​ ​dans mon école d'ingé tout le monde utilise vim/neovim, emacs est considérer comme sauvage un peu ahyass:​ ​j'ai plus d'amis qui utilisent helix que emacs, même zed est plus populaire j'ai l'impression syshYarak:​ Gestionnaire de fenêtres genre i3wn ou …? ahyass:​ ​niri est d'après mon expérience le meilleur window manager protesilaos:​ ​moi j'utilise herbstluftwm syshYarak:​ ​i3wm on Windows et zellij come Terminal session manager au lieu de tmux , et glazewm dans ma windows machine syshYarak:​ ​j'essaie de laisser les choses simples, car l'optimisation prématuré et la source des pbs. syshYarak:​ ​next step learning french with emacs , en intégrant des algorithmes de répétition espacé protesilaos:​ ​en ce sujet là, il y a un paquet nouveau qui s'appelle "srs.el" protesilaos:​ ​je croix que "package" est "paquet", mais je ne suis pas sur syshYarak:​ ​oui c'est ça prot , de toute façon je t'ai compris t'inquiète syshYarak:​ ​j'ai une petite remarque est ce que vous êtes averti qu'on peut utiliser emacs vim etc avec termux dans votre poche avec le SMARTPHONE et synchroniser votre travail avec synchthing??? syshYarak:​ ​non , la confite en elle même tu peux la synchroniser et compilé sur termux , syshYarak:​ ​non mais plus tôt une intégration d'ai au niveau du kernel pour ce qui est tout tâche, en ce qui concerne ce que vous voulez spécifiquement pour vous , un entraînement SUBJECTIVE de chaque individu syshYarak:​ ​sera envisageable pour réduire les erreurs pour chaque personne pour reprendre au prof View Org source for this post You can e-mail me at sacha@sachachua.com.

  5. May 29

    Emacs Chat 24: Omar Antolin Camarena

    [2026-05-31 Sun]: Updated transcript and added a link to Karthik's notes. I chatted with Omar Antolín Camarena about Emacs, keyboard macros, temporary buffers, Embark, and other workflow tips. Video not supported. Thumbnail: View in the Internet Archive, read the transcript online, watch or comment on YouTube, download the audio or the transcript, or e-mail me. Related links: Omar Antolín Camarena: a researcher at Instituto de Matemáticas, UNAM in Mexico City M-x apropos Emacs oantolin/emacs-config: My personal Emacs configuration · GitHub oantolin/placeholder: Emacs package to treat any buffer as a template with placeholders to fill-in · GitHub oantolin (Omar Antolín Camarena) · GitHub Omar Antolín (@oantolin@mathstodon.xyz) - Mathstodon u/oantolin on Reddit #Emacs #Embark with Omar Antolin, Ramin Honary and Kent Pitman #lisp and more #interview #lispyGopherClimate - toobnix Karthik's notes on Emacs Chat 24: Omar Antolin Camarena You can add the iCal for upcoming Emacs Chat episodes to your calendar. https://sachachua.com/topic/emacs-chat/upcoming-emacs-chats.ics Find more Emacs Chats or join the fun: https://sachachua.com/emacs-chat Chapters 0:00 Ignore this part 0:18 Opening 0:46 How did you get into Emacs in the first place? 6:01 Repeating edits 7:28 dot-mode: repeating commands 9:24 block-undo: undo things as a chunk 10:29 Starting and stopping keyboard macros 12:15 Keycast and Embark 13:33 apply-macro-to-lines-of-paragraph 16:34 embark-on-last-message 18:06 tmp-buffer with a major mode 19:26 placeholder 20:38 enable-recursive-minibuffers 22:57 Overriding embark-select 23:32 quick-calc 26:30 Multiple cursors 27:40 Block-undo and regular undo 28:53 Cycling through Embark targets 31:39 Imenu for navigation 32:51 Collaboration 38:01 Technology adoption and Emacs packages 40:06 Personal packages and naming conventions 42:26 find-file-at-point and directory names 43:49 The value of using Emacs’s APIs 44:56 org-ql and usual files 47:06 Shortcuts for org-ql search syntax 47:43 Org TODO states: TODO, WAIT, DONE, NOPE 48:26 The inserter macro 50:05 luggage: generative art experiments 53:49 Teaching and Emacs 54:53 The print10 generator 56:23 arXiv 58:29 Toggle keymap 1:00:54 isearch-delete-wrong 1:03:14 isearch - continue from the beginning of the match 1:05:12 Using keymaps to remember sets of commands 1:06:04 Other things from the config Transcript Expand this to see the transcript and screenshots 0:00 Ignore this part Sacha: Cut off at, you know, roughly an hour and seven minutes from now. She's going to come out and have lunch. Okay. All right. Going live. Alright folks, we are here a little bit early. 0:18 Opening Sacha: This is Emacs Chat 24 with Omar Antolin Camarena, whom we know from Embark and Orderless and a lot of other little packages that I personally use on a daily basis. I'm very much looking forward to this conversation. Omar: Yeah, so am I. Very excited. Sacha: Of course, before we dive into all these lovely details, tell us a little bit more about your context. You're a researcher at the Mathematics Institute. I can see why Emacs would be a great fit for that. 0:46 How did you get into Emacs in the first place? Sacha: How did you get into Emacs in the first place? Omar: I think it's just by virtue of being old. When I started out looking for a text editor, there were not that many great options. When I was a teenager, 30 years ago, I decided to install Linux because I heard about it. That was the era where you went to a newsstand and you bought a Linux magazine that came with a CD, and I installed Linux from that. I think it was Slackware, maybe. I was already a hobby computer programmer. I've been learning programming languages since I was a child, when my father gave me my first computer. I think that was the main reason I switched to Linux. I noticed that people wrote many more interpreters and compilers for Linux than for Windows. That's why I wanted to use Linux. I needed a text editor that handled all sorts of weird programming languages. I was looking for a general purpose one, not an IDE. I used IDEs, younger ones, like Turbo Pascal. Probably that was the main one. I loved that. It was great. I went through the Linux distro, tried a bunch of editors. I settled on Emacs and Emacs-like editors. I tried Jove, which stands for Jonathan's Own Version of Emacs. And there was also an editor called... Oh, I forget. There was one that had its own extension language called S-Lang. I used that for a while. A little later, I remember using Slava Pestov's jEdit. I really like that, too, although Java is not that fun to write extensions in. I was looking for an editor and I wanted it to be extensible, which is funny because I hardly ever extend it. I just wanted there to be the option. I used Emacs for a long time. But when I got serious at being efficient at text-editing, I actually switched to Vim. I switched back to Emacs many years later because of one very specific problem in Vim. The syntax highlighting for LaTeX files is pretty slow. On a normal computer, you won't notice that it's slow. But I had a little netbook that was like 10 years old when I had it. I took it to class to take notes in math courses. I was writing in LaTeX Live with a bunch of macros to insert things. The syntax highlighting meant that Vim lagged behind my typing. I'm not that fast of a typist, so it was problematic. The Vim manual has an entire section on what to do if text highlighting is slow. You can look for it with Vim :help tex-slow That pops up the right section of the manual. I tried everything that it said there and they all made it slightly faster, but none of them really solved the lag, other than turning off syntax highlighting. I turned off syntax highlighting and took notes for like half a semester, and then I decided to try Emacs on that old netbook. Its syntax highlighting was perfectly snappy. This is just a weird thing in Vim that specifically LaTeX syntax highlighting is slow. I never noticed it being slow in any other... I don't know what Vim calls them, what Emacs would call a major mode. It was only ever slow in LaTeX, but that was enough to get me to try Emacs. But by then in Vim, I had learned that you want very granular motion commands to move by word or by sentence, and you want to be able to be placed at the end of the word or at the beginning of the word. All of these higher-level editing constructs that Vim really pushes you toward. In Emacs, I hadn't done any of that before. I moved around with the arrow keys. But when I came back to Emacs after having been in Vim, then I wanted to get serious about editing efficiently in Emacs. I think I actually like it better than Vim now. But yeah, that's why I switched back to Emacs. It's just this quirk that LaTeX syntax highlighting is slow in Vim. Sacha: Well, their loss. So you tried a whole bunch of other editors. You got into Vim because you wanted to be more efficient. Getting deeply into Vim was great, but you ran into that bug. So you switched to Emacs because it was more efficient, more performant. All that experience with Vim has made you a better Emacs user because now you're like, okay, you appreciate all the navigation and movement. And you were telling me over email... Omar: Things I missed from Vim. Sacha: Yeah, You were telling me over email how the kind of the keyboard macros that you got used to in Vim, you've translated some of that over to Emacs and how you use them. We definitely want to get into that. Omar: Keyboard macro-like things. In Emacs, for a while, I used multiple-cursors. I liked it a lot. 6:01 Repeating edits Omar: One thing I really missed from Vim is the dot command that repeats the last edit. But in Vim, edits are composite things. You have a command to change a sentence, for example. That will delete the current sentence, put you into insert mode, let you type a new sentence, and when you press escape, that concludes the edit. The whole edit is the operation of deleting the current sentence and replacing it with the specific thing you typed. That is a thing you can repeat. The repeatable edit commands in Vim are much coarser and more conceptually appropriate units than in Emacs. The repeat command repeats the last Emacs command, but everything runs a command in Emacs. You can repeat inserting the last character. That's not very useful. You want to repeat at least the whole consecutive stretch of characters you inserted. Undo in Emacs does do that. Undo coalesces. If you type a bunch of characters and you undo, it doesn't undo them one by one. It undoes them. It clumps them depending on pauses between your typing. That's fine. I want that sort of coarseness. I don't want to undo every single step at a time. Similarly, when you repeat things, you don't want to repeat every single step. I think Vim has like a pretty good unit of things you can repeat. I was missing that in Emacs. 7:28 dot-mode: repeating commands Omar: There's a package called dot-mode which I used to use and I like a lot. I'm not exactly sure why I stopped using it. So this gives you a more Vim-like experience for repeating commands in Emacs and what it does is that it watches you as you type and it constantly makes a keyboard macro out of the last consecutive stretch of buffer modifying commands. So, for example, in Vim, if you want to change a word, there is a change word command, and you type c w, and then you change the word, and then that thing gets repeated. In Emacs, to change a word, it's not a single unit, right? You delete the word, and then you type in something new, and each character you type is running insert-char. dot-mode will coalesce all of that into a single keyboard macro that you can repeat, right? If you do some motion command that doesn't modify the buffer, and then you delete a word and type a new word, everything from the del

Ratings & Reviews

5
out of 5
3 Ratings

About

Emacs, sketches, and life