diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 4e0bedd..87d29a0 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 10
+*options.txt*	For Vim version 8.1.  Last change: 2019 Apr 28
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -42,13 +42,13 @@
 
 							   *:set-!* *:set-inv*
 :se[t] {option}!   or
-:se[t] inv{option}	Toggle option: Invert value. {not in Vi}
+:se[t] inv{option}	Toggle option: Invert value.
 
 				*:set-default* *:set-&* *:set-&vi* *:set-&vim*
 :se[t] {option}&	Reset option to its default value.  May depend on the
-			current value of 'compatible'. {not in Vi}
-:se[t] {option}&vi	Reset option to its Vi default value. {not in Vi}
-:se[t] {option}&vim	Reset option to its Vim default value. {not in Vi}
+			current value of 'compatible'.
+:se[t] {option}&vi	Reset option to its Vi default value.
+:se[t] {option}&vim	Reset option to its Vim default value.
 
 :se[t] all&		Set all options to their default value.  The values of
 			these options are not changed:
@@ -62,7 +62,6 @@
 			  'ttymouse'
 			  'ttytype'
 			Warning: This may have a lot of side effects.
-			{not in Vi}
 
 						*:set-args* *E487* *E521*
 :se[t] {option}={value}		or
@@ -88,7 +87,6 @@
 			are removed.  When adding a flag that was already
 			present the option value doesn't change.
 			Also see |:set-args| above.
-			{not in Vi}
 
 :se[t] {option}^={value}				*:set^=*
 			Multiply the {value} to a number option, or prepend
@@ -96,7 +94,6 @@
 			comma separated list, a comma is added, unless the
 			value was empty.
 			Also see |:set-args| above.
-			{not in Vi}
 
 :se[t] {option}-={value}				*:set-=*
 			Subtract the {value} from a number option, or remove
@@ -109,7 +106,6 @@
 			exactly as they appear in the option.  Remove flags
 			one by one to avoid problems.
 			Also see |:set-args| above.
-			{not in Vi}
 
 The {option} arguments to ":set" may be repeated.  For example: >
 	:set ai nosi sw=3 ts=3
@@ -305,15 +301,12 @@
 			before the option name.
 			For a global option the global value is
 			shown (but that might change in the future).
-			{not in Vi}
 
 :setl[ocal] {option}<	Set the local value of {option} to its global value by
 			copying the value.
-			{not in Vi}
 
 :se[t] {option}<	For |global-local| options: Remove the local value of
 			{option}, so that the global value will be used.
-			{not in Vi}
 
 							*:setg* *:setglobal*
 :setg[lobal] ...	Like ":set" but set only the global value for a local
@@ -323,7 +316,6 @@
 			local options.
 			Without argument: display global values for all local
 			options which are different from the default.
-			{not in Vi}
 
 For buffer-local and window-local options:
 	Command		 global value	    local value ~
@@ -387,8 +379,6 @@
 			detections that are just a guess.  |did_filetype()|
 			will return false after this command.
 
-			{not in Vi}
-
 				*option-window* *optwin*
 :bro[wse] se[t]			*:set-browse* *:browse-set* *:opt* *:options*
 :opt[ions]		Open a window for viewing and setting all options.
@@ -444,7 +434,7 @@
 				  CTRL-?	CTRL-H
 				not CTRL-?	CTRL-?
 
-			(CTRL-? is 0177 octal, 0x7f hex) {not in Vi}
+			(CTRL-? is 0177 octal, 0x7f hex)
 
 			If your delete key terminal code is wrong, but the
 			code for backspace is alright, you can put this in
@@ -660,7 +650,6 @@
 					*'aleph'* *'al'* *aleph* *Aleph*
 'aleph' 'al'		number	(default 128 for MS-DOS, 224 otherwise)
 			global
-			{not in Vi}
 			{only available when compiled with the |+rightleft|
 			feature}
 	The ASCII code for the first letter of the Hebrew alphabet.  The
@@ -673,7 +662,6 @@
 			*'allowrevins'* *'ari'* *'noallowrevins'* *'noari'*
 'allowrevins' 'ari'	boolean	(default off)
 			global
-			{not in Vi}
 			{only available when compiled with the |+rightleft|
 			feature}
 	Allow CTRL-_ in Insert and Command-line mode.  This is default off, to
@@ -685,7 +673,6 @@
 			 *'altkeymap'* *'akm'* *'noaltkeymap'* *'noakm'*
 'altkeymap' 'akm'	boolean (default off)
 			global
-			{not in Vi}
 			{only available when compiled with the |+farsi|
 			feature}
 	This option was for using Farsi, which has been removed.  See
@@ -694,7 +681,6 @@
 						*'ambiwidth'* *'ambw'*
 'ambiwidth' 'ambw'	string (default: "single")
 			global
-			{not in Vi}
 	Only effective when 'encoding' is "utf-8" or another Unicode encoding.
 	Tells Vim what to do with characters with East Asian Width Class
 	Ambiguous (such as Euro, Registered Sign, Copyright Sign, Greek
@@ -731,7 +717,6 @@
 			*'antialias'* *'anti'* *'noantialias'* *'noanti'*
 'antialias' 'anti'	boolean (default: off)
 			global
-			{not in Vi}
 			{only available when compiled with GUI enabled
 			on Mac OS X}
 	This option only has an effect in the GUI version of Vim on Mac OS X
@@ -744,7 +729,6 @@
 			*'autochdir'* *'acd'* *'noautochdir'* *'noacd'*
 'autochdir' 'acd'	boolean (default off)
 			global
-			{not in Vi}
 			{only available when compiled with it, use
 			exists("+autochdir") to check}
 	When on, Vim will change the current working directory whenever you
@@ -756,7 +740,6 @@
 				*'arabic'* *'arab'* *'noarabic'* *'noarab'*
 'arabic' 'arab'		boolean (default off)
 			local to window
-			{not in Vi}
 			{only available when compiled with the |+arabic|
 			feature}
 	This option can be set to start editing Arabic text.
@@ -780,7 +763,6 @@
 					*'noarabicshape'* *'noarshape'*
 'arabicshape' 'arshape'	boolean (default on)
 			global
-			{not in Vi}
 			{only available when compiled with the |+arabic|
 			feature}
 	When on and 'termbidi' is off, the required visual character
@@ -820,7 +802,6 @@
 				 *'autoread'* *'ar'* *'noautoread'* *'noar'*
 'autoread' 'ar'		boolean	(default off)
 			global or local to buffer |global-local|
-			{not in Vi}
 	When a file has been detected to have been changed outside of Vim and
 	it has not been changed inside of Vim, automatically read it again.
 	When the file has been deleted this is not done, so you have the text
@@ -845,7 +826,6 @@
 			 *'autowriteall'* *'awa'* *'noautowriteall'* *'noawa'*
 'autowriteall' 'awa'	boolean	(default off)
 			global
-			{not in Vi}
 	Like 'autowrite', but also used for commands ":edit", ":enew", ":quit",
 	":qall", ":exit", ":xit", ":recover" and closing the Vim window.
 	Setting this option also implies that Vim behaves like 'autowrite' has
@@ -854,7 +834,6 @@
 							*'background'* *'bg'*
 'background' 'bg'	string	(default "dark" or "light", see below)
 			global
-			{not in Vi}
 	When set to "dark", Vim will try to use colors that look good on a
 	dark background.  When set to "light", Vim will try to use colors that
 	look good on a light background.  Any other value is illegal.
@@ -920,7 +899,6 @@
 'backspace' 'bs'	string	(default "", set to "indent,eol,start"
 							    in |defaults.vim|)
 			global
-			{not in Vi}
 	Influences the working of <BS>, <Del>, CTRL-W and CTRL-U in Insert
 	mode.  This is a list of items, separated by commas.  Each item allows
 	a way to backspace over something:
@@ -944,7 +922,6 @@
 				*'backup'* *'bk'* *'nobackup'* *'nobk'*
 'backup' 'bk'		boolean	(default off)
 			global
-			{not in Vi}
 	Make a backup before overwriting a file.  Leave it around after the
 	file has been successfully written.  If you do not want to keep the
 	backup file, but you do want a backup while the file is being
@@ -960,7 +937,6 @@
 						*'backupcopy'* *'bkc'*
 'backupcopy' 'bkc'	string	(Vi default for Unix: "yes", otherwise: "auto")
 			global or local to buffer |global-local|
-			{not in Vi}
 	When writing a file and a backup is made, this option tells how it's
 	done.  This is a comma separated list of words.
 
@@ -1031,7 +1007,6 @@
 				 for MS-DOS and Win32: ".,$TEMP,c:/tmp,c:/temp"
 				 for Unix: ".,~/tmp,~/")
 			global
-			{not in Vi}
 	List of directories for the backup file, separated with commas.
 	- The backup file will be created in the first directory in the list
 	  where this is possible.  The directory must exist, Vim will not
@@ -1077,7 +1052,6 @@
 						*'backupext'* *'bex'* *E589*
 'backupext' 'bex'	string	(default "~", for VMS: "_")
 			global
-			{not in Vi}
 	String which is appended to a file name to make the name of the
 	backup file.  The default is quite unusual, because this avoids
 	accidentally overwriting existing files with a backup file.  You might
@@ -1096,7 +1070,6 @@
 				 Unix: "/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*"
 				 Mac: "/private/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*")
 			global
-			{not in Vi}
 			{not available when compiled without the |+wildignore|
 			feature}
 	A list of file patterns.  When one of the patterns matches with the
@@ -1123,7 +1096,6 @@
 						*'balloondelay'* *'bdlay'*
 'balloondelay' 'bdlay'	number	(default: 600)
 			global
-			{not in Vi}
 			{only available when compiled with the |+balloon_eval|
 			feature}
 	Delay in milliseconds before a balloon may pop up.  See |balloon-eval|.
@@ -1131,7 +1103,6 @@
 		       *'ballooneval'* *'beval'* *'noballooneval'* *'nobeval'*
 'ballooneval' 'beval'	boolean	(default off)
 			global
-			{not in Vi}
 			{only available when compiled with the |+balloon_eval|
 			feature}
 	Switch on the |balloon-eval| functionality for the GUI.
@@ -1140,7 +1111,6 @@
 		       *'nobevalterm'*
 'balloonevalterm' 'bevalterm'	boolean	(default off)
 			global
-			{not in Vi}
 			{only available when compiled with the
 			|+balloon_eval_term| feature}
 	Switch on the |balloon-eval| functionality for the terminal.
@@ -1148,7 +1118,6 @@
 						     *'balloonexpr'* *'bexpr'*
 'balloonexpr' 'bexpr'	string	(default "")
 			global or local to buffer |global-local|
-			{not in Vi}
 			{only available when compiled with the |+balloon_eval|
 			feature}
 	Expression for text to show in evaluation balloon.  It is only used
@@ -1196,7 +1165,6 @@
 						*'belloff'* *'bo'*
 'belloff' 'bo'		string	(default "")
 			global
-			{not in Vi}
 	Specifies for which events the bell will not be rung. It is a comma
 	separated list of items. For each item that is present, the bell
 	will be silenced. This is most useful to specify specific events in
@@ -1237,7 +1205,6 @@
 				     *'binary'* *'bin'* *'nobinary'* *'nobin'*
 'binary' 'bin'		boolean	(default off)
 			local to buffer
-			{not in Vi}
 	This option should be set before editing a binary file.  You can also
 	use the |-b| Vim argument.  When this option is switched on a few
 	options will be changed (also when it already was on):
@@ -1268,13 +1235,12 @@
 			*'bioskey'* *'biosk'* *'nobioskey'* *'nobiosk'*
 'bioskey' 'biosk'	boolean	(default on)
 			global
-			{not in Vi}  {only for MS-DOS}
+			{only for MS-DOS}
 	This was for MS-DOS and is no longer supported.
 
 							*'bomb'* *'nobomb'*
 'bomb'			boolean	(default off)
 			local to buffer
-			{not in Vi}
 	When writing a file and the following conditions are met, a BOM (Byte
 	Order Mark) is prepended to the file:
 	- this option is on
@@ -1294,7 +1260,6 @@
 						*'breakat'* *'brk'*
 'breakat' 'brk'		string	(default " ^I!@*-+;:,./?")
 			global
-			{not in Vi}
 			{not available when compiled without the |+linebreak|
 			feature}
 	This option lets you choose which characters might cause a line
@@ -1304,7 +1269,6 @@
 			*'breakindent'* *'bri'* *'nobreakindent'* *'nobri'*
 'breakindent' 'bri'	boolean (default off)
 			local to window
