Next
Previous
Contents
Vi has 3 modes:
-  command mode - Normal and initial state; others return here (use ESC to abort a partially typed command)
 
-  input mode - entered by specific commands a i A I o O c C s S R  and ended by ESC or abnormally with interrupt
 
-  line mode - i.e. waiting for input after a : , / , ?  or a !  
command (end with CR, abort with CTRL-c). CTRL is the control key: CTRL-c means "control c"
 
-  TERM= code Puts a code name for your terminal into the variable TERM
 
-  export TERM Conveys the value of TERM (the terminal code) to any UNIX system program that is terminal dependant.
 
-  tput init Initializes the terminal so that it will function properly with various UNIX system programs.
 
-  vi  filename Accesses the vi screen editor so that you can edit a specified file.
 
-  vi  file1 file2 file3 Enters three files into the vi buffer to be edited. Those files are file1, file2, and file3.
 
-  view  file Invoke vi editor on file in read-only mode
 
-  vi -R  file Invoke vi editor on file in read-only mode
 
-  vi -r  file Recover file and recent edits after system crash
 
-  vi -r  file Recover file and recent edits after system crash
 
-  :set option Activate option
 
-  :set option=value Assign value to option
 
-  :set no option Deactivate option
 
-  :set  Display options set by user
 
-  :set all Display list of all current options, both default and those set by the user
 
-  :set  option? Display values of option
 
Notations:
-  CTRL-c CTRL is the control key: CTRL-c means "control c"
 
-  CR is Carriage return (ENTER key)
 
-  ESC end insert or incomplete command
 
-  CTRL-? CTRL is the control key: CTRL-? means "control ?" delete or rubout interrupts
 
-  CTRL-l reprint/refresh screen if CTRL-? scrambles it
 
-  ZZ Save the file and exit vi
 
-  :wq Save the file and exit vi
 
-  :w Write the current file
 
-  :w! Force write the current file, if file is read-only
 
-  :wname Write to file name
 
-  :q Exit from vi
 
-  :q! Force exit from vi (discarding changes)
 
-  :e name Edit file name
 
-  :e! reedit, discard changes
 
-  :e + name edit file name, starting at end
 
-  :e + n edit starting at line n
 
-  :e # edit alternate file
 
-  :n edit next file in arglist
 
-  :args list files in current filelist
 
-  :rew rewind current filelist and edit first file
 
-  :n args specify new arglist
 
-  :f  show current file and line
 
-  CTRL-G synonym for :f , show current file and line
 
-  :ta tag  to tag file entry tag
 
-  CTRL-]  :ta, following word is tag
 
-  Arrows Move the cursor
 
-  CTRL-d Scroll half page down
 
-  CTRL-u Scroll half page up
 
-  CTRL-f Scroll a full page down
 
-  CTRL-b Scroll a full page up
 
-  :0 Move to start of file
 
-  :n Move to line number n
 
-  :$ Move to end of file 
 
-  0 Move to start of line
 
-  ^ Move to first non-blank character
 
-  $ Move to end of line
 
-  CR Move to the start of next line
 
-  - Move to the start of previous line
 
-  % Find matching bracket
 
-  G  goto line (last line default)
 
-  ]]  next section/function
 
