related topics
{math, number, function}
{system, computer, user}
{math, energy, light}
{work, book, publish}
{line, north, south}
{style, bgcolor, rowspan}
{area, part, region}
{language, word, form}

vi is a family of screen-oriented text editors which share certain characteristics, such as methods of invocation from the operating system command interpreter, and characteristic user interface features. The portable subset of the behavior of vi programs, and the ex editor language supported within these programs, is described by (and thus standardized by) the Single Unix Specification[1] and POSIX.

The original code for vi was written by Bill Joy in 1976, as the visual mode for a line editor called ex that Joy had written with Chuck Haley[2]. Bill Joy's ex 1.1 was released as part of the first BSD Unix release in March, 1978. It wasn't until version 2.0 of ex, released as part of Second Berkeley Software Distribution in May, 1979 that the editor was installed under the name vi (which took users straight into ex's visual mode), and the name by which we know it today. Some current implementations of vi can trace their source code ancestry to Bill Joy; others are completely new, largely compatible reimplementations.

The name vi is derived from the shortest unambiguous abbreviation for the command visual in ex; the command in question switches the line editor ex to visual mode. The name vi is pronounced /ˈviːˈaɪ/[3][4] (as in the discrete English letters v and i), or, much less commonly, /vaɪ/[5], but never "six" as in the Roman numeral VI.[6]

In addition to various non-free implementations of vi distributed with proprietary implementations of Unix, several free and open source software implementations of vi exist. A 2009 survey of Linux Journal readers found that vi was the most widely used text editor among respondents, beating the second most widely used editor by nearly a factor of two (36% to 19%)[7].


Full article ▸

related documents
Logo (programming language)
Macro (computer science)
Shell script
Infinite loop
Bilinear transform
Character encoding
Bresenham's line algorithm
Latin square
Java Database Connectivity
Generating trigonometric tables
Interpolation search
Monotone convergence theorem
Column space
Stirling's approximation
Sylow theorems
Operator overloading
Theory of computation
Jacobi symbol
1 (number)
Special linear group
Free variables and bound variables
Borel algebra
Automata theory