Contents:
Review of Vi Operations
Movement Commands
Edit Commands
Saving and Exiting
Accessing Multiple Files
Interacting with UNIX
Macros
Miscellaneous Commands
Alphabetical List of Keys
Setting Up Vi
This section presents the following topics:
Review of vi operations
Movement commands
Edit commands
Saving and exiting
Accessing multiple files
Interacting with UNIX
Macros
Miscellaneous commands
Alphabetical list of keys
Setting up vi
This subsection provides a review of the following:
Command-line syntax
Vi modes
Syntax of vi commands
Status-line commands
For more information on vi, refer to the Nutshell Handbook Learning the vi Editor.
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 Section 2 for more information on command-line options for
vi.
Once the file is opened, you are in command mode. From command mode, you can:
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
In insert mode, you can enter new text in the file. Press the ESCAPE key to exit insert mode and return to command mode. The following commands invoke insert mode:
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. |
In vi, commands have the following general form:
[
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, then the operator
is the same as the object: 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 X m.
An object can represent any of the following text blocks:
word | Includes characters up to a space or punctuation mark. A capitalized object is a variant form that recognizes only blank spaces. |
sentence | Is up to . , ! , ? followed by two spaces. |
paragraph | Is up to next blank line or paragraph macro defined by para= option. |
section | Is up to next section heading defined by 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 the following 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.