Emacs Meta Key History

By Xah Lee. Date: . Last updated: .

2018-09-25 2020-06-02 this page is work in progress.

emacs PDP6 teco 2020-06-01 nbspj
2020-06-01 what keyboard did emacs use in 1970s when emacs was TECO? Answer by Lars Brinkhoff

The Damnation of the Emacs Meta Key

what keyboard did emacs use in 1970s when emacs was TECO?

what keyboard is used on PDP6 and PDP10? Those are what TECO runs one, which emacs came from. Am trying to dig the history of emacs meta key.

its common belief that emacs meta key came from lisp machines. (counting me) but am beginning to think that's half true. i think lisp machines are actually rare, in 70s n 80s. Lisp machines is at MIT AI lab, but EMACS began before it.

so, it seems to be this:

  1. emacs originated as editor macro for the TECO editor, used at MIT AI Lab.
  2. MIT AI Lab use PDP 6 and PDP 10 machines. These are mainframe computers. So, what keyboard are connected to them?
  3. It seems, the Knight Keyboard, created by Tom Knight, is used.
  4. PDP machine runs ITS operating system. It is written by Tom Knight. He also designed the first semiconductor memory-based bitmap displays.
  5. One earlier keyboard, that also has Meta, is the SAIL Keyboard.

So, SAIL Keyboard is first to have Meta key (then Knight keyboard n lisp machines copied it). Then, Apple copied it to become Cmd and Option. Somewhere somebody created Alt (IBM?). Microsoft later made a Windows key. much thx to @mwichary

and of course, Shift came from typewriter, Control must be no brainer, from ASCII or terminal of need for non printables characters. History of Alt key is still a mystery for me.

Project MAC
SAIL keyboard 3baa6-s289x217
SAIL Keyboard

SAIL keyboard is for the Stanford AI lab Datadisc and III displays connected to the PDP-10 computer running WAITS.

SAIL was started in 1963 by John McCarthy (inventor of LISP programing language) , after he moved from Massachusetts Institute of Technology to Stanford.

SAIL was one of the leading centers for AI research and an early ARPANET site.

So, in summary, the meta key as used by emacs must came from the Knight keyboard.

Though, one earlier keyboard, the SAIL keyboard at Stanford AI lab, also has meta. In fact, Knight keyboard seems inspired from it, as there's lots similarity even coloring.

So, where does Meta key concept in SAIL keyboard came from? but am pretty sure it does not have anything to do with emacs.

omg tracing the emacs meta key, takes you back to TECO, MULTICS, ITS, SAIL, Project MAC. PDP-1/6/10, and it's all AI and all about LISP! beginning in 1960s, and all the notable biggest computer scientists came out.

On July 1, 1963, Project MAC (the Project on Mathematics and Computation, later backronymed to Multiple Access Computer, Machine Aided Cognitions, or Man and Computer) was launched with a $2 million grant from the Defense Advanced Research Projects Agency (DARPA). Project MAC's original director was Robert Fano of MIT's Research Laboratory of Electronics (RLE). Fano decided to call MAC a "project" rather than a "laboratory" for reasons of internal MIT politics — if MAC had been called a laboratory, then it would have been more difficult to raid other MIT departments for research staff. The program manager responsible for the DARPA grant was J. C. R. Licklider, who had previously been at MIT conducting research in RLE, and would later succeed Fano as director of Project MAC.

TECO was originally developed at MIT in around 1963 by Daniel L. Murphy for use on two PDP-1 computers.

1967 Tom Knight wrote the original kernel for the ITS operating system, as well as the combination of command processor and debugger that was used as its top-level user interface. ITS was the dominant operating system for first Project MAC and later the MIT Artificial Intelligence Laboratory and MIT Laboratory for Computer Science. ITS ran on PDP-6 and, later, PDP-10 computers.

