A Keyboard from 50 Years Ago That Influenced All Linux Developers Today

In 1969, Ken Thompson developed the UNIX system at Bell Labs in just three weeks, with the editor ed completed in only one week.

However, this command-line editor was originally designed to accommodate teleprinters rather than display terminals.

As a result, ed does not allow you to directly modify a line of text in an open buffer, nor can you move the cursor, because each edit requires reprinting the entire file; the so-called “screen” is merely a continuously outputting roll of paper, with all output permanently recorded in ink.

While you can view specific lines using the list command (l), most of the time you feel like you are editing text in the dark.

A Keyboard from 50 Years Ago That Influenced All Linux Developers Today

This line-by-line editing mode was very reasonable for teleprinters, but with the popularity of video display terminals, most users found using ed frustrating. More and more developers were suffering from this line editor…

The first UNIX system in the UK was installed at Queen Mary University in 1973. In 1976, George Coulouris, a lecturer at Queen Mary University, found ed extremely difficult to use, so he modified the code of ed and developed the em editor. The birth of the em editor snowballed into the development of vi and its many derivative editors.

In the summer of 1976, George Coulouris brought em to the University of California, Berkeley, where he met graduate student Bill Joy, who was developing the BSD system.

Based on the source code of em, Joy developed a new editor named en, which was soon further “extended” to create ex. Ex added two new modes while maintaining compatibility with ed: the “open mode” implemented the single-line editing function of em, and the “visual mode” pioneered full-screen editing.

When BSD version 2 was released in 1979, an executable file named vi emerged—it was essentially a shortcut to start ex in visual mode.

Things got interesting from there:

A Keyboard from 50 Years Ago That Influenced All Linux Developers Today

Bill Joy developed vi on an ADM-3A terminal. This keyboard had no arrow keys, and the arrow markings on the h/j/k/l keys became the standard for cursor movement;

The Escape key was located on the far left (roughly where the modern keyboard’s Tab key is), and this physical characteristic directly influenced the design of vi.

Today, vi/vim users rely on the Esc key to switch modes, which originates from the hardware layout of this 1970s keyboard, explaining why this counterintuitive design was given such an important function for mode switching.

A Keyboard from 50 Years Ago That Influenced All Linux Developers Today

In the early BSD Unix systems, vi was the only pre-installed text editor besides ed. As a direct descendant of ed, vi’s source code was restricted by the AT&T license, requiring authorization for any modifications.

This restriction directly led to the emergence of several open-source clone versions: STEVIE (the ST editor for VI enthusiasts) in 1987, Elvis in 1990, and nvi in 1994. These clone versions introduced innovative features such as syntax highlighting and split windows, with many features from Elvis being adopted by Vim due to strong user demand.

Now, 50 years after vi’s inception, the ADM-3A terminal has long since entered museums. However, the ADM-3A profoundly influenced the interaction methods of modern text editors, especially the keyboard layout of vi/vim.

The master is no longer in the world, but the legend of the master lives on.

I am a virtual machine, follow me to discuss computers.

Leave a Comment