e: Emacs-подобный редактор на Chez Scheme с горячей перезагрузкой модулей
e is a customizable self-aware Emacs-like editor written in Chez Scheme
e — это консольный текстовый редактор, написанный на Chez Scheme. Он заимствует идеи Emacs (буферы, окна, кольцо убийств, инкрементальный поиск, Scheme top level), но остаётся минималистичным. Редактор представляет собой Scheme-систему: ядро с неизменяемым API и модули расширений, которые можно перезагружать на лету. M-x вычисляет Scheme в живом top level с автодополнением и подсказками. Модули горячо перезагружаются при сохранении исходников. Нет зависимостей, кроме Chez Scheme и Unix-терминала; запуск занимает около 100 мс. Undo показывает, что именно отменяется, например, «Undo insert "hello"». Редактор разрабатывается изнутри самого себя.
Редактор — это Scheme-система: минимальное ядро с опубликованным неизменяемым API, а модули расширений строятся на нём; ядро обеспечивает свои границы средствами языка, а не дисциплиной: внутренности невидимы, экспорт нельзя переопределить.
- rich_sasha
В чём предполагаемое преимущество перед Emacs? Кроме scheme>elisp? Можно утверждать, что 80% полезности Emacs — это терабайты elisp-кода, написанного за последние десятилетия; если вы ломаете совместимость с ним, нужно предложить что-то действительно убедительное.
- tommyage
Глава 12.2, правило 1: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1... Имена программ должны содержать от 2 до 9 символов; это стоит учесть. Кроме того, поиск по `e` может быть неудобным.
- noufalibrahim
На моей машине `e` — это просто способ отправить что-то в Emacs.
$ which e
e () {
snippet="(nkv-find-file-and-jump \"$1\")"
emacsclient --no-wait -e $snippet
}