-  [[  previous section/function
 
-  H  Home window line
 
-  L  Last window line
 
-  M  Middle window line
 
-  +  Next line, at first non-white
 
-  -  Previous line, at first non-white
 
-  CR  return, same as +
 
-  j  next line, same column
 
-  k  previous line, same column
 
-  0  beginning of line
 
-  $  end of line
 
-  h  forward 
 
-  l  backwards 
 
-  SPACE  same as l 
 
-  fx  find x forward
 
-  Fx  find x backward
 
-  ;  repeat last f F
 
-  ,  inverse of ;
 
-  |  to specified column
 
-  %  find matching { or }
 
-  w  Word forward
 
-  b  Word backward
 
-  e  End of word
 
-  )  To next sentence 
 
-  (  Back sentence 
 
-  }  To next paragraph 
 
-  {  Back paragraph 
 
-  W  Blank delimited word
 
-  B  Back W
 
-  E  To end of W
 
-  `` (press twice the back-quote ` key) Previous context
 
-  '' (press twice the single-quote ` key) Previous context at first non-white in line
 
-  mx mark position with letter x
 
-  `x (back quote key and letter x) goto mark x
 
-  'x goto mark x at first non-white in line
 
-  CTRL-h Erase last character
 
-  CTRL-w Erase last word
 
-  erase  Press DELETE key, same as CTRL-h
 
-  kill  Your kill key, erase input this line
 
-  \  Escapes CTRL-h, DELETE and kill
 
-  ESC  Ends insertion, back to command
 
-  CTRL-?  Interrupt, terminates insert
 
-  CTRL-d  Backtab over autoindent
 
-  CTRL-v  Quote non-printing character
 
-  CTRL-l Clear and redraw
 
-  CTRL-r retype, eliminate @lines
 
-  z-CR redraw, current line at window top
 
-  z- redraw, current line at window bottom
 
-  z. redraw, current line at window center
 
-  /pat/z- pat line bottom
 
-  tn Use n line window
 
-  CTRL-e Scroll window down 1 line
 
-  CTRL-y Scroll window up 1 line
 
-  x Delete the character under the cursor
 
-  X Delete the charater before the cursor
 
-  D Delete to the end of line
 
-  d^ Delete back to start of line
 
-  dd Delete the current line
 
-  ndd Delete n lines starting with the current one
 
-  dnw Delete n words starting from cursor
 
-  i Enter input mode inserting before the cursor
 
-  I Enter input mode inserting before the first non-blank character
 
-  a Enter input mode inserting after the cursor
 
-  A Enter input mode inserting after the end of the line
 
-  o Open a new line below current line and enter input mode
 
-  O Open a new line above current line and enter input mode
 
-  r Replace the character under the cursor (does NOT enter input mode)
 
-  R Enter input mode replacing characters
 
-  C shift-c. Change rest of line
 
-  D shift-d. Delete rest of line
 
-  s Substitute chars
 
-  S Substitute lines
 
-  J Join lines
 
-  J Join lines
 
The "yank buffer" is filled by EVERY delete command, or explicitely by
Y and yy.
-  Y Copy the current line to the yank buffer
 
-  nyy Copy n lines starting from the current to the yank buffer
 
-  p Paste the yank buffer after the cursor (or below the current line)
 
-  P Paste the yank buffer before the cursor (or above the current line)
 
-  "xp  Put from buffer x
 
-  "xy  Yank to buffer x
 
-  "xd  Delete into buffer x
 
-  d  delete
 
-  c  change
 
-  <  left shift
 
-  >  right shift
 
-  !  filter through command
 
-  =  indent for LISP
 
-  y  yank text to buffer
 
-  /text Search forward for text
 
-  ?text Search backward for text
 
-  n Repeat the last search in the same direction
 
-  N Repeat the last search in the reverse direction
 
-  / Repeat the last search forward
 
-  ? Repeat the last search backward
 
-  [ addr ] s/from/to/ [ g ]  Search for the occurence of from
and replace it with to in the current line, or in the range
addr (two line numbers seperated by command; 1,$ is the whole file).
Replaces one occurrence per line, or all occurrences 
if g is specified.
For example, :3,20s/someword/anotherword/g  Will replace "someword" with "anotherword" starting from line 3 to line 20. 'g' is global means replace all occurrences of "someword".
 
-  :sh Forks a shell (to be exited with CTRL-d)
 
-  :!command Forks a shell to execute command
 
-  :set number Switch on line numbering
 
-  :set nonumber Switch off line numbering
 
-  : Tells vi that the next commands you issue will be line editor commands.
 
-  :sh Temporarily returns to the shell to perform some shell commands without leaving vi.
 
-  CTRL-d Escapes the temporary return to the shell and returns to vi so you can edit the current window.
 
-  :n Goes to the nth line of the buffer.
 
-  :x,zw filename Writes lines from the numbers x through the number z into a new file called filename.
 
-  :$ Moves the cursor to the beginning of the last line in the buffer.
 
-  :.,$d Deletes all the lines from the current line to the last line
 
-  :r filename Inserts the contents of the file filename under the current line of the buffer.
 
-  :s/text/new_text/ Replaces the first instance of text on the current line with new_text
 
-  :s/text/new_text/g Replaces the every occurrence of text on the current line with new_text
 
-  :g/text/s//new_text/g Changes every occurrence of text on the buffer to new_text.
 
-  u Undo the last change
 
-  U Restore the current line
 
-  ~ Change case
 
-  J Join the currentline with the next line
 
-  . Repeat last text changing command
 
-  CTRL-g Show file name and line number
 
Next
Previous
Contents