4 ms·
I've always considered TECO as the ur editor. Of course, TECO is the explicit ancestor of emacs, as emacs was originally implemented as TECO macros. However, I
by CalChris 1y ago
I've always considered TECO as the ur editor.
Of course, TECO is the explicit ancestor of emacs, as emacs was originally implemented as TECO macros. However, I can't find a paper trail giving similar credit to TECO for vi. That said, istuff<esc> is the same in TECO as it is in vi and TECO (1963) well predated vi (1976). RSTS (along with TECO) was used at Berkeley in 1974 before v6 Unix was installed by Ken Thompson on a sabbatical to his alma mater in 1975. Bill Joy started as a grad student at Berkeley that same year. emacs (1976) wasn't ported to Unix until the 80s.
There's no hard evidence and neither Ken Thompson nor Joy has ever mentioned TECO. So I'm probably wrong.
But I still consider TECO to be the ur editor.
- ajross 1y agoTECO was just a DEC line editor, not entirely unlike ed/ex. The idea of TECO managing a display terminal (i.e. the environment in which emacs was written as a bunch of macros) came much later, and really only existed at MIT. Glass TTY terminals were very new in the early 70's. TECO was primarily written to the "Knight TV" system, which was a fancy MMIO framebuffer array hooked up to a PDP-10 that would multiplex a bunch of displays and keyboards. There really was no "terminal" device per se, it was all software. There were other such devices (the MIT one was actually inspired by a similar system at Stanford), but nothing compatible enough to target an editor. So basically if you were at MIT you'd understand TECO as the pinnacle of editting . But no one else could use it. By the time Joy started writing vi, the idea of a "terminal" being a serial-connected device speaking a byte protocol with a handful of reasonable operations (position cursor, clear screen, etc...) had solidified. So a portable editor that would work with multiple devices was feasible. Emacs wouldn't get that for a few years yet.
- CalChris 1y agoTECO was a character-oriented editor. Also, it was widely available on RSTS, RSX, RT-11, ... and other DEC systems in the mid-70s. There's a character cursor. So if you opened a file with: The quick brown fox jumped over the lazy. The cursor would start before the T. 4C would position the cursor before the q. The 6D would delete quick . Then <esc><esc> would execute the command buffer. These fingers of mine learned TECO before they learned vi and then found vi easier to learn as a result. Besides the basic editing syntax, it was a programmable editor, hence the TECO emacs macros. Funny thing is that as fondly as I remember TECO, I've tried emacs a few times and have always worked my way back to vi/vim. I particularly like neovim now. I like using ex/command mode for doing bulk editing. Of course you can do the same thing in emacs but I've gotten used to it in vi. I remember programming TECO but I don't remember ever doing programmed editing.
- WalterBright 1y agoI started with TECO (Text Editor Character Oriented) on Caltech's PDP-10 back in 1975. There were no glass ttys, just DECwriters and ASR-33s (ugh). I.e. TECO was a line editor. A couple years later, ADM-3A's arrived. And so did a TECO macro that turned TECO into a screen editor! Oh, what joy! Isn't it a amazing that a macro could turn a line editor into a screen editor? I also used TECO on my H-11 PDP-11 computer.
- WalterBright 1y agoHere's that TECO macro (have fun!): [4 [5 [6 [7 [8 [9 +0U7 0,0X4 10U4 [4 ETU4 [4 EDU4 [4 EUU4 [4 ^D ET&(128#64#32#1^_)#512#16#8#2ET ED"G 0ED ' @^U5/U9 ET#1ET 27^T Q9^T ET&(1^_)ET/ @^U6/.U8 ZU4 -3U6 ^^HM5 13^T ^^KM5 10^T ^^KM5 13^T :G4 < ^TU7 !F! Q7^T ZJ Q7@I%% Q7-10"E 13^T ^^KM5 -1%6 ' Q7-21"E Q6^W 0U7 0; ' Q7-127"E -D Z-Q4"N -1AU9 -D Q9-27"E 32U9 ' Q9-31"G ^^DM5 ^^KM5 1+ ' 0"E 13^T -Q6-2< ^^KM5 ^^AM5 > 10^T 13^T :G4 Q4,ZT ' ' ' Q7-27"E ^TU7 Q7-27"E !F0! 27@I%% Q4,ZX4 ^^HM5 13^T -1U7 0; ' Q7-^^?"E ^T^[ @O!F0! ' @O!F! ' > Q4,ZK Q8J Q7/ 0,0X7 G_ ^YX8 ^YK 0,0X9 ^^HM5 13^T ^^=M5 < !A! 0U4 0U6 !B! 1U5 ET#32ET ^TU7 ET&(32^_)ET Q7"L -1^W ^TU7 ' !V! Q7-127"E .-Q5"L .U5 ' -Q5D @O!A! ' Q7-31"G Q7@I%% @O!A! ' Q7-26"E 0; ' Q7-21"E 0K @O!A! ' Q7-11"E Q5K @O!A! ' Q7-8"E Q5L .-1"G 2R ' @O!A! ' Q7-4"E Q5K @13I%% 10@I%% 2R @O!A! ' Q7-3"E 0; ' Q7-27"N Q7@I%% @O!A! ' ^TU7 Q7-^^C"E Z-.-Q5"L Z-.U5 ' Q5C @O!A! ' Q7-^^D"E .-Q5"L .U5 ' Q5R @O!A! ' Q7-^^?"E ^T&31#32U7 Q7-^^0"E Q5L @O!A! ' Q7-^^1"E Q5-1"E 0U5 ' Q5J @O!A! ' Q7-^^2"E ZJ @O!A! ' Q7-^^3"E 0L @O!A! ' Q7-^^4"E -Q5L @O!A! ' Q7-^^5"E Z-.-Q5"L Z-.U5 ' Q5D @O!A! ' Q7-^^6"E @FR%% @O!A! ' Q7-^^7"E Q5< 13@I%% 10@I%% 2R > @O!A! ' Q7-^^8"E Q5P @O!A! ' Q7-^^9"E Q5-1"E ^TU5 ' Q5@I%% @O!A! ' Q7-045"E @^U4%Search: % M6"F @O!A! ' G4 ^Y-2X8 ^YK @O!S! ' Q7-^^."E 0U6 !S! Q5:@S%^EQ8%^[ Q6"N Q6^W ' @O!A! ' @O!A! ' Q7"D 0U5 < Q5*10+Q7-^^0U5 ^TU7 Q7"D > ' @O!V! ' 0U8 Q7-^^A"E -1U8 ' Q7-^^B"E 1U8 ' Q8"N Q5*Q8U5 Q6"E 0U7 .U8 0L Q8-.%6< 0A-32"L 0A-27"N 0A-9"E 6-(Q7&7)%6^[ -2U7 ' %7 1%6 ' ' C %7 > ' Q5L -Q6U9 0U7 Q6< .-Z; 0A-32"L 0A-13"E 0; ' 0A-27"N 0A-9"E 6-(Q7&7)%9^[ -2U7 ' %7 1%9 ' ' C %7 1%9"G R ' Q9; > 0U4 @O!B! ' Q7-^^Q"E @^U4%Command: % M6"F @O!A! ' G4 ^YX9 ^YK @O!C! ' Q7-27"E 0U6 !C! ]4 Q4EU ]4 Q4ED ]4 Q4ET ]4 Q4-10"N ^O ' M9 10U4 [4 ETU4 [4 EDU4 [4 EUU4 [4 ^D ET&(128#64#32#1^_)#512#16#8#2ET ED"G 0ED ' -1EU Q6"N Q6^W ' @O!A! ' Q7-^^R"E G7 @O!A! ' Q7-^^P"E Q4"E .+1U4 ' Q5L Q4-1,.X7 Q4-1,.K G7 0U6 @O!B! ' > ET#16ET ^^>M5 ^^YM5 23+32^T 0+32^T ^^KM5 13^T !Z! ]4 Q4EU ]4 Q4ED ]4 Q4ET ]4 Q4-10"N ^O ' ]9 ]8 ]7 ]6 ]5 ]4 Obviously, the TECO programming language was a challenge to understand. Mitigating this is it needed to be extremely compact, as it was used on a 64Kb PDP-11.
- ChuckMcM 1y agoI was a TECO user on RSX-11M, then switched to FINE (Fine Is Not EMACS :-)) on Top 10 & 20. When I started at Sun I started using vi but on the Amiga I continued to use MicroEMACS which felt a bit like FINE[1]. After Sun I pretty much stuck to vi because it was so much faster over a remote X11 connection than EMACS was. Also used PFE32 for a while on the Amiga, sad that the source for that never made it out. [1] I still have Craig Finseth's thesis "A Cookbook for an Emacs" which talks about designing FINE.
- fuzztester 1y ago>Also used PFE32 for a while on the Amiga, sad that the source for that never made it out. I also used PFE32 (on Windows), and for those who may not know, the acronym stood for Programmers File Editor, IIRC :), and the 32-bit version, probably. It was a nice lightweight text editor. One feature it had, that not many other editors might have had at the time, was the ability to open fairly large text files (for that time, at least).