-			{not in Vi}
 			{not available when compiled without the |+linebreak|
 			feature}
 	Every wrapped line will continue visually indented (same amount of
@@ -1315,7 +1279,6 @@
 						*'breakindentopt'* *'briopt'*
 'breakindentopt' 'briopt' string (default empty)
 			local to window
-			{not in Vi}
 			{not available when compiled without the |+linebreak|
 			feature}
 	Settings for 'breakindent'. It can consist of the following optional
@@ -1337,8 +1300,7 @@
 						*'browsedir'* *'bsdir'*
 'browsedir' 'bsdir'	string	(default: "last")
 			global
-			{not in Vi} {only for Motif, Athena, GTK, Mac and
-			Win32 GUI}
+			{only for Motif, Athena, GTK, Mac and Win32 GUI}
 	Which directory to use for the file browser:
 	   last		Use same directory as with last file browser, where a
 			file was opened or saved.
@@ -1349,7 +1311,6 @@
 						*'bufhidden'* *'bh'*
 'bufhidden' 'bh'	string (default: "")
 			local to buffer
-			{not in Vi}
 	This option specifies what happens when a buffer is no longer
 	displayed in a window:
 	  <empty>	follow the global 'hidden' option
@@ -1373,7 +1334,6 @@
 			*'buflisted'* *'bl'* *'nobuflisted'* *'nobl'* *E85*
 'buflisted' 'bl'	boolean (default: on)
 			local to buffer
-			{not in Vi}
 	When this option is set, the buffer shows up in the buffer list.  If
 	it is reset it is not used for ":bnext", "ls", the Buffers menu, etc.
 	This option is reset by Vim for buffers that are only used to remember
@@ -1383,7 +1343,6 @@
 						*'buftype'* *'bt'* *E382*
 'buftype' 'bt'		string (default: "")
 			local to buffer
-			{not in Vi}
 	The value of this option specifies the type of a buffer:
 	  <empty>	normal buffer
 	  nofile	buffer which is not related to a file and will not be
@@ -1435,7 +1394,6 @@
 						*'casemap'* *'cmp'*
 'casemap' 'cmp'		string	(default: "internal,keepascii")
 			global
-			{not in Vi}
 	Specifies details about changing the case of letters.  It may contain
 	these words, separated by a comma:
 	internal	Use internal case mapping functions, the current
@@ -1451,7 +1409,6 @@
 						*'cdpath'* *'cd'* *E344* *E346*
 'cdpath' 'cd'		string	(default: equivalent to $CDPATH or ",,")
 			global
-			{not in Vi}
 			{not available when compiled without the
 			|+file_in_path| feature}
 	This is a list of directories which will be searched when using the
@@ -1473,7 +1430,6 @@
 						*'cedit'*
 'cedit'			string	(Vi default: "", Vim default: CTRL-F)
 			global
-			{not in Vi}
 			{not available when compiled without the |+vertsplit|
 			feature}
 	The key used in Command-line Mode to open the command-line window.
@@ -1492,7 +1448,6 @@
 'charconvert' 'ccv'	string (default "")
 			global
 			{only available when compiled with the |+eval| feature}
-			{not in Vi}
 	An expression that is used for character encoding conversion.  It is
 	evaluated when a file that is to be read or has been written has a
 	different encoding from what is desired.
@@ -1535,7 +1490,6 @@
 				   *'cindent'* *'cin'* *'nocindent'* *'nocin'*
 'cindent' 'cin'		boolean	(default off)
 			local to buffer
-			{not in Vi}
 			{not available when compiled without the |+cindent|
 			feature}
 	Enables automatic C program indenting.  See 'cinkeys' to set the keys
@@ -1554,7 +1508,6 @@
 							*'cinkeys'* *'cink'*
 'cinkeys' 'cink'	string	(default "0{,0},0),0],:,0#,!^F,o,O,e")
 			local to buffer
-			{not in Vi}
 			{not available when compiled without the |+cindent|
 			feature}
 	A list of keys that, when typed in Insert mode, cause reindenting of
@@ -1566,7 +1519,6 @@
 						*'cinoptions'* *'cino'*
 'cinoptions' 'cino'	string	(default "")
 			local to buffer
-			{not in Vi}
 			{not available when compiled without the |+cindent|
 			feature}
 	The 'cinoptions' affect the way 'cindent' reindents lines in a C
@@ -1577,7 +1529,6 @@
 						*'cinwords'* *'cinw'*
 'cinwords' 'cinw'	string	(default "if,else,while,do,for,switch")
 			local to buffer
-			{not in Vi}
 			{not available when compiled without both the
 			|+cindent| and the |+smartindent| features}
 	These keywords start an extra indent in the next line when
@@ -1591,7 +1542,6 @@
 'clipboard' 'cb'	string	(default "autoselect,exclude:cons\|linux"
 						  for X-windows, "" otherwise)
 			global
-			{not in Vi}
 			{only in GUI versions or when the |+xterm_clipboard|
 			feature is included}
 	This option is a list of comma separated names.
@@ -1676,7 +1626,6 @@
 						*'cmdheight'* *'ch'*
 'cmdheight' 'ch'	number	(default 1)
 			global
-			{not in Vi}
 	Number of screen lines to use for the command-line.  Helps avoiding
 	|hit-enter| prompts.
 	The value of this option is stored with the tab page, so that each tab
@@ -1685,7 +1634,6 @@
 						*'cmdwinheight'* *'cwh'*
 'cmdwinheight' 'cwh'	number	(default 7)
 			global
-			{not in Vi}
 			{not available when compiled without the |+vertsplit|
 			feature}
 	Number of screen lines to use for the command-line window. |cmdwin|
@@ -1693,7 +1641,6 @@
 						*'colorcolumn'* *'cc'*
 'colorcolumn' 'cc'	string	(default "")
 			local to window
-			{not in Vi}
 			{not available when compiled without the |+syntax|
 			feature}
 	'colorcolumn' is a comma separated list of screen columns that are
@@ -1712,7 +1659,6 @@
 						*'columns'* *'co'* *E594*
 'columns' 'co'		number	(default 80 or terminal width)
 			global
-			{not in Vi}
 	Number of columns of the screen.  Normally this is set by the terminal
 	initialization and does not have to be set by hand.  Also see
 	|posix-screen-size|.
@@ -1731,7 +1677,6 @@
 'comments' 'com'	string	(default
 				"s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-")
 			local to buffer
-			{not in Vi}
 			{not available when compiled without the |+comments|
 			feature}
 	A comma separated list of strings that can start a comment line.  See
@@ -1741,7 +1686,6 @@
 					*'commentstring'* *'cms'* *E537*
 'commentstring' 'cms'	string	(default "/*%s*/")
 			local to buffer
-			{not in Vi}
 			{not available when compiled without the |+folding|
 			feature}
 	A template for a comment.  The "%s" in the value is replaced with the
@@ -1752,7 +1696,6 @@
 'compatible' 'cp'	boolean	(default on, off when a |vimrc| or |gvimrc|
 					file is found, reset in |defaults.vim|)
 			global
-			{not in Vi}
 	This option has the effect of making Vim either more Vi-compatible, or
 	make Vim behave in a more useful way.
 
@@ -1873,7 +1816,6 @@
 						*'complete'* *'cpt'* *E535*
 'complete' 'cpt'	string	(default: ".,w,b,u,t,i")
 			local to buffer
-			{not in Vi}
 	This option specifies how keyword completion |ins-completion| works
 	when CTRL-P or CTRL-N are used.  It is also used for whole-line
 	completion |i_CTRL-X_CTRL-L|.  It indicates the type of completion
@@ -1917,7 +1859,6 @@
 						*'completefunc'* *'cfu'*
 'completefunc' 'cfu'	string	(default: empty)
 			local to buffer
-			{not in Vi}
 			{not available when compiled without the |+eval|
 			or |+insert_expand| features}
 	This option specifies a function to be used for Insert mode completion
@@ -1932,7 +1873,6 @@
 			global
 			{not available when compiled without the
 			|+insert_expand| feature}
-			{not in Vi}
 	A comma separated list of options for Insert mode completion
 	|ins-completion|.  The supported values are:
 
@@ -1966,7 +1906,6 @@
 						*'concealcursor'* *'cocu'*
 'concealcursor' 'cocu'	string (default: "")
 			local to window
-			{not in Vi}
 			{not available when compiled without the |+conceal|
 			feature}
 	Sets the modes in which text in the cursor line can also be concealed.
@@ -1989,7 +1928,6 @@
 						*'conceallevel'* *'cole'*
 'conceallevel' 'cole'	number (default 0)
 			local to window
-			{not in Vi}
 			{not available when compiled without the |+conceal|
 			feature}
 	Determine how text with the "conceal" syntax attribute |:syn-conceal|
@@ -2015,7 +1953,6 @@
 				*'confirm'* *'cf'* *'noconfirm'* *'nocf'*
 'confirm' 'cf'		boolean (default off)
 			global
-			{not in Vi}
 	When 'confirm' is on, certain operations that would normally
 	fail because of unsaved changes to a buffer, e.g. ":q" and ":e",
 	instead raise a |dialog| asking if you wish to save the current
@@ -2028,13 +1965,11 @@
 			*'conskey'* *'consk'* *'noconskey'* *'noconsk'*
 'conskey' 'consk'	boolean	(default off)
 			global
-			{not in Vi}  {only for MS-DOS}
 	This was for MS-DOS and is no longer supported.
 
 			*'copyindent'* *'ci'* *'nocopyindent'* *'noci'*
 'copyindent' 'ci'	boolean	(default off)
 			local to buffer
-			{not in Vi}
 	Copy the structure of the existing lines indent when autoindenting a
 	new line.  Normally the new indent is reconstructed by a series of
 	tabs followed by spaces as required (unless |'expandtab'| is enabled,
@@ -2050,7 +1985,6 @@
 'cpoptions' 'cpo'	string	(Vim default: "aABceFs",
 				 Vi default:  all flags)
 			global
-			{not in Vi}
 	A sequence of single character flags.  When a character is present
 	this indicates Vi-compatible behavior.  This is used for things where
 	not being Vi-compatible is mostly or sometimes preferred.
@@ -2362,7 +2296,6 @@
 						*'cryptmethod'* *'cm'*
 'cryptmethod' 'cm'	string	(default "blowfish2")
 			global or local to buffer |global-local|
-			{not in Vi}
 	Method used for encryption when the buffer is written to a file:
 							*pkzip*
 	   zip		PkZip compatible method.  A weak kind of encryption.
@@ -2404,7 +2337,6 @@
 			global
 			{not available when compiled without the |+cscope|
 			feature}
-			{not in Vi}
 	Determines how many components of the path to show in a list of tags.
 	See |cscopepathcomp|.
 	NOTE: This option is set to 0 when 'compatible' is set.
@@ -2414,7 +2346,6 @@
 			global
 			{not available when compiled without the |+cscope|
 			feature}
-			{not in Vi}
 	Specifies the command to execute cscope.  See |cscopeprg|.
 	This option cannot be set from a |modeline| or in the |sandbox|, for
 	security reasons.
@@ -2424,7 +2355,6 @@
 			global
 			{not available when compiled without the |+cscope|
 			or |+quickfix| features}
-			{not in Vi}
 	Specifies whether to use quickfix window to show cscope results.
 	See |cscopequickfix|.
 
@@ -2433,7 +2363,6 @@
 			global
 			{not available when compiled without the |+cscope|
 			feature}
-			{not in Vi}
 	In the absence of a prefix (-P) for cscope. setting this option enables
 	to use the basename of cscope.out path as the prefix.
 	See |cscoperelative|.
@@ -2444,7 +2373,6 @@
 			global
 			{not available when compiled without the |+cscope|
 			feature}
-			{not in Vi}
 	Use cscope for tag commands.  See |cscope-options|.
 	NOTE: This option is reset when 'compatible' is set.
 
@@ -2453,7 +2381,6 @@
 			global
 			{not available when compiled without the |+cscope|
 			feature}
-			{not in Vi}
 	Determines the order in which ":cstag" performs a search.  See
 	|cscopetagorder|.
 	NOTE: This option is set to 0 when 'compatible' is set.
@@ -2464,14 +2391,12 @@
 			global
 			{not available when compiled without the |+cscope|
 			feature}
-			{not in Vi}
 	Give messages when adding a cscope database.  See |cscopeverbose|.
 	NOTE: This option is reset when 'compatible' is set.
 
 			*'cursorbind'* *'crb'* *'nocursorbind'* *'nocrb'*
 'cursorbind' 'crb'	boolean  (default off)
 			local to window
-			{not in Vi}
 	When this option is set, as the cursor in the current
 	window moves other cursorbound windows (windows that also have
 	this option set) move their cursors to the corresponding line and
@@ -2484,7 +2409,6 @@
 			*'cursorcolumn'* *'cuc'* *'nocursorcolumn'* *'nocuc'*
 'cursorcolumn' 'cuc'	boolean	(default off)
 			local to window
-			{not in Vi}
 			{not available when compiled without the |+syntax|
 			feature}
 	Highlight the screen column of the cursor with CursorColumn
@@ -2499,7 +2423,6 @@
 			*'cursorline'* *'cul'* *'nocursorline'* *'nocul'*
 'cursorline' 'cul'	boolean	(default off)
 			local to window
-			{not in Vi}
 			{not available when compiled without the |+syntax|
 			feature}
 	Highlight the screen line of the cursor with CursorLine
@@ -2512,7 +2435,6 @@
 						*'debug'*
 'debug'			string	(default "")
 			global
-			{not in Vi}
 	These values can be used:
 	msg	Error messages that would otherwise be omitted will be given
 		anyway.
@@ -2527,7 +2449,6 @@
 						*'define'* *'def'*
 'define' 'def'		string	(default "^\s*#\s*define")
 			global or local to buffer |global-local|
-			{not in Vi}
 	Pattern to be used to find a macro definition.  It is a search
 	pattern, just like for the "/" command.  This option is used for the
 	commands like "[i" and "[d" |include-search|.  The 'isident' option is
@@ -2552,7 +2473,6 @@
 			*'delcombine'* *'deco'* *'nodelcombine'* *'nodeco'*
 'delcombine' 'deco'	boolean (default off)
 			global
-			{not in Vi}
 	If editing Unicode and this option is set, backspace and Normal mode
 	"x" delete each combining character on its own.  When it is off (the
 	default) the character along with its combining characters are
@@ -2567,7 +2487,6 @@
 						*'dictionary'* *'dict'*
 'dictionary' 'dict'	string	(default "")
 			global or local to buffer |global-local|
-			{not in Vi}
 	List of file names, separated by commas, that are used to lookup words
 	for keyword completion commands |i_CTRL-X_CTRL-K|.  Each file should
 	contain a list of words.  This can be one word per line, or several
@@ -2594,7 +2513,6 @@
 							*'diff'* *'nodiff'*
 'diff'			boolean	(default off)
 			local to window
-			{not in Vi}
 			{not available when compiled without the |+diff|
 			feature}
 	Join the current window in the group of windows that shows differences
@@ -2603,7 +2521,6 @@
 						*'dex'* *'diffexpr'*
 'diffexpr' 'dex'	string	(default "")
 			global
-			{not in Vi}
 			{not available when compiled without the |+diff|
 			feature}
 	Expression which is evaluated to obtain a diff file (either ed-style
@@ -2614,7 +2531,6 @@
 						*'dip'* *'diffopt'*
 'diffopt' 'dip'		string	(default "internal,filler")
 			global
-			{not in Vi}
 			{not available when compiled without the |+diff|
 			feature}
 	Option settings for diff mode.  It can consist of the following items.
@@ -2707,7 +2623,6 @@
 				     *'digraph'* *'dg'* *'nodigraph'* *'nodg'*
 'digraph' 'dg'		boolean	(default off)
 			global
-			{not in Vi}
 			{not available when compiled without the |+digraphs|
 			feature}
 	Enable the entering of digraphs in Insert mode with {char1} <BS>
@@ -2768,7 +2683,6 @@
 'display' 'dy'		string	(default "", set to "truncate" in
 							       |defaults.vim|)
 			global
-			{not in Vi}
 	Change the way text is displayed.  This is comma separated list of
 	flags:
 	lastline	When included, as much as possible of the last line
@@ -2786,7 +2700,6 @@
 						*'eadirection'* *'ead'*
 'eadirection' 'ead'	string	(default "both")
 			global
-			{not in Vi}
 			{not available when compiled without the |+vertsplit|
 			feature}
 	Tells when the 'equalalways' option applies:
@@ -2805,14 +2718,12 @@
 					*'emoji'* *'emo'* *'noemoji'* *'noemo'*
 'emoji' 'emo'	boolean (default: on)
 			global
-			{not in Vi}
 	When on all Unicode emoji characters are considered to be full width.
 
 
 					*'encoding'* *'enc'* *E543*
 'encoding' 'enc'	string (default: "latin1" or value from $LANG)
 			global
-			{not in Vi}
 	Sets the character encoding used inside Vim.  It applies to text in
 	the buffers, registers, Strings in expressions, text stored in the
 	viminfo file, etc.  It sets the kind of characters which Vim can work
@@ -2875,7 +2786,6 @@
 			*'endofline'* *'eol'* *'noendofline'* *'noeol'*
 'endofline' 'eol'	boolean	(default on)
 			local to buffer
-			{not in Vi}
 	When writing a file and this option is off and the 'binary' option
 	is on, or 'fixeol' option is off, no <EOL> will be written for the
 	last line in the file.  This option is automatically set or reset when
@@ -2891,7 +2801,6 @@
 			     *'equalalways'* *'ea'* *'noequalalways'* *'noea'*
 'equalalways' 'ea'	boolean	(default on)
 			global
-			{not in Vi}
 	When on, all the windows are automatically made the same size after
 	splitting or closing a window.  This also happens the moment the
 	option is switched on.  When off, splitting a window will reduce the
@@ -2910,7 +2819,6 @@
 						*'equalprg'* *'ep'*
 'equalprg' 'ep'		string	(default "")
 			global or local to buffer |global-local|
-			{not in Vi}
 	External program to use for "=" command.  When this option is empty
 	the internal formatting functions are used; either 'lisp', 'cindent'
 	or 'indentexpr'.  When Vim was compiled without internal formatting,
@@ -2934,7 +2842,6 @@
 'errorfile' 'ef'	string	(Amiga default: "AztecC.Err",
 					others: "errors.err")
 			global
-			{not in Vi}
 			{not available when compiled without the |+quickfix|
 			feature}
 	Name of the errorfile for the QuickFix mode (see |:cf|).
@@ -2949,7 +2856,6 @@
 						*'errorformat'* *'efm'*
 'errorformat' 'efm'	string	(default is very long)
 			global or local to buffer |global-local|
-			{not in Vi}
 			{not available when compiled without the |+quickfix|
 			feature}
 	Scanf-like description of the format for the lines in the error file
@@ -2958,7 +2864,6 @@
 				     *'esckeys'* *'ek'* *'noesckeys'* *'noek'*
 'esckeys' 'ek'		boolean	(Vim default: on, Vi default: off)
 			global
-			{not in Vi}
 	Function keys that start with an <Esc> are recognized in Insert
 	mode.  When this option is off, the cursor and function keys cannot be
 	used in Insert mode if they start with an <Esc>.  The advantage of
@@ -2973,7 +2878,6 @@
 						*'eventignore'* *'ei'*
 'eventignore' 'ei'	string	(default "")
 			global
-			{not in Vi}
 	A list of autocommand event names, which are to be ignored.
 	When set to "all" or when "all" is one of the items, all autocommand
 	events are ignored, autocommands will not be executed.
@@ -2983,7 +2887,6 @@
 				 *'expandtab'* *'et'* *'noexpandtab'* *'noet'*
 'expandtab' 'et'	boolean	(default off)
 			local to buffer
-			{not in Vi}
 	In Insert mode: Use the appropriate number of spaces to insert a
 	<Tab>.  Spaces are used in indents with the '>' and '<' commands and
 	when 'autoindent' is on.  To insert a real tab when 'expandtab' is
@@ -2995,7 +2898,6 @@
 					*'exrc'* *'ex'* *'noexrc'* *'noex'*
 'exrc' 'ex'		boolean (default off)
 			global
-			{not in Vi}
 	Enables the reading of .vimrc, .exrc and .gvimrc in the current
 	directory.
 
@@ -3014,7 +2916,6 @@
 				*'fileencoding'* *'fenc'* *E213*
 'fileencoding' 'fenc'	string (default: "")
 			local to buffer
-			{not in Vi}
 	Sets the character encoding for the file of this buffer.
 
 	When 'fileencoding' is different from 'encoding', conversion will be
@@ -3069,7 +2970,6 @@
 				    "ucs-bom,utf-8,default,latin1" when
 				    'encoding' is set to a Unicode value)
 			global
-			{not in Vi}
 	This is a list of character encodings considered when starting to edit
 	an existing file.  When a file is read, Vim tries to use the first
 	mentioned character encoding.  If an error is detected, the next one
@@ -3126,7 +3026,6 @@
 'fileformat' 'ff'	string (MS-Windows default: "dos",
 				Unix, macOS default: "unix")
 			local to buffer
-			{not in Vi}
 	This gives the <EOL> of the current buffer, which is used for
 	reading/writing the buffer from/to a file:
 	    dos	    <CR> <NL>
@@ -3152,7 +3051,6 @@
 				Vi	Cygwin: "unix,dos",
 				Vi	others: "")
 			global
-			{not in Vi}
 	This gives the end-of-line (<EOL>) formats that will be tried when
 	starting to edit a new buffer and when reading a file into an existing
 	buffer:
@@ -3208,14 +3106,12 @@
 'fileignorecase' 'fic'	boolean	(default on for systems where case in file
 				 names is normally ignored)
 			global
-			{not in Vi}
 	When set case is ignored when using file names and directories.
 	See 'wildignorecase' for only ignoring case when doing completion.
 
 					*'filetype'* *'ft'*
 'filetype' 'ft'		string (default: "")
 			local to buffer
-			{not in Vi}
 	When this option is set, the FileType autocommand event is triggered.
 	All autocommands that match with the value of this option will be
 	executed.  Thus the value of 'filetype' is used in place of the file
@@ -3241,7 +3137,6 @@
 						*'fillchars'* *'fcs'*
 'fillchars' 'fcs'	string	(default "vert:|,fold:-")
 			global
-			{not in Vi}
 			{not available when compiled without the |+windows|
 			and |+folding| features}
 	Characters to fill the statuslines and vertical separators.
@@ -3276,7 +3171,6 @@
 		*'fixendofline'* *'fixeol'* *'nofixendofline'* *'nofixeol'*
 'fixendofline' 'fixeol'	boolean	(default on)
 			local to buffer
-			{not in Vi}
 	When writing a file and this option is on, <EOL> at the end of file
 	will be restored if missing. Turn this option off if you want to
 	preserve the situation from the original file.
@@ -3287,7 +3181,6 @@
 					*'fkmap'* *'fk'* *'nofkmap'* *'nofk'*
 'fkmap' 'fk'		boolean (default off)			*E198*
 			global
-			{not in Vi}
 			{only available when compiled with the |+rightleft|
 			feature}
 	This option was for using Farsi, which has been removed.  See
@@ -3296,7 +3189,6 @@
 						*'foldclose'* *'fcl'*
 'foldclose' 'fcl'	string (default "")
 			global
-			{not in Vi}
 			{not available when compiled without the |+folding|
 			feature}
 	When set to "all", a fold is closed when the cursor isn't in it and
@@ -3306,7 +3198,6 @@
 						*'foldcolumn'* *'fdc'*
 'foldcolumn' 'fdc'	number (default 0)
 			local to window
-			{not in Vi}
 			{not available when compiled without the |+folding|
 			feature}
 	When non-zero, a column with the specified width is shown at the side
@@ -3317,7 +3208,6 @@
 			*'foldenable'* *'fen'* *'nofoldenable'* *'nofen'*
 'foldenable' 'fen'	boolean (default on)
 			local to window
-			{not in Vi}
 			{not available when compiled without the |+folding|
 			feature}
 	When off, all folds are open.  This option can be used to quickly
@@ -3331,7 +3221,6 @@
 						*'foldexpr'* *'fde'*
 'foldexpr' 'fde'	string (default: "0")
 			local to window
-			{not in Vi}
 			{not available when compiled without the |+folding|
 			or |+eval| features}
 	The expression used for when 'foldmethod' is "expr".  It is evaluated
@@ -3348,7 +3237,6 @@
 						*'foldignore'* *'fdi'*
 'foldignore' 'fdi'	string (default: "#")
 			local to window
-			{not in Vi}
 			{not available when compiled without the |+folding|
 			feature}
 	Used only when 'foldmethod' is "indent".  Lines starting with
@@ -3359,7 +3247,6 @@
 						*'foldlevel'* *'fdl'*
 'foldlevel' 'fdl'	number (default: 0)
 			local to window
-			{not in Vi}
 			{not available when compiled without the |+folding|
 			feature}
 	Sets the fold level: Folds with a higher level will be closed.
@@ -3371,7 +3258,6 @@
 						*'foldlevelstart'* *'fdls'*
 'foldlevelstart' 'fdls'	number (default: -1)
 			global
-			{not in Vi}
 			{not available when compiled without the |+folding|
 			feature}
 	Sets 'foldlevel' when starting to edit another buffer in a window.
@@ -3387,7 +3273,6 @@
 						*'foldmarker'* *'fmr'* *E536*
 'foldmarker' 'fmr'	string (default: "{{{,}}}")
 			local to window
-			{not in Vi}
 			{not available when compiled without the |+folding|
 			feature}
 	The start and end marker used when 'foldmethod' is "marker".  There
@@ -3398,7 +3283,6 @@
 						*'foldmethod'* *'fdm'*
 'foldmethod' 'fdm'	string (default: "manual")
 			local to window
-			{not in Vi}
 			{not available when compiled without the |+folding|
 			feature}
 	The kind of folding used for the current window.  Possible values:
@@ -3412,7 +3296,6 @@
 						*'foldminlines'* *'fml'*
 'foldminlines' 'fml'	number (default: 1)
 			local to window
-			{not in Vi}
 			{not available when compiled without the |+folding|
 			feature}
 	Sets the number of screen lines above which a fold can be displayed
@@ -3426,7 +3309,6 @@
 						*'foldnestmax'* *'fdn'*
 'foldnestmax' 'fdn'	number (default: 20)
 			local to window
-			{not in Vi}
 			{not available when compiled without the |+folding|
 			feature}
 	Sets the maximum nesting of folds for the "indent" and "syntax"
@@ -3437,7 +3319,6 @@
 'foldopen' 'fdo'	string (default: "block,hor,mark,percent,quickfix,
 							     search,tag,undo")
 			global
-			{not in Vi}
 			{not available when compiled without the |+folding|
 			feature}
 	Specifies for which type of commands folds will be opened, if the
@@ -3474,7 +3355,6 @@
 						*'foldtext'* *'fdt'*
 'foldtext' 'fdt'	string (default: "foldtext()")
 			local to window
-			{not in Vi}
 			{not available when compiled without the |+folding|
 			feature}
 	An expression which is used to specify the text displayed for a closed
@@ -3489,7 +3369,6 @@
 						*'formatexpr'* *'fex'*
 'formatexpr' 'fex'	string (default "")
 			local to buffer
-			{not in Vi}
 			{not available when compiled without the |+eval|
 			feature}
 	Expression which is evaluated to format a range of lines for the |gq|
@@ -3522,23 +3401,9 @@
 	since changing the buffer text is not allowed.
 	NOTE: This option is set to "" when 'compatible' is set.
 
-					*'formatoptions'* *'fo'*
-'formatoptions' 'fo'	string (Vim default: "tcq", Vi default: "vt")
-			local to buffer
-			{not in Vi}
-	This is a sequence of letters which describes how automatic
-	formatting is to be done.  See |fo-table|.  When the 'paste' option is
-	on, no formatting is done (like 'formatoptions' is empty).  Commas can
-	be inserted for readability.
-	To avoid problems with flags that are added in the future, use the
-	"+=" and "-=" feature of ":set" |add-option-flags|.
-	NOTE: This option is set to the Vi default value when 'compatible' is
-	set and to the Vim default value when 'compatible' is reset.
-
 					*'formatlistpat'* *'flp'*
 'formatlistpat' 'flp'	string (default: "^\s*\d\+[\]:.)}\t ]\s*")
 			local to buffer
-			{not in Vi}
 	A pattern that is used to recognize a list header.  This is used for
 	the "n" flag in 'formatoptions'.
 	The pattern must match exactly the text that will be the indent for
@@ -3549,10 +3414,21 @@
 	The default recognizes a number, followed by an optional punctuation
 	character and white space.
 
+					*'formatoptions'* *'fo'*
+'formatoptions' 'fo'	string (Vim default: "tcq", Vi default: "vt")
+			local to buffer
+	This is a sequence of letters which describes how automatic
+	formatting is to be done.  See |fo-table|.  When the 'paste' option is
+	on, no formatting is done (like 'formatoptions' is empty).  Commas can
+	be inserted for readability.
+	To avoid problems with flags that are added in the future, use the
+	"+=" and "-=" feature of ":set" |add-option-flags|.
+	NOTE: This option is set to the Vi default value when 'compatible' is
+	set and to the Vim default value when 'compatible' is reset.
+
 						*'formatprg'* *'fp'*
 'formatprg' 'fp'	string (default "")
 			global or local to buffer |global-local|
-			{not in Vi}
 	The name of an external program that will be used to format the lines
 	selected with the |gq| operator.  The program must take the input on
 	stdin and produce the output on stdout.  The Unix program "fmt" is
@@ -3568,7 +3444,6 @@
 					*'fsync'* *'fs'* *'nofsync'* *'nofs'*
 'fsync' 'fs'		boolean	(default on)
 			global
-			{not in Vi}
 	When on, the library function fsync() will be called after writing a
 	file.  This will flush a file to disk, ensuring that it is safely
 	written even on filesystems which do metadata-only journaling.  This
@@ -3584,7 +3459,6 @@
 				   *'gdefault'* *'gd'* *'nogdefault'* *'nogd'*
 'gdefault' 'gd'		boolean	(default off)
 			global
-			{not in Vi}
 	When on, the ":substitute" flag 'g' is default on.  This means that
 	all matches in a line are substituted instead of one.  When a 'g' flag
 	is given to a ":substitute" command, this will toggle the substitution
@@ -3603,7 +3477,6 @@
 						*'grepformat'* *'gfm'*
 'grepformat' 'gfm'	string	(default "%f:%l:%m,%f:%l%m,%f  %l%m")
 			global
-			{not in Vi}
 	Format to recognize for the ":grep" command output.
 	This is a scanf-like string that uses the same format as the
 	'errorformat' option: see |errorformat|.
@@ -3614,7 +3487,6 @@
 					Win32: "findstr /n" or "grep -n",
 						      VMS: "SEARCH/NUMBERS ")
 			global or local to buffer |global-local|
-			{not in Vi}
 	Program to use for the |:grep| command.  This option may contain '%'
 	and '#' characters, which are expanded like when used in a command-
 	line.  The placeholder "$*" is allowed to specify where the arguments
@@ -3645,7 +3517,6 @@
 					"n-v-c:block,o:hor50,i-ci:hor15,
 					r-cr:hor30,sm:block")
 			global
-			{not in Vi}
 			{only available when compiled with GUI enabled, and
 			for MS-DOS and Win32 console}
 	This option tells Vim what the cursor should look like in different
@@ -3724,7 +3595,6 @@
 						   *E235* *E596*
 'guifont' 'gfn'		string	(default "")
 			global
-			{not in Vi}
 			{only available when compiled with GUI enabled}
 	This is a list of fonts which will be used for the GUI version of Vim.
 	In its simplest form the value is just one font name.
@@ -3734,7 +3604,6 @@
 					*E250* *E252* *E234* *E597* *E598*
 'guifontset' 'gfs'	string	(default "")
 			global
-			{not in Vi}
 			{only available when compiled with GUI enabled and
 			with the |+xfontset| feature}
 			{not available in the GTK+ GUI}
@@ -3745,7 +3614,6 @@
 				*'guifontwide'* *'gfw'* *E231* *E533* *E534*
 'guifontwide' 'gfw'	string	(default "")
 			global
-			{not in Vi}
 			{only available when compiled with GUI enabled}
 	When not empty, specifies a comma-separated list of fonts to be used
 	for double-width characters.  The first font that can be loaded is
@@ -3754,7 +3622,7 @@
 						*'guiheadroom'* *'ghr'*
 'guiheadroom' 'ghr'	number	(default 50)
 			global
-			{not in Vi} {only for GTK and X11 GUI}
+- 			{only for GTK and X11 GUI}
 	The number of pixels subtracted from the screen height when fitting
 	the GUI window on the screen.  Set this before the GUI is started,
 	e.g., in your |gvimrc| file.  When zero, the whole screen height will
@@ -3769,7 +3637,6 @@
 					 "aegimrLtT" (GTK, Motif and Athena),
 					 )
 			global
