diff --git a/runtime/doc/vi_diff.txt b/runtime/doc/vi_diff.txt
index 307eb05..00497e1 100644
--- a/runtime/doc/vi_diff.txt
+++ b/runtime/doc/vi_diff.txt
@@ -1,4 +1,4 @@
-*vi_diff.txt*   For Vim version 7.0d.  Last change: 2006 Jan 02
+*vi_diff.txt*   For Vim version 7.0d.  Last change: 2006 Apr 12
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -103,13 +103,12 @@
 buffer (in kilobytes).  'maxmemtot' is used to set the maximum memory used for
 all buffers (in kilobytes).  The defaults depend on the system used.  For the
 Amiga and MS-DOS, 'maxmemtot' is set depending on the amount of memory
-available.  If you don't like Vim to swap to a file, set 'maxmem' and
-'maxmemtot' to a very large value.  The swap file will then only be used for
-recovery.  If you don't want a swap file at all, set 'updatecount' to 0, or
-use the "-n" argument when starting Vim.  Note that the 'maxmem' option is
-only used when a buffer is created.  Changing this option does not affect
-buffers that have already been loaded.  Thus you can set it to different
-values for different files.  'maxmemtot' works always.
+available.
+These are not hard limits, but tell Vim when to move text into a swap file.
+If you don't like Vim to swap to a file, set 'maxmem' and 'maxmemtot' to a
+very large value.  The swap file will then only be used for recovery.  If you
+don't want a swap file at all, set 'updatecount' to 0, or use the "-n"
+argument when starting Vim.
 
 ==============================================================================
 4. The most interesting additions			*vim-additions*
@@ -123,7 +122,8 @@
 		:set nocompatible
 	Or start Vim with the "-N" argument:
 		vim -N
-	This is done automatically if you have a .vimrc file.  See |startup|.
+	Vim starts with 'nocompatible' automatically if you have a .vimrc
+	file.  See |startup|.
 	The 'cpoptions' option can be used to set Vi compatibility on/off for
 	a number of specific items.
 
@@ -142,17 +142,23 @@
 	- Macintosh
 	- Risc OS
 	- IBM OS/390
+	Note that on some systems features need to be disabled to reduce
+	resource usage, esp. on MS-DOS.  For some outdated systems you need to
+	use an older Vim version.
 
 Multi level undo.					|undo|
 	'u' goes backward in time, 'CTRL-R' goes forward again.  Set option
 	'undolevels' to the number of changes to be remembered (default 1000).
 	Set 'undolevels' to 0 for a vi-compatible one level undo.  Set it to
 	-1 for no undo at all.
-
 	When all changes in a buffer have been undone, the buffer is not
 	considered changed anymore.  You can exit it with :q, without <!>.
+	When undoing a few changes and then making a new change Vim will
+	create a branch in the undo tree.  This means you can go back to any
+	state of the text, there is no risc of a change causing text to be
+	lost forever. |undo-tree|
 
-Graphical User Interface (GUI)				|gui|
+Graphical User Interface (GUI).				|gui|
 	Included support for GUI: menu's, mouse, scrollbars, etc.  You can
 	define your own menus.  Better support for CTRL/SHIFT/ALT keys in
 	combination with special keys and mouse.  Supported for various
@@ -165,58 +171,78 @@
 	can still be loaded (and changed) but not displayed in a window.  This
 	is called a hidden buffer.  Many commands and options have been added
 	for this facility.
+	Vim can also use multiple tab pages, each with one or more windows.  A
+	line with tab labels can be used to quickly switch between these pages.
+	|tab-page|
 
 Syntax highlighting.					|:syntax|
 	Vim can highlight keywords, patterns and other things.  This is
-	defined by a number of ":syntax" commands, and can be made to
+	defined by a number of |:syntax| commands, and can be made to
 	highlight most languages and file types.  A number of files are
 	included for highlighting the most common languages, like C, C++,
 	Java, Pascal, Makefiles, shell scripts, etc.  The colors used for
 	highlighting can be defined for ordinary terminals, color terminals
-	and the GUI with the ":highlight" command.
+	and the GUI with the |:highlight| command.  A convenient way to do
+	this is using a |:colorscheme| command.
+	The highlighted text can be exported as HTML. |convert-to-HTML|
+	Other items that can be highlighted are matches with the search string
+	|'hlsearch'|, matching parens |matchparen| and the cursor line and
+	column |'cursorline'| |'cursorcolumn'|.
 
