HeadlinesBriefing favicon HeadlinesBriefing.com

paveluv/e: editor Emacs-like personalizable en Chez Scheme

Hacker News •
×

Un pequeño editor de texto de consola escrito en Chez Scheme, paveluv/e es Emacs-like en espíritu pero no un clon. Cuenta con buffers, ventanas, un anillo de eliminación, búsqueda incremental y un nivel Schemetop. Todo es una biblioteca R6RS con un núcleo minimal y API inmutable, más módulos de extensión para modos de sintaxis, coincidencia de corchetes, ayudas de edición y M-x.

M-x evalúa Scheme contra el nivel superior en vivo del editor con finalización de símbolos, indicadores de parámetros, historial y un buffer de transcripción. Los módulos se recargan caliente: guardar el origen de un módulo dentro del editor lo recarga en la sesión en ejecución; ediciones externas se detectan mediante reload-module!. Los registros se reemplazan, los módulos dependientes se recompilan y las buffers se mantienen.

El editor se desarrolla desde dentro mismo sin dependencias más allá de Chez Scheme y una terminal tipo Unix. No hay paso de compilación ni instalación: una extracción se ejecuta en el lugar. La primera compilación de bibliotecas; inicios posteriores tardan aproximadamente 100 ms.

Los informes de deshacer reportan acciones como 'Deshacer insertar "hola"' o 'Deshacer (replace-all! "xx" "yy")'. Los caracteres escritos se coalescen en ejecuciones, el pegado es un solo paso, y los comandos M-x están etiquetados como pasos. Inicio rápido: clonar como ~/.e o vendore dentro de un proyecto.

Cada instalación es autónoma, usando lib/ junto al script y objetos compilados en eo/. El tamaño de la terminal se detecta mediante ioctl o variables de entorno LINES/COLUMNS. En FreeBSD, ajusta el shebang o ejecuta chez-scheme --script e.

Atajos de teclado incluyen C-x C-s (guardar), C-x C-f (visitar archivo), C-x C-c (salir), C-x b (cambiar buffer), C-x 2/3 (dividir ventanas), C-x o (siguiente ventana), y teclas de movimiento/edición como C-b/f, C-p/n, C-a/e, C-d/Retroceso.