This chapter presents the following topics:
Review of vi operations
Saving and exiting
Accessing multiple files
Interacting with Unix
Alphabetical list of keys
Setting up vi
vi is pronounced “vee eye.”
Besides the original Unix vi, there are a number of freely available vi clones. Both the original vi and the clones are covered in Learning the vi Editor, listed in the Bibliography.
This section provides a review of the following:
Syntax of vi commands
The three most common ways of starting a vi session are:
vi file vi +n file vi +/pattern file
You can open file for editing, optionally at line n or at the first line matching pattern. If no file is specified, vi opens with an empty buffer. See Chapter 2, for more information on command-line options for vi.
Note that vi and ex are actually the same program; thus it is worthwhile to review the material in Chapter 9, as well, in order to become familiar with the ex command set.
Invoke insert mode
Issue editing commands
Move the cursor to a different position in the file
Invoke ex commands
Invoke a Unix shell
Save or exit the current version of the file
|a||Append after cursor.|
|A||Append at end of line.|
|c||Begin change operation.|
|C||Change to end of line.|
|i||Insert before cursor.|
|I||Insert at beginning of line.|
|o||Open a line below current line.|
|O||Open a line above current line.|
|R||Begin overwriting text.|
|s||Substitute a character.|
|S||Substitute entire line.|
[n] operator [m] object
The basic editing operators are:
|c||Begin a change.|
|d||Begin a deletion.|
|y||Begin a yank (or copy).|
If the current line is the object of the operation, the object is the same as the operator: cc, dd, yy. Otherwise, the editing operators act on objects specified by cursor-movement commands or pattern-matching commands. n and m are the number of times the operation is performed, or the number of objects the operation is performed on. If both n and m are specified, the effect is n × m.
An object can represent any of the following text blocks:
Includes characters up to a whitespace character (space or tab) or punctuation mark. A capitalized object is a variant form that recognizes only whitespace.
|sentence||Is up to ., !, or ?, followed by two spaces.|
Is up to next blank line or paragraph macro defined by the para= option.
|section||Is up to next section heading defined by the sect= option.|
|2cw||Change the next two words.|
|d}||Delete up to next paragraph.|
|d^||Delete back to beginning of line.|
|5yy||Copy the next five lines.|
|y]]||Copy up to the next section.|
Most commands are not echoed on the screen as you input them. However, the status line at the bottom of the screen is used to echo input for these commands:
|/||Search forward for a pattern.|
|?||Search backward for a pattern.|
|:||Invoke an ex command.|
Invoke a Unix command that takes as its input an object in the buffer and replaces it with output from the command.
Commands that are input on the status line must be entered by pressing the Return key. In addition, error messages and output from the CTRL-G command are displayed on the status line.
Copyright © 2003 O'Reilly & Associates. All rights reserved.