1 points par GN⁺ 5 시간 전 | 1 commentaires | Partager sur WhatsApp
  • Les fonctionnalités de base d’Emacs comprennent de nombreux outils utilisables sans package supplémentaire, mais peu visibles, et même dans Emacs moderne 28.1+, on continue de découvrir des fonctions pratiques qui se prennent en main en moins de cinq minutes
  • Des tâches quotidiennes comme l’ouverture de fichiers, la collecte d’URL, la comparaison ou le suivi des modifications peuvent déjà être largement couvertes avec find-file, dired, ffap-menu, compare-windows et highlight-changes-mode
  • Les fichiers de sauvegarde et les fichiers de gestion de versions peuvent être regroupés dans un même modèle de travail, comparer avec une version précédente, en étendant la famille de commandes vc-diff
  • Les tâches d’édition, de navigation et d’affichage s’améliorent rapidement grâce à des fonctions déjà incluses, comme la famille apropos, find-function-on-key, kmacro-edit-lossage, subword-mode ou la keymap de manipulation d’images
  • L’idée principale est que, même si le répertoire lisp d’Emacs n’est pas immense, il reste encore beaucoup de marge pour élargir son flux de travail avec les fonctionnalités intégrées par défaut

Vue d’ensemble et périmètre

  • Les fonctionnalités d’Emacs souffrent d’un problème de découvrabilité, et cet article tente de le réduire en présentant une à une des fonctions intégrées peu connues mais utiles
  • Il s’agit du troisième article consacré à des fonctionnalités utiles mais moins connues incluses par défaut dans Emacs
  • Le caractère « moins connu » relève d’un jugement subjectif et désigne grossièrement des fonctions mentionnées moins de cinq fois, voire jamais vues, dans les discussions en ligne sur Emacs au cours des vingt dernières années
  • Les nouveaux utilisateurs d’Emacs feraient mieux de ne pas commencer ici ; cette liste devient plus utile une fois acquis les concepts de base et les packages le plus souvent recommandés
  • Les critères sont les suivants : n’utiliser que l’Emacs d’origine sans package, éviter une courbe d’apprentissage abrupte, exclure les fonctions gadgets et celles souvent citées, et partir d’un Emacs moderne 28.1+

Dictionnaire au survol : M-x dictionary-tooltip-mode

  • En activant dictionary-tooltip-mode, on peut afficher la définition d’un mot dans une infobulle au survol de la souris
  • tooltip-mode doit aussi être activé, mais c’est le cas par défaut
  • Si un dictionnaire local est configuré, il est utilisé en priorité ; le dictionnaire d’Emacs peut sinon généralement trouver des termes modernes et de l’argot via Wiktionary

