That might be me, but more likely I am one of a small group.
What is TECO? In a few words, “a text editor which is also a complete programming language”. There is a fine and entertaining overview in this memoir by Dan Murphy, the original author; you can also take a look at whatWikipedia has to say.
TECO—in fact, my own implementation thereof—is still the text editor I use every day. Here’s how that came about.
Back in the 70’s and 80’s I used TECO in various forms on PDP-10 systems, including a version that I think was called ‘TV’ in which the upper portion (about 18 lines) of a terminal screen displayed a window into the buffer being editing, while the lower portion displayed the current command as typed.
This was the model for my first reimplementation, for the Atari ST, in 68000 assembly language. This was part of a larger program—about 50K bytes in total, as I remember it—that incorporated a 68000 assembler and disassembler, some primitive debugging facilities, a simple command line and a few internally-coded commands (list a directory, for example), and a terminal emulator.
A few years later, when faced with a job where I was using a 8086-type machine, I made a second assembly-language implementation that used a swap file and other mechanisms to hide that architecture’s nasty 64K limit on contiguous arrays.
Finally I was able to move to a third version, written in CWEB, Donald Knuth’s admirable ‘Literate Programming’ dialect of C. This is what I use today, on both Linux and OS X.
Catering only for myself, I never felt the need to implement all the obscure commands that made their way into TECO. My versions have always been whole-file editors, disregarding the read-a-page / write-a-page cycle that was part of the original. I have always treated the command language as case-sensitive; by making capital letters available in their own right this in turn avoids the need for the two-character ‘Ex’ and ‘Fx’ commands used by ‘classic TECO’.
In further nods toward modern programming practice (and sanity) I never implemented the GOTO command, relying only on loops (and loop exits) and conditionals. Even though TECO’s native command language is basically a kind of bytecode, my versions have always ‘compiled’ the entire command string into a second version for interpretation; this has the advantage that if there is a (detectable) typo it can be caught before any changes to the editing buffer.