Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I 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.



We had TECO on our DEC VAXes running VMS in the early-mid 1980s. It had a ”VT52” mode (as you say, a macro), and at least one of the terminals on my desk supported those escape sequences. Wikipedia says the VT52 terminal was made from 1975 to 1978, so those macros were probably fairly early. By this stage, TECO distribution was fragmented with various incompatible versions around, so probably some lacked that macro or other full-screen macros.

Although I had a terminal which could run TECO full screen, I found that too slow and just used it in line mode. You could conveniently reprint surrounding lines by adding a few characters to the end of a commmand (I still have HT <ESC> <ESC> burned into my brain.) The VT52 macro had you typing commands into line 24 like an emacs minibuffer.

I never used it for all my editing, but it excelled at certain things.

The version of TECO we had was the one which shipped with VMS. At some point later on, I think, DEC stopped shipping it, and we migrated to a TECO-inspired full-screen editor developed by another university. Once that arrived, we hard-core TECO users, all 4 of us, were won over within a week.


A lot of the "elite" compsci students at my college in the early-ish 80s were still using TECO on our DECSYSTEM 2060 but some of the cool-kids were trying that new Emacs thing ;)

Me, being just a lowly compsci minor, prefered the full screen editor called FOXE. Was very simply to use and did the job fine for writing/editing programs of the length typical of homework assignments. Don't recall all the particulars to comment on search, replace, etc.

Unfortunately, there is like zero internet info on it beyond: "Little (if any) information is available for this visual editor available for TOPS-20 in the early 1980's. It was similar in appearance to the then new EMACS but had a far simpler command structure."


Great story!

The TECO macro I posted is the VT52 one.


TECO has commands that support line editing—like 0T and T, but they both are required to type a whole line—but it is a character editor; you can delete characters from the middle of one line to the middle of the next, if you know the character positions; line editors can't do that. another example, the buffering window that you are editing within is not line aligned.


At the time, I was told that a student once claimed that TECO was a complete programming language. He was challenged to write a FORTRAN compiler in TECO, and did.

I'm not sure if that was true.


The name I recall from using it on a PDP 11/04 was 'Text Editor and Corrector' https://en.wikipedia.org/wiki/TECO_(text_editor)

I vaguely recall it had a line-open / visual mode, like ex/vi, which we didn't use because we were on a dot-matrix line printer / teletype. The ADM-3A had the Ctrl key on the home line; this design made it easy for editors from that period (vi, emacs) to make heavy use of Ctrl.

Thanks to those who posted bits of TECO - I'd forgotten how the character movement was similar to vi. A fellow student in our CS honours year had a semester thesis project analysing the grammar of vi commands and specifying it in a formal grammar. The combination of action x movement is powerful, simple and concise.


It could also be invoked on VAX/VMS under the name “MUNG”, which was said to stand for “Modify Until No Good”. I think that style of invocation did something slightly different than using the TECO command, like creating a new file.


Here'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.


That has a texture reminiscent of the J/k family.


I love this use of texture; will steal ;)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: