Davantage de batteries incluses par défaut dans Emacs
(karthinks.com)- 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-windowsethighlight-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-modeou la keymap de manipulation d’images - L’idée principale est que, même si le répertoire
lispd’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-modedoit 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-fileetdired - Dans
find-file, un motif comme*foo*.txtpermet 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-findetembark-export, mais elle fonctionne immédiatement dans l’état par défaut
Liste des URI dans un buffer : M-x ffap-menu
ffapest 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’ouvrirffap-menuparcourt 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-menupasse alors à côté - Pour compenser cela, une commande personnalisée inspirée de
ffap-menupeut aussi collecter la propriété de texteshr-url - La commande d’exemple
my/search-occur-browse-urlest configurée pour rechercher à la fois les URL correspondant à l’expression régulière habituelle et les propriétésshr-url, puis pour ouvrir l’URL choisie avecbrowse-urloubrowse-url-generic
- 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
Comparer des fenêtres : M-x compare-windows
- Emacs propose de nombreuses commandes de comparaison, comme
diff,diff-buffers,diff-backup,dired-diff,vc-diffou diverses commandesediff-* compare-windowscompare 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-directoriesdemande 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-directoriespeut aussi être utilisé
Mise en évidence des changements dans un buffer : M-x highlight-changes-mode
highlight-changes-modemet en évidence les endroits modifiés dans un fichier et peut servir d’alternative « en direct » à des commandes diff commediff-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-hooketafter-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-modedans les buffers de fichier viatext-mode-hook, puis ajuste l’état du surlignage avec des hooks avant et après la sauvegarde - Sous la forme d’un
highlight-unsaved-modeindépendant, cela devient un mode mineur qui met en évidence toutes les modifications jusqu’à l’enregistrement highlight-changes-next-changeethighlight-changes-previous-changepermettent 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-versionspermettent d’ajuster l’emplacement des sauvegardes et le nombre de versions conservées - Le paquet externe
backup-walkerfournit 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-diffcompare un fichier avec la version précédente ou une version donnéevc-edifflance Ediff entre un fichier et sa version précédente ou une version donnéevc-revision-other-windowaffiche 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-diffetvc-ediffcomparent le buffer et le fichier - Sur un fichier versionné,
vc-diff,vc-ediffetvc-revision-other-windows’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, soitC-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,
aproposest 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 aproposn’est pas une commande unique, mais une famille de commandes de recherche spécialisées commeapropos-library,apropos-function,apropos-command,apropos-variable,apropos-user-option,apropos-documentationetinfo-apropos- La configuration d’exemple remplace
aproposen regroupant ces commandes sous une keymapC-h a - Même sans inviteur comme
which-key, on peut afficher la liste des commandes disponibles en appuyant surC-haprès la touche préfixeC-h a customize-aproposrassemble 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-keyouC-h k, puis à appuyer surspour aller au code source find-function-on-keysupprime 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-keydanshelp-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-commandcopie du texte depuis la première ligne non vide au-dessus de la ligne courante, à la manière deC-ydans Vimduplicate-dwimcopie la ligne courante ou la région active sous la ligne courante, à la manière deyy<N>pdans Vimcopy-from-above-commandcopie des caractères depuis la ligne située au-dessus selon l’argument préfixe, mais l’advice d’exemple transforme le préfixeC-uen 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-dwimimpose 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-positionetduplicate-line-final-positionà-1afin 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 paquetdot-moded’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 frappeskmacro-edit-lossagepermet 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), maiskmacro-edit-lossageest 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-querydans 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,
GtkWindowest séparé enGtketWindow,EmacsFrameClassenEmacs,Frame,Class, etNSGraphicsContextenNS,Graphics,Context - En
superword-mode, un symbole en snake_case commethis_is_a_symbolest traité comme un seul mot - En pratique, comme la manipulation des symboles est déjà bien prise en charge par les commandes
*-sexp,superword-modeest moins utile quesubword-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:fooavecbackward-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) etmodify-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
ipour 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 +eti -sont utiles pour zoomer et dézoomer, eti rfait pivoter l’image de 90 degrési cpermet aussi de rogner l’image ; pour la liste détaillée des touches, voirM-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+,-etrsans le préfixei - 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
TABfonctionne le plus souvent - Si les raccourcis propres à chaque mode sont difficiles à retenir ou pas utilisés assez souvent,
visible-modepermet d’afficher tout le texte masqué visible-modedé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-modeest 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
zerodevait 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 surM-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éfautC-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-marginetset-right-marginne changent pas la largeur des marges d’affichage ; ils se comportent plutôt comme les commandes de la famillecenteren 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>etS-<mouse-3>permettent de régler les marges gauche et droite du buffer- Un glisser avec
<mouse-2>permet aussi de définirfill-column - Si l’on veut ajuster les marges à la volée plutôt que basculer entre des largeurs prédéfinies,
ruler-modepeut être plus convivial que des paquets commevisual-fill-columnouolivetti
Re-remplir le texte : M-x refill-mode
- Emacs fournit plusieurs commandes
fill-*pour le remplissage du texte, ainsi queauto-fill-modepour gérer les retours à la ligne pendant la saisie auto-fill-modeest présenté assez tôt dans le tutoriel Emacs, preuve que le remplissage du texte y est considéré comme une fonction d’édition importanteauto-fill-moden’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 manuellementrefill-modeest 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-modepour activer ce comportement
Faire défiler toutes les fenêtres ensemble : M-x scroll-all-mode
scroll-other-windowpermet 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 courantefollow-modepermet d’afficher un même buffer de manière continue sur plusieurs fenêtresscroll-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, activerscroll-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-windowchoisit dans Emacs - Le
master-modeinté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
- 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
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-framepermet de la restaurer - Pour utiliser cette fonction,
undelete-frame-modedoit être activé - Elle fait, pour les frames, ce que les fonctions intégrées
winnerettab-bar-historyfont pour les fenêtres - En laissant
undelete-frame-modeactivé 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-modeest 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-arbreshadowfileimplémenteunisondans Emacs, mais son utilité reste douteusedouble-modeest 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 commandelist-buffersplus intelligente, maisibufferl’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,smartparensouembracesont préférables - Des bibliothèques intégrées liées à Org ou proches d’Org comme
apptsont 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
lispfourni 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
Commentaires sur Lobste.rs
Ouvrir plusieurs fichiers avec des jokers comme
*foo*.txtdansfind-file(C-x C-f) est généralement une erreur, donc j’ai ajouté unadvice-addàfind-file-noselectpour quefind-filelance directementdiredlorsqu’un joker est utiliséSi le résultat de
file-expand-wildcardscontient au moins 2 éléments, il passe àdired-noselect, sinon il appelle lefind-file-noselectd’origineruler-modeest 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éjouissantJe 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-modeest assez génial pour l’écritureAvant, j’utilisais bien davantage Magit, mais maintenant je suis passé au
vc-modeintégré et aux outilsdiff, et les deux fonctionnent très bien, donc j’en suis satisfaitJ’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 ?