HeadlinesBriefing favicon HeadlinesBriefing.com

paveluv/e: A Customizable Emacs-like Editor in Chez Scheme

Hacker News •
×

A tiny console text editor written in Chez Scheme, paveluv/e is Emacs-like in spirit but not a clone. It features buffers, windows, a kill ring, incremental search, and a Schemetop level. Everything is an R6RS library with a minimal core and immutable API, plus extension modules for syntax modes, bracket matching, editing helpers, and M-x.

M-x evaluates Scheme against the editor's live top level with symbol completion, parameter hints, history, and a transcript buffer. Modules hot-reload: saving a module's source inside the editor reloads it into the running session; external edits are picked up via reload-module!. Registrations are replaced, dependent modules recompile, and buffers stay put.

The editor is developed from inside itself with no dependencies beyond Chez Scheme and a Unix-like terminal. There is no build or installation step—a checkout runs in place. The first start compiles libraries; later starts take about 100 ms.

Undo reports actions like 'Undo insert "hello"' or 'Undo (replace-all! "xx" "yy")'. Typed characters coalesce into runs, paste is a single step, and M-x commands are labeled steps. Quick start: clone as ~/.e or vendore inside a project.

Every installation is self-contained, using lib/ next to the script and compiled objects in eo/. Terminal size is detected via ioctl or LINES/COLUMNS environment variables. On FreeBSD, adjust the shebang or run chez-scheme --script e.

Key bindings include C-x C-s (save), C-x C-f (visit file), C-x C-c (quit), C-x b (switch buffer), C-x 2/3 (split windows), C-x o (next window), and movement/editing keys like C-b/f, C-p/n, C-a/e, C-d/Backspace.