-			{not in Vi}
 			{only available when compiled with GUI enabled}
 	This option only has an effect in the GUI version of Vim.  It is a
 	sequence of letters which describes what components and options of the
@@ -3896,7 +3763,6 @@
 						*'guipty'* *'noguipty'*
 'guipty'		boolean	(default on)
 			global
-			{not in Vi}
 			{only available when compiled with GUI enabled}
 	Only in the GUI: If on, an attempt is made to open a pseudo-tty for
 	I/O to/from shell commands.  See |gui-pty|.
@@ -3904,7 +3770,6 @@
 						*'guitablabel'* *'gtl'*
 'guitablabel' 'gtl'	string	(default empty)
 			global
-			{not in Vi}
 			{only available when compiled with GUI enabled and
 			with the |+windows| feature}
 	When nonempty describes the text to use in a label of the GUI tab
@@ -3923,7 +3788,6 @@
 						*'guitabtooltip'* *'gtt'*
 'guitabtooltip' 'gtt'	string	(default empty)
 			global
-			{not in Vi}
 			{only available when compiled with GUI enabled and
 			with the |+windows| feature}
 	When nonempty describes the text to use in a tooltip for the GUI tab
@@ -3937,7 +3801,6 @@
 'helpfile' 'hf'		string	(default (MSDOS)  "$VIMRUNTIME\doc\help.txt"
 					 (others) "$VIMRUNTIME/doc/help.txt")
 			global