TECO (Tee'koh[1] / /ˈtiːkoʊ/), Text Editor & COrrector[2][3][4] is both a character-oriented text editor and a programming language,[5][6] that was developed in 1962 for use on Digital Equipment Corporation computers, and has since become available on PCs and Unix. Dan Murphy developed TECO while a student at the Massachusetts Institute of Technology (MIT).[5]

According to Murphy, the initial acronym was “Tape Editor and Corrector” because “punched paper tape was the only medium for the storage of program source on our PDP-1. There was no hard disk, floppy disk, magnetic tape (magtape), or network.”[5] By the time TECO was made available for general use, the name had become “Text Editor and Corrector,”[4] since even the PDP-1 version by then supported other media.[5] It was subsequently modified by many other people[7] and is a direct ancestor of Emacs, which was originally implemented in TECO macros.

2018-09-22 Wikipedia TECO (text editor)


ITS OS emulation


Marcin Cieślak @saper@word.builders

@simon_brooke @xahlee Regarding TECO itself (whether it was inspiration for the Meta key or not) I have found a webpage of a Linux port of TECO my Tom Almy ( http://almy.us/teco.html ) which links to the home page of the original TECO author (Dan Murphy) http://www.opost.com/dlm/ who says it was created on PDP-1 which used http://www.computer-history.info/Page4.dir/pages/PDP.1.dir/ cards

As the Octopus idea became more specific, the PDP-1 was used to study what kind of keyboard would be best for use with the terminals to be installed in the users' offices. The two keyboards most heavily studied were the IBM Selectric I/O typewriter and the Teletype ASR 33. Based on initial costs and the expected costs for maintenance, the ASR 33 was chosen.

And here is the story “The Beginnings of TECO”


In other words, the idea was to hand-mark changes on your source listing and enter the TECO com- mands necessary to make those changes on the Flexowriter (i.e. find a spot, delete, in- sert, move on). Then, when our computer time came, we would load TECO and read in our commands tape, so TECO could read our old source tape and quickly punch a new one.

The last one explains a lot, even if it does not mention a “Meta” key.

posted to reddit.

hi guys, am trying to get an overview of keyboards used by emacs people during 70s and 80s. If you been there, could you list the keyboards/terminal you used, and year period, before 1990, as much as you can remember?

if you been there, help me out. thanks.

What Keyboards Are Used for Emacs in 1970 and 1980s?

been thinking, what keyboard were emacs users used during 70s and 80s? example: which of the Lisp Machine Keyboards

wanted to be specific, a research job. example: in what period, was Space Cadet Keyboard used, by what % of emacs user?

also, in 70s, was it just knight keyboard? what years? and what keyboard(s) was ITS machines/Teco using? so, perhaps i should ask the few i know who used emacs for 30+ years. Or, maybe we can do a hangout for this?

so, i should ask each emacs 30+ years users i know of, ask them to list the keyboard they used, year period, as much as they can recall.

i've always felt, that the Space Cadet Keyboard

Space-Cadet keyboard 2-s392x159
Space-Cadet, 1980

is famous TODAY because its exotic, but may actually not known to many emacs people back then.

having studied a bit about lisp machines last week, i think now that, during 1975 to 1980, most emacs users or dev are using either the knight keyboard or whatever ITS keyboard is. During 1980 to 1985, i think it's one of the lisp machine keyboard, including space cadget, or, whatever most terminal or is popular. After 1985, i think there's more diversity. unix would have become very popular by then. might be HP-UX, AIX, Sun Microsystems, SGI, etc, whatever keyboards that comes with their hardware.

i know the story first hand for after 1990s. In 1990s, vast majority of emacs users would be on generic PC keyboards. IBM's personal computers, example: PS/2. A small percentage, like 10% to 20%, is on Apple's keyboards. And in 2000s, again, it's almost all PC keyboards, including lots from Microsoft and Dell, etc.


Stallman and Steel's original EMACS was inspired by Fred Wright's E editor (an early WYSIWYG editor) and TECO (a cryptic modal editor/language) — EMACS was a set of macros for TECO. See Essential E [PDF] (from SAIL , 1980). E however used Control-Form for "beginning of line", this was on the "DataDisc" keyboard which had a Control key, and a Form key. The space-cadet keyboard of the time (lacking a Home key by the way, though it had an End ) is commonly blamed for the Emacs keyboard interface.

One of the desirable features of EMACS was its use of TECO's Control-R "real-time" line editing mode (TECO predates CRT/keyboard terminals), you can see the key bindings on page 6 of the MIT AI Lab 1978 ITS Introduction to the EMACS editor [scanned PDF], where ┌ is used to denote Control. In this mode, the key bindings were all control sequences, largely mnemonic: Control-E End of this line , Control-P move to previous line , Control-N move to next line , Control-B backward one character , and not least Control-A move to beginning of this line , Costas' suggestion of "first letter of the alphabet" for this is as good as any.

(A similar key-binding is in the tvlib macro package which aimed to make EMACS behave like the TVEDIT editor, binding control A and E to backward and forward sentence , but used different sequences for beginning and end of line.)

The Control-A/Control-E bindings in "^R mode" were implemented directly in the ITS TECO (1983, version 1208, see the _teco_.tgz archive at the nocrew PDP10/ITS site, or on Github ), though I cannot determine more accurately when they first appeared, and the TECO source doesn't indicate why any particular bindings were chosen. The 1978 MIT EMACS document above implies that in 1978 EMACS did not use TECO native Control-A/Control-E, it's possible that the scrlin macro package (screen line) implemented these.

To recap:

See also:

2018-07-18 from George Jones

  1. 1970s: ADM-3A
  2. ≺ 1985: vt 52, vt 100, and their clones
  3. ≺ 1990: pcs, amiga, sun, others.
terminal ADM 3A
ADM-3A, 1976
DEC VT100 terminal 2013 08 30 7ea01a58 s s265x236
DEC VT100, 1978

For what people were using in 80s/early 90s you might try researching the terminal room at USENIX events. Look for pictures, sponsors, maybe try to contact the cooridnators and volunteers listed in pubs. My one near-encounter with RMS was him hacking a USENIX terminal room.

For perspecive, I think most emacs users ≺ 1995/2000 just used the keyboards they had. The whole ergonimic keyboard really didn't happen before that. RSI was not really a known thing. There were the odd cases like the LISP machines where uber-geeks designed their own systems and keyboards, but those were the exception. Most people used whatever terminals and keyboards where available in labs, at work, etc. Even with the PCs/keyboards available ≺ 1985, there was not near the selection we have today. FWIW.

Xah Lee: so the lisp machines are really rare, right?

Yes. I happened to be around a computer science department that had few (Ohio State AI lab) but I never used them myself.

2018-07-19, Tim Chambers

Thanks for asking, Xah.

early 2000s–present Microsoft Natural keyboard; also keyboards on various notebooks, notably:

2018-07-19 from Simon Brooke https://mstdn.io/web/accounts/98885

Oh, shoot, I don't think I could really name the keyboards. My personal favourite keyboards are compact Cherrys - G84-4100 and similar - because they're long lived, have good touch, and don't clutter the desk.

I've certainly used real VT100s and various VT100 clones (which were mostly better). I also used early IBM PC and RS6000 terminals, but I wasn't very keen on their keyboards (I know other folk rave over them).

The keyboards on Sun II workstations were OK. The original 128k Macintosh and 512k ‘Fat Mac’ keyboards were a bit weird - clunkily deep - but nice and compact.

BBC Micro keyboards were also remarkably nice, given they were relatively inexpensive machines. Indeed, all Acorn keyboards I can remember were good except the Electron, which was distinctly cheap.

@xahlee Other ‘home computers' of the period mostly had pretty dreadful keyboards - chicklets, or membrane, or rubber buttons overlaying a membrane, or (in the case of the Sinclair QL) actual plastic keytops sat on a membrane.

The Xerox 1108 keyboard was an ENORMOUS thing - worked well, nice touch, but HUGE. The 1186 keyboard was svelte in comparison - similar to PC keyboards of the period (1986)

@xahlee Come to think of it, the best VT100 clones I used were Wyse terminals - Probably WYSE 55. I really liked the amber screen ones which were very easy on the eyes, but green on black is a lot better than black on white.

2018-07-21 from fizzlehucker

I started using emacs in 1984. It was on terminal connected via 1200-baud connection to my university's Prime Minicomputer. If you were lucky you might be able to get one of the (few) 9600-baud terminals which were sprinkled around campus. Even at 1200-baud I was always impressed how gracefully emacs handled slower speed connections.

The keyboards on terminals back then were *very* different than keyboards today. For example, some only had uppercase characters, the control key was all over the place and there were often no meta/alt keys. I think I used ESC for my meta key for almost decade. Some keyboards even lacked “basic” keys like # ^ [ ] { }. Look at the wikipedia article on C/C++ digraphs and trigraphs to see what I mean.

Terminals (or keyboards) that I have used in the 80's (in no particular order):

  1. Digital Equipment Corp: vt50, vt100, vt220
  2. Techtronix: 4010
  3. Prime Computer: pt45, pst100, pst220
  4. ADDS Regent: 40
  5. Wyse: Wy50, Wy85
  6. Perkin-Elmer: Fox-1100
  7. Commodore: c64 (via 300 baud modem to PrimOS on school's mainframe), Amiga
  8. Apple: IIe, IIc (via 300 baud modem to PrimOS on school's mainframe)
  9. Apollo: DN300
  10. Sun: 3/50, 3/60, i386
  11. Probably more but, you know, it was the 80s!

2018-07-21 from 7890yuiop

Well FWIW in the 80s I was typing on these:

If I ever used one of them with Emacs it wasn't until the 90s, but I suspect I may have done so via a terminal emulator on the Master, connecting to Emacs on an Alpha or SunOS machine, prior to switching to an IBM PC clone.

BBC Micro Front Restored 518b7
BBC micro, released by Acorn. Year 1981 to 1994. BBC Micro

The British Broadcasting Corporation Microcomputer System, or BBC Micro, is a series of microcomputers and associated peripherals designed and built by the Acorn Computer company for the BBC Computer Literacy Project, operated by the British Broadcasting Corporation. Designed with an emphasis on education, it was notable for its ruggedness, expandability, and the quality of its operating system. An accompanying 1982 television series, The Computer Programme, featuring Chris Serle learning to use the machine, was also broadcast on BBC 2.

2018-07-21 BBC Micro

Acorn BBC Master Series f31c3
Acorn BBC Master Series. Year 1986 to 1993. image source

The BBC Master is a home computer released by Acorn Computers in early 1986. It was designed and built for the British Broadcasting Corporation (BBC) and was the successor to the BBC Micro Model B. The Master 128 remained in production until 1993.

2018-07-21 BBC Master

2018-07-21 from StrangeAstronomer

From 1981 I worked for HP on Unix:

  1. hp2645
  2. hp2647
  3. hp2621


I don't recall any particular problems, but perhaps I was using the Esc key rather than Meta.

I used emacs to write some utilities that used the function keys and on-screen function key labels - eg a simple editor.

The Original IBM PC 5150 - the story of the world's most influential computer

The Original IBM PC 5150 - the story of the world's most influential computer
hackernews emacs meta 2019-11-21 z6jd2
hackernews emacs meta 2019-11-21 ngm44

Lisp Machine Keyboards

SAIL keyboard b1c80-s306x204
lisp knight keyboard-s339x184
lmi-cadr keyboard 1st gen space cadget 31997-s289x217
Space-Cadet keyboard 2-s392x159
Xerox 1108/1109
symbolics keyboard pn364000 mrq3w-s349x179
Symbolics PN 364000
Symbolics keyboard PN 365407 130df-s349x179
Symbolics PN 365407
Racal-Norsk KPS-10 keyboard 1-s303x206
Racal-Norsk KPS-10
Lisp Machine Keyboards
Keyboard Design for the LISP Machine
History of Emacs and vi Keys