-Folding							|folding|
+Spell checking.						|spell|
+	When the 'spell' option is set Vim will highlight spelling mistakes.
+	About 40 languages are currently supported, selected with the
+	'spellang' option.  In source code only comments and strings are
+	checked for spelling.
+
+Folding.						|folding|
 	A range of lines can be shown as one "folded" line.  This allows
 	overviewing a file and moving blocks of text around quickly.
 	Folds can be created manually, from the syntax of the file, by indent,
 	etc.
 
-Plugins							|add-plugin|
+Diff mode.						|diff|
+	Vim can show two versions of a file with the differences highlighted.
+	Parts of the text that are equal are folded away.  Commands can be
+	used to move text from one version to the other.
+
+Plugins.						|add-plugin|
 	The functionality can be extended by dropping a plugin file in the
 	right directory.  That's an easy way to start using Vim scripts
 	written by others.  Plugins can be for all kind of files, or
 	specifically for a filetype.
 
 Repeat a series of commands.				|q|
-	"q{c}" starts recording typed characters into named register {c}
-	(append to the register if register name is uppercase).  A subsequent
-	"q" stops recording.  The register can then be executed with the
-	"@{c}" command.  This is very useful to repeat a complex action.
+	"q{c}" starts recording typed characters into named register {c}.
+	A subsequent "q" stops recording.  The register can then be executed
+	with the "@{c}" command.  This is very useful to repeat a complex
+	action.
 
 Flexible insert mode.					|ins-special-special|
 	The arrow keys can be used in insert mode to move around in the file.
 	This breaks the insert in two parts as far as undo and redo is
 	concerned.
 
-	CTRL-O can be used to execute a single command-mode command.  This is
-	almost the same as hitting <Esc>, typing the command and doing "a".
+	CTRL-O can be used to execute a single Normal mode command.  This is
+	almost the same as hitting <Esc>, typing the command and doing |a|.
 
 Visual mode.						|Visual-mode|
-	Visual can be used to first highlight a piece of text and then give a
-	command to do something with it.  This is an (easy to use) alternative
-	to first giving the operator and then moving to the end of the text
-	to be operated upon.  "v" and "V" are used to start Visual mode.  "v"
-	works on characters and 'V' on lines.  Move the cursor to extend the
-	Visual part.  It is shown highlighted on the screen.  By typing "o"
-	the other end of the Visual text can be moved.  The Visual text can
-	be affected by an operator:
+	Visual mode can be used to first highlight a piece of text and then
+	give a command to do something with it.  This is an (easy to use)
+	alternative to first giving the operator and then moving to the end of
+	the text to be operated upon.
+	|v| and |V| are used to start Visual mode.  |v| works on characters
+	and |V| on lines.  Move the cursor to extend the Visual area.  It is
+	shown highlighted on the screen.  By typing "o" the other end of the
+	Visual area can be moved.  The Visual area can be affected by an
+	operator:
 		d	delete
 		c	change
 		y	yank
 		> or <	insert or delete indent
 		!	filter through external program
 		=	filter through indent
-		:	start ":" command for the Visual lines.
+		:	start |:| command for the Visual lines.
 		gq	format text to 'textwidth' columns
 		J	join lines
 		~	swap case
@@ -224,15 +250,15 @@
 		U	make uppercase
 
 Block operators.					|visual-block|
-	With Visual a rectangular block of text can be selected.  Start Visual
-	with CTRL-V.  The block can be deleted ("d"), yanked ("y") or its case
-	can be changed ("~", "u" and "U").  A deleted or yanked block can be
-	put into the text with the "p" and "P" commands.
+	With Visual mode a rectangular block of text can be selected.  Start
+	Visual mode with CTRL-V.  The block can be deleted ("d"), yanked ("y")
+	or its case can be changed ("~", "u" and "U").  A deleted or yanked
+	block can be put into the text with the "p" and "P" commands.
 
-Online help system.					|:help|
+Help system.						|:help|
 	Help is displayed in a window.  The usual commands can be used to
 	move around, search for a string, etc.  Tags can be used to jump
-	around in the help files, just like hypertext links.  The ":help"
+	around in the help files, just like hypertext links.  The |:help|
 	command takes an argument to quickly jump to the info on a subject.
 	<F1> is the quick access to the help system.  The name of the help
 	index file can be set with the 'helpfile' option.
@@ -243,7 +269,6 @@
 	forward/backward one character.  The shifted right/left cursor keys
 	can be used to move forward/backward one word.  CTRL-B/CTRL-E can be
 	used to go to the begin/end of the command-line.
-
 							|cmdline-history|
 	The command-lines are remembered.  The up/down cursor keys can be used
 	to recall previous command-lines.  The 'history' option can be set to
@@ -271,9 +296,9 @@
 	all matches.  CTRL-L will insert the longest common part of the
 	matches.
 