-			{not in Vi}
 	Name of the main help file.  All distributed help files should be
 	placed together in one directory.  Additionally, all "doc" directories
 	in 'runtimepath' will be used.
@@ -3951,7 +3814,6 @@
 						*'helpheight'* *'hh'*
 'helpheight' 'hh'	number	(default 20)
 			global
-			{not in Vi}
 			{not available when compiled without the |+windows|
 			feature}
 	Minimal initial height of the help window when it is opened with the
@@ -3965,7 +3827,6 @@
 			global
 			{only available when compiled with the |+multi_lang|
 			feature}
-			{not in Vi}
 	Comma separated list of languages.  Vim will use the first language
 	for which the desired help can be found.  The English help will always
 	be used as a last resort.  You can add "en" to prefer English over
@@ -3982,7 +3843,6 @@
 				     *'hidden'* *'hid'* *'nohidden'* *'nohid'*
 'hidden' 'hid'		boolean	(default off)
 			global
-			{not in Vi}
 	When off a buffer is unloaded when it is |abandon|ed.  When on a
 	buffer becomes hidden when it is |abandon|ed.  If the buffer is still
 	displayed in another window, it does not become hidden, of course.
@@ -4013,7 +3873,6 @@
 				     .:CursorLine,o:ColorColumn,q:QuickFixLine,
 				     z:StatusLineTerm,Z:StatusLineTermNC")
 			global
-			{not in Vi}
 	This option can be used to set highlighting mode for various
 	occasions.  It is a comma separated list of character pairs.  The
 	first character in a pair gives the occasion, the second the mode to
@@ -4087,7 +3946,6 @@
 'history' 'hi'		number	(Vim default: 50, Vi default: 0,
 						 set to 200 in |defaults.vim|)
 			global
-			{not in Vi}
 	A history of ":" commands, and a history of previous search patterns
 	is remembered.  This option decides how many entries may be stored in
 	each of these histories (see |cmdline-editing|).
@@ -4098,7 +3956,6 @@
 					 *'hkmap'* *'hk'* *'nohkmap'* *'nohk'*
 'hkmap' 'hk'		boolean (default off)
 			global
-			{not in Vi}
 			{only available when compiled with the |+rightleft|
 			feature}
 	When on, the keyboard is mapped for the Hebrew character set.
@@ -4109,7 +3966,6 @@
 				 *'hkmapp'* *'hkp'* *'nohkmapp'* *'nohkp'*
 'hkmapp' 'hkp'		boolean (default off)
 			global
-			{not in Vi}
 			{only available when compiled with the |+rightleft|
 			feature}
 	When on, phonetic keyboard mapping is used.  'hkmap' must also be on.
@@ -4120,7 +3976,6 @@
 				 *'hlsearch'* *'hls'* *'nohlsearch'* *'nohls'*
 'hlsearch' 'hls'	boolean	(default off)
 			global
-			{not in Vi}
 			{not available when compiled without the
 			|+extra_search| feature}
 	When there is a previous search pattern, highlight all its matches.
@@ -4145,7 +4000,6 @@
 						*'icon'* *'noicon'*
 'icon'			boolean	(default off, on when title can be restored)
 			global
-			{not in Vi}
 			{not available when compiled without the |+title|
 			feature}
 	When on, the icon text of the window will be set to the value of
@@ -4164,7 +4018,6 @@
 						*'iconstring'*
 'iconstring'		string	(default "")
 			global
-			{not in Vi}
 			{not available when compiled without the |+title|
 			feature}
 	When this option is not empty, it will be used for the icon text of
@@ -4191,7 +4044,6 @@
 						*'imactivatefunc'* *'imaf'*
 'imactivatefunc' 'imaf'	string (default "")
 			global
-			{not in Vi}
 	This option specifies a function that will be called to
 	activate or deactivate the Input Method.
 	It is not used in the GUI.
@@ -4210,7 +4062,6 @@
 						*'imactivatekey'* *'imak'*
 'imactivatekey' 'imak'	string (default "")
 			global
-			{not in Vi}
 			{only available when compiled with |+xim| and
 			|+GUI_GTK|}				*E599*
 	Specifies the key that your Input Method in X-Windows uses for
@@ -4242,7 +4093,6 @@
 				*'imcmdline'* *'imc'* *'noimcmdline'* *'noimc'*
 'imcmdline' 'imc'	boolean (default off)
 			global
-			{not in Vi}
 	When set the Input Method is always on when starting to edit a command
 	line, unless entering a search pattern (see 'imsearch' for that).
 	Setting this option is useful when your input method allows entering
@@ -4252,7 +4102,6 @@
 				*'imdisable'* *'imd'* *'noimdisable'* *'noimd'*
 'imdisable' 'imd'	boolean (default off, on for some systems (SGI))
 			global
-			{not in Vi}
 	When set the Input Method is never used.  This is useful to disable
 	the IM when it doesn't work properly.
 	Currently this option is on by default for SGI/IRIX machines.  This
@@ -4261,7 +4110,6 @@
 						*'iminsert'* *'imi'*
 'iminsert' 'imi'	number (default 0)
 			local to buffer
-			{not in Vi}
 	Specifies whether :lmap or an Input Method (IM) is to be used in
 	Insert mode.  Valid values:
 		0	:lmap is off and IM is off
@@ -4286,7 +4134,6 @@
 						*'imsearch'* *'ims'*
 'imsearch' 'ims'	number (default -1)
 			local to buffer
-			{not in Vi}
 	Specifies whether :lmap or an Input Method (IM) is to be used when
 	entering a search pattern.  Valid values:
 		-1	the value of 'iminsert' is used, makes it look like
@@ -4304,7 +4151,6 @@
 						*'imstatusfunc'* *'imsf'*
 'imstatusfunc' 'imsf'	string (default "")
 			global
-			{not in Vi}
 	This option specifies a function that is called to obtain the status
 	of Input Method.  It must return a positive number when IME is active.
 	It is not used in the GUI.
@@ -4321,7 +4167,6 @@
 						*'imstyle'* *'imst'*
 'imstyle' 'imst'	number (default 1)
 			global
-			{not in Vi}
 			{only available when compiled with |+xim| and
 			|+GUI_GTK|}
 	This option specifies the input style of Input Method:
@@ -4338,7 +4183,6 @@
 						*'include'* *'inc'*
 'include' 'inc'		string	(default "^\s*#\s*include")
 			global or local to buffer |global-local|
-			{not in Vi}
 			{not available when compiled without the
 			|+find_in_path| feature}
 	Pattern to be used to find an include command.  It is a search
@@ -4356,7 +4200,6 @@
 						*'includeexpr'* *'inex'*
 'includeexpr' 'inex'	string	(default "")
 			local to buffer
-			{not in Vi}
 			{not available when compiled without the
 			|+find_in_path| or |+eval| features}
 	Expression to be used to transform the string found with the 'include'
@@ -4378,7 +4221,6 @@
 'incsearch' 'is'	boolean	(default off, set in |defaults.vim| if the
 						+reltime feature is supported)
 			global
-			{not in Vi}
 			{not available when compiled without the
 			|+extra_search| features}
 	While typing a search command, show where the pattern, as it was typed
@@ -4429,7 +4271,6 @@
 						*'indentexpr'* *'inde'*
 'indentexpr' 'inde'	string	(default "")
 			local to buffer
-			{not in Vi}
 			{not available when compiled without the |+cindent|
 			or |+eval| features}
 	Expression which is evaluated to obtain the proper indent for a line.
@@ -4467,7 +4308,6 @@
 						*'indentkeys'* *'indk'*
 'indentkeys' 'indk'	string	(default "0{,0},0),0],:,0#,!^F,o,O,e")
 			local to buffer
-			{not in Vi}
 			{not available when compiled without the |+cindent|
 			feature}
 	A list of keys that, when typed in Insert mode, cause reindenting of
@@ -4478,7 +4318,6 @@
 			*'infercase'* *'inf'* *'noinfercase'* *'noinf'*
 'infercase' 'inf'	boolean	(default off)
 			local to buffer
-			{not in Vi}
 	When doing keyword completion in insert mode |ins-completion|, and
 	'ignorecase' is also on, the case of the match is adjusted depending
 	on the typed text.  If the typed text contains a lowercase letter
@@ -4491,7 +4330,6 @@
 			*'insertmode'* *'im'* *'noinsertmode'* *'noim'*
 'insertmode' 'im'	boolean	(default off)
 			global
-			{not in Vi}
 	Makes Vim work in a way that Insert mode is the default mode.  Useful
 	if you want to use Vim as a modeless editor.  Used for |evim|.
 	These Insert mode commands will be useful:
@@ -4524,7 +4362,6 @@
 			    for OS/390: "@,240-249,/,.,-,_,+,,,#,$,%,~,="
 			    otherwise: "@,48-57,/,.,-,_,+,,,#,$,%,~,=")
 			global
-			{not in Vi}
 	The characters specified by this option are included in file names and
 	path names.  Filenames are used for commands like "gf", "[i" and in
 	the tags file.  It is also used for "\f" in a |pattern|.
@@ -4576,7 +4413,6 @@
 					   "@,48-57,_,128-167,224-235"
 				otherwise: "@,48-57,_,192-255")
 			global
-			{not in Vi}
 	The characters given by this option are included in identifiers.
 	Identifiers are used in recognizing environment variables and after a
 	match of the 'define' option.  It is also used for "\i" in a
@@ -4592,7 +4428,6 @@
 				   otherwise:  "@,48-57,_,192-255"
 				Vi default: "@,48-57,_")
 			local to buffer
-			{not in Vi}
 	Keywords are used in searching and recognizing with many commands:
 	"w", "*", "[i", etc.  It is also used for "\k" in a |pattern|.  See
 	'isfname' for a description of the format of this option.  For '@'
@@ -4611,7 +4446,6 @@
 'isprint' 'isp'	string	(default for MS-DOS, Win32, OS/2 and Macintosh:
 				"@,~-255"; otherwise: "@,161-255")
 			global
-			{not in Vi}
 	The characters given by this option are displayed directly on the
 	screen.  It is also used for "\p" in a |pattern|.  The characters from
 	space (ASCII 32) to '~' (ASCII 126) are always displayed directly,
@@ -4642,7 +4476,6 @@
 			*'joinspaces'* *'js'* *'nojoinspaces'* *'nojs'*
 'joinspaces' 'js'	boolean	(default on)
 			global
-			{not in Vi}
 	Insert two spaces after a '.', '?' and '!' with a join command.
 	When 'cpoptions' includes the 'j' flag, only do this after a '.'.
 	Otherwise only one space is inserted.
@@ -4651,7 +4484,6 @@
 							*'key'*
 'key'			string	(default "")
 			local to buffer
-			{not in Vi}
 			{only available when compiled with the |+cryptv|
 			feature}
 	The key that is used for encrypting and decrypting the current buffer.
@@ -4669,7 +4501,6 @@
 					*'keymap'* *'kmp'* *E544*
 'keymap' 'kmp'		string	(default "")
 			local to buffer
-			{not in Vi}
 			{only available when compiled with the |+keymap|
 			feature}
 	Name of a keyboard mapping.  See |mbyte-keymap|.
@@ -4681,7 +4512,6 @@
 					*'keymodel'* *'km'*
 'keymodel' 'km'		string	(default "")
 			global
-			{not in Vi}
 	List of comma separated words, which enable special things that keys
 	can do.  These values can be used:
 	   startsel	Using a shifted special key starts selection (either
@@ -4696,7 +4526,6 @@
 'keywordprg' 'kp'	string	(default "man" or "man -s",  DOS: ":help",
 								  VMS: "help")
 			global or local to buffer |global-local|
-			{not in Vi}
 	Program to use for the |K| command.  Environment variables are
 	expanded |:set_env|.  ":help" may be used to access the Vim internal
 	help.  (Note that previously setting the global option to the empty
@@ -4715,7 +4544,6 @@
 					*'langmap'* *'lmap'* *E357* *E358*
 'langmap' 'lmap'	string	(default "")
 			global
-			{not in Vi}
 			{only available when compiled with the |+langmap|
 			feature}
 	This option allows switching your keyboard into a special language
@@ -4761,7 +4589,6 @@
 					*'langmenu'* *'lm'*
 'langmenu' 'lm'		string	(default "")
 			global
-			{not in Vi}
 			{only available when compiled with the |+menu| and
 			|+multi_lang| features}
 	Language to use for menu translation.  Tells which file is loaded
@@ -4786,7 +4613,6 @@
 			*'langnoremap'* *'lnr'* *'nolangnoremap'* *'nolnr'*
 'langnoremap' 'lnr'	boolean (default off, set in |defaults.vim|)
 			global
-			{not in Vi}
 			{only available when compiled with the |+langmap|
 			feature}
 	This is just like 'langremap' but with the value inverted.  It only
@@ -4796,7 +4622,6 @@
 			*'langremap'* *'lrm'* *'nolangremap'* *'nolrm'*
 'langremap' 'lrm'	boolean (default on, reset in |defaults.vim|)
 			global
-			{not in Vi}
 			{only available when compiled with the |+langmap|
 			feature}
 	When off, setting 'langmap' does not apply to characters resulting from
@@ -4808,7 +4633,6 @@
 					*'laststatus'* *'ls'*
 'laststatus' 'ls'	number	(default 1)
 			global
-			{not in Vi}
 	The value of this option influences when the last window will have a
 	status line:
 		0: never
@@ -4820,7 +4644,6 @@
 			*'lazyredraw'* *'lz'* *'nolazyredraw'* *'nolz'*
 'lazyredraw' 'lz'	boolean	(default off)
 			global
-			{not in Vi}
 	When this option is set, the screen will not be redrawn while
 	executing macros, registers and other commands that have not been
 	typed.  Also, updating the window title is postponed.  To force an
@@ -4829,7 +4652,6 @@
 			*'linebreak'* *'lbr'* *'nolinebreak'* *'nolbr'*
 'linebreak' 'lbr'	boolean	(default off)
 			local to window
-			{not in Vi}
 			{not available when compiled without the |+linebreak|
 			feature}
 	If on, Vim will wrap long lines at a character in 'breakat' rather
@@ -4862,7 +4684,6 @@
 						*'linespace'* *'lsp'*
 'linespace' 'lsp'	number	(default 0, 1 for Win32 GUI)
 			global
-			{not in Vi}
 			{only in the GUI}
 	Number of pixel lines inserted between characters.  Useful if the font
 	uses the full character cell height, making lines touch each other.
@@ -4891,7 +4712,6 @@
 						*'lispwords'* *'lw'*
 'lispwords' 'lw'	string	(default is very long)
 			global or local to buffer |global-local|
-			{not in Vi}
 			{not available when compiled without the |+lispindent|
 			feature}
 	Comma separated list of words that influence the Lisp indenting.
@@ -4916,7 +4736,6 @@
 						*'listchars'* *'lcs'*
 'listchars' 'lcs'	string	(default "eol:$")
 			global
-			{not in Vi}
 	Strings to use in 'list' mode and for the |:list| command.  It is a
 	comma separated list of string settings.
 							*lcs-eol*
@@ -4982,7 +4801,6 @@
 			*'lpl'* *'nolpl'* *'loadplugins'* *'noloadplugins'*
 'loadplugins' 'lpl'	boolean	(default on)
 			global
-			{not in Vi}
 	When on the plugin scripts are loaded when starting up |load-plugins|.
 	This option can be reset in your |vimrc| file to disable the loading
 	of plugins.
@@ -4992,7 +4810,6 @@
 						*'luadll'*
 'luadll'		string	(default depends on the build)
 			global
-			{not in Vi}
 			{only available when compiled with the |+lua/dyn|
 			feature}
 	Specifies the name of the Lua shared library. The default is
@@ -5031,7 +4848,6 @@
 						*'makeef'* *'mef'*
 'makeef' 'mef'		string	(default: "")
 			global
-			{not in Vi}
 			{not available when compiled without the |+quickfix|
 			feature}
 	Name of the errorfile for the |:make| command (see |:make_makeprg|)
@@ -5049,7 +4865,6 @@
 					*'makeencoding'* *'menc'*
 'makeencoding' 'menc'	string	(default "")
 			global or local to buffer |global-local|
-			{not in Vi}
 	Encoding used for reading the output of external commands.  When empty,
 	encoding is not converted.
 	This is used for `:make`, `:lmake`, `:grep`, `:lgrep`, `:grepadd`,
@@ -5066,7 +4881,6 @@
 						*'makeprg'* *'mp'*
 'makeprg' 'mp'		string	(default "make", VMS: "MMS")
 			global or local to buffer |global-local|
-			{not in Vi}
 	Program to use for the ":make" command.  See |:make_makeprg|.
 	This option may contain '%' and '#' characters (see  |:_%| and |:_#|),
 	which are expanded to the current and alternate file name.  Use |::S|
@@ -5086,7 +4900,6 @@
 						*'matchpairs'* *'mps'*
 'matchpairs' 'mps'	string	(default "(:),{:},[:]")
 			local to buffer
-			{not in Vi}
 	Characters that form pairs.  The |%| command jumps from one to the
 	other.
 	Only character pairs are allowed that are different, thus you cannot
@@ -5106,7 +4919,7 @@
 						*'matchtime'* *'mat'*
 'matchtime' 'mat'	number	(default 5)
 			global
-			{not in Vi}{in Nvi}
+			{in Nvi}
 	Tenths of a second to show the matching paren, when 'showmatch' is
 	set.  Note that this is not in milliseconds, like other options that
 	set a time.  This is to be compatible with Nvi.
@@ -5114,7 +4927,6 @@
 						*'maxcombine'* *'mco'*
 'maxcombine' 'mco'	number (default 2)
 			global
-			{not in Vi}
 	The maximum number of combining characters supported for displaying.
 	Only used when 'encoding' is "utf-8".
 	The default is OK for most languages.  Hebrew may require 4.
@@ -5126,7 +4938,6 @@
 						*'maxfuncdepth'* *'mfd'*
 'maxfuncdepth' 'mfd'	number	(default 100)
 			global
-			{not in Vi}
 			{not available when compiled without the |+eval|
 			feature}
 	Maximum depth of function calls for user functions.  This normally
@@ -5140,7 +4951,6 @@
 						*'maxmapdepth'* *'mmd'* *E223*
 'maxmapdepth' 'mmd'	number	(default 1000)
 			global
-			{not in Vi}
 	Maximum number of times a mapping is done without resulting in a
 	character to be used.  This normally catches endless mappings, like
 	":map x y" with ":map y x".  It still does not catch ":map g wg",
@@ -5152,7 +4962,6 @@
 				 dependent) or half the amount of memory
 				 available)
 			global
-			{not in Vi}
 	Maximum amount of memory (in Kbyte) to use for one buffer.  When this
 	limit is reached allocating extra memory for a buffer will cause
 	other memory to be freed.
@@ -5164,7 +4973,6 @@
 						*'maxmempattern'* *'mmp'*
 'maxmempattern' 'mmp'	number	(default 1000)
 			global
-			{not in Vi}
 	Maximum amount of memory (in Kbyte) to use for pattern matching.
 	The maximum value is about 2000000.  Use this to work without a limit.
 							*E363*
@@ -5183,7 +4991,6 @@
 				 dependent) or half the amount of memory
 				 available)
 			global
