If you’ve used or read about Linux, you must have come across Vi at least once.
vi is a command that opens one of the two legendary editors, Vi Editor.
Vi is a modal editor, i.e. it works in two modes. The default mode or normal mode is used for commands. When inserted keys are interpreted as commands. While the insert mode (switched to using
i command from keyboard) is used to insert text in the file. For switching back to normal mode, press
ESC and enter the command.
While vi is one of the most respected software along with Emacs, except for their Editor War, it is a typical command line program for UNIX which lacks lots of features available in its modern counterparts. Here I list Vi Clones which offer better feature set and are also available for other platforms than Linux. All software mentioned here are free and open source.
Vim (Vi iMproved)
Winner of Linux Journal people’s choice award for the year 2001-2005, 2008 and 2009 for Favorite Text Editor, Vim is the most popular clone or enhanced version of traditional vi. Vim was originally written for Amiga OS but has been developed for all major platforms.
It is available in command line and graphical user interface both. Vim has an add-on system in the form of scripts. First of all, as the official website clearly states, Vim isn’t an editor designed to hold its users’ hands. It is a tool, the use of which must be learned.
Now talking about features, besides undo with any number of levels, Vim also offers storing the undo information in a file. So you can exit Vim, reboot your computer and still undo changes you made. Vim has improvements on regular expressions, spell-checking, split windows, tabbed windows, Unicode support, search histories and more.
Elvis is a vi clone for UNIX and other operating systems. However it’s not in active development. Features include syntax highlighting, networking support and browse modes for LaTeX, mouse support. Most of the features introduced by Elvis are available in other vi clones.
Elvis was widely used in 1990s and influenced the development of Vim. Elvis states itself as ”superset of vim”. Feature improvements over vi include multiple buffers, multiple windows, graphical user interface, enhanced tags and browse modes for HTML. Elvis is shipped as standard version of vi for MINIX.
BVI comes with a bmore package included which, according to the description on site, is a filter that displays the contents of a binary file on the terminal, one screenful at a time. It normally pauses after each screenful, and prints -More- at the bottom of the screen. bmore provides a two-line overlap between screens for continuity. If bmore is reading from a file and not a pipe, the percentage of characters displayed so far is also shown.
jVi is vi editor clone with port to Java and can be downloaded for IDE like NetBeans. jVi comes with over 200 normal mode commands, operators and motions, map commands for user defined key mappings and various `:set` commands. According to developer, jVi is patterned after Vim and has many features not found in Vim. jVi is a small subset of vim. Some source code in jVi is taken from vim and modified to work in the java environment.
Levee was written by David L. Parsons, originally for USCD Pascal (a Pascal programming language system that ran on the UCSD p-System) I.5 on the Terak 8510a. It was rewritten by him and his friend in C and later for Flex OS, MS-DOS and Linux.
A new feature was added to version 3.5 of the program written in 2008 after 15 years of the release of last version.
WinVi is a vi clone for 32-bit Windows systems. Features presented by WinVi include editing and automatic detection of Unicode files in UTF-8 and more, compatible with Notepad and Vi, hexadecimal editing mode for binary files, edit files with size up to 2 GB and print support.
WinVi can be customized with a GUI mode which allow you to choose fonts and colors of your choice and make them permanent settings or just for current instance. Print settings can also be configured.
Nvi is an implementation of the ex/vi text editor originally distributed as part of the Fourth Berkeley Software Distribution (4BSD), by the University of California, Berkeley and is the default vi on all BSD systems (NetBSD, OpenBSD, and FreeBSD) as well as MINIX. Nvi supports all the ex/vi features except for open mode and the lisp edit option (e.g., it has a fully implemented underlying ex mode).
Other features include horizontal scrolling, unlimited undo, tag stack, multiple edit buffers, 8-bit clean data, lines and files limited by available memory and so on. nvi was developed by Keith Bostic and is now maintained by him and Sven Verdoolaege who added support for Unicode in 2000.
There are various other vi clone projects, some of them completely abandoned, while others are no longer in active development like Calvin and VIrus (VI resembling utility skeleton). Interestingly, few of the programs mentioned above are seeing new releases after a decade or more.
Have something to add to the story? Or if you think I have missed something, please leave a comment.