How to Use the vi Editor
Starting vi
You may use vi to open an already existing file by
typing vi filenamewhere "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 newnamewhere "newname" is the name you wish to give the new file.
To open a new file called "testvi," enter
vi testviOn-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 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 iNothing 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
If you make a mistake, pressing
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 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 spaceWhen 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 xThe character under the cursor disappears. To remove four characters (the one under the cursor and the next three) type
4xTo 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 dwThis command deletes the word and the space following it.
To delete three words type
3dw
Deleting Lines
To delete a whole line, type ddThe 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
2ddTo 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.
Replacing Words
To replace one word with another, move to the
start of the incorrect word and type cwThe 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
3cw
Replacing Lines
To change text from the cursor position to the end
of the line: - Type C (uppercase).
- Type the replacement
text.
- Press
.
Inserting Text
To insert text in a line: - Position the cursor
where the new text should go.
- Type i
- Enter the new text.
4. Press
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.
4. Press
Opening a Blank
Line
To insert a blank line below the current line,
type - (lowercase)
O (uppercase)
Joining Lines
To join two lines together: - Put the cursor on the
first line to be joined.
- Type J
- Put the cursor on the
first line to be joined.
- Type 3J
Undoing
To undo your most recent edit, type uTo 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
f scroll forward one screen
b scroll backward one screen
d scroll down one-half screen
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
.
To repeat the search in a forward direction, type
nTo 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
ZZThe 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
To save the edits you have made, but leave vi running and your file open:
- Press
. - Type :w
- Press
.
- Press
. - Type :q!
- Press
.
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 cursorMOVING THE CURSOR
h left one space
j down one line
k up one line
l right one spaceBASIC 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 lineMOVING 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
f scroll forward one screen
b scroll backward one screen
d scroll down one-half screen
u scroll up one-half screen
n repeat last search in same direction
N repeat last search in opposite directionCLOSING AND SAVING A FILE
ZZ save file and then quit
:w save file
:q! discard changes and quit file
No comments:
Post a Comment