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 |