vi(1) Editor Materials

vi(1) is a screen-based ASCII text editor used by the majority of Unix/Linux users.

These WWW documents are provided so those inclined to learn and use vi(1) can easily access a comprehensive set of reference materials. These materials provide an understanding of how the basic pieces of vi add up to a powerful editing tool, and assist the experienced user in quick look-ups of obscure features.

Why vi(1)?

The editor rewards study. In fact, study is required if you ever want to come to understand why many people use nothing else. Once you are at that magic point where you overcome the initial learning curve you too will appreciate that the editor provides these advantages:

vi and WYSIWYG

I can't think of a single editor a general UNIX user (script writer, programmer, general user, administrator) will find more worthwhile than vi(1). But vi is a plain ASCII text editor. It does not directly deal with multiple fonts, colors, graphics, or other types of presentation. Why, you usually use external filters to format paragraphs and center text. So how can it be so useful?

Well, many files are meant to convey information that does not require these attributes -- data files, program source files, system configuration files, and so on.

So, many times you don't need to heavily format text. When you do you often use tools that compliment vi instead of superceeding it. Traditionally UNIX users used the family of *roff utilities (nroff, troff, ditroff, groff, man pages, ...). More recently, many began using the TeX/LaTeX package. The limited What-You-See-Is-What-You-Get capabilities of vi are superfluous when using these and other similar packages. If you can get by with HTML documents you'll also be able to do just fine with only vi (An easily guessed truth -- all the documents indexed from this page were composed using vi).

Another strength of vi(1) is that it goes well with UNIX. The UNIX environment is very stream-oriented and is designed to do tasks where fancy formatting has rarely been the primary concern. As a result, vi is well suited to the UNIX environment where Regular Expressions, subprocesses and text-stream filters (e.g. sed, grep, awk, uniq, sort, cut, paste, ...) are easily invoked as a compliment to the editor. In fact, if you do not come to learn how to use vi(1) with UNIX tools, scripts and other tools you are missing many of the advantages of editing with vi(1).

Vi is likely to change slowly. If you are looking for an extensible and ever-expanding editor/user interface/??? take a look at GNU emacs with it's source code history interfaces, X11 mouse and menu interfaces, programming environment and language context features and so on. Look for NetScape and FrameMaker to keep on becoming more and more useful (my personal opinion and not an endorsement, of course). If you are willing to look a little more off the beaten path, you will find that vi-like and vi-clone Internet packages such as vim have many worth-while extensions.