The vi family

Hacker News Top Tools

Summary

This article provides a historical overview and categorized list of various vi-family text editors and clones, ranging from the original 1977 release to modern derivatives like Vim.

No content available
Original Article
View Cached Full Text

Cached at: 05/13/26, 06:36 AM

# The vi family Source: [https://lpar.ath0.com/posts/2026/05/the-vi-family/](https://lpar.ath0.com/posts/2026/05/the-vi-family/) Polls of Linux users suggest that`vi`family editors are the most popular\. The`vi`editor is a terminal\-based text editor which dates back to 1977\. If you’re wondering why so many people would choose to use a fifty year old text editor with a notoriously steep initial learning curve, it’s because once you learn it, you can be ruthlessly efficient with your editing\. There’s also the benefit that it’s basically everywhere, so you don’t have to keep re\-learning how to edit — most IDEs have`vi`key bindings as an option, including VS Code, IntelliJ IDEA, and XCode\. The`vi`2\.0 release \(1979\) was a very large piece of software for the time, and in the 1980s it was only available to people with a commercial UNIX® license from AT&T\. For this reason, multiple people created free clones of`vi`to run on 80s personal computers\. There are now many`vi`clones and derivatives to choose from, and I couldn’t find a good comprehensive list of all of them with links, so here’s mine\. Dates are release dates, to the best of my ability to track them down\. Some of the projects are no doubt defunct, but it can be hard to tell as they can also go years between releases\. I’m not going to list all the IDEs that have`vi`key bindings as an option, but other than that suggested additions are welcome\. ## Original ex/vi \(1977\-2017?\) [https://github\.com/n\-t\-roff/heirloom\-ex\-vi/](https://github.com/n-t-roff/heirloom-ex-vi/) The original 2\.11BSD vi, upgraded to support UTF\-8, with fixes for POSIX compliance\. No major “quality of life” improvements, and it will fall over editing very large files\. ## STevie \(1987–1989\) [https://nosuch\.com/tjt/STevie/](https://nosuch.com/tjt/STevie/) A clone for the Atari ST and Amiga\. If you don’t have an ST or Amiga you don’t want this\. If you*do*have an ST or Amiga, you probably still don’t want this, as there are better options available to you\. Vim \(see below\) descends from STevie\. ## Elvis \(1990–2024?\) [https://github\.com/mbert/elvis](https://github.com/mbert/elvis) One of the earliest`vi`clones, built to run on MS\-DOS, Minix, and other systems of the early 1990s\. [Elvis added improvements](https://htmlpreview.github.io/?https://github.com/mbert/elvis/blob/master/README.html)including multiple edit buffers, multiple windows, and syntax coloring\. Unlike STevie, it used a file buffer for editing, so it could deal with files larger than available memory\. It was used for the 80386 port of BSD Unix\. ## xvi \(1992–2017?\) [https://martinwguy\.github\.io/xvi/](https://martinwguy.github.io/xvi/) A STevie derivative which adds multiple windows and buffers\. Probably the smallest`vi`clone\. ## Vile \(1991–\) [https://invisible\-island\.net/vile/](https://invisible-island.net/vile/) Originally derived from Microemacs, given`vi`style editing, but with*more*modes\. Adds infinite undo, UTF\-8 support, syntax highlighting, and more\. ## Vim \(1991–\) [https://www\.vim\.org](https://www.vim.org/) Probably the most used`vi`clone\. Derived from STevie\. Adds windows, multiple buffers, assorted scripting options, and UTF\-8 support\. Handles very large files \(GB in size\)\. Now incorporating LLM\-generated code\. ## nvi \(1994–\) [https://repo\.or\.cz/nvi\.git](https://repo.or.cz/nvi.git) Based on Elvis, a reimplementation of`vi`intended to be identical in core behavior to the original\. Used for the 4BSD Unix release\. Adds support for additional scripting languages \(Perl and Tcl\)\. Introduced use of a database for storing file data\. It’ll open files of about a GB in size but will complain about DB page sizes\. Also unfortunately still doesn’t support UTF\-8 text\. ## OpenBSD vi / OpenVi \(1994—\) [https://github\.com/johnsonjh/OpenVi](https://github.com/johnsonjh/OpenVi) A derivative of`nvi`\. Extensively cleaned up, but still doesn’t support UTF\-8 text\. Also missing macros, scripting, syntax highlighting\. ## BusyBox vi \(2001–\) [https://busybox\.net](https://busybox.net/) BusyBox includes a tiny incomplete \(but usable\) implementation of`vi`\. You’ll encounter it in Alpine Linux and embedded systems\. ## IllumOS vi \(2005–\) [https://github\.com/illumos/illumos\-gate/tree/master/usr/src/cmd/vi](https://github.com/illumos/illumos-gate/tree/master/usr/src/cmd/vi) AT&T UNIX®`vi`from SVR4, open\-sourced as part of OpenSolaris in 2005\. ## nvi2 \(2011–\) [https://github\.com/lichray/nvi2](https://github.com/lichray/nvi2) Adds UTF\-8 support to nvi, as well as various CJK encodings\. ## neovim \(2014–\) [https://neovim\.io](https://neovim.io/) Cleans up Vim by removing support for ancient platforms\. Adds LSP support, a built\-in terminal emulator, Lua scripting to replace VimScript, and many other features\. Now incorporating LLM\-generated code\. ## EVi \(2026–\) [https://codeberg\.org/evi\-editor/evi](https://codeberg.org/evi-editor/evi) A fork of Vim from before it began gaining LLM\-generated code\. ## Vim Classic \(2026–\) [https://vim\-classic\.org](https://vim-classic.org/) A fork of Vim from version 8\.3 \(pre LLM code\), aiming for long term support by humans\. ## ToyBox vi \(2027?\) [https://codeberg\.org/landley/toybox](https://codeberg.org/landley/toybox) ToyBox, the non\-GPL BusyBox clone,[may be getting its own](https://codeberg.org/landley/toybox/src/branch/master/toys/pending/vi.c)tiny`vi`implementation\. --- Also, some things which aren’t really vi, but… ## Viper \(1995–\) [https://www\.gnu\.org/software/emacs/manual/html\_mono/viper\.html](https://www.gnu.org/software/emacs/manual/html_mono/viper.html) A set of`vi`key bindings for Emacs\. ## Kakoune \(2012–\) [http://kakoune\.org](http://kakoune.org/) A modal editor inspired by`vi`, but with[slightly different key bindings](https://raw.githubusercontent.com/mawww/kakoune/refs/heads/master/VIMTOKAK)\. Designed to be minimal, calls external programs for some features\. ## Evil \(2013–\) [https://github\.com/emacs\-evil/evil](https://github.com/emacs-evil/evil) Another implementation of`vi`modal editing on top of Emacs\. ## vis \(2015–\) [https://github\.com/martanne/vis](https://github.com/martanne/vis) Like`vi`, but with structural regular expressions and other features taken from`sam`, the Plan 9 editor\. \(Sam is a graphical editor, so isn’t in this list\.\) ## Helix \(2021–\) [https://github\.com/helix\-editor/helix](https://github.com/helix-editor/helix) Another new modal editor, inspired by Kakoune and Vim\. Again,[key bindings are different](https://github.com/helix-editor/helix/wiki/Differences-from-other-editors#vim)\.

Similar Articles

A History of IDEs at Google

Hacker News Top

A retrospective on the evolution of IDEs at Google, from a fragmented ecosystem of individual choices to the development of a cloud-based IDE called Cider that gained popularity for its efficiency in editing and code review.

The Emacsification of Software

Hacker News Top

The author discusses the frustration of reading Markdown in the terminal and describes using Claude to quickly build a custom macOS Markdown viewer (MDV.app), illustrating how AI enables rapid creation of personal software tools.

So you've installed `fzf`. Now what? (2023)

Lobsters Hottest

This article provides a practical guide on how to maximize productivity with the `fzf` fuzzy finder tool, demonstrating its integration with shell commands, `vi`, and `ripgrep` for efficient file and command searching.

I vibecoded something engineers are starring in github

Reddit r/AI_Agents

The author announces iai-mcp, a local memory tool for Claude Code that retains context across sessions, and reflects on the positive community feedback and rapid iteration following its GitHub release.