VI Reference Guide

To create a new file, or edit an existing file, type vi filename at the system prompt.

Moving Around in the File

	Ctrl-b		Moves backward a page.
	Ctrl-d		Scrolls down half a page.
	Ctrl-f		Moves forward a page.
	Ctrl-l		Refresh the screen.
	Ctrl-u		Scrolls up half a page.		
	b		Moves the cursor back one word.
	e		Advances the cursor to the end of the current word.
	G		Moves the cursor to the last line.
	nG		Moves the cursor to line number n.
	h		Moves the cursor one space left.
	j		Moves the cursor one line down.
	k		Moves the cursor one line up.
	l		Moves the cursor one space right.
	0		Moves the cursor to the start of the current line.
	w		Advances the cursor to the next word.
	)		Moves forward to the next sentence.
	(		Moves backward to the previous sentence.
	^		Moves the cursor to the beginning of the current line.
	$		Moves the cursor to the end of the current line.
	%		Finds matching brace or parenthesis.

	Note:  Most vi movement and editing commands can be automatically repeated by typing the
		number of repeats before the command (e.g., 3j moves the cursor down 3 lines).

Text Input Commands

	a		Appends (just like i except starts one character later).
	A		Appends to end of line.
	i		Inserts before cursor.
	I		Inserts at beginning of line.
	o		Opens (makes an empty line after the current one, and inserts).
	O		Opens above (like 'o' except it makes an empty line before the current one).

	Note:  To leave the 'i', 'a', or 'o' modes to do other commands, press the <ESC> key.
		For keyboards with no separate <ESC> key, use Ctrl-[, which sends the same ASCII code).

Editing Commands

	cc		Changes the line until <ESC> is pressed.
	cw		Changes the word until <ESC> is pressed.  
				The end of the word is flagged by $.  
				More or less text than the original can be inserted.
	dd		Deletes an entire line.
	dw		Deletes rest of word from cursor position.
	d)		Deletes rest of sentence.
	d}		Deletes rest of paragraph.
	D		Deletes to end of the line.  Also use 'd$'.
	J		Join next line to the line the cursor is on.
	r		Replaces the character the cursor is on.
	R		Writes over old text.
	s		Substitute character with text and keep inserting until <ESC> is pressed.
	x		Deletes a character.
	~		Changes a character's case.
	:r file		Reads in a file where the cursor is positioned.
	:r !command	Reads in the results of command (date, cal, finger, etc.)
	:s/string1/string2/	Substitute string1 by string2 in current line (1st occurrence on line).
	:s/string1/string2/g	Substitute string1 by string2 in current line (all occurrences on line).
	:n,Ns/string1/string2/	Substitute 1st occurrence of string1 by string2 in lines n through N.
	:%s/string1/string2/g	Substitutes all occurrences of string1 with string2.

Cut/Copy and Paste Commands

	p		Puts last text yanked or deleted after the cursor.
	P		Puts last text yanked or deleted before the cursor.
	yw		Yank a copy of the word from cursor to end of word.
	yy		Yank a copy of a line.
	y)		Yank to the end of the sentence.
	y}		Yank to the end of the paragraph.
	y$		Yank to the end of the line.
	y3w		Yank the next 3 words.

Search Commands

	n		Continues searching in the same direction.  Use with the :s or / command.
	N		Searches in the opposite direction.
	?word		Searches for word backwards in the text before the cursor.
	/word		Searches for word forward in the text after the cursor.

Three Special Commands

	u		Undoes the last command you used.
	U		Undoes all changes made to the current line.
	.		Repeats the last editing or insert command.

Write & Exit Commands

	:q		Quits and leaves the editor.
	:q!		Forces exit without saving changes.
	:w		Writes the file and saves the changes.
	:w (name)	Writes to the file (name).
	:wq		Writes and quits at the same time.
	:.,$w (name)	Writes rest of current file to (name).
	:x		Same as :wq.
	ZZ		Same as :wq.

This file was created by the University of Minnesota Computing Services Staff in 1994 and slightly modified by G. J. Perkins in 1996.
File last modified: 1998.09.01 (Tuesday) 02:22:39 EDT.