diff --git a/runtime/doc/arabic.txt b/runtime/doc/arabic.txt
index 2303a2b..b3b61a1 100644
--- a/runtime/doc/arabic.txt
+++ b/runtime/doc/arabic.txt
@@ -1,4 +1,4 @@
-*arabic.txt*	For Vim version 8.1.  Last change: 2010 Nov 13
+*arabic.txt*	For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL	  by Nadim Shaikli
@@ -6,7 +6,6 @@
 
 Arabic Language support (options & mappings) for Vim		*Arabic*
 
-{Vi does not have any of these commands}
 
 								*E800*
 In order to use right-to-left and Arabic mapping support, it is
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index 5d60fbe..01d718f 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 8.1.  Last change: 2019 Apr 27
+*autocmd.txt*   For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -20,7 +20,6 @@
 10. Using autocommands		|autocmd-use|
 11. Disabling autocommands	|autocmd-disable|
 
-{Vi does not have any of these commands}
 
 ==============================================================================
 1. Introduction						*autocmd-intro*
diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt
index 4c5b402..a904aec 100644
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,4 +1,4 @@
-*change.txt*    For Vim version 8.1.  Last change: 2019 Feb 05
+*change.txt*    For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -34,7 +34,7 @@
 			deletes the last character of the count.
 			See |:fixdel| if the <Del> key does not do what you
 			want.  See |'whichwrap'| for deleting a line break
