e is a customizable self-aware Emacs-like editor written in Chez Scheme
github.com
github.com
Arguably 80% of the emacs goodness is the terabytes of elisp written in the last few decades, if you break compatibility with that you need to throw in something pretty compelling.
So that's my guess as to the motivation: solving the chicken-and-egg problem of wanting an Emacs written in a nicer-to-work-with Lisp dialect. Maybe the author will come along and prove me wrong; this is just my guess.
$ which e
e () {
snippet="(nkv-find-file-and-jump \"$1\")"
emacsclient --no-wait -e $snippet
}I created e for fun. It’s self-aware because it’s aware of its internals (like all other Lisp based editors). After all, how do you define “self-aware”? :)
It’s “fully configurable” because its code is just a big configuration (code is data :).
I obviously used AI agents, but I’m the author. AIs are Turing machines - they don’t author anything, in the same way as Emacs doesn’t author programs you write with its help.
Chez Scheme is great! I bumped into it while learning Idris 2, which uses it as a default backend.
(I'm not the author of the software, BTW, so I can't actually answer your question. But I found it ambiguous and thought it was worth asking for clarification).
yes. I want to know how much thought and effort was put into it.
":" is the key which issues "ex" commands. vi and ex are two different modes of the same editor. Any command which begins with a colon is an ex command, not a vi command, not done in "Command Mode".
Also worth mentioning is Q , which puts you in ex mode, essentially just ":" prompts one after the other until you exit or issue a "vi" command to go (back) to visual mode.
And then there's open mode, but vim doesn't implement that.
[digraph]: https://neovim.io/doc/user/digraph/
Almost no one realizes that perhaps since 35 years no keyboard in mass-use had an "Meta" key. And if the "e" people now still keep that weird name, then they aren't similarly frozen in the state of time as the Emacs community.
1) There's more. Lisp still let bleed assembler instructions that no CPU used in the last 40 years, like CDR and CAR. That's if like e.g. JavaScript would have a cmpxchg() function.
also 1) Or it uses "window" in a very different sense.
and also 1) and even when the term is what you expect, they -- in best english tradition! -- can't normalize on one writing. You can e.g. find both "assoc" and "assq" in use.
So if you want an extremely powerful editor construction kit with an extremely weird nomenclature of parts of it, then chose Emacs.
`C-x C-c`
I'm afraid I can't let you do that, $USER