Jokers dans find-file et dired

  • On peut utiliser des jokers même en mode interactif avec find-file et dired
  • Dans find-file, un motif comme *foo*.txt permet d’ouvrir plusieurs fichiers à la fois
  • Dans Dired, si l’on indique un joker de nom de fichier à l’ouverture d’un répertoire, on peut créer une liste personnalisée ne contenant que certains fichiers
  • Le flux d’exemple consiste à rechercher les fichiers temporaires d’AucTeX dans des sous-répertoires avec le motif */*_region_*, les sélectionner puis les supprimer dans Dired, avant de rouvrir plusieurs fichiers TeX des sous-répertoires avec un autre joker
  • Cette possibilité apparaît dans la signature de fonction lors d’appels programmatiques, mais il faut souvent lire toute la docstring pour comprendre qu’elle existe aussi en usage interactif
  • La fonction de jokers de Dired peut être éclipsée par un flux Dired plus moderne construit avec consult-find et embark-export, mais elle fonctionne immédiatement dans l’état par défaut

Liste des URI dans un buffer : M-x ffap-menu

  • ffap est la fonctionnalité find-file-at-point, qui vérifie si la position du curseur correspond à un chemin de fichier valide ou à une URL afin de pouvoir l’ouvrir
  • ffap-menu parcourt l’ensemble du buffer et fournit une liste des éléments ressemblant à des chemins de fichier ou à des URL
  • Comme elle utilise l’interface completing-read, on peut exporter dans un buffer la liste filtrée des candidats, en copier ou ouvrir une partie ou la totalité, ou les traiter avec Embark
  • Lister les liens munis de propriétés

    • Des applications Emacs comme EWW enregistrent parfois les URL non pas comme des liens en texte brut, mais via des propriétés de texte, et ffap-menu passe alors à côté
    • Pour compenser cela, une commande personnalisée inspirée de ffap-menu peut aussi collecter la propriété de texte shr-url
    • La commande d’exemple my/search-occur-browse-url est configurée pour rechercher à la fois les URL correspondant à l’expression régulière habituelle et les propriétés shr-url, puis pour ouvrir l’URL choisie avec browse-url ou browse-url-generic

Comparer des fenêtres : M-x compare-windows

  • Emacs propose de nombreuses commandes de comparaison, comme diff, diff-buffers, diff-backup, dired-diff, vc-diff ou diverses commandes ediff-*
  • compare-windows compare le texte de deux fenêtres à partir de la position du curseur, s’arrête au premier point de divergence, puis le signale
  • Les éléments comparés sont la fenêtre active et celle que sélectionnerait other-window ; la fonction est moins riche qu’Ediff ou diff, mais plus simple et plus rapide à lancer
  • Elle compare uniquement le texte effectivement visible dans les deux fenêtres, sans tenir compte du type de buffer, de son état de modification, du fichier ou de l’état de gestion de versions
  • Si deux fenêtres affichent des parties différentes d’un même buffer, on peut aussi comparer deux fragments de texte dans un seul et même buffer
  • Elle peut également comparer des listes de répertoires ; dans l’exemple, la première divergence détectée correspond à l’heure de modification d’un fichier
  • Avec un argument préfixe, on peut ignorer les différences d’espaces

Comparer des répertoires avec Dired : M-x dired-compare-directories

  • dired-compare-directories demande dans Dired quel répertoire comparer et signale, dans les deux listes Dired, les fichiers dont les noms diffèrent
  • Cette approche couvre les cas d’usage les plus courants de comparaison de répertoires
  • Comme il s’agit d’une comparaison au niveau des fichiers, on peut fournir des critères de correspondance personnalisés incluant des propriétés comme l’heure de modification ou la taille
  • La condition (> mtime2 mtime1) permet d’afficher les fichiers modifiés plus récemment
  • La condition (/= size1 size2) permet d’afficher les fichiers qui ont le même nom mais une taille différente
  • Si l’on a besoin d’une comparaison plus interactive, ediff-directories peut aussi être utilisé

Mise en évidence des changements dans un buffer : M-x highlight-changes-mode

  • highlight-changes-mode met en évidence les endroits modifiés dans un fichier et peut servir d’alternative « en direct » à des commandes diff comme diff-buffer-with-file
  • Son comportement par défaut consiste à mettre en évidence les modifications effectuées entre l’activation et la désactivation du mode ; il ne s’agit pas d’un surlignage automatique limité aux seules modifications non enregistrées
  • En utilisant before-save-hook et after-save-hook, on peut construire un flux où le surlignage est désactivé avant l’enregistrement puis réactivé après, afin de ne mettre en évidence que les modifications faites avant sauvegarde
  • Le code d’exemple active highlight-changes-mode dans les buffers de fichier via text-mode-hook, puis ajuste l’état du surlignage avec des hooks avant et après la sauvegarde
  • Sous la forme d’un highlight-unsaved-mode indépendant, cela devient un mode mineur qui met en évidence toutes les modifications jusqu’à l’enregistrement
  • highlight-changes-next-change et highlight-changes-previous-change permettent d’aller respectivement à la modification suivante ou précédente
  • Avec highlight-changes-remove-highlight, on peut supprimer la mise en évidence visuelle et n’utiliser que la navigation fondée sur le suivi des modifications

Rendre les fichiers de sauvegarde réellement utiles : la famille vc-diff

  • Le problème des sauvegardes Emacs

    • Emacs crée par défaut des sauvegardes périodiques des fichiers que vous modifiez et enregistrez
    • Ce système de sauvegarde est souvent cité comme une fonctionnalité agaçante qu’il faudrait désactiver avec make-backup-files
    • Il peut y avoir des préoccupations de sécurité si des fichiers sensibles sont copiés ailleurs sur le disque
    • Dans les autres cas, le problème tient surtout au fait que les sauvegardes se dispersent dans le répertoire de travail et qu’il manque une UI pratique pour les consulter ou les manipuler
    • Des options utilisateur comme backup-directory-alist, kept-old-versions, kept-new-versions permettent d’ajuster l’emplacement des sauvegardes et le nombre de versions conservées
    • Le paquet externe backup-walker fournit une interface pour parcourir les sauvegardes comme un voyage dans le temps
  • Extension de l’interface VC

    • Le paquet VC intégré à Emacs fournit une interface pour consulter les versions passées des fichiers sous gestion de versions
    • vc-diff compare un fichier avec la version précédente ou une version donnée
    • vc-ediff lance Ediff entre un fichier et sa version précédente ou une version donnée
    • vc-revision-other-window affiche la version précédente ou une version passée choisie à côté du fichier courant
    • Cette interface n’est pas limitée à Git, mais elle ne fonctionne pas sur les fichiers non versionnés
    • Surcharger ces trois commandes VC permet d’unifier, sous le modèle « comparer avec la version précédente », les buffers non enregistrés, les fichiers versionnés et les sauvegardes de fichiers non versionnés
    • Sur un fichier non enregistré, vc-diff et vc-ediff comparent le buffer et le fichier
    • Sur un fichier versionné, vc-diff, vc-ediff et vc-revision-other-window s’exécutent tels quels
    • Sur un fichier non versionné, ils comparent ou affichent soit la sauvegarde la plus récente numérotée, soit une sauvegarde choisie par numéro avec un argument préfixe

La famille apropos

  • describe-key, soit C-h k, est une touche d’aide extrêmement utile, car elle permet de vérifier directement quelle fonction est appelée par une frappe clavier
  • Comme deuxième fonctionnalité d’aide à apprendre, apropos est très puissant et constitue un point d’entrée pour comprendre l’organisation des fonctionnalités d’Emacs quand on ne sait pas quoi chercher
  • apropos n’est pas une commande unique, mais une famille de commandes de recherche spécialisées comme apropos-library, apropos-function, apropos-command, apropos-variable, apropos-user-option, apropos-documentation et info-apropos
  • La configuration d’exemple remplace apropos en regroupant ces commandes sous une keymap C-h a
  • Même sans inviteur comme which-key, on peut afficher la liste des commandes disponibles en appuyant sur C-h après la touche préfixe C-h a
  • customize-apropos rassemble les options, faces et groupes correspondant à un terme de recherche pour créer un buffer Customize sur mesure

Outils find-func : M-x find-function-on-key, M-x find-function

  • Quand un raccourci clavier ne vous plaît pas ou que vous voulez comprendre son comportement, vous pouvez aller à la définition de la commande qu’il appelle pour lire ou modifier son fonctionnement
  • Le flux habituel consiste à identifier la commande appelée par la touche avec describe-key ou C-h k, puis à appuyer sur s pour aller au code source
  • find-function-on-key supprime cette deuxième étape en allant directement du raccourci clavier au code source de la fonction
  • La configuration d’exemple lie C-h M-k à find-function-on-key dans help-map

copy-from-above-command et duplicate-dwim

  • Emacs a récemment ajouté plusieurs commandes de duplication de texte que de nombreux utilisateurs emploient depuis longtemps
  • copy-from-above-command copie du texte depuis la première ligne non vide au-dessus de la ligne courante, à la manière de C-y dans Vim
  • duplicate-dwim copie la ligne courante ou la région active sous la ligne courante, à la manière de yy<N>p dans Vim
  • copy-from-above-command copie des caractères depuis la ligne située au-dessus selon l’argument préfixe, mais l’advice d’exemple transforme le préfixe C-u en un comportement « copier toute la ligne du dessus et la commenter »
  • Avec un argument préfixe numérique C-<N>, on peut continuer à copier comme avant le nombre voulu de caractères depuis la ligne du dessus
  • duplicate-dwim impose de choisir si le curseur doit rester sur l’original ou se placer sur la copie après duplication, et une option utilisateur permet de définir cela
  • La configuration d’exemple fixe duplicate-region-final-position et duplicate-line-final-position à -1 afin que le curseur et la région se déplacent vers le texte dupliqué

Transformer l’historique des frappes en macro : M-x kmacro-edit-lossage

  • Les macros clavier d’Emacs peuvent capturer et rejouer non seulement des transformations de texte, mais toute séquence d’actions dans Emacs, y compris les clics de souris
  • Les macros clavier sont puissantes, mais elles imposent une charge cognitive importante, car il faut anticiper avant l’enregistrement qu’une action sera répétable et exécuter un comportement généralisé sans erreur
  • La commande . de Vim et le paquet dot-mode d’Emacs atténuent le problème de la répétition d’édition, mais n’ont pas le même périmètre qu’une macro clavier complète
  • view-lossage (C-h l) affiche l’historique des quelque 300 dernières frappes
  • kmacro-edit-lossage permet de créer une macro à tout moment à partir de cet historique de frappes
  • Le lossage est réellement éditable, ce qui permet d’insérer de nouvelles commandes dans l’historique lors de la création d’une macro
  • Les macros déjà définies peuvent être modifiées plus souvent avec edit-kbd-macro (C-x C-k e), mais kmacro-edit-lossage est utile dans les cas rares où l’on veut rendre répétable une opération complexe que l’on vient juste d’effectuer
  • Pour créer une macro généralisable, il faut souvent insérer un appel à kbd-macro-query dans le lossage

subword-mode, superword-mode et la grammaire des mots

  • Les commandes de déplacement et d’édition basées sur les mots dans Emacs utilisent la table de syntaxe propre à chaque major mode, et l’utilisateur peut ajuster ce qui doit être considéré comme un mot
  • En subword-mode, chaque composant d’un symbole en CamelCase est traité comme un mot
  • Par exemple, GtkWindow est séparé en Gtk et Window, EmacsFrameClass en Emacs, Frame, Class, et NSGraphicsContext en NS, Graphics, Context
  • En superword-mode, un symbole en snake_case comme this_is_a_symbol est traité comme un seul mot
  • En pratique, comme la manipulation des symboles est déjà bien prise en charge par les commandes *-sexp, superword-mode est moins utile que subword-mode
  • Modifier la table de syntaxe d’un major mode pendant seulement quelques minutes peut déjà réduire les irritations rencontrées lors des déplacements structurels
  • Dans les contextes de la famille Lisp, faire de : un caractère constitutif des mots facilite le traitement de mots-clés comme :foo avec backward-kill-word
  • En mode Org, on peut aussi changer le comportement de = et ~ pour les traiter comme des caractères constitutifs des mots
  • La manière de définir la syntaxe des caractères peut être consultée dans describe-syntax (C-h s) et modify-syntax-entry

Manipuler l’affichage des images

  • Presque partout où Emacs affiche des images, vous pouvez placer le curseur sur une image et appuyer sur i pour manipuler son affichage
  • On peut utiliser les mêmes commandes sur les aperçus d’images des liens Org mode et sur les images dans les buffers d’articles Elfeed
  • i + et i - sont utiles pour zoomer et dézoomer, et i r fait pivoter l’image de 90 degrés
  • i c permet aussi de rogner l’image ; pour la liste détaillée des touches, voir M-x describe-keymap RET image-map
  • Le raccourci C-<wheel>, courant dans les navigateurs et d’autres applications, fonctionne également
  • Avec repeat-mode, après le premier appel, on peut répéter simplement avec +, - et r sans le préfixe i
  • Cette fonctionnalité est fournie via une keymap posée sur l’image et ne nécessite aucune activation séparée
  • Ce qui est modifié n’est pas le fichier image sur le disque, mais uniquement l’état d’affichage
  • Dans les pages web et les buffers HTML rendus, z (shr-zoom-image) découpe l’image en plusieurs bandes horizontales et fait varier sa taille de manière cyclique afin d’atténuer les limites d’affichage des grandes images

Afficher tout le texte : M-x visible-mode

  • Emacs peut rendre le texte d’un buffer sélectivement invisible, et cette fonctionnalité sert de base aux comportements de repliement comme les sections Magit, Outline mode et Org mode
  • Les modes qui proposent du repliement fournissent généralement des raccourcis clavier pour changer l’état du repliement, et TAB fonctionne le plus souvent
  • Si les raccourcis propres à chaque mode sont difficiles à retenir ou pas utilisés assez souvent, visible-mode permet d’afficher tout le texte masqué
  • visible-mode désactive l’invisibilité du texte pour l’ensemble du buffer, puis restaure l’état d’invisibilité précédent lorsqu’on l’exécute de nouveau
  • Dans les buffers avec une UI de repliement dynamique, l’affichage peut sembler cassé tant que visible-mode est activé
  • Cette fonction tient davantage de la mesure temporaire ou de l’outil de débogage, mais elle permet de révéler uniformément tout le texte d’un buffer en une seule commande

Ignorer le texte invisible : isearch-toggle-invisible

  • Certaines commandes Emacs comme Isearch ignorent par défaut l’invisibilité du texte, ce qui permet de rechercher facilement dans l’ensemble réel du document
  • Lorsque l’état visible du buffer sert de guide de navigation, une recherche qui révèle automatiquement le texte replié peut se comporter d’une manière inattendue
  • Quand Isearch est utilisé comme outil de navigation plutôt que de recherche, se déplacer vers une correspondance dans une zone repliée devient problématique
  • Pendant Isearch, isearch-toggle-invisible, lié à M-s i, permet d’activer ou non la recherche dans le texte invisible
  • Dans l’exemple, une recherche de zero devait permettre d’aller au dernier titre d’un document Org, mais elle sautait vers une correspondance dans une zone repliée ; en relançant la recherche puis en appuyant sur M-s i, le déplacement se limite alors aux correspondances dans le texte visible
  • Les touches qui modifient le comportement d’Isearch se trouvent sous la keymap M-s, en correspondance avec le raccourci par défaut C-s

Règle : M-x ruler-mode

  • Emacs conserve encore des fonctions comme les commandes center-*, vestiges d’anciennes capacités de traitement de texte WYSIWYG
  • Les commandes center-* centrent une ligne, un paragraphe ou une région par rapport à fill-column, ce qui peut servir par exemple à des commentaires décoratifs dans du code
  • Les marges d’affichage et la largeur des fringes constituent un espace d’écran qui peut accueillir de nombreuses fonctions, mais modifier directement la largeur des marges d’affichage n’est pas simple
  • set-left-margin et set-right-margin ne changent pas la largeur des marges d’affichage ; ils se comportent plutôt comme les commandes de la famille center en indentant le texte réel du buffer
  • Il n’existe pas de commande directe pour régler les marges d’affichage, et les effets ne s’appliquent qu’au prochain rafraîchissement de la fenêtre
  • En activant ruler-mode, on peut consulter l’aide d’utilisation via les infobulles au-dessus de la header-line
  • S-<mouse-1> et S-<mouse-3> permettent de régler les marges gauche et droite du buffer
  • Un glisser avec <mouse-2> permet aussi de définir fill-column
  • Si l’on veut ajuster les marges à la volée plutôt que basculer entre des largeurs prédéfinies, ruler-mode peut être plus convivial que des paquets comme visual-fill-column ou olivetti

Re-remplir le texte : M-x refill-mode

  • Emacs fournit plusieurs commandes fill-* pour le remplissage du texte, ainsi que auto-fill-mode pour gérer les retours à la ligne pendant la saisie
  • auto-fill-mode est présenté assez tôt dans le tutoriel Emacs, preuve que le remplissage du texte y est considéré comme une fonction d’édition importante
  • auto-fill-mode n’est pas totalement automatique en pratique : il ne réajuste que la ligne en cours, et les décalages apparus dans les paragraphes précédents, par exemple après un collage, doivent être corrigés manuellement
  • refill-mode est la vraie fonctionnalité de remplissage automatique du texte d’Emacs, qui maintient le document conforme à fill-column
  • Il suffit d’exécuter M-x refill-mode pour activer ce comportement

Faire défiler toutes les fenêtres ensemble : M-x scroll-all-mode

  • scroll-other-window permet de faire défiler une autre fenêtre non sélectionnée sans y basculer, ce qui est utile pour consulter une référence dans la fenêtre suivante tout en travaillant dans la fenêtre courante
  • follow-mode permet d’afficher un même buffer de manière continue sur plusieurs fenêtres
  • scroll-all-mode, moins connu, fait défiler simultanément toutes les fenêtres de la frame
  • C’est utile pour examiner des buffers qu’il faut comparer de manière synchronisée ; dans l’exemple, il sert à comparer visuellement deux versions d’un fichier sans entrer dans une session Ediff
  • Le déroulé de l’exemple consiste à ouvrir une sauvegarde antérieure précise du fichier courant avec vc-revision-other-window, activer scroll-all-mode, puis faire défiler normalement pour que toutes les fenêtres bougent en même temps
  • Défilement de l’autre fenêtre et master-mode

    • Un problème peut survenir lorsqu’il y a plus de deux fenêtres à l’écran et que la fenêtre à faire défiler n’est pas celle que next-window choisit dans Emacs
    • Le master-mode intégré permet de désigner à l’avance, ou à la volée, le buffer dans lequel le défilement d’une autre fenêtre doit se produire
    • Une méthode plus immédiate consiste à définir la stratégie utilisée pour trouver la fenêtre à faire défiler
    • (setq other-window-scroll-default #'get-lru-window) fait toujours défiler la fenêtre la moins récemment utilisée
    • Cette approche est utile quand on veut faire défiler une fenêtre contenant des documents de référence et qu’on sélectionne rarement
    • Si deux fenêtres fréquemment éditées se trouvent parmi plusieurs autres, on peut définir une fonction lambda pour faire défiler, comme autre fenêtre, la plus récemment utilisée
    • Ce type de combinaison de réglages aide scroll-other-window à faire défiler la bonne fenêtre

Refuser de quitter : M-x emacs-lock-mode

  • Lorsqu’il existe des fichiers non enregistrés, Emacs refuse déjà de quitter tant qu’on n’a pas indiqué quoi faire pour chacun d’eux
  • emacs-lock-mode étend cette idée en permettant à l’utilisateur de verrouiller n’importe quel buffer
  • Tant que le verrou n’est pas retiré, ce buffer refuse d’être tué et affiche un message comme Buffer "*scratch*" is locked and cannot be killed
  • S’il existe un buffer verrouillé, Emacs refuse aussi de quitter et affiche un message comme Emacs cannot exit because buffer "*scratch*" is locked
  • C’est utile pour éviter de perdre par inadvertance des informations stockées dans un buffer qui ne visite pas de fichier, ou pour se rappeler qu’un travail reste en cours dans ce buffer
  • Après Org-capture, le premier cas est devenu rare, mais cela reste utile pour éviter de perdre la sortie ou l’état de buffers shell, compilation, de sites web ou d’autres applications spéciales

Restaurer une frame : M-x undelete-frame-mode, M-x undelete-frame

  • Si l’on ferme par erreur une frame Emacs soigneusement configurée, undelete-frame permet de la restaurer
  • Pour utiliser cette fonction, undelete-frame-mode doit être activé
  • Elle fait, pour les frames, ce que les fonctions intégrées winner et tab-bar-history font pour les fenêtres
  • En laissant undelete-frame-mode activé en permanence avec Emacs, on peut moins se soucier de fermer une frame par erreur
  • Il est possible de restaurer jusqu’à 16 frames supprimées

Fonctions restantes et fonctions écartées

  • Parmi les fonctions croisées au cours des six dernières années, 20 ont survécu à la réalité de l’usage d’Emacs en 2026
  • Plusieurs bibliothèques Emacs découvertes au hasard relevaient davantage de l’intérêt archéologique que de solutions stables à des besoins d’utilisateurs ordinaires
  • allout-mode est un gestionnaire d’outline d’un univers parallèle proche d’Org mode, avec des fonctions comme les speed-keys d’Org et le chiffrement par sous-arbre
  • shadowfile implémente unison dans Emacs, mais son utilité reste douteuse
  • double-mode est une méthode de saisie de caractères non présents sur le clavier basée sur la conversion de touches, antérieure à quail
  • La bibliothèque bs était une tentative de rendre la commande list-buffers plus intelligente, mais ibuffer l’a surpassée au point de lui enlever toute raison d’être
  • Même des fonctions apparemment utiles, comme l’habillage d’une région avec des délimiteurs via electric-pair-mode, ont été écartées parce que leur utilité ne justifie pas leur complexité
  • Pour ce type d’usage, des paquets externes comme wrap-region, smartparens ou embrace sont préférables
  • Des bibliothèques intégrées liées à Org ou proches d’Org comme appt sont intéressantes, mais leur périmètre est assez vaste pour mériter un article à part
  • Certaines bibliothèques, comme thunk, sont surtout utiles aux développeurs Elisp et demanderaient aussi un traitement séparé
  • Le répertoire lisp fourni avec Emacs n’est pas si grand, mais il reste possible d’y découvrir encore des fonctionnalités par défaut utiles

1 commentaires

 
GN⁺ 5 시간 전
Commentaires sur Lobste.rs
  • Ouvrir plusieurs fichiers avec des jokers comme *foo*.txt dans find-file (C-x C-f) est généralement une erreur, donc j’ai ajouté un advice-add à find-file-noselect pour que find-file lance directement dired lorsqu’un joker est utilisé
    Si le résultat de file-expand-wildcards contient au moins 2 éléments, il passe à dired-noselect, sinon il appelle le find-file-noselect d’origine

  • ruler-mode est vraiment amusant. Je n’avais absolument aucune idée qu’Emacs avait ce genre de fonctionnalité WYSIWYG, et Emacs est vraiment un logiciel à la fois étrange et réjouissant

  • Je pensais avoir à peu près tout vu en n’utilisant qu’Emacs standard, mais il me restait encore énormément de choses à découvrir. ruler-mode est assez génial pour l’écriture

    • C’est surprenant que ce genre de fonctionnalités soit intégré à Emacs lui-même. On peut facilement penser qu’Emacs ne fournit que l’API elisp permettant de construire ce genre de choses, mais j’étais passé à côté de beaucoup d’outils de base
      Avant, j’utilisais bien davantage Magit, mais maintenant je suis passé au vc-mode intégré et aux outils diff, et les deux fonctionnent très bien, donc j’en suis satisfait
  • J’aime ce genre de billet. Quand on utilise des éditeurs complexes et personnalisables comme Emacs ou Neovim, on a souvent tendance à installer d’abord une distribution hypertrophiée et à aller trop vite avant même de comprendre ce que l’éditeur de base est capable de faire
    Si on a le temps, lire le manuel et construire sa configuration soi-même dès le départ est un processus assez gratifiant. Il existe aussi une fonction Emacs peu connue, finder-list-keywords, qui affiche un menu permettant d’explorer des fonctionnalités Emacs difficiles à repérer. Par exemple, saviez-vous qu’il y a 24 jeux intégrés ?