-			{not in Vi}
 	Maximum amount of memory in Kbyte to use for all buffers together.
 	The maximum usable value is about 2000000 (2 Gbyte).  Use this to work
 	without a limit.
@@ -5198,7 +5005,6 @@
 						*'menuitems'* *'mis'*
 'menuitems' 'mis'	number	(default 25)
 			global
-			{not in Vi}
 			{not available when compiled without the |+menu|
 			feature}
 	Maximum number of items to use in a menu.  Used for menus that are
@@ -5208,7 +5014,6 @@
 						*'mkspellmem'* *'msm'*
 'mkspellmem' 'msm'	string	(default "460000,2000,500")
 			global
-			{not in Vi}
 			{not available when compiled without the |+syntax|
 			feature}
 	Parameters for |:mkspell|.  This tunes when to start compressing the
@@ -5251,7 +5056,6 @@
 						*'modelines'* *'mls'*
 'modelines' 'mls'	number	(default 5)
 			global
-			{not in Vi}
 	If 'modeline' is on 'modelines' gives the number of lines that is
 	checked for set commands.  If 'modeline' is off or 'modelines' is zero
 	no lines are checked.  See |modeline|.
@@ -5261,7 +5065,7 @@
 				*'modifiable'* *'ma'* *'nomodifiable'* *'noma'*
 'modifiable' 'ma'	boolean	(default on)
 			local to buffer
-			{not in Vi}		*E21*
+			*E21*
 	When off the buffer contents cannot be changed.  The 'fileformat' and
 	'fileencoding' options also can't be changed.
 	Can be reset on startup with the |-M| command line argument.
@@ -5269,7 +5073,6 @@
 				*'modified'* *'mod'* *'nomodified'* *'nomod'*
 'modified' 'mod'	boolean	(default off)
 			local to buffer
-			{not in Vi}
 	When on, the buffer is considered to be modified.  This option is set
 	when:
 	1. A change was made to the text since it was last written.  Using the
@@ -5295,7 +5098,6 @@
 						*'more'* *'nomore'*
 'more'			boolean	(Vim default: on, Vi default: off)
 			global
-			{not in Vi}
 	When on, listings pause when the whole screen is filled.  You will get
 	the |more-prompt|.  When this option is off there are no pauses, the
 	listing continues until finished.
@@ -5306,7 +5108,6 @@
 'mouse'			string	(default "", "a" for GUI, MS-DOS and Win32,
 						 set to "a" in |defaults.vim|)
 			global
-			{not in Vi}
 	Enable the use of the mouse.  Only works for certain terminals
 	(xterm, MS-DOS, Win32 |win32-mouse|, QNX pterm, *BSD console with
 	sysmouse and Linux console with gpm).  For using the mouse in the
@@ -5334,7 +5135,6 @@
 			*'mousefocus'* *'mousef'* *'nomousefocus'* *'nomousef'*
 'mousefocus' 'mousef'	boolean	(default off)
 			global
-			{not in Vi}
 			{only works in the GUI}
 	The window that the mouse pointer is on is automatically activated.
 	When changing the window layout or window focus in another way, the
@@ -5345,7 +5145,6 @@
 			*'mousehide'* *'mh'* *'nomousehide'* *'nomh'*
 'mousehide' 'mh'	boolean	(default on)
 			global
-			{not in Vi}
 			{only works in the GUI}
 	When on, the mouse pointer is hidden when characters are typed.
 	The mouse pointer is restored when the mouse is moved.
@@ -5353,7 +5152,6 @@
 						*'mousemodel'* *'mousem'*
 'mousemodel' 'mousem'	string	(default "extend", "popup" for MS-DOS and Win32)
 			global
-			{not in Vi}
 	Sets the model to use for the mouse.  The name mostly specifies what
 	the right mouse button is used for:
 	   extend	Right mouse button extends a selection.  This works
@@ -5393,7 +5191,6 @@
 					vs:leftright,vd:lrsizing,m:no,
 					ml:up-arrow,v:rightup-arrow")
 			global
-			{not in Vi}
 			{only available when compiled with the |+mouseshape|
 			feature}
 	This option tells Vim what the mouse pointer should look like in
@@ -5458,7 +5255,6 @@
 						*'mousetime'* *'mouset'*
 'mousetime' 'mouset'	number	(default 500)
 			global
-			{not in Vi}
 	Only for GUI, MS-DOS, Win32 and Unix with xterm.  Defines the maximum
 	time in msec between two mouse clicks for the second click to be
 	recognized as a multi click.
@@ -5466,7 +5262,6 @@
 						*'mzschemedll'*
 'mzschemedll'		string	(default depends on the build)
 			global
-			{not in Vi}
 			{only available when compiled with the |+mzscheme/dyn|
 			feature}
 	Specifies the name of the MzScheme shared library. The default is
@@ -5480,7 +5275,6 @@
 						*'mzschemegcdll'*
 'mzschemegcdll'		string	(default depends on the build)
 			global
-			{not in Vi}
 			{only available when compiled with the |+mzscheme/dyn|
 			feature}
 	Specifies the name of the MzScheme GC shared library. The default is
@@ -5493,7 +5287,6 @@
 						    *'mzquantum'* *'mzq'*
 'mzquantum' 'mzq'	number	(default 100)
 			global
-			{not in Vi}
 			{not available when compiled without the |+mzscheme|
 			feature}
 	The number of milliseconds between polls for MzScheme threads.
@@ -5505,7 +5298,6 @@
 'nrformats' 'nf'	string	(default "bin,octal,hex",
 					   set to "bin,hex" in |defaults.vim|)
 			local to buffer
-			{not in Vi}
 	This defines what bases Vim will consider for numbers when using the
 	CTRL-A and CTRL-X commands for adding to and subtracting from a number
 	respectively; see |CTRL-A| for more info on these commands.
@@ -5552,7 +5344,6 @@
 						*'numberwidth'* *'nuw'*
 'numberwidth' 'nuw'	number	(Vim default: 4  Vi default: 8)
 			local to window
-			{not in Vi}
 			{only available when compiled with the |+linebreak|
 			feature}
 	Minimal number of columns to use for the line number.  Only relevant
@@ -5571,7 +5362,6 @@
 						*'omnifunc'* *'ofu'*
 'omnifunc' 'ofu'	string	(default: empty)
 			local to buffer
-			{not in Vi}
 			{not available when compiled without the |+eval|
 			or |+insert_expand| features}
 	This option specifies a function to be used for Insert mode omni
@@ -5587,7 +5377,6 @@
 			    *'opendevice'* *'odev'* *'noopendevice'* *'noodev'*
 'opendevice' 'odev'	boolean	(default off)
 			global
-			{not in Vi}
 			{only for MS-DOS, MS-Windows and OS/2}
 	Enable reading and writing from devices.  This may get Vim stuck on a
 	device that can be opened but doesn't actually do the I/O.  Therefore
@@ -5599,7 +5388,6 @@
 						*'operatorfunc'* *'opfunc'*
 'operatorfunc' 'opfunc'	string	(default: empty)
 			global
-			{not in Vi}
 	This option specifies a function to be called by the |g@| operator.
 	See |:map-operator| for more info and an example.
 
@@ -5610,13 +5398,11 @@
 					*'osfiletype'* *'oft'*
 'osfiletype' 'oft'	string (default: "")
 			local to buffer
-			{not in Vi}
 	This option was supported on RISC OS, which has been removed.
 
 
 				*'packpath'* *'pp'*
 'packpath' 'pp'		string	(default: see 'runtimepath')
-			{not in Vi}
 	Directories used to find packages.  See |packages|.
 
 
@@ -5629,7 +5415,6 @@
 						*'paste'* *'nopaste'*
 'paste'			boolean	(default off)
 			global
-			{not in Vi}
 	Put Vim in Paste mode.  This is useful if you want to cut or copy
 	some text from one window and paste it in Vim.  This will avoid
 	unexpected effects.
@@ -5673,7 +5458,6 @@
 						*'pastetoggle'* *'pt'*
 'pastetoggle' 'pt'	string	(default "")
 			global
-			{not in Vi}
 	When non-empty, specifies the key sequence that toggles the 'paste'
 	option.  This is like specifying a mapping: >
 	    :map {keys} :set invpaste<CR>
@@ -5698,7 +5482,6 @@
 						*'pex'* *'patchexpr'*
 'patchexpr' 'pex'	string	(default "")
 			global
-			{not in Vi}
 			{not available when compiled without the |+diff|
 			feature}
 	Expression which is evaluated to apply a patch to a file and generate
@@ -5707,7 +5490,6 @@
 					*'patchmode'* *'pm'* *E205* *E206*
 'patchmode' 'pm'	string	(default "")
 			global
-			{not in Vi}
 	When non-empty the oldest version of a file is kept.  This can be used
 	to keep the original version of a file if you are changing files in a
 	source distribution.  Only the first time that a file is written a
@@ -5730,7 +5512,6 @@
 				   on OS/2:	  ".,/emx/include,,"
 				   other systems: ".,,")
 			global or local to buffer |global-local|
