vi Short Reference
vi Long Reference
vi is a text editor with a complexity level that sits roughly half-way between M$ Notepad and Emacs. It has reasonably powerful editing commands, a good search/replace functionality, and a simplistic macro system. vi does not have a programming language. vi is available for almost every computer system; it is small and fast, ideal for someone who does a lot of text editing but does not need the customizability of a programming language.
vi is about the only remaining text editor that is bi-modal: the two modes are text entry mode and command mode. This is difficult for most people accustomed to GUI systems, but it has the advantage that the regular letter keys can be used for commands (instead of requiring function keys and mice). vi afficionados (like me!) claim that this is more efficient.
True vi is only available on commercial Unix systems, such as Solaris. These days, many people are switching to vim; it's not completely vi-compatible, but vim is also much more powerful than vi, including some emacs features such as syntax highlighting and the ability to use Python as its macro language. See http://www.vim.org/ for more info.