HN
Today

The vi family

This article delves into the surprisingly rich history and diverse family tree of the vi text editor, from its 1977 origins to modern derivatives and modal-editing inspirations. It highlights how vi's efficiency, once mastered, and its pervasive availability across systems have cemented its status among developers. Hacker News readers appreciate this deep dive into a foundational tool, sparking nostalgic discussions and comparisons of its myriad descendants.

31
Score
6
Comments
#3
Highest Rank
8h
on Front Page
First Seen
May 13, 4:00 AM
Last Seen
May 13, 11:00 AM
Rank Over Time
954343612

The Lowdown

The vi text editor, dating back to 1977, remains remarkably popular among Linux users despite its steep initial learning curve. Its enduring appeal lies in the ruthless efficiency it offers once mastered, coupled with its near-ubiquitous presence across systems, making it a foundational tool for developers.

The article provides a comprehensive, albeit potentially incomplete, list of vi clones and derivatives, detailing their origins, key features, and release timelines:

  • Original ex/vi (1977-2017?): The initial 2.11BSD version, updated for UTF-8 and POSIX, but lacking modern "quality of life" features.
  • STevie (1987–1989): An early clone for Atari ST and Amiga, notable as the ancestor of Vim.
  • Elvis (1990–2024?): One of the earliest clones for MS-DOS and Minix, introducing multiple buffers, windows, and syntax coloring.
  • Vile (1991–): Derived from Microemacs, it brought vi styling with added features like infinite undo and UTF-8 support.
  • Vim (1991–): The most widely used vi clone, descended from STevie, known for windows, scripting, and large file handling; now incorporates LLM-generated code.
  • nvi (1994–): Based on Elvis, aiming for core behavior identical to the original vi, used in 4BSD Unix.
  • OpenBSD vi / OpenVi (1994—): A cleaned-up nvi derivative, still lacking UTF-8 support and advanced features.
  • BusyBox vi (2001–): A tiny, incomplete implementation found in embedded systems and Alpine Linux.
  • neovim (2014–): A modern Vim cleanup, removing ancient platform support and adding LSP, Lua scripting, and a built-in terminal.
  • EVi (2026–) and Vim Classic (2026–): Recent forks of Vim explicitly created to pre-date the inclusion of LLM-generated code, aiming for human-maintained development.
  • Non-Vi, but Vi-Inspired Editors: The article also touches on editors that adopt vi's modal philosophy without being direct clones, such as Viper (Emacs key bindings), Kakoune, Evil (another Emacs implementation), vis, and Helix.

This extensive lineage underscores vi's profound and lasting influence on text editing paradigms. Its evolution from a proprietary tool to a diverse ecosystem of open-source projects and modal-editing inspirations highlights a continuous pursuit of efficiency and adaptability in the developer's toolkit.

The Gossip

The VI-rtuous Cycle of Vi

Commenters wax nostalgic about their introduction to `vi` and its enduring utility. Many share personal anecdotes of learning `vi` in university or early careers, often out of necessity for server administration or embedded systems where other editors are unavailable. The consensus is that while the initial learning curve is steep, the investment pays off due to `vi`'s omnipresence and efficiency, which solidifies its status as a reliable, if not primary, editor for many decades.

Neo-Vi & Modern Modal Marvels

The discussion naturally pivots to modern `vi` derivatives and modal editors that have evolved beyond the original. Users highlight editors like Neovim and Helix, praising their out-of-the-box experience, improved features (LSP, Lua scripting), and user-friendliness compared to traditional `vi` or heavily configured Vim. There's a clear appreciation for how these newer editors retain the core `vi` efficiency while addressing modern development needs and lowering the barrier to entry.

Pedantic Ponderings & Content Critiques

As is common on Hacker News, some comments offer corrections or nuanced observations regarding the article's details. One user clarifies that `sam` (Plan 9 editor) is not inherently graphical, distinguishing it from `samterm`, and notes `vi`'s underlying reliance on `ed`-style commands. Another commenter expresses mild irritation at the article's mention of LLM-generated code in Vim, suggesting it's a "specific axe to grind" that detracts from the historical narrative.