Linux Foundation

Commands Used to Start, Exit, Read, and Write Files in vi

Command Usage
vi myfile Start the vi editor and edit the m yfile file
vi -r myfile Start vi and edit m yfile in recovery mode from a system crash
:r file2<ret> Read in file2 and insert at current position
:w<ret> Write to the file
:w myfile<ret> Write out the file to m yfile
:w! file2<ret> Overwrite file2
:x<ret> or :wq<ret> Exit vi and write out modified file
:q<ret> Quit vi
:q!<ret> Quit vi even though modifications have not been saved

Keystrokes Used When Changing Cursor Position in vi

Keys Usage
arrow keys To move up, down, left and right
j or <ret> To move one line down
k To move one line up
h or Backspace To move one character left
l or Space To move one character right
0 To move to beginning of line
$ To move to end of line
w To move to beginning of next word
h To move to top of file
b To move back to beginning of preceding word
:0 <ret> or (G To move to beginning of file
:n <ret> or nG To move to line n
:$ <ret> or G To move to last line in file
CTRL-F or Page Down To move forward one page
CTRL-B or Page Up To move backward one page
Al To refresh and center screen

Searching for Text in vi

Command Usage
/pattern<ret> Search forward for pattern
string<ret> Search backward for pattern
  Key Usage
n   Move to next occurrence of search pattern
N   Move to previous occurrence of search pattern

Working with Text in vi

Key Usage
a Append text after cursor; stop upon Escape key
A Append text at end of current line; stop upon Escape key
i Insert text before cursor; stop upon Escape key
I Insert text at beginning of current line; stop upon Escape key
o Start a new line below current line, insert text there; stop upon Escape key
0 Start a new line above current line, insert text there; stop upon Escape key
r Replace character at current position
R Replace text starting with current position; stop upon Escape key
x Delete character at current position
Nx Delete N characters, starting at current position
dw Delete the word at the current position
D Delete the rest of the current line
dd Delete the current line
Ndd or dNd Delete N lines
u Undo the previous operation
yy Yank (cut) the current line and put it in buffer
Nyy or yNy Yank (cut) N lines and put it in buffer
P Paste at the current position the yanked line or lines from the buffer