Re: [dev] Plain text editor that sucks less - an alternative to VIM?

From: Lee Fallat <>
Date: Mon, 30 Jun 2014 16:18:23 -0400

Hello suckless fans,

This may not be an alternative to VIM, but it is inspired by its
ancestor vi, and other editors like ed, sam, and acme. It is a
graphical text editor. The main reason why I choose graphical is
because TUIs are just a hack of GUIs. Seriously, look at the
screenshots posted at the beginning- why would anyone use that? There
is a framebuffer driver on most modern OSs that work to have some sort
of graphical capability. It has two "modes", regular text input mode
that supports UNIX bindings (ctrl+e/a/u/h), and a "command-line" mode,
that brings up a command-line. You can select text and pipe it to any
command you type in there (as long as it can accept input from STDIN).
This alone makes the editor really powerful, because it opens up your
entire system for use. It has no support for syntax highlighting
(personally I find it annoying and I find I understand code better
than having to rely on the highlighting to tell me what is and what is
not correct); auto-complete is not supported, but is extremely
practical when working with Java/C#/C++/etc- I never code in those
languages without their respective IDEs (Eclipse, Visual Studio,
SomeMassiveIDEThatSupportsEverything), because it's almost impossible
unless you've worked with them for a long time; does not support
window management which means no tabbing, windows in windows and other
non-sense, all window management is done by the window manager.

I was actually reading Rob Pike's sam paper again this weekend (it's a
good read for you text editor enthusiasts out there), and apparently
my editor is somewhat a clone of his older editor, jim.

How I typically use OONO - Object-Oriented Non-Obstructive Text
Editor, is by calling it from a script. I call the script 't', so it
is easy to type into the command-line and perform non-editor things
(creating a new file if it doesn't exist, opening several files). OONO
should be used with a terminal (this is where it is similar to sam,
having a "master" terminal to type into). Every instance of OONO can
be controlled through the filesystem, by piping text to
/tmp/oono/proc*/ctl (just like acme (I forget if sam can do this
too)). These instances, for me, are tiled because I'm using dwm
(, so it's very much like acme at this point. Some
may think no because the lack of clickable tags, but I always found
the acme tags becoming very squished and too messy. Having the
command-line appear clean and ready to type into has been a much nicer
experience for me, but obviously it varies from person to person. I
would like to store the last X commands in some array that I can
access via right or middle click.

Hopefully if you're still with me here, this may really turn you off.
OONO is currently written in 300 lines of Python 3 and uses tcl/tk for
graphics. It has worked out-of-the-box on every platform that supports
these, which is mainly why I wrote it using these technologies.
Further more, OONO is written in such a way that is easily extensible
from the code side (you'll have to look at the source near the bottom
to understand me here, as this email is getting too large). I was able
to write a "TextMap" implementation in less than 5 minutes (I rarely
use it though, heh). I would like to rewrite OONO in C89. The main
design goal of OONO was to remain simple so that re-implementation is
not a daunting task (can literally be re-implemented in a few hours if
you know the technologies- OONO has taken me months to get to a point
where I'm satisfied). My main issue is the graphical aspect of it. I'm
not sure if writing a graphical abstraction layer is worth it or not.
I'm leaning more towards no because most graphical libraries are
similar anyways.

You can find the code here:

Ok let the ranting begin...hehe. Honestly though, good thread.

And for you console addicts out there, ed is all you ever need. I use
ed (or sam -d) for all my console text editing needs.



On Mon, Jun 30, 2014 at 12:20 PM, <> wrote:
> * Dimitris Zervas 2014-06-30 11:35
>> I am thinking of trying to implement vim key bindings one of these days (I can't work otherwise).
> that'd be great.
> including modes?
> --s_
Received on Mon Jun 30 2014 - 22:18:23 CEST

This archive was generated by hypermail 2.3.0 : Mon Jun 30 2014 - 22:24:06 CEST