What is this project about?

2 min read Original article ↗

As you see we just call it 'e'. That is because my goal is to create a command line tool that I will be using a lot, preferably as soon as possible as my own editor for everything. Knowing myself I might not succeed in that, but that's okay. My first goal, and the reason I am writing this page to go with the project, is to get the idea out; if someone else gets there first, so much better.

As a programmer who loves Chromebooks I work a lot over SSH, and as such Emacs and Vim are very good friends of mine. I love Emacs because it is very easy to extend, and I love Vim because it makes it easy to edit files on my VPS fast. But I would actually love to have both. I already use Spacemacs, and if you don't know it yet, it really brings Emacs and command line editors in general to a new level. But at the same time there are things I don't like that much.

Often, my favorite editor is actually neither of these two, but Ed. Ed is a line editor, and is the spiritual granddad of vi (vi being the visual mode of ex, basically a fancy version of Ed). But Ed certainly has its limitations, and some of them are kinda surprising when you consider Ed is a line editor. For example although it is very light, it works terrible with big files. I would expect a line editor to give an advantage for big files. Also it has some hurting limitations for working with big replacement operations (and these are basically fixed in Sam, an editor by Rob Pike).

So I got an idea. What if we create an extensible line editor? A truly modern editor, but in the basics still kinda similar to Ed? Now why would I want this?

  • Minimum distraction during work
  • Maximum speed
  • Maximum power
  • Great interaction with other command line tools

So these are the goals I want to build piece by piece in e.