everything in this book applies across the board to all those systems.
GNU Emacs has become the universal version of Emacs. The only problem is that it doesnt come standard
with most commercial Unix systems; you must retrieve and install it yourself.
3
Figure 1-1. Correct pronunciation of vi
Once
you start learning, however, you realize that vi is well designed. You need only
a few keystrokes to tell vi to do complex tasks. As you learn vi, you learn shortcuts
that transfer more and more of the editing work to the computerwhere it belongs.
vi (like any text editor) is not a what you see is what you get word processor. If you
want to produce formatted documents, you must type in codes that are used by another
formatting program to control the appearance of the printed copy. If you want to indent
several paragraphs, for instance, you put a code where the indent begins and ends.
Formatting codes allow you to experiment with or change the appearance of your
printed files, and, in many ways, they give you much more control over the appearance
of your documents than a word processor. Unix supports the troff formatting pack-
age. The TEX and LATEX formatters are popular, commonly available alternatives.§
(vi does support some simple formatting mechanisms. For example, you can tell it to
automatically wrap when you come to the end of a line, or to automatically indent new
lines. In addition, Vim version 7 provides automatic spellchecking.)
As with any skill, the more editing you do, the easier the basics become, and the more
you can accomplish. Once you are used to all the powers you have while editing with
vi, you may never want to return to any simpler editor.
What are the components of editing? First, you want to insert text (a forgotten word
or a new or missing sentence), and you want to delete text (a stray character or an entire
paragraph). You also need to change letters and words (to correct misspellings or to
reflect a change of mind about a term). You might want to move text from one place
troff is for laser printers and typesetters. Its twin brother is nroff, for line printers and terminals. Both
accept the same input language. Following common Unix convention, we refer to both with the name
troff. Today, anyone using troff uses the GNU version, groff. See http://www.gnu.org/software/groff/ for more information.
§ See http://www.ctan.org and http://www.latex-project.org for information on TEX and LATEX, respectively.
4 | Chapter 1:The vi Text Editor
to another part of your file. And, on occasion, you want to copy text to duplicate it in
another part of your file.
Unlike many word processors, vis command mode is the initial or default mode.
Complex, interactive edits can be performed with only a few keystrokes. (And to insert
raw text, you simply give any of the several insert commands and then type away.)
One or two characters are used for the basicIp commands. For example:
i
Insert
cw
Change word
Using letters as commands, you can edit a file with great speed. You dont have to
memorize banks of function keys or stretch your fingers to reach awkward combina-
tions of keys. You never have to remove your hands from the keyboard, or mess around
with multiple levels of menus! Most of the commands can be remembered by the letters
that perform them, and nearly all commands follow similar patterns and are related to
each other.
In general, vi commands:
Are case-sensitive (uppercase and lowercase keystrokes mean different things; I is
different from i).
Are not shown (or echoed) on the screen when you type them.
Do not require an ENTER after the command.
There is also a group of commands that echo on the bottom line of the screen. Bottom-
line commands are preceded by different symbols. The slash (/) and the question mark
(?) begin search commands, and are discussed in Chapter 3. A colon (:) begins all ex
commands. ex commands are those used by the ex line editor. The ex editor is available
to you when you use vi, because ex is the underlying editor and vi is really just its
visual mode. ex commands and concepts are discussed fully in Chapter 5, but this
chapter introduces you to the ex commands to quit a file without saving edits.
A Brief Historical Perspective
Before diving into all the ins and outs of vi, it will help you to understand vis worldview
of your environment. In particular, this will help you make sense of many of vis
oth-
erwise more obscure error messages, and also appreciate how the vi clones have evolved
beyond the original vi.
vi dates back to a time when computer users worked on terminals connected via serial
lines to central mini-computers. Hundreds of different kinds of terminals existed and
were in use worldwide. Each one did the same kind of actions (clear the screen, move
the cursor, etc.), but the commands needed to make them do these actions were
A Brief Historical Perspective | 5
different. In addition, the Unix system let you choose the characters to use for back-