Rainer, try out this editor. Here's what you need to know: It starts up with no commands defined, but printable (non-movement) characters set up to self-insert. Cursor keys, tab, return, function keys etc do nothing. ^C and ^L are reserved. (temporary limitation) You enter an ecce command by prefixing it with and terminating it with . You can learn a new sequence and assign it to almost key by first pressing ^L, performing the edit (which is actually executed as you type), and pressing ^L a second time. Immediately following the second ^L you press the key you want to assign the sequence to. Initially the sequences you can teach it have to be ecce commands, but once you've built up a vocabulary of keystroke commands (which are executed immediately) you'll be able to compose more complex sequences using those too. There's an initial training overhead that you do once when you install. Ecce has been extended with "{" (cursor up) and "}" (cursor down) for now. A few more primitives are needed and will follow. A basic training sequence would be: ^L{?^L which assigns the ecce cursor-up command "{?" to the cursor-up key, (Executing "{?" rather than just "{" suppresses pointless ecce error messages when you hit the start and end of file etc ) I like the following for basic commands: ^L{?^L cursor up ^L}?^L cursor down ^L(l,m-r0)?^L cursor left ^L(r,m)?^L cursor left ^Lb^L carriage return ^L(e-,j-)^L delete left ^L(ee0,j)^L^K kill ^Lm23?^L page down (caveat: will be improved later, using "}0" ) ^Lm-23?^L page up ^Lm-0^L start of file ^Lm0^L end of file ^L(e,j)?^L delete forward ^Li/ /l^L push text to the right (compliment of delete forward) At some point in the future when saving the files is in place, you'll be able to bind things like %C to ^X^C or whatever you happen to like as a shortcut. Currently the only exit is ^C which can't be rebound. The macro key ^L can also not be rebound which is a crude hack to stop recursive macro definitions. Macros are expanded before being recorded. In the long term, complex macros may be stored as accumulated ecce sequences (since *all* the work is actually done by ecce) but for now they are stored as expanded key sequences. The use of is tightly hard-wired I'm afraid. That one is unlikely to change, unless I move away from using At the end of a session, a file /tmp/testdb.trie.new is written, and if you want to save your keystroke macros, you must mv it to /tmp/testdb.trie before you run the editor again. The display update is a little slow at the moment. This is not an intrinsic limitation, it is just a symptom of getting something reasonably solid in place for development. It *will* be fast by the time it is released. Until it is released you cannot save files. This is to stop me kicking myself for losing source during development (and not having anyone else kick me either) Once the editor is trained, you can use complex ecce commands when you feel you need them, and assign them to any key; for example you might set up enter to do an auto indent like this: ^Lbm-n(v/ /r)0ahmh (or at least you will when I put A and H back in ;-) ) or you might want a command to help indent blocks, like this (using the defined keys above this time, instead of going all the way down to the ecce commands): ^L^L Bearing in mind the limitations of alpha software, this is close to what I see as being the proper fusion of ecce and a screen editor. It was easier to just write it than explain it to you because doing it is more convincing than reading about it. Give it a fair try and let me know what you think. regards, Graham PS BUGS: ^Lr0,m^L end of line ^Ll0,m-r0^L start of line If you bind a sequence using a prefix instead of just there's a bug that makes it go away. I only just spotted it seconds ago and I don't have time to fix it right now. Just avoid doing that, you'll be fine.