-Insert-mode completion					|ins-completion|
-	In insert mode the CTRL-N and CTRL-P keys can be used to complete a
-	word that has previously been used.	|i_CTRL-N|
+Insert-mode completion.					|ins-completion|
+	In Insert mode the CTRL-N and CTRL-P keys can be used to complete a
+	word that appears elsewhere.	|i_CTRL-N|
 	With CTRL-X another mode is entered, through which completion can be
 	done for:
 	|i_CTRL-X_CTRL-F|	file names
@@ -283,51 +308,64 @@
 	|i_CTRL-X_CTRL-L|	whole lines
 	|i_CTRL-X_CTRL-]|	words from the tags file
 	|i_CTRL-X_CTRL-D|	definitions or macros
+	|i_CTRL-X_CTRL-O|	Omni completion: clever completion
+				specifically for a file type
+	etc.
 
-Long line support					|'wrap'| |'linebreak'|
+Long line support.					|'wrap'| |'linebreak'|
 	If the 'wrap' option is off, long lines will not wrap and only part
 	of them will be shown.  When the cursor is moved to a part that is not
 	shown, the screen will scroll horizontally.  The minimum number of
-	columns to scroll can be set with the 'sidescroll' option.  The "zh"
-	and "zl" commands can be used to scroll sideways.
+	columns to scroll can be set with the 'sidescroll' option.  The |zh|
+	and |zl| commands can be used to scroll sideways.
 	Alternatively, long lines are broken in between words when the
 	'linebreak' option is set.  This allows editing a single-line
 	paragraph conveniently (e.g. when the text is later read into a DTP
-	program).  Move the cursor up/down with the "gk" and "gj" commands.
+	program).  Move the cursor up/down with the |gk| and |gj| commands.
 
 Text formatting.					|formatting|
 	The 'textwidth' option can be used to automatically limit the line
 	length.  This supplements the 'wrapmargin' option of Vi, which was not
-	very useful.  The "gq" operator can be used to format a piece of text
-	(for example, "gqap" formats the current paragraph).  Commands for
-	text alignment: ":center", ":left" and ":right".
+	very useful.  The |gq| operator can be used to format a piece of text
+	(for example, |gqap| formats the current paragraph).  Commands for
+	text alignment: |:center|, |:left| and |:right|.
 
-Extended search patterns				|pattern|
+Extended search patterns.				|pattern|
 	There are many extra items to match various text items.  Examples:
 	A "\n" can be used in a search pattern to match a line break.
 	"x\{2,4}" matches "x" 2 to 4 times.
 	"\s" matches a white space character.
 
+Directory, remote and archive browsing.			|netrw|
+	Vim can browse the file system.  Simply edit a directory.  Move around
+	in the list with the usual commands and press <Enter> to go to the
+	directory or file under the cursor.
+	This also works for remote files over ftp, http, ssh, etc.
+	Zip and tar archives can also be browsed. |tar| |zip|
+
 Edit-compile-edit speedup.				|quickfix|
-	The ":make" command can be used to run the compilation and jump to
-	the first error.  Alternatively Vim can be started with the "-q"
-	option from the compiler.  A file with compiler error messages is
-	interpreted.  Vim starts editing at the first error.
+	The |:make| command can be used to run the compilation and jump to the
+	first error.  A file with compiler error messages is interpreted.  Vim
+	jumps to the first error.
 
 	Each line in the error file is scanned for the name of a file, line
 	number and error message.  The 'errorformat' option can be set to a
 	list of scanf-like strings to handle output from many compilers.
 