-			(join lines).  {Vi does not support <Del>}
+			(join lines).
 
 							*X* *dh*
 ["x]X			Delete [count] characters before the cursor [into
@@ -59,7 +59,7 @@
 {Visual}["x]x	or					*v_x* *v_d* *v_<Del>*
 {Visual}["x]d   or
 {Visual}["x]<Del>	Delete the highlighted text [into register x] (for
-			{Visual} see |Visual-mode|).  {not in Vi}
+			{Visual} see |Visual-mode|).
 
 {Visual}["x]CTRL-H   or					*v_CTRL-H* *v_<BS>*
 {Visual}["x]<BS>	When in Select mode: Delete the highlighted text [into
@@ -69,7 +69,7 @@
 {Visual}["x]D		Delete the highlighted lines [into register x] (for
 			{Visual} see |Visual-mode|).  In Visual block mode,
 			"D" deletes the highlighted text plus all text until
-			the end of the line.  {not in Vi}
+			the end of the line.
 
 					*:d* *:de* *:del* *:delete* *:dl* *:dp*
 :[range]d[elete] [x]	Delete [range] lines (default: current line) [into
@@ -116,16 +116,15 @@
 							*v_J*
 {Visual}J		Join the highlighted lines, with a minimum of two
 			lines.  Remove the indent and insert up to two spaces
-			(see below).  {not in Vi}
+			(see below).
 
 							*gJ*
 gJ			Join [count] lines, with a minimum of two lines.
-			Don't insert or remove any spaces.  {not in Vi}
+			Don't insert or remove any spaces.
 
 							*v_gJ*
 {Visual}gJ		Join the highlighted lines, with a minimum of two
-			lines.  Don't insert or remove any spaces.  {not in
-			Vi}
+			lines.  Don't insert or remove any spaces.
 
 							*:j* *:join*
 :[range]j[oin][!] [flags]
@@ -134,7 +133,6 @@
 			If a [range] has equal start and end values, this
 			command does nothing.  The default behavior is to
 			join the current line with the line below it.
-			{not in Vi: !}
 			See |ex-flags| for [flags].
 
 :[range]j[oin][!] {count} [flags]
@@ -142,7 +140,6 @@
 			current line |cmdline-ranges|).  Same as "J", except
 			with [!] the join does not insert or delete any
 			spaces.
-			{not in Vi: !}
 			See |ex-flags| for [flags].
 
 These commands delete the <EOL> between lines.  This has the effect of joining
@@ -209,8 +206,7 @@
 
 {Visual}["x]c	or					*v_c* *v_s*
 {Visual}["x]s		Delete the highlighted text [into register x] and
-			start insert (for {Visual} see |Visual-mode|).  {not
-			in Vi}
+			start insert (for {Visual} see |Visual-mode|).
 
 							*v_r*
 {Visual}["x]r{char}	Replace all selected characters by {char}.
@@ -218,14 +214,13 @@
 							*v_C*
 {Visual}["x]C		Delete the highlighted lines [into register x] and
 			start insert.  In Visual block mode it works
-			differently |v_b_C|.  {not in Vi}
+			differently |v_b_C|.
 							*v_S*
 {Visual}["x]S		Delete the highlighted lines [into register x] and
-			start insert (for {Visual} see |Visual-mode|).  {not
-			in Vi}
+			start insert (for {Visual} see |Visual-mode|).
 							*v_R*
 {Visual}["x]R		Currently just like {Visual}["x]S.  In a next version
-			it might work differently. {not in Vi}
+			it might work differently.
 
 Notes:
 - You can end Insert and Replace mode with <Esc>.
@@ -322,21 +317,21 @@
 			tilde cannot be used as an operator}
 
 							*g~*
-g~{motion}		Switch case of {motion} text. {not in Vi}
+g~{motion}		Switch case of {motion} text.
 
 g~g~							*g~g~* *g~~*
-g~~			Switch case of current line. {not in Vi}.
+g~~			Switch case of current line.
 
 							*v_~*
 {Visual}~		Switch case of highlighted text (for {Visual} see
-			|Visual-mode|). {not in Vi}
+			|Visual-mode|).
 
 							*v_U*
 {Visual}U		Make highlighted text uppercase (for {Visual} see
-			|Visual-mode|). {not in Vi}
+			|Visual-mode|).
 
 							*gU* *uppercase*
-gU{motion}		Make {motion} text uppercase. {not in Vi}
+gU{motion}		Make {motion} text uppercase.
 			Example: >
 				:map! <C-F> <Esc>gUiw`]a
 <			This works in Insert mode: press CTRL-F to make the
@@ -345,27 +340,27 @@
 
 
 gUgU							*gUgU* *gUU*
-gUU			Make current line uppercase. {not in Vi}.
+gUU			Make current line uppercase.
 
 							*v_u*
 {Visual}u		Make highlighted text lowercase (for {Visual} see
-			|Visual-mode|).  {not in Vi}
+			|Visual-mode|).
 
 							*gu* *lowercase*
-gu{motion}		Make {motion} text lowercase. {not in Vi}
+gu{motion}		Make {motion} text lowercase.
 
 gugu							*gugu* *guu*
-guu			Make current line lowercase. {not in Vi}.
+guu			Make current line lowercase.
 
 							*g?* *rot13*
-g?{motion}		Rot13 encode {motion} text. {not in Vi}
+g?{motion}		Rot13 encode {motion} text.
 
 							*v_g?*
 {Visual}g?		Rot13 encode the highlighted text (for {Visual} see
-			|Visual-mode|).  {not in Vi}
+			|Visual-mode|).
 
 g?g?							*g?g?* *g??*
-g??			Rot13 encode current line. {not in Vi}.
+g??			Rot13 encode current line.
 
 To turn one line into title caps, make every first letter of a word
 uppercase: >
@@ -375,18 +370,18 @@
 Adding and subtracting ~
 							*CTRL-A*
 CTRL-A			Add [count] to the number or alphabetic character at
-			or after the cursor.  {not in Vi}
+			or after the cursor.
 
 							*v_CTRL-A*
 {Visual}CTRL-A		Add [count] to the number or alphabetic character in
-			the highlighted text.  {not in Vi}
+			the highlighted text.
 
 							*v_g_CTRL-A*
 {Visual}g CTRL-A	Add [count] to the number or alphabetic character in
 			the highlighted text. If several lines are
 		        highlighted, each one will be incremented by an
 			additional [count] (so effectively creating a
-			[count] incrementing sequence).  {not in Vi}
+			[count] incrementing sequence).
 			For Example, if you have this list of numbers:
 				1. ~
 				1. ~
@@ -401,11 +396,11 @@
 
 							*CTRL-X*
 CTRL-X			Subtract [count] from the number or alphabetic
-			character at or after the cursor.  {not in Vi}
+			character at or after the cursor.
 
 							*v_CTRL-X*
 {Visual}CTRL-X		Subtract [count] from the number or alphabetic
-			character in the highlighted text.  {not in Vi}
+			character in the highlighted text.
 
 			On MS-Windows, this is mapped to cut Visual text
 			|dos-standard-mappings|.  If you want to disable the
@@ -417,7 +412,7 @@
 			character in the highlighted text. If several lines
 			are highlighted, each value will be decremented by an
 			additional [count] (so effectively creating a [count]
-			decrementing sequence).  {not in Vi}
+			decrementing sequence).
 
 The CTRL-A and CTRL-X commands can work for:
 - signed and unsigned decimal numbers
@@ -485,8 +480,7 @@
 
 							*v_<*
 {Visual}[count]<	Shift the highlighted lines [count] 'shiftwidth'
-			leftwards (for {Visual} see |Visual-mode|).  {not in
-			Vi}
+			leftwards (for {Visual} see |Visual-mode|).
 
 							*>*
  >{motion}		Shift {motion} lines one 'shiftwidth' rightwards.
@@ -500,8 +494,7 @@
 
 							*v_>*
 {Visual}[count]>	Shift the highlighted lines [count] 'shiftwidth'
-			rightwards (for {Visual} see |Visual-mode|).  {not in
-			Vi}
+			rightwards (for {Visual} see |Visual-mode|).
 
 							*:<*
 :[range]<		Shift [range] lines one 'shiftwidth' left.  Repeat '<'
@@ -512,7 +505,7 @@
 			Repeat '<' for shifting multiple 'shiftwidth's.
 
 :[range]le[ft] [indent]	left align lines in [range].  Sets the indent in the
-			lines to [indent] (default 0).  {not in Vi}
+			lines to [indent] (default 0).
 
 							*:>*
 :[range]> [flags]	Shift {count} [range] lines one 'shiftwidth' right.
@@ -579,7 +572,6 @@
 							*v_!*
 {Visual}!{filter}	Filter the highlighted lines through the external
 			program {filter} (for {Visual} see |Visual-mode|).
-			{not in Vi}
 
 :{range}![!]{filter} [!][arg]				*:range!*
 			Filter {range} lines through the external program
@@ -613,7 +605,6 @@
 
 							*v_=*
 {Visual}=		Filter the highlighted lines like with ={motion}.
-			{not in Vi}
 
 
 						*tempfile* *setuid*
@@ -678,15 +669,13 @@
 			For example, when you first do a substitution with
 			`:s/pattern/repl/flags` and then `/search` for
 			something else, `g&` will do `:%s/search/repl/flags`.
-			Mnemonic: global substitute. {not in Vi}
+			Mnemonic: global substitute.
 
 						*:snomagic* *:sno*
 :[range]sno[magic] ...	Same as `:substitute`, but always use 'nomagic'.
-			{not in Vi}
 
 						*:smagic* *:sm*
 :[range]sm[agic] ...	Same as `:substitute`, but always use 'magic'.
-			{not in Vi}
 
 							*:s_flags*
 The flags that you can use for the substitute commands:
@@ -697,7 +686,6 @@
 		:&&
 		:s/this/that/&
 <	Note that `:s` and `:&` don't keep the flags.
-	{not in Vi}
 
 [c]	Confirm each substitution.  Vim highlights the matching string (with
 	|hl-IncSearch|).  You can type:				*:s_c*
@@ -705,16 +693,15 @@
 	    'l'	    to substitute this match and then quit ("last")
 	    'n'	    to skip this match
 	    <Esc>   to quit substituting
-	    'a'	    to substitute this and all remaining matches {not in Vi}
-	    'q'	    to quit substituting {not in Vi}
-	    CTRL-E  to scroll the screen up {not in Vi, not available when
-			compiled without the |+insert_expand| feature}
-	    CTRL-Y  to scroll the screen down {not in Vi, not available when
-			compiled without the |+insert_expand| feature}
+	    'a'	    to substitute this and all remaining matches
+	    'q'	    to quit substituting
+	    CTRL-E  to scroll the screen up {not available when compiled
+		       without the |+insert_expand| feature}
+	    CTRL-Y  to scroll the screen down {not available when compiled
+		       without the |+insert_expand| feature}
 	If the 'edcompatible' option is on, Vim remembers the [c] flag and
 	toggles it each time you use it, but resets it when you give a new
 	search pattern.
-	{not in Vi: highlighting of the match, other responses than 'y' or 'n'}
 
 							*:s_e*
 [e]     When the search pattern fails, do not issue an error message and, in
@@ -726,7 +713,6 @@
 		No previous substitute regular expression
 		Trailing characters
 		Interrupted
-	{not in Vi}
 
 							*:s_g*
 [g]	Replace all occurrences in the line.  Without this argument,
@@ -739,12 +725,10 @@
 							*:s_i*
 [i]	Ignore case for the pattern.  The 'ignorecase' and 'smartcase' options
 	are not used.
-	{not in Vi}
 
 							*:s_I*
 [I]	Don't ignore case for the pattern.  The 'ignorecase' and 'smartcase'
 	options are not used.
-	{not in Vi}
 
 							*:s_n*
 [n]	Report the number of matches, do not actually substitute.  The [c]
@@ -776,7 +760,6 @@
 		/green
 		:&
 <	The last command will replace "blue" with "red".
-	{not in Vi}
 
 Note that there is no flag to change the "magicness" of the pattern.  A
 different command is used instead, or you can use |/\v| and friends.  The
@@ -1002,7 +985,6 @@
 			a single tabstop.  Each value in the list represents
 			the width of one tabstop, except the final value which
 			applies to all following tabstops.
-			{not in Vi}
 
 							*retab-example*
 Example for using autocommands and ":retab" to edit a file which is stored
@@ -1026,17 +1008,16 @@
 :reg[isters]		Display the contents of all numbered and named
 			registers.  If a register is written to for |:redir|
 			it will not be listed.
-			{not in Vi}
 
 
 :reg[isters] {arg}	Display the contents of the numbered and named
 			registers that are mentioned in {arg}.  For example: >
 				:reg 1a
 <			to display registers '1' and 'a'.  Spaces are allowed
-			in {arg}.  {not in Vi}
+			in {arg}.
 
 							*:di* *:display*
-:di[splay] [arg]	Same as :registers.  {not in Vi}
+:di[splay] [arg]	Same as :registers.
 
 							*y* *yank*
 ["x]y{motion}		Yank {motion} text [into register x].  When no
@@ -1055,11 +1036,11 @@
 
 							*v_y*
 {Visual}["x]y		Yank the highlighted text [into register x] (for
-			{Visual} see |Visual-mode|).  {not in Vi}
+			{Visual} see |Visual-mode|).
 
 							*v_Y*
 {Visual}["x]Y		Yank the highlighted lines [into register x] (for
-			{Visual} see |Visual-mode|).  {not in Vi}
+			{Visual} see |Visual-mode|).
 
 							*:y* *:yank* *E850*
 :[range]y[ank] [x]	Yank [range] lines [into register x]. Yanking to the
@@ -1086,7 +1067,6 @@
 			Leaves the cursor at the end of the new text.
 			Using the mouse only works when 'mouse' contains 'n'
 			or 'a'.
-			{not in Vi}
 			If you have a scrollwheel and often accidentally paste
 			text, you can use these mappings to disable the
 			pasting with the middle mouse button: >
@@ -1097,11 +1077,11 @@
 
 							*gp*
 ["x]gp			Just like "p", but leave the cursor just after the new
-			text.  {not in Vi}
+			text.
 
 							*gP*
 ["x]gP			Just like "P", but leave the cursor just after the new
-			text.  {not in Vi}
+			text.
 
 							*:pu* *:put*
 :[line]pu[t] [x]	Put the text [from register x] after [line] (default
@@ -1129,14 +1109,14 @@
 ["x]]p		    or					*]p* *]<MiddleMouse>*
 ["x]]<MiddleMouse>	Like "p", but adjust the indent to the current line.
 			Using the mouse only works when 'mouse' contains 'n'
-			or 'a'.  {not in Vi}
+			or 'a'.
 
 ["x][P		    or					*[P*
 ["x]]P		    or					*]P*
 ["x][p		    or					*[p* *[<MiddleMouse>*
 ["x][<MiddleMouse>	Like "P", but adjust the indent to the current line.
 			Using the mouse only works when 'mouse' contains 'n'
-			or 'a'.  {not in Vi}
+			or 'a'.
 
 You can use these commands to copy text from one place to another.  Do this
 by first getting the text into a register with a yank, delete or change
@@ -1246,7 +1226,6 @@
 3. Small delete register "-				*quote_-* *quote-*
 This register contains text from commands that delete less than one line,
 except when the command specifies a register with ["x].
-{not in Vi}
 
 4. Named registers "a to "z or "A to "Z			*quote_alpha* *quotea*
 Vim fills these registers only when you say so.  Specify them as lowercase
@@ -1256,7 +1235,7 @@
 
 5. Read-only registers ":, ". and "%
 These are '%', '#', ':' and '.'.  You can use them only with the "p", "P",
-and ":put" commands and with CTRL-R.  {not in Vi}
+and ":put" commands and with CTRL-R.
 						*quote_.* *quote.* *E29*
 	".	Contains the last inserted text (the same as what is inserted
 		with the insert mode commands CTRL-A and CTRL-@).  Note: this
@@ -1310,13 +1289,13 @@
 
 If the "= register is used for the "p" command, the String is split up at <NL>
 characters.  If the String ends in a <NL>, it is regarded as a linewise
-register.  {not in Vi}
+register.
 
 8. Selection and drop registers "*, "+ and "~ 
 Use these registers for storing and retrieving the selected text for the GUI.
 See |quotestar| and |quoteplus|.  When the clipboard is not available or not
 working, the unnamed register is used instead.  For Unix systems the clipboard
-is only available when the |+xterm_clipboard| feature is present.  {not in Vi}
+is only available when the |+xterm_clipboard| feature is present.
 
 Note that there is only a distinction between "* and "+ for X11 systems.  For
 an explanation of the difference, see |x11-selection|.  Under MS-Windows, use
@@ -1327,7 +1306,7 @@
 operation.  When something has been dropped onto Vim, the "~ register is
 filled in and the <Drop> pseudo key is sent for notification.  You can remap
 this key if you want; the default action (for all modes) is to insert the
-contents of the "~ register at the cursor position.  {not in Vi}
+contents of the "~ register at the cursor position.
 {only available when compiled with the |+dnd| feature, currently only with the
 GTK GUI}
 
@@ -1337,7 +1316,7 @@
 9. Black hole register "_				*quote_*
 When writing to this register, nothing happens.  This can be used to delete
 text without affecting the normal registers.  When reading from this register,
-nothing is returned.  {not in Vi}
+nothing is returned.
 
 10. Last search pattern register	"/			*quote_/* *quote/*
 Contains the most recent search-pattern.  This is used for "n" and 'hlsearch'.
@@ -1346,7 +1325,6 @@
 register.  The search direction is available in |v:searchforward|.
 Note that the value is restored when returning from a function
 |function-search-undo|.
-{not in Vi}
 
 							*@/*
 You can write to a register with a `:let` command |:let-@|.  Example: >
@@ -1377,17 +1355,15 @@
 :[range]ce[nter] [width]				*:ce* *:center*
 			Center lines in [range] between [width] columns
 			(default 'textwidth' or 80 when 'textwidth' is 0).
-			{not in Vi}
 
 :[range]ri[ght] [width]					*:ri* *:right*
 			Right-align lines in [range] at [width] columns
 			(default 'textwidth' or 80 when 'textwidth' is 0).
-			{not in Vi}
 
 							*:le* *:left*
 :[range]le[ft] [indent]
 			Left-align lines in [range].  Sets the indent in the
-			lines to [indent] (default 0).  {not in Vi}
+			lines to [indent] (default 0).
 
 							*gq*
 gq{motion}		Format the lines that {motion} moves over.
@@ -1414,24 +1390,24 @@
 
 gqgq							*gqgq* *gqq*
 gqq			Format the current line.  With a count format that
-			many lines.  {not in Vi}
+			many lines.
 
 							*v_gq*
 {Visual}gq		Format the highlighted text.  (for {Visual} see
-			|Visual-mode|).  {not in Vi}
+			|Visual-mode|).
 
 							*gw*
 gw{motion}		Format the lines that {motion} moves over.  Similar to
 			|gq| but puts the cursor back at the same position in
 			the text.  However, 'formatprg' and 'formatexpr' are
-			not used.  {not in Vi}
+			not used.
 
 gwgw							*gwgw* *gww*
-gww			Format the current line as with "gw".  {not in Vi}
+gww			Format the current line as with "gw".
 
 							*v_gw*
 {Visual}gw		Format the highlighted text as with "gw".  (for
-			{Visual} see |Visual-mode|).  {not in Vi}
+			{Visual} see |Visual-mode|).
 
 Example: To format the current paragraph use:			*gqap*  >
 	gqap
diff --git a/runtime/doc/channel.txt b/runtime/doc/channel.txt
index cb6f781..ea0274f 100644
--- a/runtime/doc/channel.txt
+++ b/runtime/doc/channel.txt
@@ -1,4 +1,4 @@
-*channel.txt*      For Vim version 8.1.  Last change: 2019 Mar 21
+*channel.txt*      For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -24,7 +24,6 @@
 11. Controlling a job			|job-control|
 12. Using a prompt buffer		|prompt-buffer|
 
-{Vi does not have any of these features}
 {only when compiled with the |+channel| feature for channel stuff}
 	You can check this with: `has('channel')`
 {only when compiled with the |+job| feature for job stuff}
diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt
index e229532..ed085ef 100644
--- a/runtime/doc/cmdline.txt
+++ b/runtime/doc/cmdline.txt
@@ -1,4 +1,4 @@
-*cmdline.txt*   For Vim version 8.1.  Last change: 2018 May 14
+*cmdline.txt*   For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -66,7 +66,6 @@
 - All searches are put in the search history, including the ones that come
   from commands like "*" and "#".  But for a mapping, only the last search is
   remembered (to avoid that long mappings trash the history).
-{Vi: no history}
 {not available when compiled without the |+cmdline_hist| feature}
 
 There is an automatic completion of names on the command-line; see
@@ -124,12 +123,12 @@
 			:cnoremap <C-U> <C-E><C-U>
 <
 						*c_<Insert>* *c_Insert*
-<Insert>	Toggle between insert and overstrike.  {not in Vi}
+<Insert>	Toggle between insert and overstrike.
 
 {char1} <BS> {char2}	or				*c_digraph*
 CTRL-K {char1} {char2}					*c_CTRL-K*
 		enter digraph (see |digraphs|).  When {char1} is a special
-		key, the code for that key is inserted in <> form.  {not in Vi}
+		key, the code for that key is inserted in <> form.
 
 CTRL-R {0-9a-z"%#:-=.}					*c_CTRL-R* *c_<C-R>*
 		Insert the contents of a numbered or named register.  Between
@@ -165,7 +164,7 @@
 				too.
 				When the result is a Float it's automatically
 				converted to a String.
-		See |registers| about registers.  {not in Vi}
+		See |registers| about registers.
 		Implementation detail: When using the |expression| register
 		and invoking setcmdpos(), this sets the position before
 		inserting the resulting string.  Use CTRL-R CTRL-R to set the
@@ -188,7 +187,6 @@
 		currently displayed match is used.  With CTRL-W the part of
 		the word that was already typed is not inserted again.
 
-		{not in Vi}
 		CTRL-F and CTRL-P: {only when |+file_in_path| feature is
 		included}
 
@@ -313,11 +311,9 @@
 		off, since you are expected to type a command.  After
 		switching it on with CTRL-^, the new state is not used again
 		for the next command or Search pattern.
-		{not in Vi}
 
 						*c_CTRL-]*
-CTRL-]		Trigger abbreviation, without inserting a character.  {not in
-		Vi}
+CTRL-]		Trigger abbreviation, without inserting a character.
 
 For Emacs-style editing on the command-line see |emacs-keys|.
 
@@ -332,7 +328,6 @@
 
 							*:his* *:history*
 :his[tory]	Print the history of last entered commands.
-		{not in Vi}
 		{not available when compiled without the |+cmdline_hist|
 		feature}
 
@@ -344,7 +339,6 @@
 		i[nput]	 or @		input line history
 		d[ebug]	 or >		debug command history
 		a[ll]			all of the above
-		{not in Vi}
 
 		If the numbers {first} and/or {last} are given, the respective
 		range of entries from a history is listed.  These numbers can
diff --git a/runtime/doc/debugger.txt b/runtime/doc/debugger.txt
index 3370cf0..cbf2009 100644
--- a/runtime/doc/debugger.txt
+++ b/runtime/doc/debugger.txt
@@ -1,4 +1,4 @@
-*debugger.txt*  For Vim version 8.1.  Last change: 2017 Nov 21
+*debugger.txt*  For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Gordon Prieur
@@ -10,7 +10,6 @@
 2. Vim Compile Options		|debugger-compilation|
 3. Integrated Debuggers		|debugger-integration|
 
-{Vi does not have any of these features}
 
 ==============================================================================
 1. Debugger Features					*debugger-features*
diff --git a/runtime/doc/diff.txt b/runtime/doc/diff.txt
index 6b638fa..60ebb4f 100644
--- a/runtime/doc/diff.txt
+++ b/runtime/doc/diff.txt
@@ -1,4 +1,4 @@
-*diff.txt*      For Vim version 8.1.  Last change: 2019 Feb 27
+*diff.txt*      For Vim version 8.1.  Last change: 2019 May 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -16,8 +16,6 @@
 4. Copying diffs		|copy-diffs|
 5. Diff options			|diff-options|
 
-{not in Vi}
-
 ==============================================================================
 1. Starting diff mode					*start-vimdiff*
 
diff --git a/runtime/doc/digraph.txt b/runtime/doc/digraph.txt
index a174d3c..b87dc0d 100644
--- a/runtime/doc/digraph.txt
+++ b/runtime/doc/digraph.txt
@@ -1,4 +1,4 @@
-*digraph.txt*   For Vim version 8.1.  Last change: 2019 Feb 17
+*digraph.txt*   For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -18,7 +18,6 @@
 2. Using digraphs	|digraphs-use|
 3. Default digraphs	|digraphs-default|
 
-{Vi does not have any of these commands}
 
 ==============================================================================
 1. Defining digraphs					*digraphs-define*
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index 60ac959..4d01e49 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -1,4 +1,4 @@
-*editing.txt*   For Vim version 8.1.  Last change: 2018 Dec 16
+*editing.txt*   For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -44,7 +44,7 @@
 :keepalt {cmd}		Execute {cmd} while keeping the current alternate file
 			name.  Note that commands invoked indirectly (e.g.,
 			with a function) may still set the alternate file
-			name.  {not in Vi}
+			name.
 
 All file names are remembered in the buffer list.  When you enter a file name,
 for editing (e.g., with ":e filename") or writing (e.g., with ":w filename"),
@@ -60,14 +60,13 @@
 			option is set), and the file status (readonly,
 			modified, read errors, new file).  See the 'shortmess'
 			option about how to make this message shorter.
-			{Vi does not include column number}
 
 :f[ile]!		like |:file|, but don't truncate the name even when
 			'shortmess' indicates this.
 
 {count}CTRL-G		Like CTRL-G, but prints the current file name with
 			full path.  If the count is higher than 1 the current
-			buffer number is also given.  {not in Vi}
+			buffer number is also given.
 
 					*g_CTRL-G* *word-count* *byte-count*
 g CTRL-G		Prints the current position of the cursor in five
@@ -80,7 +79,6 @@
 			column are shown, separated with a dash.
 			Also see the 'ruler' option and the |wordcount()|
 			function.
-			{not in Vi}
 
 							*v_g_CTRL-G*
 {Visual}g CTRL-G	Similar to "g CTRL-G", but Word, Character, Line, and
@@ -88,7 +86,6 @@
 			displayed.
 			In Blockwise mode, Column count is also shown.  (For
 			{Visual} see |Visual-mode|.)
-			{not in VI}
 
 							*:file_f*
 :f[ile][!] {name}	Sets the current file name to {name}.  The optional !
@@ -98,14 +95,12 @@
 			to hold the old name.
 							*:0file*
 :0f[ile][!]		Remove the name of the current buffer.  The optional !
-			avoids truncating the message, as with |:file|.  {not
-			in Vi}
+			avoids truncating the message, as with |:file|.
 
 :buffers
 :files
 :ls			List all the currently known file names.  See
-			'windows.txt' |:files| |:buffers| |:ls|.  {not in
-			Vi}
+			'windows.txt' |:files| |:buffers| |:ls|.
 
 Vim will remember the full path name of a file name that you enter.  In most
 cases when the file name is displayed only the name you typed is shown, but
@@ -244,19 +239,17 @@
 			If 'fileformats' is not empty, the first format given
 			will be used for the new buffer.  If 'fileformats' is
 			empty, the 'fileformat' of the current buffer is used.
-			{not in Vi}
 
 							*:ene!* *:enew!*
 :ene[w]!		Edit a new, unnamed buffer.  Discard any changes to
 			the current buffer.
 			Set 'fileformat' like |:enew|.
-			{not in Vi}
 
 							*:fin* *:find*
 :fin[d][!] [++opt] [+cmd] {file}
 			Find {file} in 'path' and then |:edit| it.
-			{not in Vi} {not available when the |+file_in_path|
-			feature was disabled at compile time}
+			{not available when the |+file_in_path| feature was
+			disabled at compile time}
 
 :{count}fin[d][!] [++opt] [+cmd] {file}
 			Just like ":find", but use the {count} match in
@@ -278,7 +271,7 @@
 :vie[w][!] [++opt] [+cmd] file
 			When used in Ex mode: Leave |Ex-mode|, go back to
 			Normal mode.  Otherwise same as |:edit|, but set
-			'readonly' option for this buffer.  {not in Vi}
+			'readonly' option for this buffer.
 
 							*CTRL-^* *CTRL-6*
 CTRL-^			Edit the alternate file.  Mostly the alternate file is
@@ -297,7 +290,6 @@
 			":e #[count]").  This is a quick way to switch between
 			files.
 			See |CTRL-^| above for further details.
-			{not in Vi}
 
 [count]]f						*]f* *[f*
 [count][f		Same as "gf".  Deprecated.
@@ -331,7 +323,6 @@
 			For Unix the '~' character is expanded, like in
 			"~user/file".  Environment variables are expanded too
 			|expand-env|.
-			{not in Vi}
 			{not available when the |+file_in_path| feature was
 			disabled at compile time}
 
@@ -341,7 +332,6 @@
 			Leading blanks are skipped, otherwise all blanks and
 			special characters are included in the file name.
 			(For {Visual} see |Visual-mode|.)
-			{not in VI}
 
 							*gF*
 [count]gF		Same as "gf", except if a number follows the file
@@ -637,7 +627,6 @@
 			still be added to the argument list, but won't be
 			edited. No check for duplicates is done.
 			Also see |++opt| and |+cmd|.
-			{not in Vi}
 
 :[count]arga[dd] {name} ..			*:arga* *:argadd* *E479*
 :[count]arga[dd]
@@ -659,7 +648,6 @@
 			There is no check for duplicates, it is possible to
 			add a file to the argument list twice.
 			The currently edited file is not changed.
-			{not in Vi}
 			Note: you can also use this method: >
 				:args ## x
 <			This will add the "x" item and sort the new list.
@@ -673,7 +661,6 @@
 			when it's deleted from the argument list.
 			Example: >
 				:argdel *.obj
-<			{not in Vi}
 
 :[range]argd[elete]	Delete the {range} files from the argument list.
 			Example: >
@@ -688,7 +675,6 @@
 <			Removes all the files from the arglist.
 			When the last number in the range is too high, up to
 			the last argument is deleted.
-			{not in Vi}
 
 							*:argu* *:argument*
 :[count]argu[ment] [count] [++opt] [+cmd]
@@ -697,14 +683,12 @@
 			when changes have been made and Vim does not want to
 			|abandon| the current buffer.
 			Also see |++opt| and |+cmd|.
-			{not in Vi}
 
 :[count]argu[ment]! [count] [++opt] [+cmd]
 			Edit file [count] in the argument list, discard any
 			changes to the current buffer.  When [count] is
 			omitted the current entry is used.
 			Also see |++opt| and |+cmd|.
-			{not in Vi}
 
 :[count]n[ext] [++opt] [+cmd]			*:n* *:ne* *:next* *E165* *E163*
 			Edit [count] next file.  This fails when changes have
@@ -727,7 +711,7 @@
 			Edit [count] previous file in argument list.  This
 			fails when changes have been made and Vim does not
 			want to |abandon| the current buffer.
-			Also see |++opt| and |+cmd|.  {Vi: no count or ++opt}.
+			Also see |++opt| and |+cmd|.
 
 :[count]N[ext]! [count] [++opt] [+cmd]
 			Edit [count] previous file in argument list.  Discard
@@ -748,44 +732,43 @@
 :rew[ind]! [++opt] [+cmd]
 			Start editing the first file in the argument list.
 			Discard any changes to the buffer.  Also see |++opt|
-			and |+cmd|. {Vi: no ++opt}
+			and |+cmd|.
 
 							*:fir* *:first*
 :fir[st][!] [++opt] [+cmd]
-			Other name for ":rewind". {not in Vi}
+			Other name for ":rewind".
 
 							*:la* *:last*
 :la[st] [++opt] [+cmd]
 			Start editing the last file in the argument list.
 			This fails when changes have been made and Vim does
 			not want to |abandon| the current buffer.
-			Also see |++opt| and |+cmd|.  {not in Vi}
+			Also see |++opt| and |+cmd|.
 
 :la[st]! [++opt] [+cmd]
 			Start editing the last file in the argument list.
 			Discard any changes to the buffer.  Also see |++opt|
-			and |+cmd|.  {not in Vi}
+			and |+cmd|.
 
 							*:wn* *:wnext*
 :[count]wn[ext] [++opt]
 			Write current file and start editing the [count]
-			next file.  Also see |++opt| and |+cmd|.  {not in Vi}
+			next file.  Also see |++opt| and |+cmd|.
 
 :[count]wn[ext] [++opt] {file}
 			Write current file to {file} and start editing the
 			[count] next file, unless {file} already exists and
 			the 'writeany' option is off.  Also see |++opt| and
-			|+cmd|.  {not in Vi}
+			|+cmd|.
 
 :[count]wn[ext]! [++opt] {file}
 			Write current file to {file} and start editing the
-			[count] next file.  Also see |++opt| and |+cmd|.  {not
-			in Vi}
+			[count] next file.  Also see |++opt| and |+cmd|.
 
 :[count]wN[ext][!] [++opt] [file]		*:wN* *:wNext*
 :[count]wp[revious][!] [++opt] [file]		*:wp* *:wprevious*
 			Same as :wnext, but go to previous file instead of
-			next.  {not in Vi}
+			next.
 
 The [count] in the commands above defaults to one.  For some commands it is
 possible to use two counts.  The last one (rightmost one) is used.
@@ -826,8 +809,6 @@
 
 LOCAL ARGUMENT LIST
 
-{not in Vi}
-
 							*:arglocal*
 :argl[ocal]		Make a local copy of the global argument list.
 			Doesn't start editing another file.
@@ -878,7 +859,6 @@
 			autocommand event is disabled by adding it to
 			'eventignore'.  This considerably speeds up editing
 			each file.
-			{not in Vi}
 			Also see |:windo|, |:tabdo|, |:bufdo|, |:cdo|, |:ldo|,
 			|:cfdo| and |:lfdo|
 
@@ -970,12 +950,11 @@
 			When 'filetype' is empty filetype detection is done
 			with the new name, before the file is written.
 			When the write was successful 'readonly' is reset.
-			{not in Vi}
 
 							*:up* *:update*
 :[range]up[date][!] [++opt] [>>] [file]
 			Like ":write", but only write when the buffer has been
-			modified.  {not in Vi}
+			modified.
 
 
 WRITING WITH MULTIPLE BUFFERS				*buffer-write*
@@ -983,11 +962,11 @@
 							*:wa* *:wall*
 :wa[ll]			Write all changed buffers.  Buffers without a file
 			name cause an error message.  Buffers which are
-			readonly are not written. {not in Vi}
+			readonly are not written.
 
 :wa[ll]!		Write all changed buffers, even the ones that are
 			readonly.  Buffers without a file name are not
-			written and cause an error message. {not in Vi}
+			written and cause an error message.
 
 
 Vim will warn you if you try to overwrite a file that has been changed
@@ -1118,7 +1097,7 @@
 
 :conf[irm] q[uit]	Quit, but give prompt when changes have been made, or
 			the last file in the argument list has not been
-			edited.  See |:confirm| and 'confirm'.  {not in Vi}
+			edited.  See |:confirm| and 'confirm'.
 
 :q[uit]!		Quit without writing, also when the current buffer has
 			changes.  The buffer is unloaded, also when it has
@@ -1131,7 +1110,7 @@
 
 :cq[uit]		Quit always, without writing, and return an error
 			code.  See |:cq|.  Used for Manx's QuickFix mode (see
-			|quickfix|).  {not in Vi}
+			|quickfix|).
 
 							*:wq*
 :wq [++opt]		Write the current file and quit.  Writing fails when
@@ -1169,7 +1148,7 @@
 
 							*ZQ*
 ZQ			Quit without checking for changes (same as ":q!").
-			{not in Vi}
+
 
 MULTIPLE WINDOWS AND BUFFERS				*window-exit*
 
@@ -1177,36 +1156,35 @@
 :qa[ll]		Exit Vim, unless there are some buffers which have been
 		changed.  (Use ":bmod" to go to the next modified buffer).
 		When 'autowriteall' is set all changed buffers will be
-		written, like |:wqall|. {not in Vi}
+		written, like |:wqall|.
 
 :conf[irm] qa[ll]
 		Exit Vim.  Bring up a prompt when some buffers have been
-		changed.  See |:confirm|. {not in Vi}
+		changed.  See |:confirm|.
 
-:qa[ll]!	Exit Vim.  Any changes to buffers are lost. {not in Vi}
+:qa[ll]!	Exit Vim.  Any changes to buffers are lost.
 		Also see |:cquit|, it does the same but exits with a non-zero
 		value.
 
 							*:quita* *:quitall*
-:quita[ll][!]	Same as ":qall". {not in Vi}
+:quita[ll][!]	Same as ":qall".
 
 :wqa[ll] [++opt]				*:wqa* *:wqall* *:xa* *:xall*
 :xa[ll]		Write all changed buffers and exit Vim.  If there are buffers
 		without a file name, which are readonly or which cannot be
-		written for another reason, Vim will not quit. {not in Vi}
+		written for another reason, Vim will not quit.
 
 :conf[irm] wqa[ll] [++opt]
 :conf[irm] xa[ll]
 		Write all changed buffers and exit Vim.  Bring up a prompt
 		when some buffers are readonly or cannot be written for
-		another reason.  See |:confirm|. {not in Vi}
+		another reason.  See |:confirm|.
 
 :wqa[ll]! [++opt]
 :xa[ll]!	Write all changed buffers, even the ones that are readonly,
 		and exit Vim.  If there are buffers without a file name or
 		which cannot be written for another reason, or there is a
 		terminal with a running job, Vim will not quit.
-		{not in Vi}
 
 ==============================================================================
 6. Dialogs						*edit-dialogs*
@@ -1317,10 +1295,12 @@
 			name.  On Unix systems: Change the current directory
 			to the home directory.  Use |:pwd| to print the
 			current directory on all systems.
+			On Unix systems: clear any window-local directory.
 
 :cd[!] {path}		Change the current directory to {path}.
 			If {path} is relative, it is searched for in the
 			directories listed in |'cdpath'|.
+			Clear any window-local directory.
 			Does not change the meaning of an already opened file,
 			because its full path name is remembered.  Files from
 			the |arglist| may change though!
@@ -1330,7 +1310,7 @@
 <
 							*:cd-* *E186*
 :cd[!] -		Change to the previous current directory (before the
-			previous ":cd {path}" command). {not in Vi}
+			previous ":cd {path}" command).
 
 							*:chd* *:chdir*
 :chd[ir][!] [path]	Same as |:cd|.
@@ -1341,20 +1321,18 @@
 			The current directory is not changed for windows in
 			other tabs and for windows in the current tab that
 			have their own window-local directory.
-			{not in Vi}
 
 							*:tch* *:tchdir*
-:tch[dir][!]		Same as |:tcd|. {not in Vi}
+:tch[dir][!]		Same as |:tcd|.
 
 							*:lc* *:lcd*
 :lc[d][!] {path}	Like |:cd|, but only set the current directory when
 			the cursor is in the current window.  The current
 			directory for other windows is not changed, switching
 			to another window will stop using {path}.
-			{not in Vi}
 
 							*:lch* *:lchdir*
-:lch[dir][!]		Same as |:lcd|. {not in Vi}
+:lch[dir][!]		Same as |:lcd|.
 
 							*:pw* *:pwd* *E187*
 :pw[d]			Print the current directory name.  {Vi: no pwd}
@@ -1416,8 +1394,7 @@
   file.  Otherwise both <CR> <NL> and <NL> are considered to end a line
   and when the file is written the <NL> will be replaced with <CR> <NL>.
 - <Nul> characters are shown on the screen as ^@.  You can enter them with
-  "CTRL-V CTRL-@" or "CTRL-V 000" {Vi cannot handle <Nul> characters in the
-  file}
+  "CTRL-V CTRL-@" or "CTRL-V 000"
 - To insert a <NL> character in the file split a line.  When writing the
   buffer to a file a <NL> will be written for the <EOL>.
 - Vim normally appends an <EOL> at the end of the file if there is none.
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index e1ce00f..a39f72b 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 8.1.  Last change: 2019 Apr 27
+*eval.txt*	For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -33,8 +33,6 @@
 13. Textlock			|textlock|
 14. Testing			|testing|
 
-{Vi does not have any of these commands}
-
 ==============================================================================
 1. Variables						*variables*
 
diff --git a/runtime/doc/farsi.txt b/runtime/doc/farsi.txt
index 2729859..da47a0c 100644
--- a/runtime/doc/farsi.txt
+++ b/runtime/doc/farsi.txt
@@ -1,4 +1,4 @@
-*farsi.txt*     For Vim version 8.1.  Last change: 2019 Feb 16
+*farsi.txt*     For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Mortaza Ghassab Shiran
@@ -6,7 +6,6 @@
 
 Right to Left and Farsi Mapping for Vim		*farsi* *Farsi*
 
-{Vi does not have any of these commands}
 
 						*E27*
 Farsi support has been removed in patch 8.1.0932.  At that time it was
diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt
index 7a36804..68acf4d 100644
--- a/runtime/doc/filetype.txt
+++ b/runtime/doc/filetype.txt
@@ -1,4 +1,4 @@
-*filetype.txt*  For Vim version 8.1.  Last change: 2018 Apr 18
+*filetype.txt*  For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -12,7 +12,6 @@
 
 Also see |autocmd.txt|.
 
-{Vi does not have any of these commands}
 
 ==============================================================================
 1. Filetypes					*filetypes* *file-types*
diff --git a/runtime/doc/fold.txt b/runtime/doc/fold.txt
index c3ee97e..fb62d28 100644
--- a/runtime/doc/fold.txt
+++ b/runtime/doc/fold.txt
@@ -1,4 +1,4 @@
-*fold.txt*      For Vim version 8.1.  Last change: 2017 Mar 18
+*fold.txt*      For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -14,7 +14,6 @@
 3. Fold options		|fold-options|
 4. Behavior of folds	|fold-behavior|
 
-{Vi has no Folding}
 {not available when compiled without the |+folding| feature}
 
 ==============================================================================
diff --git a/runtime/doc/gui.txt b/runtime/doc/gui.txt
index 2a8a70d..c24d672 100644
--- a/runtime/doc/gui.txt
+++ b/runtime/doc/gui.txt
@@ -1,4 +1,4 @@
-*gui.txt*       For Vim version 8.1.  Last change: 2019 Apr 28
+*gui.txt*       For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -19,7 +19,6 @@
 |gui_x11.txt|	For specific items of the X11 GUI.
 |gui_w32.txt|	For specific items of the Win32 GUI.
 
-{Vi does not have any of these commands}
 
 ==============================================================================
 1. Starting the GUI				*gui-start* *E229* *E233*
diff --git a/runtime/doc/gui_w32.txt b/runtime/doc/gui_w32.txt
index 5ce3dc8..d139d52 100644
--- a/runtime/doc/gui_w32.txt
+++ b/runtime/doc/gui_w32.txt
@@ -1,4 +1,4 @@
-*gui_w32.txt*   For Vim version 8.1.  Last change: 2019 Apr 28
+*gui_w32.txt*   For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -19,7 +19,6 @@
 |gui.txt|	For generic items of the GUI.
 |os_win32.txt| 	For Win32 specific items.
 
-{Vi does not have a Windows GUI}
 
 ==============================================================================
 1. Starting the GUI					*gui-w32-start*
@@ -414,7 +413,7 @@
 
 							*:simalt* *:sim*
 :sim[alt] {key}		simulate pressing {key} while holding Alt pressed.
-			{not in Vi} {only for Win32 versions}
+			{only for Win32 versions}
 			Note: ":si" means ":s" with the "i" flag.
 
 Normally, Vim takes control of all Alt-<Key> combinations, to increase the
diff --git a/runtime/doc/gui_x11.txt b/runtime/doc/gui_x11.txt
index 28e9b91..ed65b77 100644
--- a/runtime/doc/gui_x11.txt
+++ b/runtime/doc/gui_x11.txt
@@ -1,4 +1,4 @@
-*gui_x11.txt*   For Vim version 8.1.  Last change: 2019 Apr 12
+*gui_x11.txt*   For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -19,7 +19,6 @@
 Other relevant documentation:
 |gui.txt|	For generic items of the GUI.
 
-{Vi does not have any of these commands}
 
 ==============================================================================
 1. Starting the X11 GUI					*gui-x11-start* *E665*
diff --git a/runtime/doc/hebrew.txt b/runtime/doc/hebrew.txt
index f2c3a3d..8612c0b 100644
--- a/runtime/doc/hebrew.txt
+++ b/runtime/doc/hebrew.txt
@@ -1,4 +1,4 @@
-*hebrew.txt*    For Vim version 8.1.  Last change: 2007 Jun 14
+*hebrew.txt*    For Vim version 8.1.  Last change: 2019 May 05
 
 
 	   VIM REFERENCE MANUAL    by Ron Aaron (and Avner Lottem)
@@ -10,10 +10,7 @@
 Lottem. <alottem at gmail dot com>  Ron Aaron <ron at ronware dot org> is
 currently helping support these features.
 
-{Vi does not have any of these commands}
-
-All this is only available when the |+rightleft| feature was enabled at
-compile time.
+{only available when the |+rightleft| feature was enabled at compile time}
 
 
 Introduction
diff --git a/runtime/doc/helphelp.txt b/runtime/doc/helphelp.txt
index f6c6ab7..ce73f8c 100644
--- a/runtime/doc/helphelp.txt
+++ b/runtime/doc/helphelp.txt
@@ -1,4 +1,4 @@
-*helphelp.txt*	For Vim version 8.1.  Last change: 2017 Mar 19
+*helphelp.txt*	For Vim version 8.1.  Last change: 2019 May 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -24,7 +24,6 @@
 			the very top.
 			The 'helplang' option is used to select a language, if
 			the main help file is available in several languages.
-			{not in Vi}
 
 						*{subject}* *E149* *E661*
 :h[elp] {subject}	Like ":help", additionally jump to the tag {subject}.
@@ -97,7 +96,6 @@
 			command from a following command.  You need to type
 			CTRL-V first to insert the <LF> or <CR>.  Example: >
 				:help so<C-V><CR>only
-<			{not in Vi}
 
 :h[elp]! [subject]	Like ":help", but in non-English help files prefer to
 			find a tag in a file with the same language as the
@@ -133,7 +131,6 @@
 			|:execute| when needed.
 			Compressed help files will not be searched (Fedora
 			compresses the help files).
-			{not in Vi}
 
 							*:lh* *:lhelpgrep*
 :lh[elpgrep] {pattern}[@xx]
@@ -147,11 +144,11 @@
 
 							*:exu* *:exusage*
 :exu[sage]		Show help on Ex commands.  Added to simulate the Nvi
-			command. {not in Vi}
+			command.
 
 							*:viu* *:viusage*
 :viu[sage]		Show help on Normal mode commands.  Added to simulate
-			the Nvi command. {not in Vi}
+			the Nvi command.
 
 When no argument is given to |:help| the file given with the 'helpfile' option
 will be opened.  Otherwise the specified tag is searched for in all "doc/tags"
@@ -199,7 +196,6 @@
 			Only for backwards compatibility.  It now executes the
 			ToolBar.FindHelp menu entry instead of using a builtin
 			dialog.  {only when compiled with |+GUI_GTK|}
-			{not in Vi}
 
 					*:helpt* *:helptags*
 				*E154* *E150* *E151* *E152* *E153* *E670*
@@ -224,8 +220,6 @@
 			To rebuild the help tags in the runtime directory
 			(requires write permission there): >
 				:helptags $VIMRUNTIME/doc
-<			{not in Vi}
-
 
 ==============================================================================
 2. Translated help files				*help-translated*
diff --git a/runtime/doc/if_cscop.txt b/runtime/doc/if_cscop.txt
index ba0f1d5..ed00a85 100644
--- a/runtime/doc/if_cscop.txt
+++ b/runtime/doc/if_cscop.txt
@@ -1,4 +1,4 @@
-*if_cscop.txt*  For Vim version 8.1.  Last change: 2018 Jan 21
+*if_cscop.txt*  For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Andy Kahn
@@ -21,7 +21,6 @@
 7. Availability & Information	|cscope-info|
 
 This is currently for Unix and Win32 only.
-{Vi does not have any of these commands}
 
 ==============================================================================
 1. Cscope introduction					*cscope-intro*
diff --git a/runtime/doc/if_lua.txt b/runtime/doc/if_lua.txt
index d357610..24c53fa 100644
--- a/runtime/doc/if_lua.txt
+++ b/runtime/doc/if_lua.txt
@@ -1,4 +1,4 @@
-*if_lua.txt*    For Vim version 8.1.  Last change: 2015 Oct 16
+*if_lua.txt*    For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Luis Carvalho
@@ -17,17 +17,14 @@
 9. luaeval() Vim function	|lua-luaeval|
 10. Dynamic loading		|lua-dynamic|
 
-{Vi does not have any of these commands}
-
-The Lua interface is available only when Vim was compiled with the
-|+lua| feature.
+{only available when Vim was compiled with the |+lua| feature}
 
 ==============================================================================
 1. Commands						*lua-commands*
 
 							*:lua*
 :[range]lua {chunk}
-			Execute Lua chunk {chunk}.    {not in Vi}
+			Execute Lua chunk {chunk}.
 
 Examples:
 >
@@ -38,7 +35,7 @@
 :[range]lua << {endmarker}
 {script}
 {endmarker}
-			Execute Lua script {script}.  {not in Vi}
+			Execute Lua script {script}.
 			Note: This command doesn't work when the Lua
 			feature wasn't compiled in.  To avoid errors, see
 			|script-here|.
@@ -75,7 +72,6 @@
 			If the value returned by the function is a string it
 			becomes the text of the line in the current turn. The
 			default for [range] is the whole file: "1,$".
-							{not in Vi}
 
 Examples:
 >
@@ -89,7 +85,7 @@
 
 							*:luafile*
 :[range]luafile {file}
-			Execute Lua script in {file}. {not in Vi}
+			Execute Lua script in {file}.
 			The whole argument is used as a single file name.
 
 Examples:
diff --git a/runtime/doc/if_mzsch.txt b/runtime/doc/if_mzsch.txt
index 9d27683..7b7e6b1 100644
--- a/runtime/doc/if_mzsch.txt
+++ b/runtime/doc/if_mzsch.txt
@@ -1,4 +1,4 @@
-*if_mzsch.txt*  For Vim version 8.1.  Last change: 2017 Oct 08
+*if_mzsch.txt*  For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Sergey Khorev
@@ -15,10 +15,7 @@
 7. Dynamic loading			|mzscheme-dynamic|
 8. MzScheme setup			|mzscheme-setup|
 
-{Vi does not have any of these commands}
-
-The MzScheme interface is available only if Vim was compiled with the
-|+mzscheme| feature.
+{only available when Vim was compiled with the |+mzscheme| feature}
 
 Based on the work of Brent Fulgham.
 Dynamic loading added by Sergey Khorev
@@ -40,7 +37,7 @@
 
 							*:mzscheme* *:mz*
 :[range]mz[scheme] {stmt}
-			Execute MzScheme statement {stmt}.  {not in Vi}
+			Execute MzScheme statement {stmt}.
 
 :[range]mz[scheme] << {endmarker}
 {script}
@@ -51,7 +48,7 @@
 			|script-here|.
 
 							*:mzfile* *:mzf*
-:[range]mzf[ile] {file}	Execute the MzScheme script in {file}.  {not in Vi}
+:[range]mzf[ile] {file}	Execute the MzScheme script in {file}.
 
 All of these commands do essentially the same thing - they execute a piece of
 MzScheme code, with the "current range" set to the given line
diff --git a/runtime/doc/if_ole.txt b/runtime/doc/if_ole.txt
index e734df9..46a8a5f 100644
--- a/runtime/doc/if_ole.txt
+++ b/runtime/doc/if_ole.txt
@@ -1,4 +1,4 @@
-*if_ole.txt*    For Vim version 8.1.  Last change: 2008 Aug 16
+*if_ole.txt*    For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Paul Moore
@@ -12,10 +12,8 @@
 4. Registration			|ole-registration|
 5. MS Visual Studio integration	|MSVisualStudio|
 
-{Vi does not have any of these commands}
-
-OLE is only available when compiled with the |+ole| feature.  See
-src/if_ole.INSTALL.
+{only available when compiled with the |+ole| feature.  See
+src/if_ole.INSTALL}
 An alternative is using the client-server communication |clientserver|.
 
 ==============================================================================
diff --git a/runtime/doc/if_perl.txt b/runtime/doc/if_perl.txt
index db0a92c..7e33af2 100644
--- a/runtime/doc/if_perl.txt
+++ b/runtime/doc/if_perl.txt
@@ -1,4 +1,4 @@
-*if_perl.txt*   For Vim version 8.1.  Last change: 2019 Jan 29
+*if_perl.txt*   For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Sven Verdoolaege
@@ -11,9 +11,7 @@
 3. Using the Perl interface		|perl-using|
 4. Dynamic loading			|perl-dynamic|
 
-{Vi does not have any of these commands}
-
-The Perl interface only works when Vim was compiled with the |+perl| feature.
+{only available when Vim was compiled with the |+perl| feature}
 
 ==============================================================================
 1. Editing Perl files					*perl-editing*
diff --git a/runtime/doc/if_pyth.txt b/runtime/doc/if_pyth.txt
index 86d9ac2..9e2d301 100644
--- a/runtime/doc/if_pyth.txt
+++ b/runtime/doc/if_pyth.txt
@@ -1,4 +1,4 @@
-*if_pyth.txt*   For Vim version 8.1.  Last change: 2018 Jan 30
+*if_pyth.txt*   For Vim version 8.1.  Last change: 2019 May 04
 
 
 		  VIM REFERENCE MANUAL    by Paul Moore
@@ -19,8 +19,6 @@
 11. Python X					|python_x|
 12. Building with Python support		|python-building|
 
-{Vi does not have any of these commands}
-
 The Python 2.x interface is available only when Vim was compiled with the
 |+python| feature.
 The Python 3 interface is available only when Vim was compiled with the
@@ -76,7 +74,6 @@
 			None. If a string is returned, it becomes the text of
 			the line in the current turn. The default for [range]
 			is the whole file: "1,$".
-			{not in Vi}
 
 Examples:
 >
@@ -98,7 +95,7 @@
 							*:pyfile* *:pyf*
 :[range]pyf[ile] {file}
 			Execute the Python script in {file}.  The whole
-			argument is used as a single file name.  {not in Vi}
+			argument is used as a single file name.
 
 Both of these commands do essentially the same thing - they execute a piece of
 Python code, with the "current range" |python-range| set to the given line
diff --git a/runtime/doc/if_ruby.txt b/runtime/doc/if_ruby.txt
index e2e7742..de36c01 100644
--- a/runtime/doc/if_ruby.txt
+++ b/runtime/doc/if_ruby.txt
@@ -1,4 +1,4 @@
-*if_ruby.txt*   For Vim version 8.1.  Last change: 2019 Jan 29
+*if_ruby.txt*   For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Shugo Maeda
@@ -14,10 +14,9 @@
 6. rubyeval() Vim function	|ruby-rubyeval|
 7. Dynamic loading		|ruby-dynamic|
 
-{Vi does not have any of these commands}
 			*E266* *E267* *E268* *E269* *E270* *E271* *E272* *E273*
 
-The Ruby interface only works when Vim was compiled with the |+ruby| feature.
+{only available when Vim was compiled with the |+ruby| feature}
 
 The home page for ruby is http://www.ruby-lang.org/.  You can find links for
 downloading Ruby there.
diff --git a/runtime/doc/if_tcl.txt b/runtime/doc/if_tcl.txt
index e822dfd..4a5379d 100644
--- a/runtime/doc/if_tcl.txt
+++ b/runtime/doc/if_tcl.txt
@@ -1,4 +1,4 @@
-*if_tcl.txt*    For Vim version 8.1.  Last change: 2016 Jan 01
+*if_tcl.txt*    For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Ingo Wilken
@@ -16,9 +16,8 @@
 8. Examples				|tcl-examples|
 9. Dynamic loading			|tcl-dynamic|
 
-{Vi does not have any of these commands} *E280*
-
-The Tcl interface only works when Vim was compiled with the |+tcl| feature.
+*E280*
+{only available when Vim was compiled with the |+tcl| feature}
 
 WARNING: There are probably still some bugs.  Please send bug reports,
 comments, ideas etc to <Ingo.Wilken@informatik.uni-oldenburg.de>
@@ -66,12 +65,11 @@
 			possible to add or delete lines using this command.
 			If {cmd} returns an error, the command is interrupted.
 			The default for [range] is the whole file: "1,$".
-			See |tcl-var-line| and |tcl-var-lnum|.  {not in Vi}
+			See |tcl-var-line| and |tcl-var-lnum|.
 
 							*:tclfile* *:tclf*
 :tclf[ile] {file}	Execute the Tcl script in {file}.  This is the same as
 			":tcl source {file}", but allows file name completion.
-			{not in Vi}
 
 
 Note that Tcl objects (like variables) persist from one command to the next,
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index 9b5663e..792a715 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,4 +1,4 @@
-*index.txt*     For Vim version 8.1.  Last change: 2019 Apr 19
+*index.txt*     For Vim version 8.1.  Last change: 2019 Apr 24
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -862,6 +862,10 @@
 				   position the cursor at the start (left
 				   side) of the screen
 |zt|		zt		   redraw, cursor line at top of window
+|zuw|		zuw		   undo |zw|
+|zug|		zug		   undo |zg|
+|zuW|		zuW		   undo |zW|
+|zuG|		zuG		   undo |zG|
 |zv|		zv		   open enough folds to view the cursor line
 |zw|		zw		   mark word as wrong (bad) spelled word
 |zx|		zx		   re-apply 'foldlevel' and do "zv"
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index 9d7e4ce..e962343 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt*    For Vim version 8.1.  Last change: 2019 Apr 06
+*insert.txt*    For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -62,7 +62,7 @@
 CTRL-@		Insert previously inserted text and stop insert.  {Vi: only
 		when typed as first char, only up to 128 chars}
 						*i_CTRL-A*
-CTRL-A		Insert previously inserted text.  {not in Vi}
+CTRL-A		Insert previously inserted text.
 
 						*i_CTRL-H* *i_<BS>* *i_BS*
 <BS> or CTRL-H	Delete the character before the cursor (see |i_backspacing|
@@ -75,7 +75,6 @@
 		"eol", delete the <EOL>; the next line is appended after the
 		current one.
 		See |:fixdel| if your <Del> key does not do what you want.
-		{not in Vi}
 						*i_CTRL-W*
 CTRL-W		Delete the word before the cursor (see |i_backspacing| about
 		joining lines).  See the section "word motions",
@@ -102,10 +101,10 @@
 		key, the code for that key is inserted in <> form.  For
 		example, the string "<S-Space>" can be entered by typing
 		<C-K><S-Space> (two keys).  Neither char is considered for
-		mapping.  {not in Vi}
+		mapping.
 
-CTRL-N		Find next keyword (see |i_CTRL-N|).  {not in Vi}
-CTRL-P		Find previous keyword (see |i_CTRL-P|).  {not in Vi}
+CTRL-N		Find next keyword (see |i_CTRL-N|).
+CTRL-P		Find previous keyword (see |i_CTRL-P|).
 
 CTRL-R {0-9a-z"%#*+:.-=}					*i_CTRL-R*
 		Insert the contents of a register.  Between typing CTRL-R and
@@ -142,7 +141,7 @@
 				converted to a String.
 				When append() or setline() is invoked the undo
 				sequence will be broken.
-		See |registers| about registers.  {not in Vi}
+		See |registers| about registers.
 
 CTRL-R CTRL-R {0-9a-z"%#*+/:.-=}			*i_CTRL-R_CTRL-R*
 		Insert the contents of a register.  Works like using a single
@@ -154,7 +153,7 @@
 <		Options 'textwidth', 'formatoptions', etc. still apply.  If
 		you also want to avoid these, use CTRL-R CTRL-O, see below.
 		The '.' register (last inserted text) is still inserted as
-		typed.  {not in Vi}
+		typed.
 
 CTRL-R CTRL-O {0-9a-z"%#*+/:.-=}			*i_CTRL-R_CTRL-O*
 		Insert the contents of a register literally and don't
@@ -163,14 +162,14 @@
 		insert the text above the current line, like with `P`.
 		Does not replace characters!
 		The '.' register (last inserted text) is still inserted as
-		typed.  {not in Vi}
+		typed.
 
 CTRL-R CTRL-P {0-9a-z"%#*+/:.-=}			*i_CTRL-R_CTRL-P*
 		Insert the contents of a register literally and fix the
 		indent, like |[<MiddleMouse>|.
 		Does not replace characters!
 		The '.' register (last inserted text) is still inserted as
-		typed.  {not in Vi}
+		typed.
 
 						*i_CTRL-T*
 CTRL-T		Insert one shiftwidth of indent at the start of the current
@@ -206,12 +205,12 @@
 
 CTRL-X		Enter CTRL-X mode.  This is a sub-mode where commands can
 		be given to complete words or scroll the window.  See
-		|i_CTRL-X| and |ins-completion|. {not in Vi}
+		|i_CTRL-X| and |ins-completion|.
 
 						*i_CTRL-E*
-CTRL-E		Insert the character which is below the cursor.  {not in Vi}
+CTRL-E		Insert the character which is below the cursor.
 						*i_CTRL-Y*
-CTRL-Y		Insert the character which is above the cursor.  {not in Vi}
+CTRL-Y		Insert the character which is above the cursor.
 		Note that for CTRL-E and CTRL-Y 'textwidth' is not used, to be
 		able to copy characters from a long line.
 
@@ -228,7 +227,6 @@
 		is set.
 		Please refer to |rileft.txt| for more information about
 		right-to-left mode.
-		{not in Vi}
 		Only if compiled with the |+rightleft| feature.
 
 						*i_CTRL-^*
@@ -248,14 +246,12 @@
 		The language mappings are normally used to type characters
 		that are different from what the keyboard produces.  The
 		'keymap' option can be used to install a whole number of them.
-		{not in Vi}
 
 						*i_CTRL-]*
-CTRL-]		Trigger abbreviation, without inserting a character.  {not in
-		Vi}
+CTRL-]		Trigger abbreviation, without inserting a character.
 
 						*i_<Insert>*
-<Insert>	Toggle between Insert and Replace mode.  {not in Vi}
+<Insert>	Toggle between Insert and Replace mode.
 -----------------------------------------------------------------------
 
 						*i_backspacing*
@@ -519,15 +515,14 @@
 character is replaced with several spaces.  The result of this is that the
 number of characters in the line increases.  Backspacing will delete one
 space at a time.  The original character will be put back for only one space
-that you backspace over (the last one).  {Vi does not have the 'expandtab'
-option}
+that you backspace over (the last one).
 
 							*ins-smarttab*
 When the 'smarttab' option is on, a <Tab> inserts 'shiftwidth' positions at
 the beginning of a line and 'tabstop' positions in other places.  This means
 that often spaces instead of a <Tab> character are inserted.  When 'smarttab'
 is off, a <Tab> always inserts 'tabstop' positions, and 'shiftwidth' is only
-used for ">>" and the like.  {not in Vi}
+used for ">>" and the like.
 
 							*ins-softtabstop*
 When the 'softtabstop' option is non-zero, a <Tab> inserts 'softtabstop'
@@ -567,14 +562,13 @@
 several spaces.  The result of this is that the number of characters in the
 line increases.  Backspacing will delete one space at a time.  The original
 character will be put back for only one space that you backspace over (the
-last one).  {Vi does not have the 'expandtab' option}
+last one).
 
 ==============================================================================
 6. Virtual Replace mode		*vreplace-mode* *Virtual-Replace-mode*
 
 Enter Virtual Replace mode with the "gR" command in normal mode.
 {not available when compiled without the |+vreplace| feature}
-{Vi does not have Virtual Replace mode}
 
 Virtual Replace mode is similar to Replace mode, but instead of replacing
 actual characters in the file, you are replacing screen real estate, so that
@@ -1807,7 +1801,7 @@
 			the last blank.
 
 							*gI*
-gI			Insert text in column 1 [count] times.  {not in Vi}
+gI			Insert text in column 1 [count] times.
 
 							*gi*
 gi			Insert text in the same position as where Insert mode
@@ -1818,7 +1812,6 @@
 			but NOT for inserted/deleted characters.
 			When the |:keepjumps| command modifier is used the |'^|
 			mark won't be changed.
-			{not in Vi}
 
 							*o*
 o			Begin a new line below the cursor and insert text,
@@ -1885,7 +1878,6 @@
 			script, the insertion only starts after the function
 			or script is finished.
 			This command does not work from |:normal|.
-			{not in Vi}
 
 							*:stopi* *:stopinsert*
 :stopi[nsert]		Stop Insert mode as soon as possible.  Works like
@@ -1902,12 +1894,10 @@
 			Note that when using this command in a function or
 			script that the replacement will only start after
 			the function or script is finished.
-			{not in Vi}
 
 							*:startgreplace*
 :startg[replace][!]	Just like |:startreplace|, but use Virtual Replace
 			mode, like with |gR|.
-			{not in Vi}
 
 ==============================================================================
 10. Inserting a file					*inserting-file*
diff --git a/runtime/doc/intro.txt b/runtime/doc/intro.txt
index 106245b..198ff18 100644
--- a/runtime/doc/intro.txt
+++ b/runtime/doc/intro.txt
@@ -1,4 +1,4 @@
-*intro.txt*     For Vim version 8.1.  Last change: 2019 Jan 07
+*intro.txt*     For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -34,9 +34,7 @@
 is not located in the default place.  You can jump to subjects like with tags:
 Use CTRL-] to jump to a subject under the cursor, use CTRL-T to jump back.
 
-Throughout this manual the differences between Vi and Vim are mentioned in
-curly braces, like this: {Vi does not have on-line help}.  See |vi_diff.txt|
-for a summary of the differences between Vim and Vi.
+The differences between Vi and Vim are mentioned in |vi_diff.txt|.
 
 This manual refers to Vim on various machines.  There may be small differences
 between different computers and terminals.  Besides the remarks given in this
@@ -703,7 +701,6 @@
 			like typing ":" commands after another.  All command
 			line editing, completion etc. is available.
 			Use the ":vi" command |:visual| to exit "Ex" mode.
-			{not in Vi}
 
 ==============================================================================
 7. The window contents					*window-contents*
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index 4121fbd..7a74bb0 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt*       For Vim version 8.1.  Last change: 2019 Apr 25
+*map.txt*       For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -76,7 +76,7 @@
 			Map the key sequence {lhs} to {rhs} for the modes
 			where the map command applies.  Disallow mapping of
 			{rhs}, to avoid nested and recursive mappings.  Often
-			used to redefine a command.  {not in Vi}
+			used to redefine a command.
 
 
 :unm[ap]  {lhs}			|mapmode-nvo|		*:unm*  *:unmap*
@@ -110,7 +110,7 @@
 :cmapc[lear]			|mapmode-c|		*:cmapc*  *:cmapclear*
 :tmapc[lear]			|mapmode-t|		*:tmapc*  *:tmapclear*
 			Remove ALL mappings for the modes where the map
-			command applies.  {not in Vi}
+			command applies.
 			Use the <buffer> argument to remove buffer-local
 			mappings |:map-<buffer>|
 			Warning: This also removes the default mappings.
@@ -143,7 +143,6 @@
 :tma[p] {lhs}			|mapmode-t|		*:tmap_l*
 			List the key mappings for the key sequences starting
 			with {lhs} in the modes where the map command applies.
-			{not in Vi}
 
 These commands are used to map a key or key sequence to a string of
 characters.  You can use this to put command sequences under function keys,
@@ -160,7 +159,6 @@
 that mapping won't get expanded yet, Vim is waiting for another character.
 If you type a space, then "foo" will get inserted, plus the space.  If you
 type "a", then "bar" will get inserted.
-{Vi does not allow ambiguous mappings}
 
 
 1.2 SPECIAL ARGUMENTS					*:map-arguments*
@@ -1016,45 +1014,40 @@
 
 						*:norea* *:noreabbrev*
 :norea[bbrev] [<expr>] [<buffer>] [lhs] [rhs]
-			same as ":ab", but no remapping for this {rhs} {not
-			in Vi}
+			Same as ":ab", but no remapping for this {rhs}.
 
 						*:ca* *:cabbrev*
 :ca[bbrev] [<expr>] [<buffer>] [lhs] [rhs]
-			same as ":ab", but for Command-line mode only.  {not
-			in Vi}
+			Same as ":ab", but for Command-line mode only.
 
 						*:cuna* *:cunabbrev*
-:cuna[bbrev] {lhs}	same as ":una", but for Command-line mode only.  {not
-			in Vi}
+:cuna[bbrev] {lhs}	Same as ":una", but for Command-line mode only.
 
 						*:cnorea* *:cnoreabbrev*
 :cnorea[bbrev] [<expr>] [<buffer>] [lhs] [rhs]
 			same as ":ab", but for Command-line mode only and no
-			remapping for this {rhs} {not in Vi}
+			remapping for this {rhs}
 
 						*:ia* *:iabbrev*
 :ia[bbrev] [<expr>] [<buffer>] [lhs] [rhs]
-			same as ":ab", but for Insert mode only.  {not in Vi}
+			Same as ":ab", but for Insert mode only.
 
 						*:iuna* *:iunabbrev*
-:iuna[bbrev] {lhs}	same as ":una", but for insert mode only.  {not in
-			Vi}
+:iuna[bbrev] {lhs}	Same as ":una", but for insert mode only.
 
 						*:inorea* *:inoreabbrev*
 :inorea[bbrev] [<expr>] [<buffer>] [lhs] [rhs]
-			same as ":ab", but for Insert mode only and no
-			remapping for this {rhs} {not in Vi}
+			Same as ":ab", but for Insert mode only and no
+			remapping for this {rhs}.
 
 							*:abc* *:abclear*
-:abc[lear] [<buffer>]	Remove all abbreviations.  {not in Vi}
+:abc[lear] [<buffer>]	Remove all abbreviations.
 
 							*:iabc* *:iabclear*
-:iabc[lear] [<buffer>]	Remove all abbreviations for Insert mode.  {not in Vi}
+:iabc[lear] [<buffer>]	Remove all abbreviations for Insert mode.
 
 							*:cabc* *:cabclear*
-:cabc[lear] [<buffer>]	Remove all abbreviations for Command-line mode.  {not
-			in Vi}
+:cabc[lear] [<buffer>]	Remove all abbreviations for Command-line mode.
 
 							*using_CTRL-V*
 It is possible to use special characters in the rhs of an abbreviation.
@@ -1147,8 +1140,7 @@
 The |:scriptnames| command can be used to see which scripts have been sourced
 and what their <SNR> number is.
 
-This is all {not in Vi} and {not available when compiled without the |+eval|
-feature}.
+This is all {not available when compiled without the |+eval| feature}.
 
 ==============================================================================
 4. User-defined commands				*user-commands*
@@ -1391,7 +1383,7 @@
 		    number.
 	-count=N    A count (default N) which is specified either in the line
 		    number position, or as an initial argument (like |:Next|).
-		    Specifying -count (without a default) acts like -count=0
+	-count	    acts like -count=0
 
 Note that -range=N and -count=N are mutually exclusive - only one should be
 specified.
@@ -1402,14 +1394,16 @@
 relate to arguments, (loaded) buffers, windows or tab pages.
 
 Possible values are (second column is the short name used in listing):
-    -addr=lines		  	Range of lines (this is the default)
+    -addr=lines		  	Range of lines (this is the default for -range)
     -addr=arguments	  arg	Range for arguments
     -addr=buffers	  buf	Range for buffers (also not loaded buffers)
     -addr=loaded_buffers  load	Range for loaded buffers
     -addr=windows	  win	Range for windows
     -addr=tabs		  tab	Range for tab pages
     -addr=quickfix	  qf	Range for quickfix entries
-    -addr=other		  ?	other kind of range
+    -addr=other		  ?	other kind of range; can use ".", "$" and "%"
+				as with "lines" (this is the default for
+				-count)
 
 
 Special cases ~
diff --git a/runtime/doc/mbyte.txt b/runtime/doc/mbyte.txt
index 15198f6..7b8c21f 100644
--- a/runtime/doc/mbyte.txt
+++ b/runtime/doc/mbyte.txt
@@ -1,4 +1,4 @@
-*mbyte.txt*     For Vim version 8.1.  Last change: 2018 Jan 21
+*mbyte.txt*     For Vim version 8.1.  Last change: 2019 Apr 28
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar et al.
diff --git a/runtime/doc/message.txt b/runtime/doc/message.txt
index 65cd8df..7a4543f 100644
--- a/runtime/doc/message.txt
+++ b/runtime/doc/message.txt
@@ -1,4 +1,4 @@
-*message.txt*   For Vim version 8.1.  Last change: 2019 Apr 04
+*message.txt*   For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -830,10 +830,10 @@
      G					down all the way, until the hit-enter
 					prompt
 
-     <BS> or k or <Up>			one line back (*)
-     u					up a page (half a screen) (*)
-     b or <PageUp>			back a screen (*)
-     g					back to the start (*)
+     <BS> or k or <Up>			one line back
+     u					up a page (half a screen)
+     b or <PageUp>			back a screen
+     g					back to the start
 
      q, <Esc> or CTRL-C			stop the listing
      :					stop the listing and enter a
@@ -842,13 +842,11 @@
 					the clipboard ("* and "+ registers)
     {menu-entry}			what the menu is defined to in
 					Cmdline-mode.
-    <LeftMouse> (**)			next page
+    <LeftMouse>				next page (*)
 
 Any other key causes the meaning of the keys to be displayed.
 
-(*)  backwards scrolling is {not in Vi}.  Only scrolls back to where messages
-     started to scroll.
-(**) Clicking the left mouse button only works:
+(*) Clicking the left mouse button only works:
      - For the GUI: in the last line of the screen.
      - When 'r' is included in 'mouse' (but then selecting text won't work).
 
diff --git a/runtime/doc/mlang.txt b/runtime/doc/mlang.txt
index f25aef2..9cc12f1 100644
--- a/runtime/doc/mlang.txt
+++ b/runtime/doc/mlang.txt
@@ -1,4 +1,4 @@
-*mlang.txt*     For Vim version 8.1.  Last change: 2018 May 06
+*mlang.txt*     For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -17,7 +17,6 @@
 
 Also see |help-translated| for multi-language help.
 
-{Vi does not have any of these features}
 {not available when compiled without the |+multi_lang| feature}
 
 ==============================================================================
diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt
index 7ebdee6..bc015a3 100644
--- a/runtime/doc/motion.txt
+++ b/runtime/doc/motion.txt
@@ -1,4 +1,4 @@
-*motion.txt*    For Vim version 8.1.  Last change: 2019 Mar 02
+*motion.txt*    For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -185,7 +185,7 @@
 			TEXT column (if possible).  Most other commands stay
 			in the same SCREEN column.  <Home> works like "1|",
 			which differs from "0" when the line starts with a
-			<Tab>.  {not in Vi}
+			<Tab>.
 
 							*^*
 ^			To the first non-blank character of the line.
@@ -202,7 +202,7 @@
 
 							*g_*
 g_			To the last non-blank character of the line and
-			[count - 1] lines downward |inclusive|. {not in Vi}
+			[count - 1] lines downward |inclusive|.
 
 							*g0* *g<Home>*
 g0 or g<Home>		When lines wrap ('wrap' on): To the first character of
@@ -211,7 +211,7 @@
 			When lines don't wrap ('wrap' off): To the leftmost
 			character of the current line that is on the screen.
 			Differs from "0" when the first character of the line
-			is not on the screen.  {not in Vi}
+			is not on the screen.
 
 							*g^*
 g^			When lines wrap ('wrap' on): To the first non-blank
@@ -220,12 +220,11 @@
 			When lines don't wrap ('wrap' off): To the leftmost
 			non-blank character of the current line that is on the
 			screen.  Differs from "^" when the first non-blank
-			character of the line is not on the screen.  {not in
-			Vi}
+			character of the line is not on the screen.
 
 							*gm*
 gm			Like "g0", but half a screenwidth to the right (or as
-			much as possible). {not in Vi}
+			much as possible).
 
 							*g$* *g<End>*
 g$ or g<End>		When lines wrap ('wrap' on): To the last character of
@@ -240,7 +239,6 @@
 			instead of going to the end of the line.
 			When 'virtualedit' is enabled moves to the end of the
 			screen line.
-			{not in Vi}
 
 							*bar*
 |			To screen column [count] in the current line.
@@ -296,12 +294,12 @@
 gk		or					*gk* *g<Up>*
 g<Up>			[count] display lines upward.  |exclusive| motion.
 			Differs from 'k' when lines wrap, and when used with
-			an operator, because it's not linewise.  {not in Vi}
+			an operator, because it's not linewise.
 
 gj		or					*gj* *g<Down>*
 g<Down>			[count] display lines downward.  |exclusive| motion.
 			Differs from 'j' when lines wrap, and when used with
-			an operator, because it's not linewise.  {not in Vi}
+			an operator, because it's not linewise.
 
 							*-*
 -  <minus>		[count] lines upward, on the first non-blank
@@ -324,7 +322,7 @@
 
 							*<C-End>*
 <C-End>			Goto line [count], default last line, on the last
-			character |inclusive|. {not in Vi}
+			character |inclusive|.
 
 <C-Home>	or					*gg* *<C-Home>*
 gg			Goto line [count], default first line, on the first
@@ -342,7 +340,7 @@
 			non-blank in the line |linewise|.  To compute the new
 			line number this formula is used:
 			    ({count} * number-of-lines + 99) / 100
-			See also 'startofline' option.  {not in Vi}
+			See also 'startofline' option.
 
 :[range]go[to] [count]					*:go* *:goto* *go*
 [count]go		Go to [count] byte in the buffer.  Default [count] is
@@ -352,7 +350,6 @@
 			'fileformat' setting.
 			Also see the |line2byte()| function, and the 'o'
 			option in 'statusline'.
-			{not in Vi}
 			{not available when compiled without the
 			|+byte_offset| feature}
 
@@ -516,7 +513,6 @@
 without white space, or just the white space.  Thus the "inner" commands
 always select less text than the "a" commands.
 
-These commands are {not in Vi}.
 These commands are not available when the |+textobjects| feature has been
 disabled at compile time.
 Also see `gn` and `gN`, operating on the last search pattern.
@@ -780,7 +776,7 @@
 
 						*'A* *'0* *`A* *`0*
 '{A-Z0-9}  `{A-Z0-9}	To the mark {A-Z0-9} in the file where it was set (not
-			a motion command when in another file).  {not in Vi}
+			a motion command when in another file).
 
 						*g'* *g'a* *g`* *g`a*
 g'{mark}  g`{mark}
@@ -790,18 +786,17 @@
 <			jumps to the last known position in a file.  See
 			$VIMRUNTIME/vimrc_example.vim.
 			Also see |:keepjumps|.
-			{not in Vi}
 
 						*:marks*
 :marks			List all the current marks (not a motion command).
 			The |'(|, |')|, |'{| and |'}| marks are not listed.
 			The first column has number zero.
-			{not in Vi}
+
 						*E283*
 :marks {arg}		List the marks that are mentioned in {arg} (not a
 			motion command).  For example: >
 				:marks aB
-<			to list marks 'a' and 'B'.  {not in Vi}
+<			to list marks 'a' and 'B'.
 
 							*:delm* *:delmarks*
 :delm[arks] {marks}	Delete the specified marks.  Marks that can be deleted
@@ -815,11 +810,9 @@
 			   :delmarks p-z      deletes marks in the range p to z
 			   :delmarks ^.[]     deletes marks ^ . [ ]
 			   :delmarks \"	      deletes mark "
-<			{not in Vi}
 
 :delm[arks]!		Delete all marks for the current buffer, but not marks
 			A-Z or 0-9.
-			{not in Vi}
 
 A mark is not visible in any way.  It is just a position in the file that is
 remembered.  Do not confuse marks with named registers, they are totally
@@ -854,11 +847,11 @@
 
 							*'[* *`[*
 '[  `[			To the first character of the previously changed
-			or yanked text.  {not in Vi}
+			or yanked text.
 
 							*']* *`]*
 ']  `]			To the last character of the previously changed or
-			yanked text.  {not in Vi}
+			yanked text.
 
 After executing an operator the Cursor is put at the beginning of the text
 that was operated upon.  After a put command ("p" or "P") the cursor is
@@ -876,7 +869,7 @@
 '<  `<			To the first line or character of the last selected
 			Visual area in the current buffer.  For block mode it
 			may also be the last character in the first line (to
-			be able to define the block).  {not in Vi}.
+			be able to define the block).
 
 							*'>* *`>*
 '>  `>			To the last line or character of the last selected
@@ -884,7 +877,7 @@
 			may also be the first character of the last line (to
 			be able to define the block).  Note that 'selection'
 			applies, the position may be just after the Visual
-			area.  {not in Vi}.
+			area.
 
 							*''* *``*
 ''  ``			To the position before the latest jump, or where the
@@ -900,13 +893,12 @@
 			Only one position is remembered per buffer, not one
 			for each window.  As long as the buffer is visible in
 			a window the position won't be changed.
-			{not in Vi}.
 
 							*'^* *`^*
 '^  `^			To the position where the cursor was the last time
 			when Insert mode was stopped.  This is used by the
 			|gi| command.  Not set when the |:keepjumps| command
-			modifier was used.  {not in Vi}
+			modifier was used.
 
 							*'.* *`.*
 '.  `.			To the position where the last change was made.  The
@@ -916,30 +908,29 @@
 			command changed.  For example when inserting a word,
 			the position will be on the last character.
 			To jump to older changes use |g;|.
-			{not in Vi}
 
 							*'(* *`(*
 '(  `(			To the start of the current sentence, like the |(|
-			command.  {not in Vi}
+			command.
 
 							*')* *`)*
 ')  `)			To the end of the current sentence, like the |)|
-			command.  {not in Vi}
+			command.
 
 							*'{* *`{*
 '{  `{			To the start of the current paragraph, like the |{|
-			command.  {not in Vi}
+			command.
 
 							*'}* *`}*
 '}  `}			To the end of the current paragraph, like the |}|
-			command.  {not in Vi}
+			command.
 
 These commands are not marks themselves, but jump to a mark:
 
 							*]'*
 ]'			[count] times to next line with a lowercase mark below
 			the cursor, on the first non-blank character in the
