VI editor

From CLONWiki
Revision as of 12:09, 10 November 2008 by Boiarino (talk | contribs)
Jump to navigation Jump to search

Quick reference

  • General Startup
  To use vi: vi filename
  To exit vi and save changes: ZZ   or  :wq
  To exit vi without saving changes: :q!
  To enter vi command mode: [esc]
  • Counts
  A number preceding any vi command tells vi to repeat that command that many times.


  • Cursor Movement
  h       move left (backspace)
  j       move down
  k       move up
  l       move right (spacebar)
  [return]   move to the beginning of the next line
  $       last column on the current line
  0       move cursor to the first column on the current line
  ^       move cursor to first nonblank column on the current line
  w       move to the beginning of the next word or punctuation mark
  W       move past the next space
  b       move to the beginning of the previous word or punctuation mark
  B       move to the beginning of the previous word, ignores punctuation
  e       end of next word or punctuation mark
       E       end of next word, ignoring punctuation
       H       move cursor to the top of the screen 
       M       move cursor to the middle of the screen
       L       move cursor to the bottom of the screen 


  • Screen Movement
      G        move to the last line in the file
      xG       move to line x
      z+       move current line to top of screen
      z        move current line to the middle of screen
      z-       move current line to the bottom of screen
      ^F       move forward one screen
      ^B       move backward one line
      ^D       move forward one half screen
      ^U       move backward one half screen
      ^R       redraw screen 

( does not work with VT100 type terminals )

      ^L       redraw screen 

( does not work with Televideo terminals )


  • Inserting
      r        replace character under cursor with next 

character typed

      R        keep replacing character until [esc] is hit
      i        insert before cursor
      a        append after cursor
      A        append at end of line
      O        open line above cursor and enter append mode


  • Deleting

x delete character under cursor

dd delete line under cursor

       dw      delete word under cursor
       db      delete word before cursor


  • Copying Code
       yy      (yank)'copies' line which may then be put by

the p(put) command. Precede with a count for multiple lines.


  • Put Command
       brings back previous deletion or yank of lines,

words, or characters

       P       bring back before cursor
       p       bring back after cursor


  • Find Commands

? finds a word going backwards

/ finds a word going forwards

       f       finds a character on the line under the

cursor going forward

       F       finds a character on the line under the

cursor going backwards

       t       find a character on the current line going

forward and stop one character before it

T find a character on the current line going backward and stop one character before it

; repeat last f, F, t, T


  • Miscellaneous Commands

. repeat last command

u undoes last command issued

U undoes all commands on one line

xp deletes first character and inserts after second (swap)

J join current line with the next line

^G display current line number

% if at one parenthesis, will jump to its mate

mx mark current line with character x

'x find line marked with character x

NOTE: Marks are internal and not written to the file.


  • Line Editor Mode

Any commands form the line editor ex can be issued upon entering line mode.

To enter: type ':'

To exit: press[return] or [esc]


  • ex Commands

For a complete list consult the UNIX Programmer's Manual


  • READING FILES

copies (reads) filename after cursor in file currently editing

:r filename


  • WRITE FILE

:w saves the current file without quitting


  • MOVING

:# move to line #

:$ move to last line of file


  • SHELL ESCAPE

executes 'cmd' as a shell command.

:!'cmd'