How to Use the vi Editor*
*Copyright 1991 by Simon Fraser University. Reprinted with permission.
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 centering 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.
You may use vi to open an already existing file by typing
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
where "newname" is the name you wish to give the new file.
To open a new file called "testvi," enter
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:
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.
In order to begin entering text in this empty file, you must change from command mode to insert mode. To do this, type
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.
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.
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.
To delete a character from a file, move the cursor until it is on the incorrect letter, then type
The character under the cursor disappears. To remove four characters (the one under the cursor and the next three) type
To delete a word, move the cursor to the first letter of the word, and type
To delete a whole line, type
Opening a Blank Line
To join two lines together:
- Put the cursor on the first line to be joined.
- Type J
Moving Around in a File
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
To repeat the search in a backward direction, type
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
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>.