Chat with us, powered by LiveChat
Learn vi Editor Basics

Learn vi Editor Basics

Getting Started

The command 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 existing file name will open that file for editing.

After a file is opened it is 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. 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 typed will be seen on the screen. To switch between these mode Esc key is used .

Esc i insert text mode

Esc command mode

If you don’t want to save the work :q will take you out. For save and quit :wq is used. Simple :w saves the current file and don’t exit and :q! , :wq! causes a forced quit from vi.

Editing commands

Moving around the file:

h cursor left

i cursor right

k cursor up

j cursor down

^ & B Beginning of line

$ end of line

) Next sentence

( Previous sentence

} Next Paragraph

{ Previous Paragraph

:$ end of file

w one character forward

W one word forward

:20 go to Line no 20 or whatever number you give

Displaying file info:

^g  give name of the file, current line and total lines of a file at the bottom.

Inserting and appending text :

i inserts text to the left of cursor

I inserts in the beginning of line

a appends text to right of cursor

A appends to the end of line

Adding new line:

o add a new line below the current line

O adds a new line above the current line.

Deleting the text:

x deletes text above the cursor

X deletes text character on the right of cursor

20dd deletes 20

dd deletes current line

D delete till end of current line.

d# delete to where the # (j,k,l,h) specifies.

d/ delete till pattern is found (forward).

d? delete till pattern is found (backward).

d delete till mark char

Replacing a character & word:

r replace the character above the cursor.

R replaces characters until Esc is pressed.

cw replaces the word from cursor to the end indicated by $ sign.

C replaces till end of line.


s substitutes current character.

S substitutes entire line.

Repeating last command:

. repeats the last text.

Undo the last change:

u undo last change.
U undo changes to the current line.

Copy and pasting lines:

yy copies the current line into buffer.
5yy copies 5 lines from the current line.
p pastes the current buffer.

Recovering an unsaved vi file:

vi -r restores a unsaved / crashed file from buffer.


:/name & return searches for the word name in the file

n continues search forward.

N searches backwards.




:w saves the text does not quit.

:wq saves & quit the editor.

ZZ save & quit the editor.

:q! Quit without saving.


m mark this location and name it char.

˜ (quote character) return to line named char.

` (back-quote character) return to place named char.

˜ or ” (quote quote) return from last movement.


Leave your comment

Pin It on Pinterest

Share This