-	The ":cn" command can be used to jump to the next error.
-	":cl" lists all the error messages.  Other commands are available
-	(almost the same as with Manx's Z editor on the Amiga).
+	The |:cn| command can be used to jump to the next error.
+	|:cl| lists all the error messages.  Other commands are available.
 	The 'makeef' option has the name of the file with error messages.
 	The 'makeprg' option contains the name of the program to be executed
-	with the ":make" command.
+	with the |:make| command.
 	The 'shellpipe' option contains the string to be used to put the
 	output of the compiler into the errorfile.
 
-Improved indenting for C programs			|'cindent'|
+Finding matches in files.				|:vimgrep|
+	Vim can search for a pattern in multiple files.  This uses the
+	advanced Vim regexp pattern, works on all systems and also works to
+	search in compressed files.
+
+Improved indenting for programs.			|'cindent'|
 	When the 'cindent' option is on the indent of each line is
 	automatically adjusted.  C syntax is mostly recognized.  The indent
 	for various styles can be set with 'cinoptions'.  The keys to trigger
@@ -336,68 +374,85 @@
 	Comments can be automatically formatted.  The 'comments' option can be
 	set to the characters that start and end a comment.  This works best
 	for C code, but also works for e-mail (">" at start of the line) and
-	other types of text.  The "=" operator can be used to re-indent
+	other types of text.  The |=| operator can be used to re-indent
 	lines.
 
-Searching for words in include files			|include-search|
-	The "[i" command can be used to search for a match of the word under
+	For many other languages an indent plugin is present to support
+	automatic indenting. |30.3|
+
+Searching for words in included files.			|include-search|
+	The |[i| command can be used to search for a match of the word under
 	the cursor in the current and included files.  The 'include' option
 	can be set the a pattern that describes a command to include a file
 	(the default is for C programs).
-	The "[I" command lists all matches, the "[ CTRL-I" command jumps to
+	The |[I| command lists all matches, the |[_CTRL-I| command jumps to
 	a match.
-	The "[d", "[D" and "[ CTRL-D" commands do the same, but only for
+	The |[d|, |[D| and |[_CTRL-D| commands do the same, but only for
 	lines where the pattern given with the 'define' option matches.
 
-Automatic commands					|autocommand|
+Automatic commands.					|autocommand|
 	Commands can be automatically executed when reading a file, writing a
 	file, jumping to another buffer, etc., depending on the file name.
 	This is useful to set options and mappings for C programs,
 	documentation, plain text, e-mail, etc.  This also makes it possible
 	to edit compressed files.
 
-Scripts and Expressions					|expression|
-	Commands have been added to form up a simple but powerful script
-	language.
+Scripts and Expressions.				|expression|
+	Commands have been added to form up a powerful script language.
 	|:if|		Conditional execution, which can be used for example
 			to set options depending on the value of $TERM.
 	|:while|	Repeat a number of commands.
+	|:for|		Loop over a list.
 	|:echo|		Print the result of an expression.
 	|:let|		Assign a value to an internal variable, option, etc.
+			Variable types are Number, String, List and Dictionary.
 	|:execute|	Execute a command formed by an expression.
-	etc.
+	|:try|		Catch exceptions.
+	etc., etc.  See |eval|.
+	Debugging and profiling are supported. |debug-scripts| |profile|
+	If this is not enough, an interface is provided to |Python|, |Ruby|,
+	|Tcl|, |Perl| and |MzScheme|.
 
-Viminfo							|viminfo-file|
+Viminfo.						|viminfo-file|
 	The command-line history, marks and registers can be stored in a file
 	that is read on startup.  This can be used to repeat a search command
 	or command-line command after exiting and restarting Vim.  It is also
-	possible to jump right back to where the last edit stopped with "'0".
+	possible to jump right back to where the last edit stopped with |'0|.
 	The 'viminfo' option can be set to select which items to store in the
 	.viminfo file.  This is off by default.
 
-Mouse support						|mouse-using|
+Printing.						|printing|
+	The |:hardcopy| command sends text to the printer.  This can include
+	syntax highlighting.
+
+Mouse support.						|mouse-using|
 	The mouse is supported in the GUI version, in an xterm for Unix, for
 	Linux with gpm, for MS-DOS, and Win32.  It can be used to position the
 	cursor, select the visual area, paste a register, etc.
 
-Usage of key names					|<>| |key-notation|
+Usage of key names.					|<>| |key-notation|
 	Special keys now all have a name like <Up>, <End>, etc.
 	This name can be used in mappings, to make it easy to edit them.
 
-Editing binary files					|edit-binary|
+Editing binary files.					|edit-binary|
 	Vim can edit binary files.  You can change a few characters in an
 	executable file, without corrupting it.  Vim doesn't remove NUL
 	characters (they are represented as <NL> internally).
 	|-b|		command-line argument to start editing a binary file
-	|'binary'|	Option set by "-b".  Prevents adding an <EOL> for the
+	|'binary'|	Option set by |-b|.  Prevents adding an <EOL> for the
 			last line in the file.
 
-Multi-language support					|multi-lang|
+Multi-language support.					|multi-lang|
 	Files in double-byte or multi-byte encodings can be edited.  There is
 	UTF-8 support to be able to edit various languages at the same time,
 	without switching fonts. |UTF-8|
 	Messages and menus are available in different languages.
 
+Move cursor beyond lines.
+	When the 'virtualedit' option is set the cursor can move all over the
+	screen, also where there is no text.  This is useful to edit tables
+	and figures easily.
+
 ==============================================================================
 5. Other vim features					*other-features*
 
@@ -843,6 +898,8 @@
 
 -o[N]		Vim: Open [N] windows, or one for each file.
 
+-p[N]		Vim: Open [N] tab pages, or one for each file.
+
 -P {parent-title} Win32 Vim: open Vim inside a parent application window
 
 -q {name}	Vim: Use {name} for quickfix error file.
