vi pronounced as ” vee eye ” is a unix editor available on almost all the unix operating systems , solaris , bsd ,aix , hpux etc.
This document is a quick reference to vi editor and will be of help if your are new to unix , learning unix or just refreshing your vi knowledge after a few years.
In order to work correctly the vi need correct terminal type (TERM) setting .The TERM setting depends on the type of terminal you have . Commonly used TERM types are vt100 , vt220 and ansi . In most cases vt100 will work fine . In case vi is not able to understand the TERM you have given, it starts in open mode giving you a line by line display .
Generally TERM is taken from .profile or /etc/profile but can be set at the command line as :
echo $TERM will display the current TERM set.
Create new file or Open existing file in vi
vi without any file name will open a new file where you can enter the text and edit but while coming out you will be asked to enter a valid file name to save the text. vi with a file name as argument will open that file for editing if the file already exists it opens it otherwise it creates a new file by the argument.
Example : $vi testfile
Creates or opens the existing file called testfile
Modes in vi
vi operates in following two modes :
i. ) Command Mode : After a file is opened it is opened in command
mode ,that is , input from the keyboard will be treated as vi commands
and you will not see the words you are typing on the screen .
ii.) Insert Mode: To enter the text you have to put vi in insert by pressing ‘i’ or ‘a’ after which you can add the text and whatever is being type will be seen on the screen. . To switch between these mode Esc key is used . Esc i
(text mode) Esc (command mode)
Saving & Exiting vi editor
You can exit vi in different ways :
1.) Quit without saving : If you don’t want to save the work :q will take you out without saving your editing in vi.
2.) Write & quit : . Simple :w saves the current file but don’t exit. For save and quit :wq is used in vi.
3.) Forced Quite : An ! (Exclamation sign at the end of exit commands ( :q! , :wq! ) causes a forced quit from vi after ignoring editing (for :q!) or writing (for :wq!) all the change
|Vi Commands – Reference|
|Moving Cursor in File|
|Beginning||^ or B|
|Go to end of file||:$|
|on chacter forword||:w|
|One word forword||:W|
|go to a line number||:line_number|
|display file info .||^g|
|Inserting and appending text|
|inserts text to the left of cursor||i|
|nserts in the beginning of line||I|
|appends text to right of cursor||a|
|appends to the end of line||A|
|Adding new line|
|add a new line below the current line||o|
|adds a new line above the current line.||O|
|Deleting the text :|
|deletes text above the text||x|
|deletes text character on right of cursor||X|
|deletes line 20||20d|
|deletes current line||dd|
|delete till end of current line.||D|
|Replacing a character & word|
|replace the character above the cursor.||r|
|replces characters until Esc is pressed.||R|
|replaces the word from cursor to the end indicated by $ sign .||cw|
|replaces till end of line.||C|
|subistutes current charcater.||s|
|substitutes entire line.||S|
|Undo last changes|
|undo last change.||u|
|undo changes to the current line.||U|
|Copy and pasting lines|
|copys the current line into buffer.||yy|
|copies 5 lines from the current line.||5yy|
|pastes the current buffer.||p|
|Searches for the word name in the file||:/name|
|n continues search forward.||n|
|N searches backwards||N|
|saves the text does not quit.||:w|
|saves & quit the editor .||:wq!|
|Quit without saving||q!|
|Search & Replace||s/<search>/<replace>/g .|
|Repeating last command||.|
|Recovering a unsaved vi file.||