-			line. {not in Vi}
+			line.
 
 							*]`*
 ]`			[count] times to lowercase mark after the cursor. {not
@@ -948,11 +939,10 @@
 							*['*
 ['			[count] times to previous line with a lowercase mark
 			before the cursor, on the first non-blank character in
-			the line. {not in Vi}
+			the line.
 
 							*[`*
 [`			[count] times to lowercase mark before the cursor.
-			{not in Vi}
 
 
 :loc[kmarks] {command}					*:loc* *:lockmarks*
@@ -1030,23 +1020,19 @@
 							*CTRL-O*
 CTRL-O			Go to [count] Older cursor position in jump list
 			(not a motion command).
-			{not in Vi}
 			{not available without the |+jumplist| feature}
 
 <Tab>		or					*CTRL-I* *<Tab>*
 CTRL-I			Go to [count] newer cursor position in jump list
 			(not a motion command).
-			{not in Vi}
 			{not available without the |+jumplist| feature}
 
 							*:ju* *:jumps*
 :ju[mps]		Print the jump list (not a motion command).
-			{not in Vi}
 			{not available without the |+jumplist| feature}
 
 							*:cle* *:clearjumps*
 :cle[arjumps]		Clear the jump list of the current window.
-			{not in Vi}
 			{not available without the |+jumplist| feature}
 
 							*jumplist*
@@ -1131,14 +1117,12 @@
 			positions go to the oldest change.
 			If there is no older change an error message is given.
 			(not a motion command)
-			{not in Vi}
 			{not available without the |+jumplist| feature}
 
 							*g,* *E663*
 g,			Go to [count] newer cursor position in change list.
 			Just like |g;| but in the opposite direction.
 			(not a motion command)
-			{not in Vi}
 			{not available without the |+jumplist| feature}
 
 When using a count you jump as far back or forward as possible.  Thus you can
@@ -1229,19 +1213,19 @@
 
 						*[(*
 [(			go to [count] previous unmatched '('.
-			|exclusive| motion. {not in Vi}
+			|exclusive| motion.
 
 						*[{*
 [{			go to [count] previous unmatched '{'.
-			|exclusive| motion. {not in Vi}
+			|exclusive| motion.
 
 						*])*
 ])			go to [count] next unmatched ')'.
-			|exclusive| motion. {not in Vi}
+			|exclusive| motion.
 
 						*]}*
 ]}			go to [count] next unmatched '}'.
-			|exclusive| motion. {not in Vi}
+			|exclusive| motion.
 
 The above four commands can be used to go to the start or end of the current
 code block.  It is like doing "%" on the '(', ')', '{' or '}' at the other
@@ -1254,25 +1238,25 @@
 			similar structured language).  When not before the
 			start of a method, jump to the start or end of the
 			class.  When no '{' is found after the cursor, this is
-			an error.  |exclusive| motion. {not in Vi}
+			an error.  |exclusive| motion.
 						*]M*
 ]M			Go to [count] next end of a method (for Java or
 			similar structured language).  When not before the end
 			of a method, jump to the start or end of the class.
 			When no '}' is found after the cursor, this is an
-			error. |exclusive| motion. {not in Vi}
+			error. |exclusive| motion.
 						*[m*
 [m			Go to [count] previous start of a method (for Java or
 			similar structured language).  When not after the
 			start of a method, jump to the start or end of the
 			class.  When no '{' is found before the cursor this is
-			an error. |exclusive| motion. {not in Vi}
+			an error. |exclusive| motion.
 						*[M*
 [M			Go to [count] previous end of a method (for Java or
 			similar structured language).  When not after the
 			end of a method, jump to the start or end of the
 			class.  When no '}' is found before the cursor this is
-			an error. |exclusive| motion. {not in Vi}
+			an error. |exclusive| motion.
 
 The above two commands assume that the file contains a class with methods.
 The class definition is surrounded in '{' and '}'.  Each method in the class
@@ -1295,11 +1279,11 @@
 
 						*[#*
 [#			go to [count] previous unmatched "#if" or "#else".
-			|exclusive| motion. {not in Vi}
+			|exclusive| motion.
 
 						*]#*
 ]#			go to [count] next unmatched "#else" or "#endif".
-			|exclusive| motion. {not in Vi}
+			|exclusive| motion.
 
 These two commands work in C programs that contain #if/#else/#endif
 constructs.  It brings you to the start or end of the #if/#else/#endif where
@@ -1307,11 +1291,11 @@
 
 						*[star* *[/*
 [*  or  [/		go to [count] previous start of a C comment "/*".
-			|exclusive| motion. {not in Vi}
+			|exclusive| motion.
 
 						*]star* *]/*
 ]*  or  ]/		go to [count] next end of a C comment "*/".
-			|exclusive| motion. {not in Vi}
+			|exclusive| motion.
 
 
 						*H*
@@ -1339,6 +1323,6 @@
 <LeftMouse>		Moves to the position on the screen where the mouse
 			click is |exclusive|.  See also |<LeftMouse>|.  If the
 			position is in a status line, that window is made the
-			active window and the cursor is not moved.  {not in Vi}
+			active window and the cursor is not moved.
 
  vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/netbeans.txt b/runtime/doc/netbeans.txt
index 495f0d4..31d6907 100644
--- a/runtime/doc/netbeans.txt
+++ b/runtime/doc/netbeans.txt
@@ -1,4 +1,4 @@
-*netbeans.txt*  For Vim version 8.1.  Last change: 2019 Jan 17
+*netbeans.txt*  For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Gordon Prieur et al.
@@ -24,7 +24,6 @@
     10.4. Obtaining the External Editor Module	|obtaining-exted|
     10.5. Setting up NetBeans to run with Vim	|netbeans-setup|
 
-{Vi does not have any of these features}
 {only available when compiled with the |+netbeans_intg| feature}
 
 ==============================================================================
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 6a73180..c17842f 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 8.1.  Last change: 2019 Apr 28
+*options.txt*	For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -6163,9 +6163,7 @@
 	set to half the number of lines in the window when the window size
 	changes.  If you give a count to the CTRL-U or CTRL-D command it will
 	be used as the new value for 'scroll'.  Reset to half the window
-	height with ":set scroll=0".   {Vi is a bit different: 'scroll' gives
-	the number of screen lines instead of file lines, makes a difference
-	when lines wrap}
+	height with ":set scroll=0".
 
 			*'scrollbind'* *'scb'* *'noscrollbind'* *'noscb'*
 'scrollbind' 'scb'	boolean  (default off)
@@ -7787,7 +7785,7 @@
 						*'timeoutlen'* *'tm'*
 'timeoutlen' 'tm'	number	(default 1000)
 			global
-			{not in all versions of Vi}
+
 						*'ttimeoutlen'* *'ttm'*
 'ttimeoutlen' 'ttm'	number	(default -1, set to 100 in |defaults.vim|)
 			global
@@ -7990,9 +7988,10 @@
 			work.  See below for how Vim detects this
 			automatically.
 							*netterm-mouse*
-	   netterm	NetTerm mouse handling.  The mouse generates
+	   netterm	NetTerm mouse handling.  A left mouse click generates
 			"<Esc>}r,c<CR>", where "r,c" are two decimal numbers
-			for the row and column.
+			for the row and column.  No other mouse events are
+			supported.
 							*dec-mouse*
 	   dec		DEC terminal mouse handling.  The mouse generates a
 			rather complex sequence, starting with "<Esc>[".
@@ -8653,7 +8652,6 @@
 	in a much smarter way, taking care of wrapping lines.
 	When resizing the Vim window, the value is smaller than 1 or more than
 	or equal to 'lines' it will be set to 'lines' minus 1.
-	{Vi also uses the option to specify the number of displayed lines}
 
 						*'winheight'* *'wh'* *E591*
 'winheight' 'wh'	number	(default 1)
diff --git a/runtime/doc/os_mac.txt b/runtime/doc/os_mac.txt
index 28ebe66..77d1f89 100644
--- a/runtime/doc/os_mac.txt
+++ b/runtime/doc/os_mac.txt
@@ -1,4 +1,4 @@
-*os_mac.txt*    For Vim version 8.1.  Last change: 2018 Jan 21
+*os_mac.txt*    For Vim version 8.1.  Last change: 2019 Apr 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar et al.
diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt
index fc4502d..8babf0b 100644
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -1,4 +1,4 @@
-*pattern.txt*   For Vim version 8.1.  Last change: 2019 Feb 21
+*pattern.txt*   For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -78,24 +78,24 @@
 				4. the first non-blank word after the cursor,
 				   in the current line
 			Only whole keywords are searched for, like with the
-			command "/\<keyword\>".  |exclusive|  {not in Vi}
+			command "/\<keyword\>".  |exclusive| 
 			'ignorecase' is used, 'smartcase' is not.
 
 							*#*
 #			Same as "*", but search backward.  The pound sign
 			(character 163) also works.  If the "#" key works as
 			backspace, try using "stty erase <BS>" before starting
-			Vim (<BS> is CTRL-H or a real backspace).  {not in Vi}
+			Vim (<BS> is CTRL-H or a real backspace).
 
 							*gstar*
 g*			Like "*", but don't put "\<" and "\>" around the word.
 			This makes the search also find matches that are not a
-			whole word.  {not in Vi}
+			whole word.
 
 							*g#*
 g#			Like "#", but don't put "\<" and "\>" around the word.
 			This makes the search also find matches that are not a
-			whole word.  {not in Vi}
+			whole word.
 
 							*gd*
 gd			Goto local Declaration.  When the cursor is on a local
@@ -113,22 +113,21 @@
 			searched use the commands listed in |include-search|.
 			After this command |n| searches forward for the next
 			match (not backward).
-			{not in Vi}
 
 							*gD*
 gD			Goto global Declaration.  When the cursor is on a
 			global variable that is defined in the file, this
 			command will jump to its declaration.  This works just
 			like "gd", except that the search for the keyword
-			always starts in line 1.  {not in Vi}
+			always starts in line 1.
 
 							*1gd*
 1gd			Like "gd", but ignore matches inside a {} block that
-			ends before the cursor position. {not in Vi}
+			ends before the cursor position.
 
 							*1gD*
 1gD			Like "gD", but ignore matches inside a {} block that
-			ends before the cursor position. {not in Vi}
+			ends before the cursor position.
 
 							*CTRL-C*
 CTRL-C			Interrupt current (search) command.  Use CTRL-Break on
@@ -171,7 +170,7 @@
 					*search-offset* *{offset}*
 These commands search for the specified pattern.  With "/" and "?" an
 additional offset may be given.  There are two types of offsets: line offsets
-and character offsets.  {the character offsets are not in Vi}
+and character offsets.
 
 The offset gives the cursor position relative to the found match:
     [num]	[num] lines downwards, in column 1
@@ -312,14 +311,6 @@
 it's used again it fails.  Usually this means there is something wrong with
 the pattern.
 
-								*E956*
-In very rare cases a regular expression is used recursively.  This can happen
-when executing a pattern takes a long time and when checking for messages on
-channels a callback is invoked that also uses a pattern or an autocommand is
-triggered.  In most cases this should be fine, but if a pattern is in use when
-it's used again it fails.  Usually this means there is something wrong with
-the pattern.
-
 ==============================================================================
 2. The definition of a pattern		*search-pattern* *pattern* *[pattern]*
 					*regular-expression* *regexp* *Pattern*
@@ -455,30 +446,28 @@
 	  multi ~
      'magic' 'nomagic'	matches of the preceding atom ~
 |/star|	*	\*	0 or more	as many as possible
-|/\+|	\+	\+	1 or more	as many as possible (*)
-|/\=|	\=	\=	0 or 1		as many as possible (*)
-|/\?|	\?	\?	0 or 1		as many as possible (*)
+|/\+|	\+	\+	1 or more	as many as possible
+|/\=|	\=	\=	0 or 1		as many as possible
+|/\?|	\?	\?	0 or 1		as many as possible
 
-|/\{|	\{n,m}	\{n,m}	n to m		as many as possible (*)
-	\{n}	\{n}	n		exactly (*)
-	\{n,}	\{n,}	at least n	as many as possible (*)
-	\{,m}	\{,m}	0 to m		as many as possible (*)
-	\{}	\{}	0 or more	as many as possible (same as *) (*)
+|/\{|	\{n,m}	\{n,m}	n to m		as many as possible
+	\{n}	\{n}	n		exactly
+	\{n,}	\{n,}	at least n	as many as possible
+	\{,m}	\{,m}	0 to m		as many as possible
+	\{}	\{}	0 or more	as many as possible (same as *)
 
-|/\{-|	\{-n,m}	\{-n,m}	n to m		as few as possible (*)
-	\{-n}	\{-n}	n		exactly (*)
-	\{-n,}	\{-n,}	at least n	as few as possible (*)
-	\{-,m}	\{-,m}	0 to m		as few as possible (*)
-	\{-}	\{-}	0 or more	as few as possible (*)
+|/\{-|	\{-n,m}	\{-n,m}	n to m		as few as possible
+	\{-n}	\{-n}	n		exactly
+	\{-n,}	\{-n,}	at least n	as few as possible
+	\{-,m}	\{-,m}	0 to m		as few as possible
+	\{-}	\{-}	0 or more	as few as possible
 
 							*E59*
-|/\@>|	\@>	\@>	1, like matching a whole pattern (*)
-|/\@=|	\@=	\@=	nothing, requires a match |/zero-width| (*)
-|/\@!|	\@!	\@!	nothing, requires NO match |/zero-width| (*)
-|/\@<=|	\@<=	\@<=	nothing, requires a match behind |/zero-width| (*)
-|/\@<!|	\@<!	\@<!	nothing, requires NO match behind |/zero-width| (*)
-
-(*) {not in Vi}
+|/\@>|	\@>	\@>	1, like matching a whole pattern
+|/\@=|	\@=	\@=	nothing, requires a match |/zero-width|
+|/\@!|	\@!	\@!	nothing, requires NO match |/zero-width|
+|/\@<=|	\@<=	\@<=	nothing, requires a match behind |/zero-width|
+|/\@<!|	\@<!	\@<!	nothing, requires NO match behind |/zero-width|
 
 
 Overview of ordinary atoms.				*/ordinary-atom*
@@ -507,7 +496,7 @@
 |/\%c|	\%23c	\%23c	in column 23 |/zero-width|
 |/\%v|	\%23v	\%23v	in virtual column 23 |/zero-width|
 
-Character classes {not in Vi}:				*/character-classes*
+Character classes:					*/character-classes*
       magic   nomagic	matches ~
 |/\i|	\i	\i	identifier character (see 'isident' option)
 |/\I|	\I	\I	like "\i", but excluding digits
@@ -546,7 +535,7 @@
 |/\b|	\b	\b	<BS>
 |/\n|	\n	\n	end-of-line
 |/~|	~	\~	last given substitute string
-|/\1|	\1	\1	same string as matched by first \(\) {not in Vi}
+|/\1|	\1	\1	same string as matched by first \(\)
 |/\2|	\2	\2	Like "\1", but uses second \(\)
 	   ...
 |/\9|	\9	\9	Like "\1", but uses ninth \(\)
@@ -624,20 +613,19 @@
 	character at a time.
 
 							*/\+*
-\+	Matches 1 or more of the preceding atom, as many as possible. {not in
-	Vi}
+\+	Matches 1 or more of the preceding atom, as many as possible.
 	Example		matches ~
 	^.\+$		any non-empty line
 	\s\+		white space of at least one character
 
 							*/\=*
-\=	Matches 0 or 1 of the preceding atom, as many as possible. {not in Vi}
+\=	Matches 0 or 1 of the preceding atom, as many as possible.
 	Example		matches ~
 	foo\=		"fo" and "foo"
 
 							*/\?*
 \?	Just like \=.  Cannot be used when searching backwards with the "?"
-	command. {not in Vi}
+	command.
 
 					*/\{* *E60* *E554* *E870*
 \{n,m}	Matches n to m of the preceding atom, as many as possible
@@ -651,7 +639,6 @@
 \{-n,}	matches at least n of the preceding atom, as few as possible
 \{-,m}	matches 0 to m of the preceding atom, as few as possible
 \{-}	matches 0 or more of the preceding atom, as few as possible
-	{Vi does not have any of these}
 
 	n and m are positive decimal numbers or zero
 								*non-greedy*
@@ -674,7 +661,7 @@
 	The } may optionally be preceded with a backslash: \{n,m\}.
 
 							*/\@=*
-\@=	Matches the preceding atom with zero width. {not in Vi}
+\@=	Matches the preceding atom with zero width.
 	Like "(?=pattern)" in Perl.
 	Example			matches ~
 	foo\(bar\)\@=		"foo" in "foobar"
@@ -694,7 +681,7 @@
 
 							*/\@!*
 \@!	Matches with zero width if the preceding atom does NOT match at the
-	current position. |/zero-width| {not in Vi}
+	current position. |/zero-width|
 	Like "(?!pattern)" in Perl.
 	Example			matches ~
 	foo\(bar\)\@!		any "foo" not followed by "bar"
@@ -724,7 +711,7 @@
 
 							*/\@<=*
 \@<=	Matches with zero width if the preceding atom matches just before what
-	follows. |/zero-width| {not in Vi}
+	follows. |/zero-width|
 	Like "(?<=pattern)" in Perl, but Vim allows non-fixed-width patterns.
 	Example			matches ~
 	\(an\_s\+\)\@<=file	"file" after "an" and white space or an
@@ -768,7 +755,7 @@
 \@<!	Matches with zero width if the preceding atom does NOT match just
 	before what follows.  Thus this matches if there is no position in the
 	current or previous line where the atom matches such that it ends just
-	before what follows.  |/zero-width| {not in Vi}
+	before what follows.  |/zero-width|
 	Like "(?<!pattern)" in Perl, but Vim allows non-fixed-width patterns.
 	The match with the preceding atom is made to end just before the match
 	with what follows, thus an atom that ends in ".*" will work.
@@ -784,7 +771,7 @@
 	slow.
 
 							*/\@>*
-\@>	Matches the preceding atom like matching a whole pattern. {not in Vi}
+\@>	Matches the preceding atom like matching a whole pattern.
 	Like "(?>pattern)" in Perl.
 	Example		matches ~
 	\(a*\)\@>a	nothing (the "a*" takes all the "a"'s, there can't be
@@ -863,7 +850,7 @@
 		/\(.\{-}\zsFab\)\{3}
 <	Finds the third occurrence of "Fab".
 	This cannot be followed by a multi. *E888*
-	{not in Vi} {not available when compiled without the |+syntax| feature}
+	{not available when compiled without the |+syntax| feature}
 							*/\ze*
 \ze	Matches at any position, and sets the end of the match there: The
 	previous char is the last char of the whole match. |/zero-width|
@@ -872,17 +859,17 @@
 	Example: "end\ze\(if\|for\)" matches the "end" in "endif" and
 	"endfor".
 	This cannot be followed by a multi. |E888|
-	{not in Vi} {not available when compiled without the |+syntax| feature}
+	{not available when compiled without the |+syntax| feature}
 
 						*/\%^* *start-of-file*
 \%^	Matches start of the file.  When matching with a string, matches the
-	start of the string. {not in Vi}
+	start of the string.
 	For example, to find the first "VIM" in a file: >
 		/\%^\_.\{-}\zsVIM
 <
 						*/\%$* *end-of-file*
 \%$	Matches end of the file.  When matching with a string, matches the
-	end of the string. {not in Vi}
+	end of the string.
 	Note that this does NOT find the last "VIM" in a file: >
 		/VIM\_.\{-}\%$
 <	It will find the next VIM, because the part after it will always
@@ -906,7 +893,7 @@
 
 						*/\%#* *cursor-position*
 \%#	Matches with the cursor position.  Only works when matching in a
-	buffer displayed in a window. {not in Vi}
+	buffer displayed in a window.
 	WARNING: When the cursor is moved after the pattern was used, the
 	result becomes invalid.  Vim doesn't automatically update the matches.
 	This is especially relevant for syntax highlighting and 'hlsearch'.
@@ -927,7 +914,6 @@
 <	Note that two dots are required to include mark 'e in the match.  That
 	is because "\%<'e" matches at the character before the 'e mark, and
 	since it's a |/zero-width| match it doesn't include that character.
-	{not in Vi}
 	WARNING: When the mark is moved after the pattern was used, the result
 	becomes invalid.  Vim doesn't automatically update the matches.
 	Similar to moving the cursor for "\%#" |/\%#|.
@@ -937,7 +923,7 @@
 \%<23l	Matches above a specific line (lower line number).
 \%>23l	Matches below a specific line (higher line number).
 	These three can be used to match specific lines in a buffer.  The "23"
-	can be any line number.  The first line is 1. {not in Vi}
+	can be any line number.  The first line is 1.
 	WARNING: When inserting or deleting lines Vim does not automatically
 	update the matches.  This means Syntax highlighting quickly becomes
 	wrong.
@@ -953,7 +939,7 @@
 	These three can be used to match specific columns in a buffer or
 	string.  The "23" can be any column number.  The first column is 1.
 	Actually, the column is the byte number (thus it's not exactly right
-	for multi-byte characters).  {not in Vi}
+	for multi-byte characters).
 	WARNING: When inserting or deleting text Vim does not automatically
 	update the matches.  This means Syntax highlighting quickly becomes
 	wrong.
@@ -975,7 +961,7 @@
 	The "23" can be any column number.  The first column is 1.
 	Note that some virtual column positions will never match, because they
 	are halfway through a tab or other character that occupies more than
-	one screen character.  {not in Vi}
+	one screen character.
 	WARNING: When inserting or deleting text Vim does not automatically
 	update highlighted matches.  This means Syntax highlighting quickly
 	becomes wrong.
@@ -998,7 +984,7 @@
 	where ".*" matches zero characters.
 <
 
-Character classes: {not in Vi}
+Character classes:
 \i	identifier character (see 'isident' option)	*/\i*
 \I	like "\i", but excluding digits			*/\I*
 \k	keyword character (see 'iskeyword' option)	*/\k*
@@ -1058,7 +1044,7 @@
 	*E51* *E54* *E55* *E872* *E873*
 
 \1      Matches the same string that was matched by	*/\1* *E65*
-	the first sub-expression in \( and \). {not in Vi}
+	the first sub-expression in \( and \).
 	Example: "\([a-z]\).\1" matches "ata", "ehe", "tot", etc.
 \2      Like "\1", but uses second sub-expression,	*/\2*
    ...							*/\3*
@@ -1070,7 +1056,6 @@
 \%(\)	A pattern enclosed by escaped parentheses.	*/\%(\)* */\%(* *E53*
 	Just like \(\), but without counting it as a sub-expression.  This
 	allows using more groups and it's a little bit faster.
-	{not in Vi}
 
 x	A single character, with no special meaning, matches itself
 
@@ -1171,7 +1156,7 @@
 	  backslash before it: "[xyz\]]", "[\^xyz]", "[xy\-z]" and "[xyz\\]".
 	  (Note: POSIX does not support the use of a backslash this way).  For
 	  ']' you can also make it the first character (following a possible
-	  "^"):  "[]xyz]" or "[^]xyz]" {not in Vi}.
+	  "^"):  "[]xyz]" or "[^]xyz]".
 	  For '-' you can also make it the first or last character: "[-xyz]",
 	  "[^-xyz]" or "[xyz-]".  For '\' you can also let it be followed by
 	  any character that's not in "^]-\bdertnoUux".  "[\xyz]" matches '\',
@@ -1180,7 +1165,7 @@
 	- Omitting the trailing ] is not considered an error. "[]" works like
 	  "[]]", it matches the ']' character.
 	- The following translations are accepted when the 'l' flag is not
-	  included in 'cpoptions' {not in Vi}:
+	  included in 'cpoptions':
 		\e	<Esc>
 		\t	<Tab>
 		\r	<CR>	(NOT end-of-line!)
@@ -1261,7 +1246,7 @@
 "CTRL-V 000".  This is probably just what you expect.  Internally the
 character is replaced with a <NL> in the search pattern.  What is unusual is
 that typing CTRL-V CTRL-J also inserts a <NL>, thus also searches for a <Nul>
-in the file.  {Vi cannot handle <Nul> characters in the file at all}
+in the file.
 
 						*CR-used-for-NL*
 When 'fileformat' is "mac", <NL> characters in the file are stored as <CR>
diff --git a/runtime/doc/pi_gzip.txt b/runtime/doc/pi_gzip.txt
index 6017efa..1631e2e 100644
--- a/runtime/doc/pi_gzip.txt
+++ b/runtime/doc/pi_gzip.txt
@@ -1,4 +1,4 @@
-*pi_gzip.txt*   For Vim version 8.1.  Last change: 2016 Nov 06
+*pi_gzip.txt*   For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -13,8 +13,6 @@
 You can avoid loading this plugin by setting the "loaded_gzip" variable: >
 	:let loaded_gzip = 1
 
-{Vi does not have any of this}
-
 ==============================================================================
 1. Autocommands						*gzip-autocmd*
 
diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt
index 2b7e565..709b847 100644
--- a/runtime/doc/pi_netrw.txt
+++ b/runtime/doc/pi_netrw.txt
@@ -1,4 +1,4 @@
-*pi_netrw.txt*  For Vim version 8.1.  Last change: 2017 Nov 03
+*pi_netrw.txt*  For Vim version 8.1.  Last change: 2019 May 05
 
 	    ------------------------------------------------
 	    NETRW REFERENCE MANUAL    by Charles E. Campbell
@@ -114,8 +114,6 @@
 13. Todo..................................................|netrw-todo|
 14. Credits...............................................|netrw-credits|
 
-{Vi does not have any of this}
-
 ==============================================================================
 2. Starting With Netrw					*netrw-start* {{{1
 
diff --git a/runtime/doc/print.txt b/runtime/doc/print.txt
index 277ffb8..c58afdb 100644
--- a/runtime/doc/print.txt
+++ b/runtime/doc/print.txt
@@ -1,4 +1,4 @@
-*print.txt*     For Vim version 8.1.  Last change: 2010 Jul 20
+*print.txt*     For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -15,7 +15,6 @@
 7. PostScript Utilities			|postscript-print-util|
 8. Formfeed Characters			|printing-formfeed|
 
-{Vi has None of this}
 {only available when compiled with the |+printer| feature}
 
 ==============================================================================
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index ef084fa..6d9b342 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -1,4 +1,4 @@
-*quickfix.txt*  For Vim version 8.1.  Last change: 2019 Jan 13
+*quickfix.txt*  For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -16,8 +16,6 @@
 8. The directory stack			|quickfix-directory-stack|
 9. Specific error file formats		|errorformats|
 
-{Vi does not have any of these commands}
-
 The quickfix commands are not available when the |+quickfix| feature was
 disabled at compile time.
 
@@ -502,7 +500,6 @@
 			autocommand event is disabled by adding it to
 			'eventignore'.  This considerably speeds up editing
 			each buffer.
-			{not in Vi}
 			Also see |:bufdo|, |:tabdo|, |:argdo|, |:windo|,
 			|:ldo|, |:cfdo| and |:lfdo|.
 
@@ -515,7 +512,6 @@
 				:{cmd}
 				etc.
 <			Otherwise it works the same as `:cdo`.
-			{not in Vi}
 
 							*:ldo*
 :ld[o][!] {cmd}		Execute {cmd} in each valid entry in the location list
@@ -528,7 +524,6 @@
 				etc.
 <			Only valid entries in the location list are used.
 			Otherwise it works the same as `:cdo`.
-			{not in Vi}
 
 							*:lfdo*
 :lfdo[!] {cmd}		Execute {cmd} in each file in the location list for
@@ -540,7 +535,6 @@
 				:{cmd}
 				etc.
 <			Otherwise it works the same as `:ldo`.
-			{not in Vi}
 
 =============================================================================
 2. The error window					*quickfix-window*
diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt
index eb88bfd..2718f5c 100644
--- a/runtime/doc/quickref.txt
+++ b/runtime/doc/quickref.txt
@@ -1,4 +1,4 @@
-*quickref.txt*  For Vim version 8.1.  Last change: 2019 Feb 16
+*quickref.txt*  For Vim version 8.1.  Last change: 2019 Apr 28
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -600,6 +600,7 @@
 Short explanation of each option:		*option-list*
 'aleph'		  'al'	    ASCII code of the letter Aleph (Hebrew)
 'allowrevins'	  'ari'     allow CTRL-_ in Insert and Command-line mode
+'altkeymap'	  'akm'	    obsolete option for Farsi
 'ambiwidth'	  'ambw'    what to do with Unicode chars of ambiguous width
 'antialias'	  'anti'    Mac OS X: use smooth, antialiased fonts
 'autochdir'	  'acd'     change directory to the file in the current window
@@ -699,6 +700,7 @@
 'filetype'	  'ft'	    type of file, used for autocommands
 'fillchars'	  'fcs'     characters to use for displaying special items
 'fixendofline'	  'fixeol'  make sure last line in file has <EOL>
+'fkmap'		  'fk'	    obsolete option for Farsi
 'foldclose'	  'fcl'     close a fold when the cursor leaves it
 'foldcolumn'	  'fdc'     width of the column used to indicate folds
 'foldenable'	  'fen'     set to display all folds open
@@ -767,6 +769,7 @@
 'keywordprg'	  'kp'	    program to use for the "K" command
 'langmap'	  'lmap'    alphabetic characters for other language mode
 'langmenu'	  'lm'	    language to be used for the menus
+'langnoremap'	  'lnr'	    do not apply 'langmap' to mapped characters
 'langremap'	  'lrm'	    do apply 'langmap' to mapped characters
 'laststatus'	  'ls'	    tells when last window has status lines
 'lazyredraw'	  'lz'	    don't redraw while executing macros
@@ -779,8 +782,6 @@
 'listchars'	  'lcs'     characters for displaying in list mode
 'loadplugins'	  'lpl'     load plugin scripts when starting up
 'luadll'		    name of the Lua dynamic library
-'mzschemedll'		    name of the MzScheme dynamic library
-'mzschemegcdll'		    name of the MzScheme dynamic library for GC
 'macatsui'		    Mac GUI: use ATSUI text drawing
 'magic'			    changes special characters in search patterns
 'makeef'	  'mef'     name of the errorfile for ":make"
@@ -808,6 +809,8 @@
 'mouseshape'	  'mouses'  shape of the mouse pointer in different modes
 'mousetime'	  'mouset'  max time between mouse double-click
 'mzquantum'	  'mzq'     the interval between polls for MzScheme threads
+'mzschemedll'		    name of the MzScheme dynamic library
+'mzschemegcdll'		    name of the MzScheme dynamic library for GC
 'nrformats'	  'nf'	    number formats recognized for CTRL-A command
 'number'	  'nu'	    print the line number in front of each line
 'numberwidth'	  'nuw'     number of columns used for the line number
@@ -916,6 +919,7 @@
 'tabstop'	  'ts'	    number of spaces that <Tab> in file uses
 'tagbsearch'	  'tbs'     use binary searching in tags files
 'tagcase'	  'tc'      how to handle case when searching in tags files
+'tagfunc'	  'tfu'	    function to get list of tag matches
 'taglength'	  'tl'	    number of significant characters for a tag
 'tagrelative'	  'tr'	    file names in tag file are relative
 'tags'		  'tag'     list of file names used by the tag command
diff --git a/runtime/doc/remote.txt b/runtime/doc/remote.txt
index 03e0d97..2fe0297 100644
--- a/runtime/doc/remote.txt
+++ b/runtime/doc/remote.txt
@@ -1,4 +1,4 @@
-*remote.txt*    For Vim version 8.1.  Last change: 2017 Nov 12
+*remote.txt*    For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -10,8 +10,6 @@
 2. X11 specific items		|x11-clientserver|
 3. MS-Windows specific items	|w32-clientserver|
 
-{Vi does not have any of these commands}
-
 ==============================================================================
 1. Common functionality					*clientserver*
 
diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt
index 27afb94..ed48cf9 100644
--- a/runtime/doc/repeat.txt
+++ b/runtime/doc/repeat.txt
@@ -1,4 +1,4 @@
-*repeat.txt*    For Vim version 8.1.  Last change: 2019 Apr 05
+*repeat.txt*    For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -163,12 +163,11 @@
 
 							*:@:*
 :[addr]@:		Repeat last command-line.  First set cursor at line
-			[addr] (default is current line).  {not in Vi}
+			[addr] (default is current line).
 
 :[addr]@							*:@@*
 :[addr]@@		Repeat the previous :@{0-9a-z"}.  First set cursor at
-			line [addr] (default is current line).  {Vi: only in
-			some versions}
+			line [addr] (default is current line).
 
 ==============================================================================
 4. Using Vim scripts					*using-scripts*
@@ -187,7 +186,6 @@
 			|:bufdo|, in a loop or when another command follows
 			the display won't be updated while executing the
 			commands.
-			{not in Vi}
 
 							*:ru* *:runtime*
 :ru[ntime][!] [where] {file} ..
@@ -230,7 +228,6 @@
 			when no file could be found.
 			When 'verbose' is two or higher, there is a message
 			about each searched file.
-			{not in Vi}
 
 							*:pa* *:packadd* *E919*
 :pa[ckadd][!] {name}	Search for an optional plugin directory in 'packpath'
@@ -323,7 +320,6 @@
 				set encoding=utf-8
 				scriptencoding utf-8
 <
-			{not in Vi}
 
 :scriptv[ersion] {version}		*:scriptv* *:scriptversion*
 								*E999* *E984*
@@ -341,8 +337,8 @@
 :scr[iptnames]		List all sourced script names, in the order they were
 			first sourced.  The number is used for the script ID
 			|<SID>|.
-			{not in Vi} {not available when compiled without the
-			|+eval| feature}
+			{not available when compiled without the |+eval|
+			feature}
 
 :scr[iptnames][!] {scriptId}			*:script*
 			Edit script {scriptId}.  Although ":scriptnames name"
@@ -358,7 +354,7 @@
 			following the ":finally" up to the matching |:endtry|
 			are executed first.  This process applies to all
 			nested ":try"s in the script.  The outermost ":endtry"
-			then stops sourcing the script.  {not in Vi}
+			then stops sourcing the script.
 
 All commands and command sequences can be repeated by putting them in a named
 register and then executing it.  There are two ways to get the commands in the
@@ -698,7 +694,6 @@
 NOTE: The debugging mode is far from perfect.  Debugging will have side
 effects on how Vim works.  You cannot use it to debug everything.  For
 example, the display is messed up by the debugging messages.
-{Vi does not have a debug mode}
 
 An alternative to debug mode is setting the 'verbose' option.  With a bigger
 number it will give more verbose messages about what Vim is doing.
@@ -932,7 +927,6 @@
 Profiling means that Vim measures the time that is spent on executing
 functions and/or scripts.  The |+profile| feature is required for this.
 It is only included when Vim was compiled with "huge" features.
-{Vi does not have profiling}
 
 You can also use the |reltime()| function to measure time.  This only requires
 the |+reltime| feature, which is present more often.
diff --git a/runtime/doc/rileft.txt b/runtime/doc/rileft.txt
index f5ec8e8..2060283 100644
--- a/runtime/doc/rileft.txt
+++ b/runtime/doc/rileft.txt
@@ -1,4 +1,4 @@
-*rileft.txt*    For Vim version 8.1.  Last change: 2006 Apr 24
+*rileft.txt*    For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Avner Lottem
@@ -12,8 +12,6 @@
    E-mail: alottem@iil.intel.com
    Phone:  +972-4-8307322
 
-{Vi does not have any of these commands}
-
 								*E26*
 {only available when compiled with the |+rightleft| feature}
 
diff --git a/runtime/doc/scroll.txt b/runtime/doc/scroll.txt
index 1415e2f..86c471b 100644
--- a/runtime/doc/scroll.txt
+++ b/runtime/doc/scroll.txt
@@ -1,4 +1,4 @@
-*scroll.txt*    For Vim version 8.1.  Last change: 2018 Apr 26
+*scroll.txt*    For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -45,9 +45,6 @@
 			difference).  When the cursor is on the last line of
 			the buffer nothing happens and a beep is produced.
 			See also 'startofline' option.
-			{difference from vi: Vim scrolls 'scroll' screen
-			lines, instead of file lines; makes a difference when
-			lines wrap}
 
 <S-Down>	or				*<S-Down>* *<kPageDown>*
 <PageDown>	or				*<PageDown>* *CTRL-F*
@@ -120,7 +117,7 @@
 
 							*zt*
 zt			Like "z<CR>", but leave the cursor in the same
-			column.  {not in Vi}
+			column.
 
 							*zN<CR>*
 z{height}<CR>		Redraw, make window {height} lines tall.  This is
@@ -136,7 +133,7 @@
 							*zz*
 zz			Like "z.", but leave the cursor in the same column.
 			Careful: If caps-lock is on, this command becomes
-			"ZZ": write buffer and exit!  {not in Vi}
+			"ZZ": write buffer and exit!
 
 							*z-*
 z-			Redraw, line [count] at bottom of window (default
@@ -145,7 +142,6 @@
 
 							*zb*
 zb			Like "z-", but leave the cursor in the same column.
-			{not in Vi}
 
 ==============================================================================
 4. Scrolling horizontally				*scroll-horizontal*
@@ -158,26 +154,22 @@
 z<Right>    or						*zl* *z<Right>*
 zl			Move the view on the text [count] characters to the
 			right, thus scroll the text [count] characters to the
-			left.  This only works when 'wrap' is off.  {not in
-			Vi}
+			left.  This only works when 'wrap' is off.
 
 z<Left>      or						*zh* *z<Left>*
 zh			Move the view on the text [count] characters to the
 			left, thus scroll the text [count] characters to the
-			right.  This only works when 'wrap' is off.  {not in
-			Vi}
+			right.  This only works when 'wrap' is off.
 
 							*zL*
 zL			Move the view on the text half a screenwidth to the
 			right, thus scroll the text half a screenwidth to the
-			left.  This only works when 'wrap' is off.  {not in
-			Vi}
+			left.  This only works when 'wrap' is off.
 
 							*zH*
 zH			Move the view on the text half a screenwidth to the
 			left, thus scroll the text half a screenwidth to the
-			right.  This only works when 'wrap' is off.  {not in
-			Vi}
+			right.  This only works when 'wrap' is off.
 
 For the following two commands the cursor is not moved in the text, only the
 text scrolls on the screen.
@@ -185,12 +177,12 @@
 							*zs*
 zs			Scroll the text horizontally to position the cursor
 			at the start (left side) of the screen.  This only
-			works when 'wrap' is off.  {not in Vi}
+			works when 'wrap' is off.
 
 							*ze*
 ze			Scroll the text horizontally to position the cursor
 			at the end (right side) of the screen.  This only
-			works when 'wrap' is off.  {not in Vi}
+			works when 'wrap' is off.
 
 ==============================================================================
 5. Scrolling synchronously				*scroll-binding*
diff --git a/runtime/doc/sign.txt b/runtime/doc/sign.txt
index 4886f74..4f59c8f 100644
--- a/runtime/doc/sign.txt
+++ b/runtime/doc/sign.txt
@@ -1,4 +1,4 @@
-*sign.txt*      For Vim version 8.1.  Last change: 2019 Jan 17
+*sign.txt*      For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Gordon Prieur
@@ -10,7 +10,6 @@
 1. Introduction				|sign-intro|
 2. Commands				|sign-commands|
 
-{Vi does not have any of these features}
 {only available when compiled with the |+signs| feature}
 
 ==============================================================================
diff --git a/runtime/doc/spell.txt b/runtime/doc/spell.txt
index c7c83aa..4a28cdc 100644
--- a/runtime/doc/spell.txt
+++ b/runtime/doc/spell.txt
@@ -1,4 +1,4 @@
-*spell.txt*	For Vim version 8.1.  Last change: 2019 Jan 19
+*spell.txt*	For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -11,10 +11,7 @@
 3. Generating a spell file	|spell-mkspell|
 4. Spell file format		|spell-file-format|
 
-{Vi does not have any of these commands}
-
-Spell checking is not available when the |+syntax| feature has been disabled
-at compile time.
+{not available when the |+syntax| feature has been disabled at compile time}
 
 Note: There also is a vimspell plugin.  If you have it you can do ":help
 vimspell" to find about it.  But you will probably want to get rid of the
diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt
index 595f595..c765579 100644
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -1,4 +1,4 @@
-*starting.txt*  For Vim version 8.1.  Last change: 2019 Feb 16
+*starting.txt*  For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -84,7 +84,6 @@
 		and the first error is displayed.  See |quickfix|.
 		If [errorfile] is not given, the 'errorfile' option is used
 		for the file name.  See 'errorfile' for the default value.
-		{not in Vi}
 
 (nothing)	Without one of the four items above, Vim will start editing a
 		new buffer.  It's empty and doesn't have a file name.
@@ -129,17 +128,17 @@
 
 --help							*-h* *--help* *-?*
 -?
--h		Give usage (help) message and exit.  {not in Vi}
+-h		Give usage (help) message and exit.
 		See |info-message| about capturing the text.
 
 							*--version*
 --version	Print version information and exit.  Same output as for
-		|:version| command.  {not in Vi}
+		|:version| command.
 		See |info-message| about capturing the text.
 
 							*--noplugin*
 --noplugin	Skip loading plugins.  Resets the 'loadplugins' option.
-		{not in Vi}
+
 		Note that the |-u| argument may also disable loading plugins:
 			argument   load: vimrc files  plugins  defaults.vim ~
 			(nothing)	     yes	yes	  yes
@@ -190,13 +189,11 @@
 		Note: You can use up to 10 "+" or "-c" arguments in a Vim
 		command.  They are executed in the order given.  A "-S"
 		argument counts as a "-c" argument as well.
-		{Vi only allows one command}
 
 --cmd {command}						*--cmd*
 		{command} will be executed before processing any vimrc file.
 		Otherwise it acts like -c {command}.  You can use up to 10 of
 		these commands, independently from "-c" commands.
-		{not in Vi}
 
 							*-S*
 -S {file}	The {file} will be sourced after the first file has been read.
@@ -205,7 +202,9 @@
 <		It can be mixed with "-c" arguments and repeated like "-c".
 		The limit of 10 "-c" arguments applies here as well.
 		{file} cannot start with a "-".
-		{not in Vi}
+
+		Do not use this for running a script to do some work and exit
+		Vim, you won't see error messages.  Use |-u| instead.
 
 -S		Works like "-S Session.vim".  Only when used as the last
 		argument or when another "-" option follows.
@@ -217,8 +216,7 @@
 		|crash-recovery|.
 
 							*-L*
--L		Same as -r.  {only in some versions of Vi: "List recoverable
-		edit sessions"}
+-L		Same as -r.
 
 							*-R*
 -R		Readonly mode.  The 'readonly' option will be set for all the
@@ -238,7 +236,6 @@
 -m		Modifications not allowed to be written.  The 'write' option
 		will be reset, so that writing files is disabled.  However,
 		the 'write' option can be set to enable writing again.
-		{not in Vi}
 
 							*-M*
 -M		Modifications not allowed.  The 'modifiable' option will be
@@ -246,7 +243,6 @@
 		will be reset, so that writing files is disabled.  However,
 		the 'modifiable' and 'write' options can be set to enable
 		changes and writing.
-		{not in Vi}
 
 					*-Z* *restricted-mode* *E145* *E981*
 -Z		Restricted mode.  All commands that make use of an external
@@ -260,11 +256,9 @@
 		the Safe module.
 		Note that the user may still find a loophole to execute a
 		shell command, it has only been made difficult.
-		{not in Vi}
 
 							*-g*
 -g		Start Vim in GUI mode.  See |gui|. For the opposite see |-v|.
-		{not in Vi}
 
 							*-v*
 -v		Start Ex in Vi mode.  Only makes a difference when the
@@ -278,7 +272,6 @@
 							*-E*
 -E		Start Vim in improved Ex mode |gQ|.  Only makes a difference
 		when the executable is not called "exim".
-		{not in Vi}
 
 							*-s-ex*
 -s		Silent or batch mode.  Only when Vim was started as "ex" or
@@ -302,6 +295,9 @@
 		"-u" argument).
 		Example: >
 			vim -e -s  < thefilter  thefile
+<		For the opposite, to see errors from the script, execute the
+		file with the |-u| flag: >
+			vim -u thefilter thefile
 <
 							*-b*
 -b		Binary mode.  File I/O will only recognize <NL> to separate
@@ -309,7 +305,7 @@
 		option is set to 0.  'modeline' is reset.  The 'binary' option
 		is set.  This is done after reading the vimrc/exrc files but
 		before reading any file in the arglist.  See also
-		|edit-binary|.  {not in Vi}
+		|edit-binary|.
 
 							*-l*
 -l		Lisp mode.  Sets the 'lisp' and 'showmatch' options on.
@@ -318,7 +314,7 @@
 -A		Arabic mode.  Sets the 'arabic' option on.  (Only when
 		compiled with the |+arabic| features (which include
 		|+rightleft|), otherwise Vim gives an error message
-		and exits.)  {not in Vi}
+		and exits.)
 
 							*-F*
 -F		This was used for Farsi mode, which has been removed.
@@ -327,13 +323,13 @@
 							*-H*
 -H		Hebrew mode.  Sets the 'hkmap' and 'rightleft' options on.
 		(Only when compiled with the |+rightleft| feature, otherwise
-		Vim gives an error message and exits.)  {not in Vi}
+		Vim gives an error message and exits.)
 
 							*-V* *verbose*
 -V[N]		Verbose.  Sets the 'verbose' option to [N] (default: 10).
 		Messages will be given for each file that is ":source"d and
 		for reading or writing a viminfo file.  Can be used to find
-		out what is happening upon startup and exit.  {not in Vi}
+		out what is happening upon startup and exit.
 		Example: >
 			vim -V8 foobar
 
@@ -348,7 +344,6 @@
 -D		Debugging.  Go to debugging mode when executing the first
 		command from a script. |debug-mode|
 		{not available when compiled without the |+eval| feature}
-		{not in Vi}
 
 							*-C*
 -C		Compatible mode.  Sets the 'compatible' option.  You can use
@@ -360,13 +355,13 @@
 <		Several plugins won't work with 'compatible' set.  You may
 		want to set it after startup this way: >
 			vim "+set cp" filename
-<		Also see |compatible-default|.  {not in Vi}
+<		Also see |compatible-default|.
 
 							*-N*
 -N		Not compatible mode.  Resets the 'compatible' option.  You can
 		use this to get 'nocompatible', when there is no .vimrc file
 		or when using "-u NONE".
-		Also see |compatible-default|.  {not in Vi}
+		Also see |compatible-default|.
 
 							*-y* *easy*
 -y		Easy mode.  Implied for |evim| and |eview|.  Starts with
@@ -374,7 +369,6 @@
 		This sources the script $VIMRUNTIME/evim.vim.  Mappings are
 		set up to work like most click-and-type editors, see
 		|evim-keys|.  The GUI is started when available.
-		{not in Vi}
 
 							*-n*
 -n		No swap file will be used.  Recovery after a crash will be
@@ -394,7 +388,6 @@
 		'updatecount' to very big numbers, and type ":preserve" when
 		you want to save your work.  This way you keep the possibility
 		for crash recovery.
-		{not in Vi}
 
 							*-o*
 -o[N]		Open N windows, split horizontally.  If [N] is not given,
@@ -402,13 +395,11 @@
 		there is not enough room, only the first few files get a
 		window.  If there are more windows than arguments, the last
 		few windows will be editing an empty file.
-		{not in Vi}
 
 							*-O*
 -O[N]		Open N windows, split vertically.  Otherwise it's like -o.
 		If both the -o and the -O option are given, the last one on
 		the command line determines how the windows will be split.
-		{not in Vi}
 
 							*-p*
 -p[N]		Open N tab pages.  If [N] is not given, one tab page is opened
@@ -416,20 +407,19 @@
 		'tabpagemax' pages (default 10).  If there are more tab pages
 		than arguments, the last few tab pages will be editing an
 		empty file.  Also see |tabpage|.
-		{not in Vi}
 
 							*-T*
 -T {terminal}	Set the terminal type to "terminal".  This influences the
 		codes that Vim will send to your terminal.  This is normally
 		not needed, because Vim will be able to find out what type
-		of terminal you are using.  (See |terminal-info|.)  {not in Vi}
+		of terminal you are using.  (See |terminal-info|.)
 
 							*--not-a-term*
 --not-a-term	Tells Vim that the user knows that the input and/or output is
 		not connected to a terminal.  This will avoid the warning and
 		the two second delay that would happen.
 		Also avoids the "Reading from stdin..." message.
-		{not in Vi}
+		Also avoids the "N files to edit" message.
 
 							*--ttyfail*
 --ttyfail	When the stdin or stdout is not a terminal (tty) then exit
@@ -437,8 +427,7 @@
 
 							*-d*
 -d		Start in diff mode, like |vimdiff|.
-		{not in Vi} {not available when compiled without the |+diff|
-		feature}
+		{not available when compiled without the |+diff| feature}
 
 -d {device}	Only on the Amiga and when not compiled with the |+diff|
 		feature.  Works like "-dev".
@@ -448,7 +437,7 @@
 		Normally you would use this to set the window position and
 		size: "-d con:x/y/width/height", e.g.,
 		"-d con:30/10/600/150".  But you can also use it to start
-		editing on another device, e.g., AUX:.  {not in Vi}
+		editing on another device, e.g., AUX:.
 							*-f*
 -f		GUI: Do not disconnect from the program that started Vim.
 		'f' stands for "foreground".  If omitted, the GUI forks a new
@@ -467,7 +456,6 @@
 		MS-Windows: This option is not supported.  However, when
 		running Vim with an installed vim.bat or gvim.bat file it
 		works.
-		{not in Vi}
 
 
 							*--nofork*
@@ -499,7 +487,6 @@
 		has the side effect that the 'compatible' option will be on by
 		default.  This can have unexpected effects.  See
 		|'compatible'|.
-		{not in Vi}
 
 							*-U* *E230*
 -U {gvimrc}	The file {gvimrc} is read for initializations when the GUI
@@ -507,14 +494,12 @@
 		is equal to "NONE", no file is read for GUI initializations at
 		all.  |gui-init|
 		Exception: Reading the system-wide menu file is always done.
-		{not in Vi}
 
 							*-i*
 -i {viminfo}	The file "viminfo" is used instead of the default viminfo
 		file.  If the name "NONE" is used (all uppercase), no viminfo
 		file is read or written, even if 'viminfo' is set or when
 		":rv" or ":wv" are used.  See also |viminfo-file|.
-		{not in Vi}
 
 							*--clean*
 --clean		Similar to "-u DEFAULTS -U NONE -i NONE":
@@ -551,7 +536,6 @@
 		When the connection is desired later anyway (e.g., for
 		client-server messages), call the |serverlist()| function.
 		This does not enable the XSMP handler though.
-		{not in Vi}
 
 							*-s*
 -s {scriptin}	The script file "scriptin" is read.  The characters in the
@@ -560,7 +544,6 @@
 		of the file is reached before the editor exits, further
 		characters are read from the keyboard.  Only works when not
 		started in Ex mode, see |-s-ex|.  See also |complex-repeat|.
-		{not in Vi}
 
 							*-w_nr*
 -w {number}
@@ -573,62 +556,59 @@
 		":source!".  When the "scriptout" file already exists, new
 		characters are appended.  See also |complex-repeat|.
 		{scriptout} cannot start with a digit.
-		{not in Vi}
 
 							*-W*
 -W {scriptout}	Like -w, but do not append, overwrite an existing file.
-		{not in Vi}
 
 --remote [+{cmd}] {file} ...
 		Open the {file} in another Vim that functions as a server.
 		Any non-file arguments must come before this.
-		See |--remote|. {not in Vi}
+		See |--remote|.
 
 --remote-silent [+{cmd}] {file} ...
 		Like --remote, but don't complain if there is no server.
-		See |--remote-silent|. {not in Vi}
+		See |--remote-silent|.
 
 --remote-wait [+{cmd}] {file} ...
 		Like --remote, but wait for the server to finish editing the
 		file(s).
-		See |--remote-wait|. {not in Vi}
+		See |--remote-wait|.
 
 --remote-wait-silent [+{cmd}] {file} ...
 		Like --remote-wait, but don't complain if there is no server.
-		See |--remote-wait-silent|. {not in Vi}
+		See |--remote-wait-silent|.
 
 --servername {name}
 		Specify the name of the Vim server to send to or to become.
-		See |--servername|. {not in Vi}
+		See |--servername|.
 
 --remote-send {keys}
 		Send {keys} to a Vim server and exit.
-		See |--remote-send|. {not in Vi}
+		See |--remote-send|.
 
 --remote-expr {expr}
 		Evaluate {expr} in another Vim that functions as a server.
 		The result is printed on stdout.
-		See |--remote-expr|. {not in Vi}
+		See |--remote-expr|.
 
 --serverlist	Output a list of Vim server names and exit.  See
-		|--serverlist|. {not in Vi}
+		|--serverlist|.
 
 --socketid {id}						*--socketid*
 		GTK+ GUI Vim only.  Make gvim try to use GtkPlug mechanism, so
 		that it runs inside another window.  See |gui-gtk-socketid|
-		for details. {not in Vi}
+		for details.
 
 --windowid {id}						*--windowid*
 		Win32 GUI Vim only.  Make gvim try to use the window {id} as a
 		parent, so that it runs inside that window.  See
-		|gui-w32-windowid| for details. {not in Vi}
+		|gui-w32-windowid| for details.
 
 --echo-wid						*--echo-wid*
 		GTK+ GUI Vim only.  Make gvim echo the Window ID on stdout,
 		which can be used to run gvim in a kpart widget.  The format
 		of the output is: >
 			WID: 12345\n
-<		{not in Vi}
 
 --role {role}						*--role*
 		GTK+ 2 GUI only.  Set the role of the main window to {role}.
@@ -636,7 +616,6 @@
 		identify a window, in order to restore window placement and
 		such.  The --role argument is passed automatically when
 		restoring the session on login.  See |gui-gnome-session|
-		{not in Vi}
 
 -P {parent-title}				*-P* *MDI* *E671* *E672*
 		Win32 only: Specify the title of the parent application.  When
@@ -1267,16 +1246,16 @@
 							*:mk* *:mkexrc*
 :mk[exrc] [file]	Write current key mappings and changed options to
 			[file] (default ".exrc" in the current directory),
-			unless it already exists.  {not in Vi}
+			unless it already exists.
 
 :mk[exrc]! [file]	Always write current key mappings and changed
 			options to [file] (default ".exrc" in the current
-			directory).  {not in Vi}
+			directory).
 
 							*:mkv* *:mkvimrc*
 :mkv[imrc][!] [file]	Like ":mkexrc", but the default is ".vimrc" in the
 			current directory.  The ":version" command is also
-			written to the file.  {not in Vi}
+			written to the file.
 
 These commands will write ":map" and ":set" commands to a file, in such a way
 that when these commands are executed, the current key mappings and options
@@ -1342,8 +1321,7 @@
 |-S| argument: >
 	vim -S Session.vim
 <
-All this is {not in Vi} and {not available when compiled without the
-|+mksession| feature}.
+All this is {not available when compiled without the |+mksession| feature}.
 
 							*:mks* *:mksession*
 :mks[ession][!] [file]	Write a Vim script that restores the current editing
@@ -1658,7 +1636,7 @@
 :rv[iminfo][!] [file]	Read from viminfo file [file] (default: see above).
 			If [!] is given, then any information that is
 			already set (registers, marks, |v:oldfiles|, etc.)
-			will be overwritten   {not in Vi}
+			will be overwritten
 
 			*:wv* *:wviminfo* *E137* *E138* *E574* *E886* *E929*
 :wv[iminfo][!] [file]	Write to viminfo file [file] (default: see above).
@@ -1671,7 +1649,6 @@
 			check that no old temp files were left behind (e.g.
 			~/.viminf*) and that you can write in the directory of
 			the .viminfo file.
-			{not in Vi}
 
 						*:ol* *:oldfiles*
 :ol[dfiles]		List the files that have marks stored in the viminfo
@@ -1681,8 +1658,7 @@
 			The output can be filtered with |:filter|, e.g.: >
 				filter /\.vim/ oldfiles
 <			The filtering happens on the file name.
-			{not in Vi, only when compiled with the |+eval|
-			feature}
+			{only when compiled with the |+eval| feature}
 
 :bro[wse] ol[dfiles][!]
 			List file names as with |:oldfiles|, and then prompt
diff --git a/runtime/doc/tabpage.txt b/runtime/doc/tabpage.txt
index 57224f6..1a2b8de 100644
--- a/runtime/doc/tabpage.txt
+++ b/runtime/doc/tabpage.txt
@@ -1,4 +1,4 @@
-*tabpage.txt*   For Vim version 8.1.  Last change: 2018 Mar 29
+*tabpage.txt*   For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -16,7 +16,6 @@
 4. Setting 'tabline'		|setting-tabline|
 5. Setting 'guitablabel'	|setting-guitablabel|
 
-{Vi does not have any of these commands}
 {not able to use multiple tab pages when the |+windows| feature was disabled
 at compile time}
 
@@ -289,7 +288,6 @@
 		current tab page.
 		{cmd} can contain '|' to concatenate several commands.
 		{cmd} must not open or close tab pages or reorder them.
-		{not in Vi}
 		Also see |:windo|, |:argdo|, |:bufdo|, |:cdo|, |:ldo|, |:cfdo|
 		and |:lfdo|
 
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 0c9aa14..b3332df 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -1075,6 +1075,7 @@
 'tag'	options.txt	/*'tag'*
 'tagbsearch'	options.txt	/*'tagbsearch'*
 'tagcase'	options.txt	/*'tagcase'*
+'tagfunc'	options.txt	/*'tagfunc'*
 'taglength'	options.txt	/*'taglength'*
 'tagrelative'	options.txt	/*'tagrelative'*
 'tags'	options.txt	/*'tags'*
@@ -1101,6 +1102,7 @@
 'textmode'	options.txt	/*'textmode'*
 'textwidth'	options.txt	/*'textwidth'*
 'tf'	options.txt	/*'tf'*
+'tfu'	options.txt	/*'tfu'*
 'tgc'	options.txt	/*'tgc'*
 'tgst'	options.txt	/*'tgst'*
 'thesaurus'	options.txt	/*'thesaurus'*
@@ -2133,17 +2135,25 @@
 :cabbrev	map.txt	/*:cabbrev*
 :cabc	map.txt	/*:cabc*
 :cabclear	map.txt	/*:cabclear*
+:cabo	quickfix.txt	/*:cabo*
+:cabove	quickfix.txt	/*:cabove*
 :cad	quickfix.txt	/*:cad*
 :caddbuffer	quickfix.txt	/*:caddbuffer*
 :cadde	quickfix.txt	/*:cadde*
 :caddexpr	quickfix.txt	/*:caddexpr*
 :caddf	quickfix.txt	/*:caddf*
 :caddfile	quickfix.txt	/*:caddfile*
+:caf	quickfix.txt	/*:caf*
+:cafter	quickfix.txt	/*:cafter*
 :cal	eval.txt	/*:cal*
 :call	eval.txt	/*:call*
 :cat	eval.txt	/*:cat*
 :catch	eval.txt	/*:catch*
 :cb	quickfix.txt	/*:cb*
+:cbe	quickfix.txt	/*:cbe*
+:cbe	quickfix.txt	/*:cbe*
+:cbefore	quickfix.txt	/*:cbefore*
+:cbelow	quickfix.txt	/*:cbelow*
 :cbo	quickfix.txt	/*:cbo*
 :cbottom	quickfix.txt	/*:cbottom*
 :cbuffer	quickfix.txt	/*:cbuffer*
@@ -2491,12 +2501,16 @@
 :lNf	quickfix.txt	/*:lNf*
 :lNfile	quickfix.txt	/*:lNfile*
 :la	editing.txt	/*:la*
+:lab	quickfix.txt	/*:lab*
+:labove	quickfix.txt	/*:labove*
 :lad	quickfix.txt	/*:lad*
 :laddb	quickfix.txt	/*:laddb*
 :laddbuffer	quickfix.txt	/*:laddbuffer*
 :laddexpr	quickfix.txt	/*:laddexpr*
 :laddf	quickfix.txt	/*:laddf*
 :laddfile	quickfix.txt	/*:laddfile*
+:laf	quickfix.txt	/*:laf*
+:lafter	quickfix.txt	/*:lafter*
 :lan	mlang.txt	/*:lan*
 :lang	mlang.txt	/*:lang*
 :language	mlang.txt	/*:language*
@@ -2504,6 +2518,10 @@
 :lat	undo.txt	/*:lat*
 :later	undo.txt	/*:later*
 :lb	quickfix.txt	/*:lb*
+:lbef	quickfix.txt	/*:lbef*
+:lbefore	quickfix.txt	/*:lbefore*
+:lbel	quickfix.txt	/*:lbel*
+:lbelow	quickfix.txt	/*:lbelow*
 :lbo	quickfix.txt	/*:lbo*
 :lbottom	quickfix.txt	/*:lbottom*
 :lbuffer	quickfix.txt	/*:lbuffer*
@@ -3185,6 +3203,9 @@
 :tag	tagsrch.txt	/*:tag*
 :tags	tagsrch.txt	/*:tags*
 :tc	if_tcl.txt	/*:tc*
+:tcd	editing.txt	/*:tcd*
+:tch	editing.txt	/*:tch*
+:tchdir	editing.txt	/*:tchdir*
 :tcl	if_tcl.txt	/*:tcl*
 :tcld	if_tcl.txt	/*:tcld*
 :tcldo	if_tcl.txt	/*:tcldo*
@@ -3918,7 +3939,7 @@
 E233	gui.txt	/*E233*
 E234	options.txt	/*E234*
 E235	options.txt	/*E235*
-E236	options.txt	/*E236*
+E236	gui.txt	/*E236*
 E237	print.txt	/*E237*
 E238	print.txt	/*E238*
 E239	sign.txt	/*E239*
@@ -3926,8 +3947,8 @@
 E240	remote.txt	/*E240*
 E241	eval.txt	/*E241*
 E243	if_ole.txt	/*E243*
-E244	options.txt	/*E244*
-E245	options.txt	/*E245*
+E244	gui.txt	/*E244*
+E245	gui.txt	/*E245*
 E246	autocmd.txt	/*E246*
 E247	remote.txt	/*E247*
 E248	remote.txt	/*E248*
@@ -4699,6 +4720,9 @@
 E983	message.txt	/*E983*
 E984	repeat.txt	/*E984*
 E985	eval.txt	/*E985*
+E986	tagsrch.txt	/*E986*
+E987	tagsrch.txt	/*E987*
+E988	gui_w32.txt	/*E988*
 E99	diff.txt	/*E99*
 E999	repeat.txt	/*E999*
 EX	intro.txt	/*EX*
@@ -6824,6 +6848,8 @@
 gui-clipboard	gui_w32.txt	/*gui-clipboard*
 gui-colors	syntax.txt	/*gui-colors*
 gui-extras	gui.txt	/*gui-extras*
+gui-font	gui.txt	/*gui-font*
+gui-fontwide	gui.txt	/*gui-fontwide*
 gui-footer	debugger.txt	/*gui-footer*
 gui-fork	gui_x11.txt	/*gui-fork*
 gui-functions	usr_41.txt	/*gui-functions*
@@ -6875,8 +6901,8 @@
 gui.txt	gui.txt	/*gui.txt*
 gui_w32.txt	gui_w32.txt	/*gui_w32.txt*
 gui_x11.txt	gui_x11.txt	/*gui_x11.txt*
-guifontwide_gtk	options.txt	/*guifontwide_gtk*
-guifontwide_win_mbyte	options.txt	/*guifontwide_win_mbyte*
+guifontwide_gtk	gui.txt	/*guifontwide_gtk*
+guifontwide_win_mbyte	gui.txt	/*guifontwide_win_mbyte*
 guu	change.txt	/*guu*
 gv	visual.txt	/*gv*
 gview	starting.txt	/*gview*
@@ -9049,6 +9075,7 @@
 tag-blocks	motion.txt	/*tag-blocks*
 tag-commands	tagsrch.txt	/*tag-commands*
 tag-details	tagsrch.txt	/*tag-details*
+tag-function	tagsrch.txt	/*tag-function*
 tag-functions	usr_41.txt	/*tag-functions*
 tag-highlight	syntax.txt	/*tag-highlight*
 tag-matchlist	tagsrch.txt	/*tag-matchlist*
@@ -9226,6 +9253,7 @@
 test_override()	eval.txt	/*test_override()*
 test_refcount()	eval.txt	/*test_refcount()*
 test_scrollbar()	eval.txt	/*test_scrollbar()*
+test_setmouse()	eval.txt	/*test_setmouse()*
 test_settime()	eval.txt	/*test_settime()*
 testing	eval.txt	/*testing*
 testing-variable	eval.txt	/*testing-variable*
@@ -9624,6 +9652,7 @@
 version8.txt	version8.txt	/*version8.txt*
 vi	intro.txt	/*vi*
 vi-differences	vi_diff.txt	/*vi-differences*
+vi-features	vi_diff.txt	/*vi-features*
 vi:	options.txt	/*vi:*
 vi_diff.txt	vi_diff.txt	/*vi_diff.txt*
 vib	motion.txt	/*vib*
diff --git a/runtime/doc/tagsrch.txt b/runtime/doc/tagsrch.txt
index bc38452..2f493e2 100644
--- a/runtime/doc/tagsrch.txt
+++ b/runtime/doc/tagsrch.txt
@@ -1,4 +1,4 @@
-*tagsrch.txt*   For Vim version 8.1.  Last change: 2019 Apr 28
+*tagsrch.txt*   For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -60,7 +60,7 @@
 
 							*v_CTRL-]*
 {Visual}CTRL-]		Same as ":tag {name}", where {name} is the text that
-			is highlighted.  {not in Vi}
+			is highlighted.
 
 							*telnet-CTRL-]*
 CTRL-] is the default telnet escape key.  When you type CTRL-] to jump to a
@@ -112,18 +112,18 @@
 g<RightMouse>						*g<RightMouse>*
 <C-RightMouse>					*<C-RightMouse>* *CTRL-T*
 CTRL-T			Jump to [count] older entry in the tag stack
-			(default 1).  {not in Vi}
+			(default 1).
 
 						*:po* *:pop* *E555* *E556*
 :[count]po[p][!]	Jump to [count] older entry in tag stack (default 1).
-			See |tag-!| for [!].  {not in Vi}
+			See |tag-!| for [!].
 
 :[count]ta[g][!]	Jump to [count] newer entry in tag stack (default 1).
-			See |tag-!| for [!].  {not in Vi}
+			See |tag-!| for [!].
 
 							*:tags*
 :tags			Show the contents of the tag stack.  The active
-			entry is marked with a '>'.  {not in Vi}
+			entry is marked with a '>'.
 
 The output of ":tags" looks like this:
 
@@ -204,7 +204,7 @@
 			the current position in the list (if there is one).
 			[name] can be a regexp pattern, see |tag-regexp|.
 			See |tag-priority| for the priorities used in the
-			listing.  {not in Vi}
+			listing.
 			Example output:
 
 >
@@ -231,54 +231,50 @@
 
 							*:sts* *:stselect*
 :sts[elect][!] [name]	Does ":tselect[!] [name]" and splits the window for
-			the selected tag.  {not in Vi}
+			the selected tag.
 
 							*g]*
 g]			Like CTRL-], but use ":tselect" instead of ":tag".
-			{not in Vi}
 
 							*v_g]*
 {Visual}g]		Same as "g]", but use the highlighted text as the
-			identifier.  {not in Vi}
+			identifier.
 
 							*:tj* *:tjump*
 :tj[ump][!] [name]	Like ":tselect", but jump to the tag directly when
-			there is only one match.  {not in Vi}
+			there is only one match.
 
 							*:stj* *:stjump*
 :stj[ump][!] [name]	Does ":tjump[!] [name]" and splits the window for the
-			selected tag.  {not in Vi}
+			selected tag.
 
 							*g_CTRL-]*
 g CTRL-]		Like CTRL-], but use ":tjump" instead of ":tag".
-			{not in Vi}
 
 							*v_g_CTRL-]*
 {Visual}g CTRL-]	Same as "g CTRL-]", but use the highlighted text as
-			the identifier.  {not in Vi}
+			the identifier.
 
 							*:tn* *:tnext*
 :[count]tn[ext][!]	Jump to [count] next matching tag (default 1).  See
-			|tag-!| for [!].  {not in Vi}
+			|tag-!| for [!].
 
 							*:tp* *:tprevious*
 :[count]tp[revious][!]	Jump to [count] previous matching tag (default 1).
-			See |tag-!| for [!].  {not in Vi}
+			See |tag-!| for [!].
 
 							*:tN* *:tNext*
-:[count]tN[ext][!]	Same as ":tprevious".  {not in Vi}
+:[count]tN[ext][!]	Same as ":tprevious".
 
 							*:tr* *:trewind*
 :[count]tr[ewind][!]	Jump to first matching tag.  If [count] is given, jump
-			to [count]th matching tag.  See |tag-!| for [!].  {not
-			in Vi}
+			to [count]th matching tag.  See |tag-!| for [!].
 
 							*:tf* *:tfirst*
-:[count]tf[irst][!]	Same as ":trewind".  {not in Vi}
+:[count]tf[irst][!]	Same as ":trewind".
 
 							*:tl* *:tlast*
-:tl[ast][!]		Jump to last matching tag.  See |tag-!| for [!].  {not
-			in Vi}
+:tl[ast][!]		Jump to last matching tag.  See |tag-!| for [!].
 
 							*:lt* *:ltag*
 :lt[ag][!] [name]	Jump to tag [name] and add the matching tags to a new
@@ -290,7 +286,6 @@
 			characters (very nomagic). The location list showing
 			the matching tags is independent of the tag stack.
 			See |tag-!| for [!].
-			{not in Vi}
 
 When there is no other message, Vim shows which matching tag has been jumped
 to, and the number of matching tags: >
@@ -317,34 +312,28 @@
 							*:pts* *:ptselect*
 :pts[elect][!] [name]	Does ":tselect[!] [name]" and shows the new tag in a
 			"Preview" window.  See |:ptag| for more info.
-			{not in Vi}
 
 							*:ptj* *:ptjump*
 :ptj[ump][!] [name]	Does ":tjump[!] [name]" and shows the new tag in a
 			"Preview" window.  See |:ptag| for more info.
-			{not in Vi}
 
 							*:ptn* *:ptnext*
 :[count]ptn[ext][!]	":tnext" in the preview window.  See |:ptag|.
-			{not in Vi}
 
 							*:ptp* *:ptprevious*
 :[count]ptp[revious][!]	":tprevious" in the preview window.  See |:ptag|.
-			{not in Vi}
 
 							*:ptN* *:ptNext*
-:[count]ptN[ext][!]	Same as ":ptprevious".  {not in Vi}
+:[count]ptN[ext][!]	Same as ":ptprevious".
 
 							*:ptr* *:ptrewind*
 :[count]ptr[ewind][!]	":trewind" in the preview window.  See |:ptag|.
-			{not in Vi}
 
 							*:ptf* *:ptfirst*
-:[count]ptf[irst][!]	Same as ":ptrewind".  {not in Vi}
+:[count]ptf[irst][!]	Same as ":ptrewind".
 
 							*:ptl* *:ptlast*
 :ptl[ast][!]		":tlast" in the preview window.  See |:ptag|.
-			{not in Vi}
 
 ==============================================================================
 4. Tags details						*tag-details*
@@ -630,10 +619,7 @@
 "?"), some special handling is done:
 - Searching starts on line 1 of the file.
   The direction of the search is forward for "/", backward for "?".
-  Note that 'wrapscan' does not matter, the whole file is always searched.  (Vi
-  does use 'wrapscan', which caused tags sometimes not be found.)  {Vi starts
-  searching in line 2 of another file.  It does not find a tag in line 1 of
-  another file when 'wrapscan' is not set}
+  Note that 'wrapscan' does not matter, the whole file is always searched.
 - If the search fails, another try is done ignoring case.  If that fails too,
   a search is done for:
 	"^tagname[ \t]*("
@@ -644,7 +630,7 @@
 	"^[#a-zA-Z_].*\<tagname[ \t]*("
   This means: A line starting with '#' or an identifier and containing the tag
   followed by white space and a '('.  This will find macro names and function
-  names with a type prepended.  {the extra searches are not in Vi}
+  names with a type prepended.
 
 
 							*tag-old-static*
@@ -720,33 +706,31 @@
 			of the file.  Lines that look like a comment are
 			ignored (see 'comments' option).  If a count is given,
 			the count'th matching line is displayed, and comment
-			lines are not ignored.  {not in Vi}
+			lines are not ignored.
 
 							*]i*
 ]i			like "[i", but start at the current cursor position.
-			{not in Vi}
 
 							*:is* *:isearch*
 :[range]is[earch][!] [count] [/]pattern[/]
 			Like "[i"  and "]i", but search in [range] lines
 			(default: whole file).
-			See |:search-args| for [/] and [!].  {not in Vi}
+			See |:search-args| for [/] and [!].
 
 							*[I*
 [I			Display all lines that contain the keyword under the
 			cursor.  Filenames and line numbers are displayed
 			for the found lines.  The search starts at the
-			beginning of the file.  {not in Vi}
+			beginning of the file.
 
 							*]I*
 ]I			like "[I", but start at the current cursor position.
-			{not in Vi}
 
 							*:il* *:ilist*
 :[range]il[ist][!] [/]pattern[/]
 			Like "[I" and "]I", but search in [range] lines
 			(default: whole file).
-			See |:search-args| for [/] and [!].  {not in Vi}
+			See |:search-args| for [/] and [!].
 
 							*[_CTRL-I*
 [ CTRL-I		Jump to the first line that contains the keyword
@@ -754,17 +738,17 @@
 			of the file.  Lines that look like a comment are
 			ignored (see 'comments' option).  If a count is given,
 			the count'th matching line is jumped to, and comment
-			lines are not ignored.  {not in Vi}
+			lines are not ignored.
 
 							*]_CTRL-I*
 ] CTRL-I		like "[ CTRL-I", but start at the current cursor
-			position.  {not in Vi}
+			position.
 
 							*:ij* *:ijump*
 :[range]ij[ump][!] [count] [/]pattern[/]
 			Like "[ CTRL-I"  and "] CTRL-I", but search in
 			[range] lines (default: whole file).
-			See |:search-args| for [/] and [!].  {not in Vi}
+			See |:search-args| for [/] and [!].
 
 CTRL-W CTRL-I					*CTRL-W_CTRL-I* *CTRL-W_i*
 CTRL-W i		Open a new window, with the cursor on the first line
@@ -773,45 +757,43 @@
 			that look like a comment line are ignored (see
 			'comments' option).  If a count is given, the count'th
 			matching line is jumped to, and comment lines are not
-			ignored.  {not in Vi}
+			ignored.
 
 							*:isp* *:isplit*
 :[range]isp[lit][!] [count] [/]pattern[/]
 			Like "CTRL-W i"  and "CTRL-W i", but search in
 			[range] lines (default: whole file).
-			See |:search-args| for [/] and [!].  {not in Vi}
+			See |:search-args| for [/] and [!].
 
 							*[d*
 [d			Display the first macro definition that contains the
 			macro under the cursor.  The search starts from the
 			beginning of the file.  If a count is given, the
-			count'th matching line is displayed.  {not in Vi}
+			count'th matching line is displayed.
 
 							*]d*
 ]d			like "[d", but start at the current cursor position.
-			{not in Vi}
 
 							*:ds* *:dsearch*
 :[range]ds[earch][!] [count] [/]string[/]
 			Like "[d"  and "]d", but search in [range] lines
 			(default: whole file).
-			See |:search-args| for [/] and [!].  {not in Vi}
+			See |:search-args| for [/] and [!].
 
 							*[D*
 [D			Display all macro definitions that contain the macro
 			under the cursor.  Filenames and line numbers are
 			displayed for the found lines.  The search starts
-			from the beginning of the file.  {not in Vi}
+			from the beginning of the file.
 
 							*]D*
 ]D			like "[D", but start at the current cursor position.
-			{not in Vi}
 
 							*:dli* *:dlist*
 :[range]dli[st][!] [/]string[/]
 			Like `[D`  and `]D`, but search in [range] lines
 			(default: whole file).
-			See |:search-args| for [/] and [!].  {not in Vi}
+			See |:search-args| for [/] and [!].
 			Note that `:dl` works like `:delete` with the "l"
 			flag, not `:dlist`.
 
@@ -819,36 +801,35 @@
 [ CTRL-D		Jump to the first macro definition that contains the
 			keyword under the cursor.  The search starts from
 			the beginning of the file.  If a count is given, the
-			count'th matching line is jumped to.  {not in Vi}
+			count'th matching line is jumped to.
 
 							*]_CTRL-D*
 ] CTRL-D		like "[ CTRL-D", but start at the current cursor
-			position.  {not in Vi}
+			position.
 
 							*:dj* *:djump*
 :[range]dj[ump][!] [count] [/]string[/]
 			Like "[ CTRL-D"  and "] CTRL-D", but search  in
 			[range] lines (default: whole file).
-			See |:search-args| for [/] and [!].  {not in Vi}
+			See |:search-args| for [/] and [!].
 
 CTRL-W CTRL-D					*CTRL-W_CTRL-D* *CTRL-W_d*
 CTRL-W d		Open a new window, with the cursor on the first
 			macro definition line that contains the keyword
 			under the cursor.  The search starts from the
 			beginning of the file.  If a count is given, the
-			count'th matching line is jumped to.  {not in Vi}
+			count'th matching line is jumped to.
 
 							*:dsp* *:dsplit*
 :[range]dsp[lit][!] [count] [/]string[/]
 			Like "CTRL-W d", but search in [range] lines
 			(default: whole file).
-			See |:search-args| for [/] and [!].  {not in Vi}
+			See |:search-args| for [/] and [!].
 
 							*:che* *:checkpath*
 :che[ckpath]		List all the included files that could not be found.
-			{not in Vi}
 
-:che[ckpath]!		List all the included files.  {not in Vi}
+:che[ckpath]!		List all the included files.
 
 								*:search-args*
 Common arguments for the commands above:
diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt
index 006422d..d01959b 100644
--- a/runtime/doc/terminal.txt
+++ b/runtime/doc/terminal.txt
@@ -1,4 +1,4 @@
-*terminal.txt*	For Vim version 8.1.  Last change: 2019 Feb 25
+*terminal.txt*	For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -42,7 +42,6 @@
       Communication			|termdebug-communication|
       Customizing			|termdebug-customizing|
 
-{Vi does not have any of these commands}
 {only available when compiled with the |+terminal| feature}
 The terminal feature requires the |+job| and |+channel| features.
 
diff --git a/runtime/doc/textprop.txt b/runtime/doc/textprop.txt
index 263c40e..b683187 100644
--- a/runtime/doc/textprop.txt
+++ b/runtime/doc/textprop.txt
@@ -20,7 +20,6 @@
 3. When text changes		|text-prop-changes|
 
 
-{Vi does not have text properties}
 {not able to use text properties when the |+textprop| feature was
 disabled at compile time}
 
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 7a6f736..9019d40 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.1.  Last change: 2019 Apr 20
+*todo.txt*      For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -145,6 +145,9 @@
 
 Problem with :tlmenu: Detach item added with all modes?  Issue #3563.
 
+The quoting of the [command] argument of :terminal is not clearly documented.
+Give a few examples. (#4288)
+
 Bug: script written with "-W scriptout" contains Key codes, while the script
 read with "-s scriptin" expects escape codes.  Probably "scriptout" needs to
 be adjusted. (Daniel Steinberg, 2019 Feb 24, #4041)
@@ -165,9 +168,27 @@
 Check: __attribute__((format(printf, on semsg() and siemsg().  Where was this
 added?
 
+Add test for urxvt mouse codes.  Also test that mouse coordinates can be
+negative. (see #4326)
+
+'cmdheight' has a tab-local value, but it cannot be obtained with
+`:echo gettabwinvar(2, 1, '&cmdheight')` returns the value for the _current_
+tab page. (Ingo Karkat, #4324)
+:call settabwinvar(1, 1, '&cmdheight', 2) also doesn't work well.
+
+Add a chdir() function, which will set the window-local, tab-local or global
+directory, first one that is currently used.  Returns the current directory,
+so that this works:
+    let save_dir = chdir('somewhere')
+    ...
+    call chdir(save_dir)
+
 This modeline throws unexpected errors: (#4165)
     vim: syn=nosyntax
 
+":doau SomeEvent" gives "No matching autocommands".  This message doesn't give
+a hint about how to fix it. (#4300)
+
 Make balloon_show() work outside of 'balloonexpr'?  Users expect it to work:
 #2948. (related to #1512?)
 On Win32 it stops showing, because showState is already ShS_SHOWING.
@@ -184,6 +205,9 @@
 
 Still a E315 error when using terminal. (Masato Nishihata, #3959)
 
+Use dict_iterate_start() / dict_iterate_next() instead of relying on the
+internals of the dict structure.
+
 Running test_gui and test_gui_init with Motif sometimes kills the window
 manager.  Problem with Motif? Now test_gui crashes in submenu_change().
 Athena is OK.
@@ -191,23 +215,6 @@
 
 nvo-mode mapping works on Windows, not on Linux. (#3678)
 
-Patch to make Command-V use CTRL-R_CTRL-O* on Mac, like on Windows.
-(Ken Takata, #4266)
-
-No test for NULL after allocating memory: #4174 (martinkunevtoptal does this?)
-    src/crypt.c  line 256;
-    src/crypt_zip.c line  93;
-    src/gui_gtk_f.c  line 132;
-    src/gui_gtk_x11 line  1578;
-    src/libvterm/src/state.c line 332;
-    src/libvterm/src/state.c line 255;
-    src/libvterm/src/state.c line 1618;
-    src/libvterm/src/state.c line 1643
-    src/libvterm/src/termscreen.c line 83;
-    src/ops.c  line 6185;
-    src/option.c  line 12980;
-    src/popupmnu.c line 1090;
-
 Missing tests for:
 - add_termcap_entry()
 
@@ -240,6 +247,9 @@
 
 ml_get error: (Israel Chauca Fuentes, 2018 Oct 17, #3550).
 
+Using single wide base character with double wide composing character gives
+drawing errors.  Fill up the base character?  (Dominique, #4328)
+
 Problem with two buffers with the same name a/b, if it didn't exist before and
 is created outside of Vim. (dskloetg, 2018 Jul 16, #3219)
 
@@ -258,63 +268,41 @@
 kept, which means part of the text isn't displayed.  Better show all the text
 when possible. (Dylan Lloyd, #3973)
 
-Patch to not recognize "version" as "v:version", "count" as "v:count".
-Ken Takata, #4274.
-
-Patch to implement 'diffref' option. (#3535)
-  Easier to use a 'diffmaster' option, is the extra complexity needed?
-
-Patch to fix that bracketed paste remains after Vim exits. (2018 Oct 30, #3579)
-
 Make ":interactive !cmd" stop termcap mode, also when used in an autocommand.
 (#3692)
 
-cursorline highlighting not removed after yanking in Visual mode.
-(Matéo Zanibelli, 2018 Oct 30, #3578)
-Patch by Christian, Oct 30.
-
-Patch to clean up CI configs. (Ozaki Kiichi, 2019 Feb 1, #3890)
-
-Patch to filter marks. (Marcin Szamotulski, 2019 Feb 7, #3895)
-
 Patch to add environ(), gets a dict with all environment vars, and getenv(),
 useful for environment vars that are not made of keyword chars.
 (Yasuhiro Matsumoto, #2875)
 
 Add buffer argument to undotree(). (#4001)
 
-Patch to add optional arguments with default values.
-(Andy Massimino, #3952)  under development
+Patch to restore X11 connection. (#844)
 
-Patch to add tab-local directories. (Yegappan, #4212)
-Good now?
+Patch to add optional arguments with default values.
+(Andy Massimino, #3952)  Needs to be reviewed.
 
 Patch to add more info to OptionSet.  Should mention what triggered the change
 ":set", ":setlocal", ":setglobal", "modeline"; and the old global value.
-#4118.  Proposed implementation: 2019 Mar 27.  Tests fail, help update
-missing. Updated 2019 Apr 9
+#4118.  Proposed implementation: 2019 Mar 27.
+Updated 2019 Apr 9: ASAN fails.
 
 Problem with Visual yank when 'linebreak' and 'showbreak' are set.
 Patch with tests, but it's not clear how it is supposed to work. (tommm, 2018
 Nov 17)  Asked about this, Dec 22. Christian will have a look.
 
-Patch to add ruby cflags. (#4050, fixes #1081)
-Needs modification.
-
 Patch for larger icons in installer. (#978)  Still not good.
 
-Patch to add tagfunc().  Cleaned up by Christian Brabandt, 2013 Jun 22.
-New update 2017 Apr 10, #1628
-https://github.com/chrisbra/vim-mq-patches/blob/master/tagfunc
-Updated by Andy Massimino, 2018 Feb 7:
-https://github.com/andymass/vim/commit/4e3aa0a5dab96d2799567622f3f537e357aa479e 
-Or should we make it asynchronous?
-Patch by Andy Massimino: #4010 - needs a bit more work: produce errors when
-something is wrong.
+Patch to add commands to jump to quickfix entry above/below the cursor.
+(Yegappan Lakshmanan, #4316)  Also do :cbefore and :cafter.
 
 Patch to fix that using "5gj" starting inside a closed fold does not work on
 screen lines but on text lines. (Julius Hulsmann, #4095)  Lacks a test.
 
+Patch to implement 'diffref' option. (#3535)
+  Easier to use a 'diffmaster' option, is the extra complexity needed?
+  Not ready to include.
+
 Memory leaks in test_channel? (or is it because of fork())
 Using uninitialized value in test_crypt.
 Memory leak in test_terminal:
@@ -331,9 +319,6 @@
 
 gethostbyname() is old, use getaddrinfo() if available. (#3227)
 
-Patch to add match count and current index "3/44" when using "n" command.
-(Christian Brabandt, on issue #453).  Only when search string was typed?
-
 matchaddpos() gets slow with many matches.  Proposal by Rick Howe, 2018 Jul
 19.
 
@@ -455,6 +440,11 @@
 Patch to be able to disable default digraphs (incomplete) (Eric Pruitt, 2018
 Nov 22).
 
+Patch to list user digraphs. (Christian Brabandt, 2012 Apr 14)
+
+Patch to add digraph() function. (Christian Brabandt, 2013 Aug 22, update Aug
+24)
+
 Try out background make plugin: 
   https://github.com/AndrewVos/vim-make-background
 or asyncmake: 
@@ -712,10 +702,6 @@
 When recovering a file, put the swap file name in b:recovered_swapfile.  Then
 a command can delete it.
 
-When a swap file exists, is not for a running process, is from the same
-machine and recovering results in the same text, we could silently delete it.
-#1237
-
 Overlong utf-8 sequence is displayed wrong. (Harm te Hennepe, 2017 Sep 14,
 #2089)  Patch with possible solution by Björn Linse.
 
@@ -1019,6 +1005,8 @@
   time is spent in addstate_here() copying the threads.  Instead of copying,
   let each thread point to the next one (by offset, the list is reallocated).
   (Dominique Pelle, 2019 Feb 18)
+- Old engine: using 'incsearch' /\Zabc does not highlight the "c" if it has a
+  composing character.  New engine is OK. (Tony Mechelynck, 2019 May 5)
 - When search pattern has the base character both with and without combining
   character, search fails.  E.g. "รรีบ" in "การรีบรักใคร". (agguser, #2312)
 - [:space:] only matches ASCII spaces.  Add [:white:] for all space-like
@@ -1748,11 +1736,6 @@
 for a user action without a prompt. (Maarten Billemont, 2012 Feb 3)
 Do give the prompt? Quit with an error?
 
-Patch to list user digraphs. (Christian Brabandt, 2012 Apr 14)
-
-Patch to add digraph() function. (Christian Brabandt, 2013 Aug 22, update Aug
-24)
-
 Patch for input method status. (Hirohito Higashi, 2012 Apr 18)
 
 Update Vim app icon (for Gnome). (Jakub Steiner, 2013 Dec 6)
@@ -4010,7 +3993,8 @@
     secondary: zB zS zT zZ, z=)
 8   Vertical folds: looks like vertically split windows, but the cursor moves
     through the vertical separator, separator moves when scrolling.
-8   Add "z/" and "z?" for searching in not folded text only.
+8   Add "z/" and "z?" for searching in not folded text only.  Or use a regexp
+    item, so that it can be used in any pattern.
 8   When a closed fold is displayed open because of 'foldminlines', the
     behavior of commands is still like the fold is closed.  How to make the
     user aware of this?
@@ -6001,7 +5985,7 @@
 			used, remove the <CR> at the end of lines in [range].
 			A CTRL-Z at the end of the file is removed.  If
 			[range] is omitted, or it is the whole file, and all
-			lines end in <CR> 'textmode' is set.  {not in Vi}
+			lines end in <CR> 'textmode' is set.
 -   Should integrate addstar() and file_pat_to_reg_pat().
 -   When working over a serial line with 7 bit characters, remove meta
     characters from 'isprint'.
diff --git a/runtime/doc/undo.txt b/runtime/doc/undo.txt
index b6c9809..316e32f 100644
--- a/runtime/doc/undo.txt
+++ b/runtime/doc/undo.txt
@@ -1,4 +1,4 @@
-*undo.txt*      For Vim version 8.1.  Last change: 2019 Jan 04
+*undo.txt*      For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -25,7 +25,7 @@
 :u[ndo]			Undo one change.  {Vi: only one level}
 								*E830*
 :u[ndo] {N}		Jump to after change number {N}.  See |undo-branches|
-			for the meaning of {N}.  {not in Vi}
+			for the meaning of {N}.
 
 							*CTRL-R*
 CTRL-R			Redo [count] changes which were undone.  {Vi: redraw
@@ -95,7 +95,6 @@
 			Warning: Use with care, it may prevent the user from
 			properly undoing changes.  Don't use this after undo
 			or redo.
-			{not in Vi}
 
 This is most useful when you need to prompt the user halfway through a change.
 For example in a function that calls |getchar()|.  Do make sure that there was
@@ -151,7 +150,7 @@
 
 							*g-*
 g-			Go to older text state.  With a count repeat that many
-			times.  {not in Vi}
+			times.
 							*:ea* *:earlier*
 :earlier {count}	Go to older text state {count} times.
 :earlier {N}s		Go to older text state about {N} seconds before.
@@ -170,7 +169,7 @@
 
 							*g+*
 g+			Go to newer text state.  With a count repeat that many
-			times.  {not in Vi}
+			times.
 							*:lat* *:later*
 :later {count}		Go to newer text state {count} times.
 :later {N}s		Go to newer text state about {N} seconds later.
@@ -280,10 +279,8 @@
 		the existing file and then creating a new file with the same
 		name. So it is not possible to overwrite an existing undofile
 		in a write-protected directory.
-		{not in Vi}
 
 :rundo {file}	Read undo history from {file}.
-		{not in Vi}
 
 You can use these in autocommands to explicitly specify the name of the
 history file.  E.g.: >
@@ -374,10 +371,10 @@
 	:unlet old_undolevels
 
 Marks for the buffer ('a to 'z) are also saved and restored, together with the
-text.  {Vi does this a little bit different}
+text.
 
 When all changes have been undone, the buffer is not considered to be changed.
-It is then possible to exit Vim with ":q" instead of ":q!" {not in Vi}.  Note
+It is then possible to exit Vim with ":q" instead of ":q!".  Note
 that this is relative to the last write of the file.  Typing "u" after ":w"
 actually changes the buffer, compared to what was written, so the buffer is
 considered changed then.
diff --git a/runtime/doc/usr_21.txt b/runtime/doc/usr_21.txt
index 513dad0..86aadc2 100644
--- a/runtime/doc/usr_21.txt
+++ b/runtime/doc/usr_21.txt
@@ -1,4 +1,4 @@
-*usr_21.txt*	For Vim version 8.1.  Last change: 2012 Nov 02
+*usr_21.txt*	For Vim version 8.1.  Last change: 2019 Apr 25
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -263,7 +263,8 @@
 The windows that were open are restored, with the same position and size as
 before.  Mappings and option values are like before.
    What exactly is restored depends on the 'sessionoptions' option.  The
-default value is "blank,buffers,curdir,folds,help,options,winsize".
+default value is:
+"blank,buffers,curdir,folds,help,options,tabpages,winsize,terminal".
 
 	blank		keep empty windows
 	buffers		all buffers, not only the ones in a window
@@ -271,7 +272,9 @@
 	folds		folds, also manually created ones
 	help		the help window
 	options		all options and mappings
+	tabpages	all tab pages
 	winsize		window sizes
+	terminal	include terminal windows
 
 Change this to your liking.  To also restore the size of the Vim window, for
 example, use: >
diff --git a/runtime/doc/usr_22.txt b/runtime/doc/usr_22.txt
index e50237a..b3da19c 100644
--- a/runtime/doc/usr_22.txt
+++ b/runtime/doc/usr_22.txt
@@ -1,4 +1,4 @@
-*usr_22.txt*	For Vim version 8.1.  Last change: 2016 Dec 13
+*usr_22.txt*	For Vim version 8.1.  Last change: 2019 Apr 27
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index 8b4f988..7988927 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -1,4 +1,4 @@
-*various.txt*   For Vim version 8.1.  Last change: 2019 Mar 23
+*various.txt*   For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -73,8 +73,6 @@
 			    <ö> 246, Hex 00f6, Oct 366, Digr o: ~
 			This shows you can type CTRL-K o : to insert ö.
 
-			{not in Vi}
-
 							*g8*
 g8			Print the hex values of the bytes used in the
 			character under the cursor, assuming it is in |UTF-8|
@@ -82,7 +80,6 @@
 			value of 'maxcombine' doesn't matter.
 			Example of a character with two composing characters:
 				e0 b8 81 + e0 b8 b9 + e0 b9 89 ~
-			{not in Vi}
 
 							*8g8*
 8g8			Find an illegal UTF-8 byte sequence at or after the
@@ -97,7 +94,6 @@
 			Note that when the cursor is on an illegal byte or the
 			cursor is halfway a multi-byte character the command
 			won't move the cursor.
-			{not in Vi}
 
 						*:p* *:pr* *:print* *E749*
 :[range]p[rint] [flags]
@@ -174,7 +170,6 @@
 
 :{range}z#[+-^.=]{count}				*:z#*
 			Like ":z", but number the lines.
-			{not in all versions of Vi, not with these arguments}
 
 							*:=*
 := [flags]		Print the last line number.
@@ -224,7 +219,6 @@
 
 			Example: >
 				:exe "normal \<c-w>\<c-w>"
-<			{not in Vi, of course}
 
 :{range}norm[al][!] {commands}				*:normal-range*
 			Execute Normal mode commands {commands} for each line
@@ -232,7 +226,6 @@
 			cursor is positioned in the first column of the range,
 			for each line.  Otherwise it's the same as the
 			":normal" command without a range.
-			{not in Vi}
 
 							*:sh* *:shell* *E371*
 :sh[ell]		This command starts a shell.  When the shell exits
@@ -490,7 +483,7 @@
 :ve[rsion] {nr}		Is now ignored.  This was previously used to check the
 			version number of a .vimrc file.  It was removed,
 			because you can now use the ":if" command for
-			version-dependent behavior.  {not in Vi}
+			version-dependent behavior.
 
 							*:redi* *:redir*
 :redi[r][!] > {file}	Redirect messages to file {file}.  The messages which
@@ -510,31 +503,28 @@
 			with ":silent call Function()".
 			An alternative is to use the 'verbosefile' option,
 			this can be used in combination with ":redir".
-			{not in Vi}
 
 :redi[r] >> {file}	Redirect messages to file {file}.  Append if {file}
-			already exists.  {not in Vi}
+			already exists.
 
 :redi[r] @{a-zA-Z}
 :redi[r] @{a-zA-Z}>	Redirect messages to register {a-z}.  Append to the
 			contents of the register if its name is given
 			uppercase {A-Z}.  The ">" after the register name is
-			optional. {not in Vi}
-:redi[r] @{a-z}>>	Append messages to register {a-z}. {not in Vi}
+			optional.
+:redi[r] @{a-z}>>	Append messages to register {a-z}.
 
 :redi[r] @*>		
 :redi[r] @+>		Redirect messages to the selection or clipboard. For
 			backward compatibility, the ">" after the register
 			name can be omitted. See |quotestar| and |quoteplus|.
-			{not in Vi}
 :redi[r] @*>>		
 :redi[r] @+>>		Append messages to the selection or clipboard.
-			{not in Vi}
 
 :redi[r] @">		Redirect messages to the unnamed register. For
 			backward compatibility, the ">" after the register
-			name can be omitted. {not in Vi}
-:redi[r] @">>		Append messages to the unnamed register. {not in Vi}
+			name can be omitted.
+:redi[r] @">>		Append messages to the unnamed register.
 
 :redi[r] => {var}	Redirect messages to a variable.  If the variable
 			doesn't exist, then it is created.  If the variable
@@ -543,14 +533,14 @@
 			Only string variables can be used.  After the
 			redirection starts, if the variable is removed or
 			locked or the variable type is changed, then further
-			command output messages will cause errors. {not in Vi}
+			command output messages will cause errors.
 			To get the output of one command the |execute()|
 			function can be used.
 
 :redi[r] =>> {var}	Append messages to an existing variable.  Only string
-			variables can be used. {not in Vi}
+			variables can be used.
 
-:redi[r] END		End redirecting messages.  {not in Vi}
+:redi[r] END		End redirecting messages.
 
 							*:filt* *:filter*
 :filt[er][!] {pat} {command}
@@ -692,12 +682,11 @@
 <			- When 'keywordprg' is equal to "man -s", a count
 			  before "K" is inserted after the "-s".  If there is
 			  no count, the "-s" is removed.
-			{not in Vi}
 
 							*v_K*
 {Visual}K		Like "K", but use the visually highlighted text for
 			the keyword.  Only works when the highlighted text is
-			not more than one line.  {not in Vi}
+			not more than one line.
 
 [N]gs							*gs* *:sl* *:sleep*
 :[N]sl[eep] [N]	[m]	Do nothing for [N] seconds.  When [m] is included,
@@ -710,7 +699,7 @@
 <			Can be interrupted with CTRL-C (CTRL-Break on MS-DOS).
 			"gs" stands for "goto sleep".
 			While sleeping the cursor is positioned in the text,
-			if at a visible position.  {not in Vi}
+			if at a visible position.
 			Also process the received netbeans messages. {only
 			available when compiled with the |+netbeans_intg|
 			feature}
diff --git a/runtime/doc/vi_diff.txt b/runtime/doc/vi_diff.txt
index b71fdbc..a1f4ab4 100644
--- a/runtime/doc/vi_diff.txt
+++ b/runtime/doc/vi_diff.txt
@@ -1,4 +1,4 @@
-*vi_diff.txt*   For Vim version 8.1.  Last change: 2019 Apr 28
+*vi_diff.txt*   For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -6,9 +6,8 @@
 
 Differences between Vim and Vi				*vi-differences*
 
-Throughout the help files differences between Vim and Vi/Ex are given in
-curly braces, like "{not in Vi}".  This file only lists what has not been
-mentioned in other files and gives an overview.
+This file lists the differences between Vim and Vi/Ex and gives an overview of
+what is in Vim that is not in Vi.
 
 Vim is mostly POSIX 1003.2-1 compliant.  The only command known to be missing
 is ":open".  There are probably a lot of small differences (either because Vim
@@ -180,6 +179,10 @@
 	line with tab labels can be used to quickly switch between these pages.
 	|tab-page|
 
+Terminal window.					|:terminal|
+	Vim can create a window in which a terminal emulator runs.  This can
+	be used to execute an arbitrary command, a shell or a debugger.
+
 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
@@ -194,6 +197,11 @@
 	|'hlsearch'|, matching parens |matchparen| and the cursor line and
 	column |'cursorline'| |'cursorcolumn'|.
 
+Text properties						|textprop.txt|
+	Vim supports highlighting text by a plugin.  Property types can be
+	specificed with |prop_type_add()| and properties can be placed with
+	|prop_add()|.
+
 Spell checking.						|spell|
 	When the 'spell' option is set Vim will highlight spelling mistakes.
 	About 50 languages are currently supported, selected with the
@@ -262,6 +270,8 @@
 		~	swap case
 		u	make lowercase
 		U	make uppercase
+	{Vi has no Visual mode, the name "visual" is used for Normal mode, to
+	distinguish it from Ex mode}
 
 Block operators.					|visual-block|
 	With Visual mode a rectangular block of text can be selected.  Start
@@ -522,6 +532,10 @@
 The used tags are remembered.  Commands that can be used with the tag stack
 are CTRL-T, ":pop" and ":tag".  ":tags" lists the tag stack.
 
+Vi uses 'wrapscan' when searching for a tag.  When jumping to a tag Vi starts
+searching in line 2 of another file.  It does not find a tag in line 1 of
+another file when 'wrapscan' is not set.
+
 The 'tags' option can be set to a list of tag file names.  Thus multiple
 tag files can be used.  For file names that start with "./", the "./" is
 replaced with the path of the current file.  This makes it possible to use a
@@ -795,23 +809,231 @@
 effect is of resetting 'compatible' and removing flags from 'cpoptions' can be
 found at the help for the specific command.
 
-Below is listed what features are present in Vi.  Anything else has been added
-by Vim.
+The help files used to mark features that are in Vim but not in Vi with {not
+in Vi}.  However, since these remarks cluttered the help files we now do it
+the other way around: Below is listed what Vi already supported.  Anything
+else has been added by Vim.
+
 
 The following Ex commands are supported by Vi: ~
 
-TODO
-
-`:set`		but not `:set inv{option}`, `:set option&`, `:set all&`,
-		`:set option+=value`,
-		`:set option^=value`
-		`:set option-=value`
-		`:set option<`
+`:abbreviate`	enter abbreviation
+`:append`	append text
+`:args`		print the argument list
+`:cd`		change directory; Vi: no "cd -"
+`:change`	replace a line or series of lines
+`:chdir`	change directory
+`:copy`		copy lines
+`:delete`	delete lines
+`:edit`		edit a file
+`:exit`		same as ":xit"
+`:file`		show or set the current file name; Vi: without the column number
+`:global`	execute commands for matching lines
+`:insert`	insert text
+`:join`		join lines; Vi: not :join!
+`:k`		set a mark
+`:list`		print lines
+`:map` 		show or enter a mapping
+`:mark`		set a mark
+`:move`		move lines
+`:Next`		go to previous file in the argument list; no count or ++opt
+`:next`		go to next file in the argument list; no count or ++opt
+`:number`	print lines with line number
+`:open`		start open mode (not implemented in Vim)
+`:pop`		jump to older entry in tag stack (only in some versions)
+`:preserve`	write all text to swap file
+`:print`	print lines
+`:put`		insert contents of register in the text
+`:quit`		quit Vi
+`:read`		read file into the text
+`:recover`	recover a file from a swap file
+`:rewind` 	go to the first file in the argument list; no ++opt
+`:set`		set option; but not `:set inv{option}`, `:set option&`,
+		`:set all&`, `:set option+=value`, `:set option^=value`
+		`:set option-=value` `:set option<`
+`:shell`	escape to a shell
+`:source`	read Vim or Ex commands from a file
+`:stop`		suspend the editor or escape to a shell
+`:substitute`	find and replace text; Vi: no '&', 'i', 's', 'r' or 'I' flag,
+		confirm prompt only supports 'y' and 'n', no highlighting
+`:suspend`	same as ":stop"
+`:t`		same as ":copy"
+`:tag`		jump to tag
+`:unabbreviate`	remove abbreviation
+`:undo`		undo last change {Vi: only one level}
+`:unmap`	remove mapping
+`:vglobal`	execute commands for not matching lines
+`:version`	print version number and other info
+`:visual`	same as ":edit", but turns off "Ex" mode
+`:wq`		write to a file and quit Vi
+`:write`	write to a file
+`:xit`		write if buffer changed and quit Vi
+`:yank`		yank lines into a register
+`:z`		print some lines {not in all versions of Vi}
+`:!` 		filter lines or execute an external command
+`:"`		comment
+`:#`		same as ":number"
+`:*`		execute contents of a register
+`:&`		repeat last ":substitute"
+`:<`		shift lines one 'shiftwidth' left
+`:=`		print the cursor line number
+`:>`		shift lines one 'shiftwidth' right
+`:@`		execute contents of a register; but not `:@`; `:@@` only in
+		some versions
 
 
 The following Normal mode commands are supported by Vi: ~
 
-TODO
+|CTRL-B|	scroll N screens Backwards
+|CTRL-C|	interrupt current (search) command
+|CTRL-D|	scroll Down N lines (default: half a screen); Vim scrolls
+		'scroll' screen lines, Vi scrolls file lines; makes a
+		difference when lines wrap
+|CTRL-E|	scroll N lines upwards (N lines Extra)
+|CTRL-F|	scroll N screens Forward
+|CTRL-G|	display current file name and position
+|<BS>|		same as "h"
+|CTRL-H|	same as "h"
+|<NL>|		same as "j"
+|CTRL-J|	same as "j"
+|CTRL-L|	redraw screen
+|<CR>|		cursor to the first CHAR N lines lower
+|CTRL-M|	same as <CR>
+|CTRL-N|	same as "j"
+|CTRL-P|	same as "k"
+|CTRL-R|	in some Vi versions: same as CTRL-L
+|CTRL-T|	jump to N older Tag in tag list
+|CTRL-U|	N lines Upwards (default: half a screen)
+|CTRL-Y|	scroll N lines downwards
+|CTRL-Z|	suspend program (or start new shell)
+|CTRL-]|	:ta to ident under cursor
+|CTRL-^|	edit alternate file; Vi: no count
+|<Space>|	same as "l"
+|!|		filter Nmove text through the {filter} command
+|!!|		filter N lines through the {filter} command
+"		use register {a-zA-Z0-9.%#:-"} for next delete, yank or put
+		(uppercase to append) ({.%#:} only work with put)
+|$|		cursor to the end of Nth next line
+|%|		find the next (curly/square) bracket on this line and go to
+		its match, or go to matching comment bracket, or go to
+		matching preprocessor directive (Vi: no count supported)
+|&|		repeat last :s
+|'|		jump to mark (Vi: only lowercase marks)
+|(|		cursor N sentences backward
+|)|		cursor N sentences forward
+|+|		same as <CR>
+|,|		repeat latest f, t, F or T in opposite direction N times
+|-|		cursor to the first CHAR N lines higher
+|.|		repeat last change with count replaced with N
+|/|		search forward for the Nth occurrence of {pattern}
+|0|		cursor to the first char of the line
+|:|		start entering an Ex command
+|;|		repeat latest f, t, F or T N times
+|<|		shift Nmove lines one 'shiftwidth' leftwards
+|<<|		shift N lines one 'shiftwidth' leftwards
+|=|		filter Nmove lines through "indent"
+|==|		filter N lines through "indent"
+|>|		shift Nmove lines one 'shiftwidth' rightwards
+|>>|		shift N lines one 'shiftwidth' rightwards
+|?|		search backward for the Nth previous occurrence of {pattern}
+|@|		execute the contents of register {a-z} N times
+|@@|		repeat the previous @{a-z} N times
+|A|		append text after the end of the line N times
+|B|		cursor N WORDS backward
+|C|		change from the cursor position to the end of the line
+|D|		delete the characters under the cursor until the end of the
+		line and N-1 more lines [into register x]; synonym for "d$"
+|E|		cursor forward to the end of WORD N
+|F|		cursor to the Nth occurrence of {char} to the left
+|G|		cursor to line N, default last line
+|H|		cursor to line N from top of screen
+|I|		insert text before the first CHAR on the line N times
+|J|		Join N lines; default is 2
+|L|		cursor to line N from bottom of screen
+|M|		cursor to middle line of screen
+|N|		repeat the latest '/' or '?' N times in opposite direction
+|O|		begin a new line above the cursor and insert text, repeat N
+		times
+|P|		put the text [from register x] before the cursor N times
+|Q|		switch to "Ex" mode
+|R|		enter replace mode: overtype existing characters, repeat the
+		entered text N-1 times
+|S|		delete N lines [into register x] and start insert; synonym for
+		"cc".
+|T|		cursor till after Nth occurrence of {char} to the left
+|U|		undo all latest changes on one line
+|W|		cursor N WORDS forward
+|X|		delete N characters before the cursor [into register x]
+|Y|		yank N lines [into register x]; synonym for "yy"
+|ZZ|		store current file if modified, and exit
+|[[|		cursor N sections backward
+|]]|		cursor N sections forward
+|^|		cursor to the first CHAR of the line
+|_|		cursor to the first CHAR N - 1 lines lower
+|`|		cursor to the mark {a-zA-Z0-9}
+|a|		append text after the cursor N times
+|b|		cursor N words backward
+|c|		delete Nmove text [into register x] and start insert
+|cc|		delete N lines [into register x] and start insert
+|d|		delete Nmove text [into register x]
+|dd|		delete N lines [into register x]
+|e|		cursor forward to the end of word N
+|f|		cursor to Nth occurrence of {char} to the right
+|h|		cursor N chars to the left
+|i|		insert text before the cursor N times
+|j|		cursor N lines downward
+|k|		cursor N lines upward
+|l|		cursor N chars to the right
+|m|		set mark {A-Za-z} at cursor position
+|n|		repeat the latest '/' or '?' N times
+|o|		begin a new line below the cursor and insert text
+|p|		put the text [from register x] after the cursor N times
+|r|		replace N chars with {char}
+|s|		(substitute) delete N characters [into register x] and start
+		insert
+|t|		cursor till before Nth occurrence of {char} to the right
+|u|		undo changes {Vi: only one level}
+|w|		cursor N words forward
+|x|		delete N characters under and after the cursor [into register
+		x]
+|y|		yank Nmove text [into register x]
+|yy|		yank N lines [into register x]
+|z<CR>|		current line to the top
+|z-|		current line to the bottom
+|z+|		cursor on line N
+|z^|		cursor on line N
+|{|		cursor N paragraphs backward
+|		cursor to column N
+|}|		cursor N paragraphs forward
+|~|		switch case of N characters under the cursor; Vim: depends on
+		'tildeop'
+|<Del>|		same as "x"
+
+
+The following commands are supported in Insert mode by Vi: ~
+
+CTRL-@		insert previously inserted text and stop insert
+CTRL-C		quit insert mode, without checking for abbreviation, unless
+		'insertmode' set.
+CTRL-D		delete one shiftwidth of indent in the current line
+<BS>		delete character before the cursor
+CTRL-H		same as <BS>
+<Tab>		insert a <Tab> character
+CTRL-I		same as <Tab>
+<NL>		same as <CR>
+CTRL-J		same as <CR>
+<CR>		begin new line
+CTRL-M		same as <CR>
+CTRL-T		insert one shiftwidth of indent in current line
+CTRL-V {char}	insert next non-digit literally
+CTRL-W		delete word before the cursor
+CTRL-Z		when 'insertmode' set: suspend Vim
+<Esc>		end insert mode (unless 'insertmode' set)
+CTRL-[		same as <Esc>
+0 CTRL-D	delete all indent in the current line
+^ CTRL-D	delete all indent in the current line, restore it in the next
+		line
+<Del>		delete character under the cursor
 
 
 The following options are supported by Vi: ~
@@ -849,11 +1071,14 @@
 'term'			    name of the terminal
 'terse'			    shorten some messages
 'timeout'	  'to'	    time out on mappings and key codes
+'timeoutlen'	  'tm'	    time for 'timeout' {only in some Vi versions}
 'ttytype'	  'tty'     alias for 'term'
 'verbose'	  'vbs'     give informative messages {only in some Vi
 				versions as a boolean option}
 'warn'			    warn for shell command when buffer was changed
 'window'	  'wi'	    nr of lines to scroll for CTRL-F and CTRL-B
+			    {Vi also uses the option to specify the number of
+			    displayed lines}
 'wrapmargin'	  'wm'	    chars from the right where wrapping starts
 'wrapscan'	  'ws'	    searches wrap around the end of the file
 'writeany'	  'wa'	    write to file with no need for "!" override
@@ -968,7 +1193,8 @@
 -i		Elvis: Start each window in Insert mode.
 -i {viminfo}	Vim: Use {viminfo} for viminfo file.
 
--L		Vim: Same as "-r" (also in some versions of Vi).
+-L		Vim: Same as "-r" {only in some versions of Vi: "List
+		recoverable edit sessions"}.
 
 -l		Nvi, Vi, Vim: Set 'lisp' and 'showmatch' options.
 
diff --git a/runtime/doc/visual.txt b/runtime/doc/visual.txt
index f63a08d..b953dcb 100644
--- a/runtime/doc/visual.txt
+++ b/runtime/doc/visual.txt
@@ -1,4 +1,4 @@
-*visual.txt*    For Vim version 8.1.  Last change: 2019 Feb 25
+*visual.txt*    For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -20,8 +20,6 @@
 7. Examples				|visual-examples|
 8. Select mode				|Select-mode|
 
-{Vi has no Visual mode, the name "visual" is used for Normal mode, to
-distinguish it from Ex mode}
 {Since Vim 7.4.200 the |+visual| feature is always included}
 
 ==============================================================================
diff --git a/runtime/doc/windows.txt b/runtime/doc/windows.txt
index 0b96115..9a682e5 100644
--- a/runtime/doc/windows.txt
+++ b/runtime/doc/windows.txt
@@ -1,4 +1,4 @@
-*windows.txt*   For Vim version 8.1.  Last change: 2019 Mar 17
+*windows.txt*   For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -26,7 +26,6 @@
 11. Using hidden buffers			|buffer-hidden|
 12. Special kinds of buffers			|special-buffers|
 
-{Vi does not have any of these commands}
 {not able to use multiple windows when the |+windows| feature was disabled at
 compile time}
 {not able to use vertically split windows when the |+vertsplit| feature was
@@ -737,7 +736,7 @@
 			the current window.
 			{cmd} can contain '|' to concatenate several commands.
 			{cmd} must not open or close windows or reorder them.
-			{not in Vi}
+
 			Also see |:tabdo|, |:argdo|, |:bufdo|, |:cdo|, |:ldo|,
 			|:cfdo| and |:lfdo|
 
@@ -765,7 +764,7 @@
 			autocommand event is disabled by adding it to
 			'eventignore'.  This considerably speeds up editing
 			each buffer.
-			{not in Vi}
+
 			Also see |:tabdo|, |:argdo|, |:windo|, |:cdo|, |:ldo|,
 			|:cfdo| and |:lfdo|
 
@@ -891,7 +890,7 @@
 							*:pp* *:ppop*
 :[count]pp[op][!]
 		Does ":[count]pop[!]" in the preview window.  See |:pop| and
-		|:ptag|.  {not in Vi}
+		|:ptag|.
 
 CTRL-W }						*CTRL-W_}*
 		Use identifier under cursor as a tag and perform a :ptag on
