The VI editor was developed starting around 1976 by Bill Joy, who was then a graduate student at the University of California at Berkeley. Joy later went on to co-found Sun Microsystems in 1982 and served as its Chief Scientist, playing an instrumental role in the rise of networked Unix workstations and Java technology.
"ed" was the original Unix text editor created by Ken Thompson at Bell Labs in 1969. Like other early computing utilities, ed was strictly line-oriented and designed to run on electromechanical printing teletype terminals (such as the Teletype Model 33 ASR) that printed output on paper rolls rather than cathode-ray screens. Joy first developed "ex" (Extended editor) as a superset of ed commands, adding the full-screen visual mode command (:vi) for newer video terminals.
VI remains enormously popular today in spite of the widespread development of modern graphical IDEs like VS Code, Sublime Text, or Eclipse. Because VI operates directly within the shell terminal buffer, it requires minimal system memory and is guaranteed to exist on every Unix and Linux distribution mandated by the Single UNIX Specification and POSIX standards.
Year |
Milestone |
Historical Significance |
|---|---|---|
1969 |
|
Original line editor written in PDP-7 assembly for early Bell Labs Unix. Influenced regular expression syntax. |
1976 |
|
"Editor for Mortals" created at Queen Mary College, London, demonstrating full-screen editing potential on CRT displays. |
1976–1979 |
|
Developed for BSD Unix. Joy created |
1980s |
POSIX Mandate |
POSIX standards enshrined |
1991 |
|
Released for Commodore Amiga and Unix. Added multi-level undo, split viewports, syntax highlighting, and scriptable plugins. |
2014–Present |
|
Refactored community fork of Vim providing asynchronous job control, embedded Lua configuration, and built-in LSP support. |
Beginners often wonder why VI uses h, j, k, and l instead of physical arrow keys for cursor navigation. The reason is rooted in computer hardware history:
~) was located on the same key as the caret/tilde, which is why Unix uses ~ to denote the user's home directory!:visual (or :vi) command inside the older line-based ex editor.
Explore the core capabilities that make VI irreplaceable on Linux servers in Class 9: Features of VI.
Continue to Class 9: Features of VI → Previous: ← VI Overview | Full Syllabus