The vi editor is available on almost all Unix systems. vi can be used
from any type of terminal because it does not depend on arrow keys
and function keys--it uses the standard alphabetic keys for commands.
vi (pronounced "vee-eye") is short for "vi"sual
editor. It displays a window into the file being edited that shows 24
lines of text. vi is a text editor, not a "what you see is what
you get" word processor. vi lets you add, change, and delete
text, but does not provide such formatting capabilities as centring
lines or indenting. paragraphs.
This help note explains the basics of vi:
- opening and closing a file
- moving around in a file
- elementary editing
vi has many other commands and options not described here. The
following resources can help you get started using the vi editor, and
are available at the UW University Book Store:
- "vi Tutorial." Specialized Systems Consultants (SSC).
- "vi Reference." Specialized Systems Consultants (SSC).
- "Learning the vi Editor." Linda Lamb, 1990.
Starting vi
You may use vi to open an already existing file by typing
vi
filename
where "filename" is the name of the existing file. If the
file is not in your current directory, you must use the full
pathname.
Or you may create a new file by typing
vi
newname
where "newname" is the name you wish to give the new file.
To open a new file called "testvi," enter
vi
testvi
On-screen, you will see blank lines, each with a tilde (~) at the
left, and a line at the bottom giving the name and status of the new
file:
~
"testvi"
[New file]
vi Modes
vi has two modes:
- command mode
- insert mode
In command mode, the letters of the keyboard perform editing
functions (like moving the cursor, deleting text, etc.). To enter
command mode, press the escape <Esc> key.
In insert mode, the letters you type form words and sentences. Unlike
many word processors, vi starts up in command mode.
Entering Text
In order to begin entering text in this empty file, you must change
from command mode to insert mode. To do this, type
i
Nothing appears to change, but you are now in insert mode and can
begin typing text. In general, vi's commands do not display on the
screen and do not require the Return key to be pressed.
Type a few short lines and press <Return> at the end of each
line. If you type a long line, you will notice the vi does not word
wrap, it merely breaks the line unceremoniously at the edge of the
screen.
If you make a mistake, pressing <Backspace> or <Delete>
may remove the error, depending on your terminal type.
Moving the Cursor
To move the cursor to another position, you must be in command mode.
If you have just finished typing text, you are still in insert mode.
Go back to command mode by pressing <Esc>. If you are not sure
which mode you are in, press <Esc> once or twice until you hear
a beep. When you hear the beep, you are in command mode.
The cursor is controlled with four keys: h, j, k, l.
Key
Cursor Movement
---
---------------
h
left one space
j
down one line
k
up one line
l
right one space
When you have gone as far as possible in one direction, the cursor
stops moving and you hear a beep. For example, you cannot use l to
move right and wrap around to the next line, you must use j to move
down a line. See the section entitled "Moving Around in a File"
for ways to move more quickly through a file.
Basic Editing
Editing commands require that you be command mode. Many of the
editing commands have a different function depending on whether they
are typed as upper- or lowercase. Often, editing commands can be
preceded by a number to indicate a repetition of the command.
Deleting Characters
To delete a character from a file, move the cursor until it is on the
incorrect letter, then type
x
The character under the cursor disappears. To remove four characters
(the one under the cursor and the next three) type
4x
To delete the character before the cursor, type
X
(uppercase)
Deleting Words
To delete a word, move the cursor to the first letter of the word,
and type
dw
This command deletes the word and the space following it.
To delete three words type
3dw
Deleting Lines
To delete a whole line, type
dd
The cursor does not have to be at the beginning of the line. Typing
dd deletes the entire line containing the cursor and places the
cursor at the start of the next line. To delete two lines, type
2dd
To delete from the cursor position to the end of the line, type
D
(uppercase)
Replacing Characters
To replace one character with another:
- Move the cursor to the character to be replaced.
- Type r
- Type the replacement character.
The new character will appear, and you will still be in command mode.
Replacing Words
To replace one word with another, move to the start of the incorrect
word and type
cw
The last letter of the word to be replaced will turn into a $. You
are now in insert mode and may type the replacement. The new text
does not need to be the same length as the original. Press <Esc>
to get back to command mode. To replace three words, type
3cw
Replacing Lines
To change text from the cursor position to the end of the line:
- Type C (uppercase).
- Type the replacement text.
- Press <Esc>.
Inserting Text
To insert text in a line:
- Position the cursor where the new text should go.
- Type i
- Enter the new text.
The text is inserted BEFORE the cursor.
4. Press <Esc> to get back to command mode.
Appending Text
To add text to the end of a line:
- Position the cursor on the last letter of the line.
- Type a
- Enter the new text.
This adds text AFTER the cursor.
4. Press <Esc> to get back to command mode.
Opening a Blank Line
To insert a blank line below the current line, type (lowercase)
To insert a blank line above the current line, type O
(uppercase)
Joining Lines
To join two lines together:
- Put the cursor on the first line to be joined.
- Type J
To join three lines together:
- Put the cursor on the first line to be joined.
- Type 3J
Undoing
To undo your most recent edit, type U
To undo all the edits on a single line, type U
(uppercase)
Undoing all edits on a single line only works as long as the cursor
stays on that line. Once you move the cursor off a line, you cannot
use U to restore the line.
Moving Around in a File
There are shortcuts to move more quickly though a file. All these
work in command mode.
Key
Movement
---
--------
w
forward word by word
b
backward word by word
$
to end of line
0
(zero) to beginning of line
H
to top line of screen
M
to middle line of screen
L
to last line of screen
G
to last line of file
1G
to first line of file
<Control>f
scroll forward one screen
<Control>b
scroll backward one screen
<Control>d
scroll down one-half screen
<Control>u
scroll up one-half screen
Moving by Searching
To move quickly by searching for text, while in command mode:
- Type / (slash).
- Enter the text to search for.
- Press <Return>.
The cursor moves to the first occurrence of that text.
To repeat the search in a forward direction, type N
To repeat the search in a backward direction, type N
Closing and Saving a File
With vi, you edit a copy of the file, rather than the original file.
Changes are made to the original only when you save your edits.
To save the file and quit vi, type ZZ
The vi editor editor is built on an earler Unix text editor called
ex. ex commands can be used within vi. ex commands begin with a :
(colon) and end with a <Return>. The command is displayed on
the status line as you type. Some ex commands are useful when saving
and closing files.
To save the edits you have made, but leave vi running and your file
open:
- Press <Esc>.
- Type :w
- Press <Return>.
To quit vi, and discard any changes your have made since last saving:
- Press <Esc>.
- Type :q!
- Press <Return>.
Command Summary
STARTING vi
vi
filename edit a file named "filename"
vi
newfile create a new file named "newfile"
ENTERING TEXT
i
insert text left of cursor
a
append text right of cursor
MOVING THE CURSOR
h
left one space
j
down one line
k
up one line
l
right one space
BASIC EDITING
x
delete character
nx
delete n characters
X
delete character before cursor
dw
delete word
ndw
delete n words
dd
delete line
ndd
delete n lines
D
delete characters from cursor to end of line
r
replace character under cursor
cw
replace a word
ncw
replace n words
C
change text from cursor to end of line
o
insert blank line below cursor
(ready
for insertion)
O
insert blank line above cursor
(ready
for insertion)
J
join succeeding line to current cursor line
nJ
join n succeeding lines to current cursor line
u
undo last change
U
restore current line
MOVING AROUND IN A FILE
w
forward word by word
b
backward word by word
$
to end of line
0
(zero) to beginning of line
H
to top line of screen
M
to middle line of screen
L
to last line of screen
G
to last line of file
1G
to first line of file
<Control>f
scroll forward one screen
<Control>b
scroll backward one screen
<Control>d
scroll down one-half screen
<Control>u
scroll up one-half screen
n
repeat last search in same direction
N
repeat last search in opposite direction
CLOSING AND SAVING A FILE
ZZ
save file and then quit
:w
save file
:q!
discard changes and quit file
Thanking You
Hope U Like it.....