Linux BASH syntax : vi Editor Commands

Switch to Text or Insert mode:

   
Open line above cursor
O        
Insert text at beginning of line
I
Insert text at cursor
i
Insert text after cursor
a
Append text at line end
A
   
Open line below cursor
o        

Switch to Command mode:

Switch to command mode
<ESC>

Cursor Movement (command mode):

   
Scroll Backward 1 screen
<ctrl>b    
   
Scroll Up 1/2 screen
<ctrl>u    
Go to beginning of line
0
Go to line n
nG
Go to end of line
$
   
Scroll Down 1/2 screen
<ctrl>d
Go to line number ##
:##
   
Scroll Forward 1 screen
<ctrl>f    
   
Go to last line
G    
Scroll by sentence f/b ( )        
Scroll by word f/b w b Move left, down, up, right h j k l
Left 6 chars
6h
    Directional Movement Arrow Keys
Go to line #6
6G

Deleting text (command mode):

Change word
cw
Replace one character
r    
Delete word
dw
Delete text at cursor
x
Delete entire line (to buffer)
dd
   
Delete current to end of line
D
Delete 5 lines (to buffer)
5dd
       
Delete lines 5-10
:5,10d

Editing (command mode):

Copy line
yy
Copy n lines
nyy
Copy lines 1-2/paste after 3
:1,2t 3
Paste above current line
P
     
Paste below current line
p    
Move lines 4-5/paste after 6
:4,5m 6
       
Join previous line
J
Search backward for string
?string
Search forward for string
/string Find next string occurrence n
% (entire file) s (search and replace) /old text with new/ c (confirm) g (global - all)
:%s/oldstring/newstring/cg    
Ignore case during search
:set ic
Repeat last command
.
Undo previous command
u
Undo all changes to line
U

Save and Quit (command mode):

Save changes to buffer
:w
Save changes and quit vi
:wq
Save file to new file
:w file
   
Quit without saving
:q!
Save lines to new file
:10,15w file

Related commands:

Book - Learning the vi Editor (6th Edition)
vi Tutorial



Back to the Top

Simon Sheppard
SS64.com