In August 1969, at AT&T Bell Labs, Ken Thompson set aside one week to write a text editor called ed while assembling the core components of the nascent Unix operating system. Thompson had previously adapted the QED editor for MIT's Compatible Time-Sharing System in 1966 after working with it at UC Berkeley. Because the primary hardware interface at Bell Labs was a paper teletype terminal rather than a modern video screen, ed had to function strictly as a line editor.
The Teletype Constraints of Paper and Ink
Printing on physical paper meant ed could not clear the display or move a cursor around an existing buffer without reprinting text in ink. To limit unnecessary paper printouts, Thompson introduced a strict modal system where users entered commands separately from text. He established single-letter commands such as w to write files to disk and q to quit, which could be combined into wq. He also created the s/foo/bar/g syntax for global string substitution. These commands laid down the foundational line-editing syntax for early Unix.
From Mortals to Visual Terminals
As video display hardware emerged, line-by-line printing became obsolete. In 1975, George Coulouris developed em—short for editor for mortals—at Queen Mary's College in London, enabling single-line interactive editing on screen hardware. In 1976, Coulouris brought em to UC Berkeley, where graduate student Bill Joy used it as inspiration to build ex. Between 1976 and 1979, Joy expanded ex into vi to support full-screen visual editing for BSD Unix.
The physical layout of Joy's Lear Siegler ADM-3A terminal left an indelible mark on the editor's design. The terminal lacked standalone arrow keys, so arrows painted onto the h, j, k, and l keys designated cursor movement, while the Escape key occupied the physical position where modern keyboards place Tab.
The Fred Fish Floppy Disks
By the late 1980s, licensing restrictions on AT&T Unix source code prevented developers from freely redistributing vi, sparking open-source clones like STEVIE. In 1988, software engineer Bram Moolenaar set out in Venlo, Netherlands, to build a vi-compatible editor for his Amiga 2000 computer. Obtaining the source code for STEVIE from Fred Fish floppy disk 256—a monthly mail-order distribution of curated open-source software—Moolenaar expanded its functionality to achieve exact vi macro compatibility. In 1991, Moolenaar publicly distributed his editor on Fred Fish disk 591 under the name Vi Imitation.
Incremental Refinement and the Terminal Standard
Vim quickly evolved beyond simple mimicry. In 1993, Moolenaar released Vim 2.0 via FTP, changing the program's full title to Vi Improved while introducing horizontal text scrolling and line-wrapping options. Vim 3.0 added split windows, buffer management, and swap file crash protection. Syntax highlighting and Vimscript customization arrived with Vim 5.0. This steady accumulation of features built upon fifty years of Unix editing lineage. According to Stack Overflow's 2018 Developer Survey, Vim had become the premier terminal editor, used by 25.8 percent of all software developers.
Today, Vim's ubiquity rests on half a century of unbroken backwards compatibility and hardware constraints. Commands designed for paper teletypes in 1969 and keybindings forged on a 1970s video terminal remain active across millions of modern servers. By preserving ergonomic choices dictated by early hardware while expanding through community iteration, Vim transformed line-editing conventions into an essential component of modern software infrastructure.
AI-generated editorial illustration; not a documentary photograph.
Source: 0b10
0b10
Where Vim Came From

Leave a Reply