The Vi Family: 50 Years of Terminal Text Editors
Polls consistently show vi-family editors are the most popular among Linux users. The original vi, released in 1977, is a terminal-based editor with a steep learning curve that rewards you with ruthless editing efficiency. Once learned, its modal editing is available everywhere — VS Code, IntelliJ IDEA, XCode, and most IDEs offer vi key bindings.
But vi's history is complex. The 1979 vi 2.0 release was proprietary UNIX® software, unavailable without an AT&T license. This drove developers in the 80s and 90s to create free clones. Today, there are dozens of vi clones and derivatives. Here's the most comprehensive list I could find, with release dates and key features.
Original ex/vi (1977–2017?)
- Repo: heirloom-ex-vi
- Based on 2.11BSD vi, upgraded with UTF-8 support and POSIX compliance fixes. No major quality-of-life improvements. Falls over on very large files.
STevie (1987–1989)
- Repo: STevie
- Clone for Atari ST and Amiga. Vim descends from STevie. If you don't have an ST or Amiga, skip this.
Elvis (1990–2024?)
- Repo: elvis
- Early clone for MS-DOS, Minix, and early 90s systems. Added multiple edit buffers, windows, and syntax coloring. Used a file buffer to handle files larger than memory. Used for the 80386 BSD port.
xvi (1992–2017?)
- Repo: xvi
- STevie derivative with multiple windows and buffers. Probably the smallest vi clone.
Vile (1991–)
- Repo: vile
- Derived from Microemacs, given vi-style editing with more modes. Adds infinite undo, UTF-8, syntax highlighting.
Vim (1991–)
- Repo: vim
- Probably the most used vi clone. Derived from STevie. Adds windows, multiple buffers, scripting, UTF-8. Handles GB-sized files. Now incorporates LLM-generated code.
nvi (1994–)
- Repo: nvi
- Based on Elvis, intended to be identical to original vi. Used for 4BSD Unix. Adds Perl/Tcl scripting, database-backed file storage. Opens ~1 GB files but complains about DB page sizes. No UTF-8 support.
OpenBSD vi / OpenVi (1994–)
- Repo: OpenVi
- nvi derivative, cleaned up. Still no UTF-8, macros, scripting, or syntax highlighting.
BusyBox vi (2001–)
- Repo: busybox
- Tiny, incomplete but usable vi implementation. Found in Alpine Linux and embedded systems.
IllumOS vi (2005–)
- Repo: illumos-gate
- AT&T UNIX® vi from SVR4, open-sourced as part of OpenSolaris in 2005.
nvi2 (2011–)
- Repo: nvi2
- Adds UTF-8 support to nvi, plus various CJK encodings.
neovim (2014–)
- Repo: neovim
- Cleans up Vim, removes ancient platform support. Adds LSP, built-in terminal, Lua scripting. Now incorporates LLM-generated code.
EVi (2026–)
- Repo: evi
- Fork of Vim from before LLM-generated code was added.
Vim Classic (2026–)
- Repo: vim-classic
- Fork of Vim 8.3 (pre-LLM), aiming for long-term human support.
ToyBox vi (2027?)
- Repo: toybox
- Non-GPL BusyBox clone, may get its own tiny vi implementation.
Not Quite vi
- Viper (1995–): vi key bindings for Emacs. GNU Viper
- Kakoune (2012–): modal editor inspired by vi, different key bindings, minimal, calls external programs. kakoune
- Evil (2013–): another vi modal editing layer for Emacs. emacs-evil
- vis (2015–): like vi but with structural regular expressions from sam. vis
- Helix (2021–): modal editor inspired by Kakoune and Vim, different key bindings. helix
Why This Matters Now
The vi ecosystem is in flux. Vim and neovim have started incorporating LLM-generated code, which has split the community. Forks like EVi and Vim Classic aim to preserve a purely human-crafted editor. If you value stability and human-reviewed code, consider those. If you want the latest features, stick with neovim. The modal editing paradigm isn't going anywhere — it's been 50 years and still going strong.
Next Steps
- Try a new vi clone you haven't used before. If you're on Vim, give neovim a shot for its LSP and Lua scripting.
- If you're worried about LLM-generated code, check out EVi or Vim Classic.
- For embedded systems, BusyBox vi is your friend.
- If you're an Emacs user, Evil or Viper can give you the best of both worlds.