-			{not in Vi}
 	This is a list of directories which will be searched when using the
 	|gf|, [f, ]f, ^Wf, |:find|, |:sfind|, |:tabfind| and other commands,
 	provided that the file being searched for has a relative path (not
@@ -5783,7 +5564,6 @@
 						*'perldll'*
 'perldll'		string	(default depends on the build)
 			global
-			{not in Vi}
 			{only available when compiled with the |+perl/dyn|
 			feature}
 	Specifies the name of the Perl shared library. The default is
@@ -5795,7 +5575,6 @@
 			*'preserveindent'* *'pi'* *'nopreserveindent'* *'nopi'*
 'preserveindent' 'pi'	boolean	(default off)
 			local to buffer
-			{not in Vi}
 	When changing the indent of the current line, preserve as much of the
 	indent structure as possible.  Normally the indent is replaced by a
 	series of tabs followed by spaces as required (unless |'expandtab'| is
@@ -5813,7 +5592,6 @@
 					*'previewheight'* *'pvh'*
 'previewheight' 'pvh'	number (default 12)
 			global
-			{not in Vi}
 			{not available when compiled without the |+windows| or
 			|+quickfix| features}
 	Default height for a preview window.  Used for |:ptag| and associated
@@ -5823,7 +5601,6 @@
 					*'pvw'* *'nopvw'* *E590*
 'previewwindow' 'pvw'	boolean (default off)
 			local to window
-			{not in Vi}
 			{not available when compiled without the |+windows| or
 			|+quickfix| features}
 	Identifies the preview window.  Only one window can have this option
@@ -5833,7 +5610,6 @@
 						*'printdevice'* *'pdev'*
 'printdevice' 'pdev'	string	(default empty)
 			global
-			{not in Vi}
 			{only available when compiled with the |+printer|
 			feature}
 	The name of the printer to be used for |:hardcopy|.
@@ -5844,7 +5620,6 @@
 						*'printencoding'* *'penc'*
 'printencoding' 'penc'	string	(default empty, except for some systems)
 			global
-			{not in Vi}
 			{only available when compiled with the |+printer|
 			and |+postscript| features}
 	Sets the character encoding used when printing.
@@ -5853,7 +5628,6 @@
 						*'printexpr'* *'pexpr'*
 'printexpr' 'pexpr'	string	(default: see below)
 			global
-			{not in Vi}
 			{only available when compiled with the |+printer|
 			and |+postscript| features}
 	Expression used to print the PostScript produced with |:hardcopy|.
@@ -5864,7 +5638,6 @@
 						*'printfont'* *'pfn'*
 'printfont' 'pfn'	string	(default "courier")
 			global
-			{not in Vi}
 			{only available when compiled with the |+printer|
 			feature}
 	The name of the font that will be used for |:hardcopy|.
@@ -5873,7 +5646,6 @@
 						*'printheader'* *'pheader'*
 'printheader' 'pheader'  string  (default "%<%f%h%m%=Page %N")
 			global
-			{not in Vi}
 			{only available when compiled with the |+printer|
 			feature}
 	The format of the header produced in |:hardcopy| output.
@@ -5882,7 +5654,6 @@
 						*'printmbcharset'* *'pmbcs'*
 'printmbcharset' 'pmbcs'  string (default "")
 			global
-			{not in Vi}
 			{only available when compiled with the |+printer|
 			and |+postscript| features}
 	The CJK character set to be used for CJK output from |:hardcopy|.
@@ -5891,7 +5662,6 @@
 						*'printmbfont'* *'pmbfn'*
 'printmbfont' 'pmbfn'	string (default "")
 			global
-			{not in Vi}
 			{only available when compiled with the |+printer|
 			and |+postscript| features}
 	List of font names to be used for CJK output from |:hardcopy|.
@@ -5900,7 +5670,6 @@
 						*'printoptions'* *'popt'*
 'printoptions' 'popt' string (default "")
 			global
-			{not in Vi}
 			{only available when compiled with |+printer| feature}
 	List of items that control the format of the output of |:hardcopy|.
 	See |popt-option|.
@@ -5915,7 +5684,6 @@
 			global
 			{not available when compiled without the
 			|+insert_expand| feature}
-			{not in Vi}
 	Determines the maximum number of items to show in the popup menu for
 	Insert mode completion.  When zero as much space as available is used.
 	|ins-completion-menu|.
@@ -5925,14 +5693,12 @@
 			global
 			{not available when compiled without the
 			|+insert_expand| feature}
-			{not in Vi}
 	Determines the minimum width to use for the popup menu for Insert mode
 	completion.  |ins-completion-menu|.
 
 						*'pythondll'*
 'pythondll'		string	(default depends on the build)
 			global
-			{not in Vi}
 			{only available when compiled with the |+python/dyn|
 			feature}
 	Specifies the name of the Python 2.x shared library. The default is
@@ -5944,7 +5710,6 @@
 						*'pythonhome'*
 'pythonhome'		string	(default "")
 			global
-			{not in Vi}
 			{only available when compiled with the |+python/dyn|
 			feature}
 	Specifies the name of the Python 2.x home directory. When 'pythonhome'
@@ -5958,7 +5723,6 @@
 						*'pythonthreedll'*
 'pythonthreedll'	string	(default depends on the build)
 			global
-			{not in Vi}
 			{only available when compiled with the |+python3/dyn|
 			feature}
 	Specifies the name of the Python 3 shared library. The default is
@@ -5970,7 +5734,6 @@
 						*'pythonthreehome'*
 'pythonthreehome'	string	(default "")
 			global
-			{not in Vi}
 			{only available when compiled with the |+python3/dyn|
 			feature}
 	Specifies the name of the Python 3 home directory. When
@@ -5984,7 +5747,6 @@
 						*'pyxversion'* *'pyx'*
 'pyxversion' 'pyx'	number	(default depends on the build)
 			global
-			{not in Vi}
 			{only available when compiled with the |+python| or
 			the |+python3| feature}
 	Specifies the python version used for pyx* functions and commands
@@ -6012,7 +5774,6 @@
 						*'quoteescape'* *'qe'*
 'quoteescape' 'qe'	string	(default "\")
 			local to buffer
-			{not in Vi}
 	The characters that are used to escape quotes in a string.  Used for
 	objects like a', a" and a` |a'|.
 	When one of the characters in this option is found inside a string,
@@ -6027,14 +5788,13 @@
 	in read-only mode ("vim -R") or when the executable is called "view".
 	When using ":w!" the 'readonly' option is reset for the current
 	buffer, unless the 'Z' flag is in 'cpoptions'.
-	{not in Vi:}  When using the ":view" command the 'readonly' option is
-	set for the newly edited buffer.
+	When using the ":view" command the 'readonly' option is set for the
+	newly edited buffer.
 	See 'modifiable' for disallowing changes to the buffer.
 
 						*'redrawtime'* *'rdt'*
 'redrawtime' 'rdt'	number	(default 2000)
 			global
-			{not in Vi}
 			{only available when compiled with the |+reltime|
 			feature}
 	The time in milliseconds for redrawing the display.  This applies to
@@ -6050,7 +5810,6 @@
 						*'regexpengine'* *'re'*
 'regexpengine' 're'	number	(default 0)
 			global
-			{not in Vi}
 	This selects the default regexp engine. |two-engines|
 	The possible values are:
 		0	automatic selection
@@ -6067,7 +5826,6 @@
 		*'relativenumber'* *'rnu'* *'norelativenumber'* *'nornu'*
 'relativenumber' 'rnu'	boolean	(default off)
 			local to window
-			{not in Vi}
 	Show the line number relative to the line with the cursor in front of
 	each line. Relative line numbers help you use the |count| you can
 	precede some vertical motion commands (e.g. j k + -) with, without
@@ -6099,7 +5857,6 @@
                                                *'renderoptions'* *'rop'*
 'renderoptions' 'rop'	string  (default: empty)
 			global
-			{not in Vi}
 			{only available when compiled with GUI and DIRECTX on
 			MS-Windows}
 	Select a text renderer and set its options.  The options depend on the
@@ -6206,7 +5963,7 @@
 			 *'restorescreen'* *'rs'* *'norestorescreen'* *'nors'*
 'restorescreen' 'rs'	boolean	(default on)
 			global
-			{not in Vi}  {only in Windows 95/NT console version}
+			{only in Windows 95/NT console version}
 	When set, the screen contents is restored when exiting Vim.  This also
 	happens when executing external commands.
 
@@ -6220,7 +5977,6 @@
 				*'revins'* *'ri'* *'norevins'* *'nori'*
 'revins' 'ri'		boolean	(default off)
 			global
-			{not in Vi}
 			{only available when compiled with the |+rightleft|
 			feature}
 	Inserting characters in Insert mode will work backwards.  See "typing
@@ -6233,7 +5989,6 @@
 				 *'rightleft'* *'rl'* *'norightleft'* *'norl'*
 'rightleft' 'rl'	boolean	(default off)
 			local to window
-			{not in Vi}
 			{only available when compiled with the |+rightleft|
 			feature}
 	When on, display orientation becomes right-to-left, i.e., characters
@@ -6249,7 +6004,6 @@
 			*'rightleftcmd'* *'rlc'*
 'rightleftcmd' 'rlc'	string	(default "search")
 			local to window
-			{not in Vi}
 			{only available when compiled with the |+rightleft|
 			feature}
 	Each word in this option enables the command line editing to work in
@@ -6263,7 +6017,6 @@
 						*'rubydll'*
 'rubydll'		string	(default: depends on the build)
 			global
-			{not in Vi}
 			{only available when compiled with the |+ruby/dyn|
 			feature}
 	Specifies the name of the Ruby shared library. The default is
@@ -6275,7 +6028,6 @@
 					 *'ruler'* *'ru'* *'noruler'* *'noru'*
 'ruler' 'ru'		boolean	(default off, set in |defaults.vim|)
 			global
-			{not in Vi}
 			{not available when compiled without the
 			|+cmdline_info| feature}
 	Show the line and column number of the cursor position, separated by a
@@ -6305,7 +6057,6 @@
 						*'rulerformat'* *'ruf'*
 'rulerformat' 'ruf'	string	(default empty)
 			global
-			{not in Vi}
 			{not available when compiled without the |+statusline|
 			feature}
 	When this option is not empty, it determines the content of the ruler
@@ -6345,7 +6096,6 @@
 						$VIM/vimfiles/after,
 						sys$login:vimfiles/after")
 			global
-			{not in Vi}
 	This is a list of directories which will be searched for runtime
 	files:
 	  filetype.vim	filetypes by file name |new-filetype|
@@ -6420,7 +6170,6 @@
 			*'scrollbind'* *'scb'* *'noscrollbind'* *'noscb'*
 'scrollbind' 'scb'	boolean  (default off)
 			local to window
-			{not in Vi}
 	See also |scroll-binding|.  When this option is set, the current
 	window scrolls as other scrollbind windows (windows that also have
 	this option set) scroll.  This option is useful for viewing the
@@ -6434,7 +6183,6 @@
 						*'scrolljump'* *'sj'*
 'scrolljump' 'sj'	number	(default 1)
 			global
-			{not in Vi}
 	Minimal number of lines to scroll when the cursor gets off the
 	screen (e.g., with "j").  Not used for scroll commands (e.g., CTRL-E,
 	CTRL-D).  Useful if your terminal scrolls very slowly.
@@ -6446,7 +6194,6 @@
 						*'scrolloff'* *'so'*
 'scrolloff' 'so'	number	(default 0, set to 5 in |defaults.vim|)
 			global or local to window |global-local|
-			{not in Vi}
 	Minimal number of screen lines to keep above and below the cursor.
 	This will make some context visible around where you are working.  If
 	you set it to a very large value (999) the cursor line will always be
@@ -6462,7 +6209,6 @@
 						*'scrollopt'* *'sbo'*
 'scrollopt' 'sbo'	string	(default "ver,jump")
 			global
-			{not in Vi}
 	This is a comma-separated list of words that specifies how
 	'scrollbind' windows should behave.  'sbo' stands for ScrollBind
 	Options.
@@ -6501,7 +6247,6 @@
 						*'secure'* *'nosecure'* *E523*
 'secure'		boolean	(default off)
 			global
-			{not in Vi}
 	When on, ":autocmd", shell and write commands are not allowed in
 	".vimrc" and ".exrc" in the current directory and map commands are
 	displayed.  Switch it off only if you know that you will not run into
@@ -6515,7 +6260,6 @@
 						*'selection'* *'sel'*
 'selection' 'sel'	string	(default "inclusive")
 			global
-			{not in Vi}
 	This option defines the behavior of the selection.  It is only used
 	in Visual and Select mode.
 	Possible values:
@@ -6539,7 +6283,6 @@
 						*'selectmode'* *'slm'*
 'selectmode' 'slm'	string	(default "")
 			global
-			{not in Vi}
 	This is a comma separated list of words, which specifies when to start
 	Select mode instead of Visual mode, when a selection is started.
 	Possible values:
@@ -6553,7 +6296,6 @@
 'sessionoptions' 'ssop'	string	(default: "blank,buffers,curdir,folds,
 					 help,options,tabpages,winsize,terminal")
 			global
-			{not in Vi}
 			{not available when compiled without the |+mksession|
 			feature}
 	Changes the effect of the |:mksession| command.  It is a comma
@@ -6638,7 +6380,6 @@
 				 MS-DOS and Win32, when 'shell' does not
 				 contain "sh" somewhere: "/c")
 			global
-			{not in Vi}
 	Flag passed to the shell to execute "!" and ":!" commands; e.g.,
 	"bash.exe -c ls" or "command.com /c dir".  For the MS-DOS-like
 	systems, the default is set according to the value of 'shell', to
@@ -6653,7 +6394,6 @@
 						*'shellpipe'* *'sp'*
 'shellpipe' 'sp'	string	(default ">", "| tee", "|& tee" or "2>&1| tee")
 			global
-			{not in Vi}
 			{not available when compiled without the |+quickfix|
 			feature}
 	String to be used to put the output of the ":make" command in the
@@ -6689,7 +6429,6 @@
 'shellquote' 'shq'	string	(default: ""; MS-DOS and Win32, when 'shell'
 					contains "sh" somewhere: "\"")
 			global
-			{not in Vi}
 	Quoting character(s), put around the command passed to the shell, for
 	the "!" and ":!" commands.  The redirection is kept outside of the
 	quoting.  See 'shellxquote' to include the redirection.  It's
@@ -6705,7 +6444,6 @@
 						*'shellredir'* *'srr'*
 'shellredir' 'srr'	string	(default ">", ">&" or ">%s 2>&1")
 			global
-			{not in Vi}
 	String to be used to put the output of a filter command in a temporary
 	file.  See also |:!|.  See |option-backslash| about including spaces
 	and backslashes.
@@ -6731,7 +6469,7 @@
 			*'shellslash'* *'ssl'* *'noshellslash'* *'nossl'*
 'shellslash' 'ssl'	boolean	(default off)
 			global
-			{not in Vi} {only for MSDOS, MS-Windows and OS/2}
+			{only for MSDOS, MS-Windows and OS/2}
 	When set, a forward slash is used when expanding file names.  This is
 	useful when a Unix-like shell is used instead of command.com or
 	cmd.exe.  Backward slashes can still be typed, but they are changed to
@@ -6746,7 +6484,6 @@
 			*'shelltemp'* *'stmp'* *'noshelltemp'* *'nostmp'*
 'shelltemp' 'stmp'	boolean	(Vi default off, Vim default on)
 			global
-			{not in Vi}
 	When on, use temp files for shell commands.  When off use a pipe.
 	When using a pipe is not possible temp files are used anyway.
 	Currently a pipe is only supported on Unix and MS-Windows 2K and
@@ -6767,7 +6504,7 @@
 						*'shelltype'* *'st'*
 'shelltype' 'st'	number	(default 0)
 			global
-			{not in Vi} {only for the Amiga}
+			{only for the Amiga}
 	On the Amiga this option influences the way how the commands work
 	which use a shell.
 	0 and 1: always use the shell
@@ -6782,7 +6519,6 @@
 'shellxescape' 'sxe'	string	(default: "";
 				 for MS-DOS and MS-Windows: "\"&|<>()@^")
 			global
-			{not in Vi}
 	When 'shellxquote' is set to "(" then the characters listed in this
 	option will be escaped with a '^' character.  This makes it possible
 	to execute most external commands with cmd.exe.
@@ -6794,7 +6530,6 @@
 					somewhere: "\""
 					for Unix, when using system(): "\"")
 			global
-			{not in Vi}
 	Quoting character(s), put around the command passed to the shell, for
 	the "!" and ":!" commands.  Includes the redirection.  See
 	'shellquote' to exclude the redirection.  It's probably not useful
@@ -6814,7 +6549,6 @@
 			*'shiftround'* *'sr'* *'noshiftround'* *'nosr'*
 'shiftround' 'sr'	boolean	(default off)
 			global
-			{not in Vi}
 	Round indent to multiple of 'shiftwidth'.  Applies to > and <
 	commands.  CTRL-T and CTRL-D in Insert mode always round the indent to
 	a multiple of 'shiftwidth' (this is Vi compatible).
@@ -6832,7 +6566,6 @@
 'shortmess' 'shm'	string	(Vim default "filnxtToO", Vi default: "",
 							POSIX default: "A")
 			global
-			{not in Vi}
 	This option helps to avoid all the |hit-enter| prompts caused by file
 	messages, for example  with CTRL-G, and to avoid some other messages.
 	It is a list of flags:
@@ -6887,7 +6620,6 @@
 				 *'shortname'* *'sn'* *'noshortname'* *'nosn'*
 'shortname' 'sn'	boolean	(default off)
 			local to buffer
-			{not in Vi, not in MS-DOS versions}
 	Filenames are assumed to be 8 characters plus one extension of 3
 	characters.  Multiple dots in file names are not allowed.  When this
 	option is on, dots in file names are replaced with underscores when
@@ -6900,7 +6632,6 @@
 						*'showbreak'* *'sbr'* *E595*
 'showbreak' 'sbr'	string	(default "")
 			global
-			{not in Vi}
 			{not available when compiled without the |+linebreak|
 			feature}
 	String to put at the start of lines that have been wrapped.  Useful
@@ -6922,7 +6653,6 @@
 'showcmd' 'sc'		boolean	(Vim default: on, off for Unix,
 				       Vi default: off, set in |defaults.vim|)
 			global
-			{not in Vi}
 			{not available when compiled without the
 			|+cmdline_info| feature}
 	Show (partial) command in the last line of the screen.  Set this
@@ -6940,7 +6670,6 @@
 			*'showfulltag'* *'sft'* *'noshowfulltag'* *'nosft'*
 'showfulltag' 'sft'	boolean (default off)
 			global
-			{not in Vi}
 	When completing a word in insert mode (see |ins-completion|) from the
 	tags file, show both the tag name and a tidied-up form of the search
 	pattern (if there is one) as possible matches.  Thus, if you have
@@ -6986,7 +6715,6 @@
 						*'showtabline'* *'stal'*
 'showtabline' 'stal'	number	(default 1)
 			global
-			{not in Vi}
 			{not available when compiled without the |+windows|
 			feature}
 	The value of this option specifies when the line with tab page labels
@@ -7001,7 +6729,6 @@
 						*'sidescroll'* *'ss'*
 'sidescroll' 'ss'	number	(default 0)
 			global
-			{not in Vi}
 	The minimal number of columns to scroll horizontally.  Used only when
 	the 'wrap' option is off and the cursor is moved off of the screen.
 	When it is zero the cursor will be put in the middle of the screen.
@@ -7012,7 +6739,6 @@
 						*'sidescrolloff'* *'siso'*
 'sidescrolloff' 'siso'	number (default 0)
 			global or local to window |global-local|
-			{not in Vi}
 	The minimal number of screen columns to keep to the left and to the
 	right of the cursor if 'nowrap' is set.  Setting this option to a
 	value greater than 0 while having |'sidescroll'| also at a non-zero
@@ -7037,7 +6763,6 @@
 						*'signcolumn'* *'scl'*
 'signcolumn' 'scl'	string	(default "auto")
 			local to window
-			{not in Vi}
 			{not available when compiled without the |+signs|
 			feature}
 	Whether or not to draw the signcolumn. Valid values are:
@@ -7049,7 +6774,6 @@
 			*'smartcase'* *'scs'* *'nosmartcase'* *'noscs'*
 'smartcase' 'scs'	boolean	(default off)
 			global
-			{not in Vi}
 	Override the 'ignorecase' option if the search pattern contains upper
 	case characters.  Only used when the search pattern is typed and
 	'ignorecase' option is on.  Used for the commands "/", "?", "n", "N",
@@ -7061,7 +6785,6 @@
 			     *'smartindent'* *'si'* *'nosmartindent'* *'nosi'*
 'smartindent' 'si'	boolean	(default off)
 			local to buffer
-			{not in Vi}
 			{not available when compiled without the
 			|+smartindent| feature}
 	Do smart autoindenting when starting a new line.  Works for C-like
@@ -7090,7 +6813,6 @@
 				 *'smarttab'* *'sta'* *'nosmarttab'* *'nosta'*
 'smarttab' 'sta'	boolean	(default off)
 			global
-			{not in Vi}
 	When on, a <Tab> in front of a line inserts blanks according to
 	'shiftwidth'.  'tabstop' or 'softtabstop' is used in other places.  A
 	<BS> will delete a 'shiftwidth' worth of space at the start of the
@@ -7108,7 +6830,6 @@
 					*'softtabstop'* *'sts'*
 'softtabstop' 'sts'	number	(default 0)
 			local to buffer
-			{not in Vi}
 	Number of spaces that a <Tab> counts for while performing editing
 	operations, like inserting a <Tab> or using <BS>.  It "feels" like
 	<Tab>s are being inserted, while in fact a mix of spaces and <Tab>s is
@@ -7132,7 +6853,6 @@
 						*'spell'* *'nospell'*
 'spell'			boolean	(default off)
 			local to window
-			{not in Vi}
 			{not available when compiled without the |+syntax|
 			feature}
 	When on spell checking will be done.  See |spell|.
@@ -7141,7 +6861,6 @@
 						*'spellcapcheck'* *'spc'*
 'spellcapcheck' 'spc'	string	(default "[.?!]\_[\])'" \t]\+")
 			local to buffer
-			{not in Vi}
 			{not available when compiled without the |+syntax|
 			feature}
 	Pattern to locate the end of a sentence.  The following word will be
@@ -7157,7 +6876,6 @@
 						*'spellfile'* *'spf'*
 'spellfile' 'spf'	string	(default empty)
 			local to buffer
-			{not in Vi}
 			{not available when compiled without the |+syntax|
 			feature}
 	Name of the word list file where words are added for the |zg| and |zw|
@@ -7184,7 +6902,6 @@
 						*'spelllang'* *'spl'*
 'spelllang' 'spl'	string	(default "en")
 			local to buffer
-			{not in Vi}
 			{not available when compiled without the |+syntax|
 			feature}
 	A comma separated list of word list names.  When the 'spell' option is
@@ -7229,7 +6946,6 @@
 						*'spellsuggest'* *'sps'*
 'spellsuggest' 'sps'	string	(default "best")
 			global
-			{not in Vi}
 			{not available when compiled without the |+syntax|
 			feature}
 	Methods used for spelling suggestions.  Both for the |z=| command and
@@ -7295,7 +7011,6 @@
 			*'splitbelow'* *'sb'* *'nosplitbelow'* *'nosb'*
 'splitbelow' 'sb'	boolean	(default off)
 			global
-			{not in Vi}
 			{not available when compiled without the |+windows|
 			feature}
 	When on, splitting a window will put the new window below the current
@@ -7304,7 +7019,6 @@
 			*'splitright'* *'spr'* *'nosplitright'* *'nospr'*
 'splitright' 'spr'	boolean	(default off)
 			global
-			{not in Vi}
 			{not available when compiled without the |+vertsplit|
 			feature}
 	When on, splitting a window will put the new window right of the
@@ -7313,7 +7027,6 @@
 			   *'startofline'* *'sol'* *'nostartofline'* *'nosol'*
 'startofline' 'sol'	boolean	(default on)
 			global
-			{not in Vi}
 	When "on" the commands listed below move the cursor to the first
 	non-blank of the line.  When off the cursor is kept in the same column
 	(if possible).  This applies to the commands: CTRL-D, CTRL-U, CTRL-B,
@@ -7328,7 +7041,6 @@
 			   *'statusline'* *'stl'* *E540* *E542*
 'statusline' 'stl'	string	(default empty)
 			global or local to window |global-local|
-			{not in Vi}
 			{not available when compiled without the |+statusline|
 			feature}
 	When nonempty, this option determines the content of the status line.
@@ -7495,7 +7207,6 @@
 						*'suffixes'* *'su'*
 'suffixes' 'su'		string	(default ".bak,~,.o,.h,.info,.swp,.obj")
 			global
-			{not in Vi}
 	Files with these suffixes get a lower priority when multiple files
 	match a wildcard.  See |suffixes|.  Commas can be used to separate the
 	suffixes.  Spaces after the comma are ignored.  A dot is also seen as
@@ -7510,7 +7221,6 @@
 						*'suffixesadd'* *'sua'*
 'suffixesadd' 'sua'	string	(default "")
 			local to buffer
-			{not in Vi}
 			{not available when compiled without the
 			|+file_in_path| feature}
 	Comma separated list of suffixes, which are used when searching for a
@@ -7520,7 +7230,6 @@
 				*'swapfile'* *'swf'* *'noswapfile'* *'noswf'*
 'swapfile' 'swf'	boolean (default on)
 			local to buffer
-			{not in Vi}
 	Use a swapfile for the buffer.  This option can be reset when a
 	swapfile is not wanted for a specific buffer.  For example, with
 	confidential information that even root must not be able to access.
@@ -7543,7 +7252,6 @@
 						*'swapsync'* *'sws'*
 'swapsync' 'sws'	string	(default "fsync")
 			global
-			{not in Vi}
 	When this option is not empty a swap file is synced to disk after
 	writing to it.  This takes some time, especially on busy unix systems.
 	When this option is empty parts of the swap file may be in memory and
@@ -7558,7 +7266,6 @@
 						*'switchbuf'* *'swb'*
 'switchbuf' 'swb'	string	(default "")
 			global
-			{not in Vi}
 	This option controls the behavior when switching between buffers.
 	Possible values (comma separated list):
 	   useopen	If included, jump to the first open window that
@@ -7582,7 +7289,6 @@
 						*'synmaxcol'* *'smc'*
 'synmaxcol' 'smc'	number	(default 3000)
 			local to buffer
-			{not in Vi}
 			{not available when compiled without the |+syntax|
 			feature}
 	Maximum column in which to search for syntax items.  In long lines the
@@ -7595,7 +7301,6 @@
 						*'syntax'* *'syn'*
 'syntax' 'syn'		string	(default empty)
 			local to buffer
-			{not in Vi}
 			{not available when compiled without the |+syntax|
 			feature}
 	When this option is set, the syntax with this name is loaded, unless
@@ -7625,7 +7330,6 @@
 						*'tabline'* *'tal'*
 'tabline' 'tal'		string	(default empty)
 			global
-			{not in Vi}
 			{not available when compiled without the |+windows|
 			feature}
 	When nonempty, this option determines the content of the tab pages
@@ -7652,7 +7356,6 @@
 						*'tabpagemax'* *'tpm'*
 'tabpagemax' 'tpm'	number	(default 10)
 			global
-			{not in Vi}
 			{not available when compiled without the |+windows|
 			feature}
 	Maximum number of tab pages to be opened by the |-p| command line
@@ -7693,7 +7396,6 @@
 			*'tagbsearch'* *'tbs'* *'notagbsearch'* *'notbs'*
 'tagbsearch' 'tbs'	boolean	(default on)
 			global
-			{not in Vi}
 	When searching for a tag (e.g., for the |:ta| command), Vim can either
 	use a binary search or a linear search in a tags file.  Binary
 	searching makes searching for a tag a LOT faster, but a linear search
@@ -7746,7 +7448,6 @@
 							*'tagcase'* *'tc'*
 'tagcase' 'tc'		string	(default "followic")
 			global or local to buffer |global-local|
-			{not in Vi}
 	This option specifies how case is handled when searching the tags
 	file:
 	   followic	Follow the 'ignorecase' option
@@ -7765,7 +7466,6 @@
 			*'tagrelative'* *'tr'* *'notagrelative'* *'notr'*
 'tagrelative' 'tr'	boolean	(Vim default: on, Vi default: off)
 			global
-			{not in Vi}
 	If on and using a tags file in another directory, file names in that
 	tags file are relative to the directory where the tags file is.
 	NOTE: This option is set to the Vi default value when 'compatible' is
@@ -7802,7 +7502,6 @@
 				*'tagstack'* *'tgst'* *'notagstack'* *'notgst'*
 'tagstack' 'tgst'	boolean	(default on)
 			global
-			{not in all versions of Vi}
 	When on, the |tagstack| is used normally.  When off, a ":tag" or
 	":tselect" command with an argument will not push the tag onto the
 	tagstack.  A following ":tag" without an argument, a ":pop" command or
@@ -7814,7 +7513,6 @@
 						*'tcldll'*
 'tcldll'		string	(default depends on the build)
 			global
-			{not in Vi}
 			{only available when compiled with the |+tcl/dyn|
 			feature}
 	Specifies the name of the Tcl shared library. The default is
@@ -7846,7 +7544,6 @@
 						*'notermbidi'* *'notbidi'*
 'termbidi' 'tbidi'	boolean (default off, on for "mlterm")
 			global
-			{not in Vi}
 			{only available when compiled with the |+arabic|
 			feature}
 	The terminal is in charge of Bi-directionality of text (as specified
@@ -7863,7 +7560,6 @@
 'termencoding' 'tenc'	string	(default ""; with GTK+ GUI: "utf-8"; with
 						    Macintosh GUI: "macroman")
 			global
-			{not in Vi}
 	Encoding used for the terminal.  This specifies what character
 	encoding the keyboard produces and the display will understand.  For
 	the GUI it only applies to the keyboard ('encoding' is used for the
@@ -7892,7 +7588,6 @@
 					*'termguicolors'* *'tgc'* *E954*
 'termguicolors' 'tgc'	boolean (default off)
 			global
-			{not in Vi}
 			{not available when compiled without the
 			|+termguicolors| feature}
 	When on, uses |highlight-guifg| and |highlight-guibg| attributes in
@@ -7910,20 +7605,9 @@
 	Note that the "cterm" attributes are still used, not the "gui" ones.
 	NOTE: This option is reset when 'compatible' is set.
 
-						*'termwinscroll'* *'twsl'*
-'termwinscroll' 'twsl'	number	(default 10000)
-			local to buffer
-			{not in Vi}
-			{not available when compiled without the
-			|+terminal| feature}
-	Number of scrollback lines to keep.  When going over this limit the
-	first 10% of the scrollback lines are deleted.  This is just to reduce
-	the memory usage.  See |Terminal-Normal|.
-
 						*'termwinkey'* *'twk'*
 'termwinkey' 'twk'	string	(default "")
 			local to window
-			{not in Vi}
 	The key that starts a CTRL-W command in a terminal window.  Other keys
 	are sent to the job running in the window.
 	The <> notation can be used, e.g.: >
@@ -7933,10 +7617,18 @@
 	line.  If 'termwinkey' is set to CTRL-L then CTRL-L : gets you to the
 	command line.
 
+						*'termwinscroll'* *'twsl'*
+'termwinscroll' 'twsl'	number	(default 10000)
+			local to buffer
+			{not available when compiled without the
+			|+terminal| feature}
+	Number of scrollback lines to keep.  When going over this limit the
+	first 10% of the scrollback lines are deleted.  This is just to reduce
+	the memory usage.  See |Terminal-Normal|.
+
 						*'termwinsize'* *'tws'*
 'termwinsize' 'tws'	string	(default "")
 			local to window
-			{not in Vi}
 	Size of the |terminal| window.  Format: {rows}x{columns} or
 	{rows}*{columns}.
 	- When empty the terminal gets the size from the window.
@@ -7961,7 +7653,6 @@
 						*'termwintype'* *'twt'*
 'termwintype' 'twt'	string  (default "")
 			global
-			{not in Vi}
 			{only available when compiled with the |terminal|
 			feature on MS-Windows}
 	Specify the virtual console (pty) used when opening the terminal
@@ -7989,7 +7680,6 @@
 				   *'textauto'* *'ta'* *'notextauto'* *'nota'*
 'textauto' 'ta'		boolean	(Vim default: on, Vi default: off)
 			global
-			{not in Vi}
 	This option is obsolete.  Use 'fileformats'.
 	For backwards compatibility, when 'textauto' is set, 'fileformats' is
 	set to the default value for the current system.  When 'textauto' is
@@ -8001,7 +7691,6 @@
 'textmode' 'tx'		boolean	(MS-DOS, Win32 and OS/2: default on,
 				 others: default off)
 			local to buffer
-			{not in Vi}
 	This option is obsolete.  Use 'fileformat'.
 	For backwards compatibility, when 'textmode' is set, 'fileformat' is
 	set to "dos".  When 'textmode' is reset, 'fileformat' is set to
@@ -8010,7 +7699,6 @@
 						*'textwidth'* *'tw'*
 'textwidth' 'tw'	number	(default 0)
 			local to buffer
-			{not in Vi}
 	Maximum width of text that is being inserted.  A longer line will be
 	broken after white space to get this width.  A zero value disables
 	this.
@@ -8024,7 +7712,6 @@
 						*'thesaurus'* *'tsr'*
 'thesaurus' 'tsr'	string	(default "")
 			global or local to buffer |global-local|
-			{not in Vi}
 	List of file names, separated by commas, that are used to lookup words
 	for thesaurus completion commands |i_CTRL-X_CTRL-T|.
 
@@ -8049,7 +7736,6 @@
 			     *'tildeop'* *'top'* *'notildeop'* *'notop'*
 'tildeop' 'top'		boolean	(default off)
 			global
-			{not in Vi}
 	When on: The tilde command "~" behaves like an operator.
 	NOTE: This option is reset when 'compatible' is set.
 
@@ -8059,7 +7745,6 @@
 						*'ttimeout'* *'nottimeout'*
 'ttimeout'		boolean (default off, set in |defaults.vim|)
 			global
-			{not in Vi}
 	These two options together determine the behavior when part of a
 	mapped key sequence or keyboard code has been received:
 
@@ -8094,7 +7779,6 @@
 						*'ttimeoutlen'* *'ttm'*
 'ttimeoutlen' 'ttm'	number	(default -1, set to 100 in |defaults.vim|)
 			global
-			{not in Vi}
 	The time in milliseconds that is waited for a key code or mapped key
 	sequence to complete.  Also used for CTRL-\ CTRL-N and CTRL-\ CTRL-G
 	when part of a command has been typed.
@@ -8115,7 +7799,6 @@
 						*'title'* *'notitle'*
 'title'			boolean	(default off, on when title can be restored)
 			global
-			{not in Vi}
 			{not available when compiled without the |+title|
 			feature}
 	When on, the title of the window will be set to the value of
@@ -8151,7 +7834,6 @@
 								*'titlelen'*
 'titlelen'		number	(default 85)
 			global
-			{not in Vi}
 			{not available when compiled without the |+title|
 			feature}
 	Gives the percentage of 'columns' to use for the length of the window
@@ -8167,7 +7849,6 @@
 						*'titleold'*
 'titleold'		string	(default "Thanks for flying Vim")
 			global
-			{not in Vi}
 			{only available when compiled with the |+title|
 			feature}
 	This option will be used for the window title when exiting Vim if the
@@ -8178,7 +7859,6 @@
 						*'titlestring'*
 'titlestring'		string	(default "")
 			global
-			{not in Vi}
 			{not available when compiled without the |+title|
 			feature}
 	When this option is not empty, it will be used for the title of the
@@ -8234,7 +7914,6 @@
 						*'toolbariconsize'* *'tbis'*
 'toolbariconsize' 'tbis'	string	(default "small")
 				global
-				{not in Vi}
 				{only in the GTK+ GUI}
 	Controls the size of toolbar icons.  The possible values are:
 		tiny		Use tiny icons.
@@ -8253,7 +7932,6 @@
 			     *'ttybuiltin'* *'tbi'* *'nottybuiltin'* *'notbi'*
 'ttybuiltin' 'tbi'	boolean	(default on)
 			global
-			{not in Vi}
 	When on, the builtin termcaps are searched before the external ones.
 	When off the builtin termcaps are searched after the external ones.
 	When this option is changed, you should set the 'term' option next for
@@ -8270,7 +7948,6 @@
 					iris-ansi; also on when running Vim in
 					a DOS console)
 			global
-			{not in Vi}
 	Indicates a fast terminal connection.  More characters will be sent to
 	the screen for redrawing, instead of using insert/delete line
 	commands.  Improves smoothness of redrawing when there are multiple
@@ -8282,7 +7959,6 @@
 						*'ttymouse'* *'ttym'*
 'ttymouse' 'ttym'	string	(default depends on 'term')
 			global
-			{not in Vi}
 			{only in Unix and VMS, doesn't work in the GUI; not
 			available when compiled without |+mouse|}
 	Name of the terminal type for which mouse codes are to be recognized.
@@ -8365,7 +8041,6 @@
 						*'undodir'* *'udir'*
 'undodir' 'udir'	string	(default ".")
 			global
-			{not in Vi}
 			{only when compiled with the |+persistent_undo| feature}
 	List of directory names for undo files, separated with commas.
 	See |'backupdir'| for details of the format.
@@ -8383,7 +8058,6 @@
 				*'undofile'* *'noundofile'* *'udf'* *'noudf'*
 'undofile' 'udf'	boolean	(default off)
 			local to buffer
-			{not in Vi}
 			{only when compiled with the |+persistent_undo| feature}
 	When on, Vim automatically saves undo history to an undo file when
 	writing a buffer to a file, and restores undo history from the same
@@ -8399,7 +8073,6 @@
 'undolevels' 'ul'	number	(default 100, 1000 for Unix, VMS,
 						Win32 and OS/2)
 			global or local to buffer |global-local|
-			{not in Vi}
 	Maximum number of changes that can be undone.  Since undo information
 	is kept in memory, higher numbers will cause more memory to be used
 	(nevertheless, a single change can use an unlimited amount of memory).
@@ -8421,7 +8094,6 @@
 						*'undoreload'* *'ur'*
 'undoreload' 'ur'	number	(default 10000)
 			global
-			{not in Vi}
 	Save the whole buffer for undo when reloading it.  This applies to the
 	":e!" command and reloading for when the buffer changed outside of
 	Vim. |FileChangedShell|
@@ -8437,7 +8109,6 @@
 						*'updatecount'* *'uc'*
 'updatecount' 'uc'	number	(default: 200)
 			global
-			{not in Vi}
 	After typing this many characters the swap file will be written to
 	disk.  When zero, no swap file will be created at all (see chapter on
 	recovery |crash-recovery|).  'updatecount' is set to zero by starting
@@ -8454,7 +8125,6 @@
 						*'updatetime'* *'ut'*
 'updatetime' 'ut'	number	(default 4000)
 			global
-			{not in Vi}
 	If this many milliseconds nothing is typed the swap file will be
 	written to disk (see |crash-recovery|).  Also used for the
 	|CursorHold| autocommand event.
@@ -8464,7 +8134,6 @@
 			local to buffer
 			{only available when compiled with the |+vartabs|
 			feature}
-			{not in Vi}
 	A list of the number of spaces that a <Tab> counts for while editing,
 	such as inserting a <Tab> or using <BS>.  It "feels" like variable-
 	width <Tab>s are being inserted, while in fact a mixture of spaces
@@ -8486,7 +8155,6 @@
 			local to buffer
 			{only available when compiled with the |+vartabs|
 			feature}
-			{not in Vi}
 	A list of the number of spaces that a <Tab> in the file counts for,
 	separated by commas.  Each value corresponds to one tab, with the
 	final value applying to all subsequent tabs. For example: >
@@ -8500,8 +8168,6 @@
 						*'verbose'* *'vbs'*
 'verbose' 'vbs'		number	(default 0)
 			global
-			{not in Vi, although some versions have a boolean
-			verbose option}
 	When bigger than zero, Vim will give messages about what it is doing.
 	Currently, these messages are given:
 	>= 1	When the viminfo file is read or written.
@@ -8523,7 +8189,6 @@
 						*'verbosefile'* *'vfile'*
 'verbosefile' 'vfile'	string	(default empty)
 			global
-			{not in Vi}
 	When not empty all messages are written in a file with this name.
 	When the file exists messages are appended.
 	Writing to the file ends when Vim exits or when 'verbosefile' is made
@@ -8540,7 +8205,6 @@
 				 for VMS: "sys$login:vimfiles/view"
 				 for RiscOS: "Choices:vimfiles/view")
 			global
-			{not in Vi}
 			{not available when compiled without the |+mksession|
 			feature}
 	Name of the directory where to store files for |:mkview|.
@@ -8550,7 +8214,6 @@
 						*'viewoptions'* *'vop'*
 'viewoptions' 'vop'	string	(default: "folds,options,cursor,curdir")
 			global
-			{not in Vi}
 			{not available when compiled without the |+mksession|
 			feature}
 	Changes the effect of the |:mkview| command.  It is a comma separated
@@ -8578,7 +8241,6 @@
 				   for Amiga: '100,<50,s10,h,rdf0:,rdf1:,rdf2:
 				   for others: '100,<50,s10,h)
 			global
-			{not in Vi}
 			{not available when compiled without the |+viminfo|
 			feature}
 	When non-empty, the viminfo file is read upon startup and written
@@ -8695,7 +8357,6 @@
 				*'viminfofile'* *'vif'*
 'viminfofile' 'vif'	string	(default: "")
 			global
-			{not in Vi}
 			{not available when compiled without the |+viminfo|
 			feature}
 	When non-empty, overrides the file name used for viminfo.
@@ -8706,7 +8367,6 @@
 					    *'virtualedit'* *'ve'*
 'virtualedit' 've'	string	(default "")
 			global
-			{not in Vi}
 			{not available when compiled without the
 			|+virtualedit| feature}
 	A comma separated list of these words:
@@ -8735,7 +8395,6 @@
 			*'visualbell'* *'vb'* *'novisualbell'* *'novb'* *beep*
 'visualbell' 'vb'	boolean	(default off)
 			global
-			{not in Vi}
 	Use a visual bell instead of beeping.  The terminal code to display the
 	visual bell is given with 't_vb'.  When no beep or flash is wanted,
 	use: >
@@ -8769,7 +8428,6 @@
 		     *'weirdinvert'* *'wiv'* *'noweirdinvert'* *'nowiv'*
 'weirdinvert' 'wiv'	boolean	(default off)
 			global
-			{not in Vi}
 	This option has the same effect as the 't_xs' terminal option.
 	It is provided for backwards compatibility with version 4.x.
 	Setting 'weirdinvert' has the effect of making 't_xs' non-empty, and
@@ -8778,7 +8436,6 @@
 						*'whichwrap'* *'ww'*
 'whichwrap' 'ww'	string	(Vim default: "b,s", Vi default: "")
 			global
-			{not in Vi}
 	Allow specified keys that move the cursor left/right to move to the
 	previous/next line when the cursor is on the first/last character in
 	the line.  Concatenate characters to allow this for these keys:
@@ -8811,7 +8468,6 @@
 						*'wildchar'* *'wc'*
 'wildchar' 'wc'		number	(Vim default: <Tab>, Vi default: CTRL-E)
 			global
-			{not in Vi}
 	Character you have to type to start wildcard expansion in the
 	command-line, as specified with 'wildmode'.
 	More info here: |cmdline-completion|.
@@ -8825,7 +8481,6 @@
 						*'wildcharm'* *'wcm'*
 'wildcharm' 'wcm'	number	(default: none (0))
 			global
-			{not in Vi}
 	'wildcharm' works exactly like 'wildchar', except that it is
 	recognized when used inside a macro.  You can find "spare" command-line
 	keys suitable for this option by looking at |ex-edit-index|.  Normally
@@ -8838,7 +8493,6 @@
 						*'wildignore'* *'wig'*
 'wildignore' 'wig'	string	(default "")
 			global
-			{not in Vi}
 			{not available when compiled without the |+wildignore|
 			feature}
 	A list of file patterns.  A file that matches with one of these
@@ -8857,7 +8511,6 @@
 			*'wildignorecase'* *'wic'* *'nowildignorecase'* *'nowic'*
 'wildignorecase' 'wic'	boolean	(default off)
 			global
-			{not in Vi}
 	When set case is ignored when completing file names and directories.
 	Has no effect when 'fileignorecase' is set.
 	Does not apply when the shell is used to expand wildcards, which
@@ -8867,7 +8520,6 @@
 				*'wildmenu'* *'wmnu'* *'nowildmenu'* *'nowmnu'*
 'wildmenu' 'wmnu'	boolean	(default off, set in |defaults.vim|)
 			global
-			{not in Vi}
 			{not available if compiled without the |+wildmenu|
 			feature}
 	When 'wildmenu' is on, command-line completion operates in an enhanced
@@ -8908,7 +8560,6 @@
 						*'wildmode'* *'wim'*
 'wildmode' 'wim'	string	(Vim default: "full")
 			global
-			{not in Vi}
 	Completion mode that is used for the character specified with
 	'wildchar'.  It is a comma separated list of up to four parts.  Each
 	part specifies what to do for each consecutive use of 'wildchar'.  The
@@ -8946,7 +8597,6 @@
 						*'wildoptions'* *'wop'*
 'wildoptions' 'wop'	string	(default "")
 			global
-			{not in Vi}
 			{not available when compiled without the |+wildignore|
 			feature}
 	A list of words that change how command line completion is done.
@@ -8961,7 +8611,6 @@
 						*'winaltkeys'* *'wak'*
 'winaltkeys' 'wak'	string	(default "menu")
 			global
-			{not in Vi}
 			{only used in Win32, Motif, GTK and Photon GUI}
 	Some GUI versions allow the access to menu entries by using the ALT
 	key in combination with a character that appears underlined in the
@@ -8997,7 +8646,6 @@
 						*'winheight'* *'wh'* *E591*
 'winheight' 'wh'	number	(default 1)
 			global
-			{not in Vi}
 			{not available when compiled without the |+windows|
 			feature}
 	Minimal number of lines for the current window.  This is not a hard
@@ -9020,7 +8668,6 @@
 			*'winfixheight'* *'wfh'* *'nowinfixheight'* *'nowfh'*
 'winfixheight' 'wfh'	boolean	(default off)
 			local to window
-			{not in Vi}
 			{not available when compiled without the |+windows|
 			feature}
 	Keep the window height when windows are opened or closed and
@@ -9031,7 +8678,6 @@
 			*'winfixwidth'* *'wfw'* *'nowinfixwidth'* *'nowfw'*
 'winfixwidth' 'wfw'	boolean	(default off)
 			local to window
-			{not in Vi}
 			{not available when compiled without the |+windows|
 			feature}
 	Keep the window width when windows are opened or closed and
@@ -9041,7 +8687,6 @@
 						*'winminheight'* *'wmh'*
 'winminheight' 'wmh'	number	(default 1)
 			global
-			{not in Vi}
 			{not available when compiled without the |+windows|
 			feature}
 	The minimal height of a window, when it's not the current window.
@@ -9057,7 +8702,6 @@
 						*'winminwidth'* *'wmw'*
 'winminwidth' 'wmw'	number	(default 1)
 			global
-			{not in Vi}
 			{not available when compiled without the |+vertsplit|
 			feature}
 	The minimal width of a window, when it's not the current window.
@@ -9074,7 +8718,6 @@
 						*'winptydll'*
 'winptydll'		string	(default "winpty32.dll" or "winpty64.dll")
 			global
-			{not in Vi}
 			{only available when compiled with the |terminal|
 			feature on MS-Windows}
 	Specifies the name of the winpty shared library, used for the
@@ -9088,7 +8731,6 @@
 						*'winwidth'* *'wiw'* *E592*
 'winwidth' 'wiw'	number	(default 20)
 			global
-			{not in Vi}
 			{not available when compiled without the |+vertsplit|
 			feature}
 	Minimal number of columns for the current window.  This is not a hard
@@ -9104,7 +8746,6 @@
 						*'wrap'* *'nowrap'*
 'wrap'			boolean	(default on)
 			local to window
-			{not in Vi}
 	This option changes how text is displayed.  It doesn't change the text
 	in the buffer, see 'textwidth' for that.
 	When on, lines longer than the width of the window will wrap and
@@ -9144,7 +8785,6 @@
 						   *'write'* *'nowrite'*
 'write'			boolean	(default on)
 			global
-			{not in Vi}
 	Allows writing files.  When not set, writing a file is not allowed.
 	Can be used for a view-only mode, where modifications to the text are
 	still allowed.  Can be reset with the |-m| or |-M| command line
@@ -9160,7 +8800,6 @@
 'writebackup' 'wb'	boolean	(default on with |+writebackup| feature, off
 					otherwise)
 			global
-			{not in Vi}
 	Make a backup before overwriting a file.  The backup is removed after
 	the file was successfully written, unless the 'backup' option is
 	also on.
@@ -9177,7 +8816,6 @@
 						*'writedelay'* *'wd'*
 'writedelay' 'wd'	number	(default 0)
 			global
-			{not in Vi}
 	The number of milliseconds to wait for each character sent to the
 	screen.  When non-zero, characters are sent to the terminal one by
 	one.  For MS-DOS pcterm this does not work.  For debugging purposes.
