HeadlinesBriefing favicon HeadlinesBriefing.com

paveluv/e: éditeur Emacs-like personnalisable en Chez Scheme

Hacker News •
×

Un petit éditeur de texte console écrit en Chez Scheme, paveluv/e est Emacs-like à l'esprit mais pas un clone. Il présente des buffers, des fenêtres, un ring de suppression, une recherche incrémentielle et un niveau Schemetout. Tout est une bibliothèque R6RS avec un noyau minimal et une API immuable, plus des modules d'extension pour les modes de syntaxe, la correspondance des crochets, les aides à l'édition et M-x.

M-x évalue Scheme contre le niveau supérieur vivant de l'éditeur avec complétion de symboles, indices de paramètres, historique et un buffer de transcript. Les modules se rechargent à chaud : enregistrer le source d'un module à l'intérieur de l'éditeur le recharge dans la session en cours ; les modifications externes sont prises en charge via reload-module !. Les inscriptions sont remplacées, les modules dépendants se recompilent, et les buffers restent en place.

L'éditeur se développe depuis lui-même sans dépendances autres que Chez Scheme et un terminal de type Unix. Il n'y a pas d'étape de build ou d'installation — une checkout s'exécute sur place. La première compilation de bibliothèques ; les démarrages ultérieurs prennent environ 100 ms.

Les rapports de annulation indiquent des actions comme 'Undo insert "hello"' ou 'Undo (replace-all! "xx" "yy")'. Les caractères saisis se coalescent en runs, le collage est une étape unique, et les commandes M-x sont étiquetées comme étapes. Démarrage rapide : clonez en tant que ~/.e ou vendore à l'intérieur d'un projet.

Chaque installation est autonome, utilisant lib/ à côté du script et des objets compilés en eo/. La taille du terminal est détectée via ioctl ou variables d'environnement LINES/COLUMNS. Sur FreeBSD, ajustez le shebang ou exécutez chez-scheme --script e.

Les raccourcis clavier incluent C-x C-s (enregistrement), C-x C-f (visite de fichier), C-x C-c (sortie), C-x b (basculement de buffer), C-x 2/3 (division des fenêtres), C-x o (fenêtre suivante), et les touches de déplacement/édition comme C-b/f, C/p/n, C-a/e, C-d/Retour arrière.