diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index 6f7f6c6..bcc81ec 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -708,7 +708,7 @@
 							*FileAppendCmd*
 FileAppendCmd			Before appending to a file.  Should do the
 				appending to the file.  Use the '[ and ']
-				marks for the range of lines.|Cmd-event|
+				marks for the range of lines. |Cmd-event|
 							*FileAppendPost*
 FileAppendPost			After appending to a file.
 							*FileAppendPre*
@@ -836,7 +836,7 @@
 							*FilterWritePost*
 FilterWritePost			After writing a file for a filter command or
 				making a diff with an external diff (see
-				DiffUpdated for internal diff).
+				|DiffUpdated| for internal diff).
 				Vim checks the pattern against the name of
 				the current buffer as with FilterWritePre.
 				Not triggered when 'shelltemp' is off.
@@ -1195,9 +1195,9 @@
 						register, as a list of lines,
 						like with: >
 						getreg(r, 1, 1)
-<				   regname	Name of the |register| or
-						empty string for the unnamed
-						register.
+<				   regname	Name of the register or empty
+						string for the unnamed
+						register, see |registers|.
 				   regtype	Type of the register, see
 						|getregtype()|.
 				   visual	True if the operation is
diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt
index 1a9ba7a..31843ee 100644
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1184,9 +1184,6 @@
 each of the selected lines (thus replacing the blockwise selected region by a
 block of the pasted line).
 
-Use |zP|/|zp| to paste a blockwise yanked register without appending trailing
-spaces.
-
 							*blockwise-register*
 If you use a blockwise Visual mode command to get the text into the register,
 the block of text will be inserted before ("P") or after ("p") the cursor
@@ -1197,6 +1194,9 @@
 width and the text after the inserted block contains <Tab>s, that text may be
 misaligned.
 
+Use |zP|/|zp| to paste a blockwise yanked register without appending trailing
+spaces.
+
 Note that after a characterwise yank command, Vim leaves the cursor on the
 first yanked character that is closest to the start of the buffer.  This means
 that "yl" doesn't move the cursor, but "yh" moves the cursor one character
diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt
index 0c472bb..bf61024 100644
--- a/runtime/doc/cmdline.txt
+++ b/runtime/doc/cmdline.txt
@@ -803,7 +803,7 @@
 		3:d<CR>		is translated into: .,.+2d<CR>
 <
 
-Visual Mode and Range					
+Visual Mode and Range
 							*v_:*
 {Visual}:	Starts a command-line with the Visual selected lines as a
 		range.  The code `:'<,'>` is used for this range, which makes
diff --git a/runtime/doc/digraph.txt b/runtime/doc/digraph.txt
index 0801e3a..3610380 100644
--- a/runtime/doc/digraph.txt
+++ b/runtime/doc/digraph.txt
@@ -351,8 +351,8 @@
 þ	th	0xfe	254	LATIN SMALL LETTER THORN (Icelandic)
 ÿ	y:	0xff	255	LATIN SMALL LETTER Y WITH DIAERESIS
 
-If your Vim is compiled with |multibyte| support and you are using a multibyte
-'encoding', Vim provides this enhanced set of additional digraphs:
+If you are using a |multibyte| 'encoding', Vim provides this enhanced set of
+additional digraphs:
 
 							*digraph-table-mbyte*
 char  digraph	hex	dec	official name ~
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index 858fc42..cea0e44 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -1,4 +1,4 @@
-*editing.txt*   For Vim version 8.2.  Last change: 2021 Oct 04
+*editing.txt*   For Vim version 8.2.  Last change: 2021 Oct 16
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1329,26 +1329,26 @@
 			other tabs and for windows in the current tab that
 			have their own window-local directory.
 
-							*:tch* *:tchdir*
-:tch[dir][!]		Same as |:tcd|.
-
 							*:tcd-*
 :tc[d][!] -		Change to the previous current directory, before the
 			last ":tcd {path}" command.
 
+							*:tch* *:tchdir*
+:tch[dir][!]		Same as |:tcd|.
+
 							*:lc* *:lcd*
 :lc[d][!] {path}	Like |:cd|, but only set the current directory when
 			the cursor is in the current window.  The current
 			directory for other windows is not changed, switching
 			to another window will stop using {path}.
 
-							*:lch* *:lchdir*
-:lch[dir][!]		Same as |:lcd|.
-
 							*:lcd-*
 :lcd[!] -		Change to the previous current directory, before the
 			last ":lcd {path}" command.
 
+							*:lch* *:lchdir*
+:lch[dir][!]		Same as |:lcd|.
+
 							*:pw* *:pwd* *E187*
 :pw[d]			Print the current directory name.
 			Also see |getcwd()|.
@@ -1375,14 +1375,14 @@
 When a |:lcd| command has been used for a window, the specified directory
 becomes the current directory for that window.  Windows where the |:lcd|
 command has not been used stick to the global or tab-local current directory.
-When jumping to another window the current directory will become the last
+When jumping to another window the current directory is changed to the last
 specified local current directory.  If none was specified, the global or
 tab-local current directory is used.
 
 When a |:tcd| command has been used for a tab page, the specified directory
 becomes the current directory for the current tab page and the current window.
 The current directory of other tab pages is not affected.  When jumping to
-another tab page, the current directory will become the last specified local
+another tab page, the current directory is changed to the last specified local
 directory for that tab page. If the current tab has no local current directory
 the global current directory is used.
 
@@ -1676,6 +1676,11 @@
 session or with another command (e.g., a filter command).  Then you will know
 which version of the file you want to keep.
 
+The accuracy of the time check depends on the filesystem.  On Unix it is
+usually sub-second.  With old file sytems and on MS-Windows it is normally one
+second.  Use has('nanotime') check if sub-second time stamp checks are
+available.
+
 There is one situation where you get the message while there is nothing wrong:
 On a Win32 system on the day daylight saving time starts.  There is something
 in the Win32 libraries that confuses Vim about the hour time difference.  The
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 5a7e6ec..c3e894f 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 8.2.  Last change: 2021 Oct 04
+*eval.txt*	For Vim version 8.2.  Last change: 2021 Oct 14
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -2549,7 +2549,7 @@
 did_filetype()			Number	|TRUE| if FileType autocmd event used
 diff_filler({lnum})		Number	diff filler lines about {lnum}
 diff_hlID({lnum}, {col})	Number	diff highlighting at {lnum}/{col}
-digraph_get({chars})		String	get the digraph of {chars}
+digraph_get({chars})		String	get the |digraph| of {chars}
 digraph_getlist([{listall}])	List	get all |digraph|s
 digraph_set({chars}, {digraph})	Boolean	register |digraph|
 digraph_setlist({digraphlist})	Boolean	register multiple |digraph|s
diff --git a/runtime/doc/help.txt b/runtime/doc/help.txt
index f5c3e6d..f339dad 100644
--- a/runtime/doc/help.txt
+++ b/runtime/doc/help.txt
@@ -88,6 +88,7 @@
 |usr_43.txt|  Using filetypes
 |usr_44.txt|  Your own syntax highlighted
 |usr_45.txt|  Select your language
+|usr_46.txt|  Write plugins using Vim9 script
 
 Making Vim Run ~
 |usr_90.txt|  Installing Vim
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 91df5df..41d7105 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -2410,7 +2410,7 @@
 	   xchacha20	XChaCha20 Cipher with Poly1305 Message Authentication
 			Code.  Medium strong till strong encryption.
 			Encryption is provided by the libsodium library, it
-			requires Vim to be built with |+sodium|
+			requires Vim to be built with |+sodium|.
 			It adds a seed and a message authentication code (MAC)
 			to the file.  This needs at least a Vim 8.2.3022 to
 			read the encrypted file.
@@ -7406,13 +7406,13 @@
 	      return value of expr contains % items they will get expanded.
 	      The expression can contain the } character, the end of
 	      expression is denoted by %}.
-	      The For example: >
+	      For example: >
 		func! Stl_filename() abort
 		    return "%t"
 		endfunc
 <	        `stl=%{Stl_filename()}`   results in `"%t"`
 	        `stl=%{%Stl_filename()%}` results in `"Name of current file"`
-	} -   End of `{%` expression
+	%} -  End of `{%` expression
 	( -   Start of item group.  Can be used for setting the width and
 	      alignment of a section.  Must be followed by %) somewhere.
 	) -   End of item group.  No width fields allowed.
diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt
index c52708e..8f6d77e 100644
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -932,7 +932,7 @@
 \%.l    Matches at the cursor line.
 \%<.l   Matches above the cursor line.
 \%>.l   Matches below the cursor line.
-	These three can be used to match specific lines in a buffer.  The "23"
+	These six can be used to match specific lines in a buffer.  The "23"
 	can be any line number.  The first line is 1.
 	WARNING: When inserting or deleting lines Vim does not automatically
 	update the matches.  This means Syntax highlighting quickly becomes
@@ -953,16 +953,15 @@
 \%.c    Matches at the cursor column.
 \%<.c   Matches before the cursor column.
 \%>.c   Matches after the cursor column.
-	These three can be used to match specific columns in a buffer or
-	string.  The "23" can be any column number.  The first column is 1.
-	Actually, the column is the byte number (thus it's not exactly right
-	for multibyte characters).
+	These six can be used to match specific columns in a buffer or string.
+	The "23" can be any column number.  The first column is 1.  Actually,
+	the column is the byte number (thus it's not exactly right for
+	multibyte characters).
 	WARNING: When inserting or deleting text Vim does not automatically
 	update the matches.  This means Syntax highlighting quickly becomes
 	wrong.  Also when referring to the cursor position (".") and
 	the cursor moves the display isn't updated for this change.  An update
 	is done when using the |CTRL-L| command (the whole screen is updated).
-
 	Example, to highlight the column where the cursor currently is: >
 		:exe '/\%' . col(".") . 'c'
 <	Alternatively use: >
@@ -980,8 +979,8 @@
 \%.v    Matches at the current virtual column.
 \%<.v   Matches before the current virtual column.
 \%>.v   Matches after the current virtual column.
-	These three can be used to match specific virtual columns in a buffer
-	or string.  When not matching with a buffer in a window, the option
+	These six can be used to match specific virtual columns in a buffer or
+	string.  When not matching with a buffer in a window, the option
 	values of the current window are used (e.g., 'tabstop').
 	The "23" can be any column number.  The first column is 1.
 	Note that some virtual column positions will never match, because they
@@ -1012,7 +1011,7 @@
 		/.*\%17v
 <	Column 17 is highlighted by 'hlsearch' because there is another match
 	where ".*" matches zero characters.
-<
+
 
 Character classes:
 \i	identifier character (see 'isident' option)	*/\i*
diff --git a/runtime/doc/testing.txt b/runtime/doc/testing.txt
index 5094d51..d064dc1 100644
--- a/runtime/doc/testing.txt
+++ b/runtime/doc/testing.txt
@@ -85,14 +85,14 @@
 test_gui_drop_files({list}, {row}, {col}, {mods})
 		Drop one or more files in {list} in the window at {row}, {col}.
 		This function only works when the GUI is running and the
-		|drag-n-drop| feature is present.
-		
+		|drop_file| feature is present.
+
 		The supported values for {mods} are:
 			0x4	Shift
 			0x8	Alt
 			0x10	Ctrl
-		The files are added to the argument list and the first file in
-		{list} is edited in the window.  See |drag-n-drop| for more
+		The files are added to the |argument-list| and the first file
+		in {list} is edited in the window.  See |drag-n-drop| for more
 		information.
 
 						*test_gui_mouse_event()*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 5959de3..558493b 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.2.  Last change: 2021 Sep 22
+*todo.txt*      For Vim version 8.2.  Last change: 2021 Oct 15
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -38,12 +38,13 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-Flaky test op Windows:
-From test_vim9_script.vim:
-    Found errors in Test_no_unknown_error_after_error():
-    command line..script D:/a/vim/vim/src2/testdir/runtest.vim[486]..function RunTheTest[44]..Test_no_unknown_error_after_error line 22: Expected 'E1012:' but got 'E684: list index out of range: 0': so Xdef
+Remove s:flaky_tests from runtest.vim, set g:test_is_flaky in each test.
 
 Vim9 - Make everything work:
+- "filter #pat# ls" should work, #pat# is not a comment
+    vim9script
+    edit foobar
+    filter #foobar# ls
 - Check TODO items in vim9compile.c and vim9execute.c
 - use CheckLegacyAndVim9Success(lines) in many more places
 - For builtin functions using tv_get_string*() use check_for_string() to be
@@ -629,24 +630,27 @@
 
 Problem with colors in terminal window. (Jason Franklin, 2019 May 12)
 
-Lifepillar: Updated/cleaned up color schemes:
-https://github.com/lifepillar/vim8-colorschemes.
-
-Include a few color schemes, based on popularity:
-http://www.vim.org/scripts/script_search_results.php?keywords=&script_type=color+scheme&order_by=rating&direction=descending&search=search
+Color schemes:
+NOTE: modernizing the default colorschemes _AND_ introducing new ones is now
+a project in its own right: https://github.com/vim/colorschemes. Feel free to
+reach out if you want to lend a hand.
+- Lifepillar: Updated/cleaned up color schemes:
+  https://github.com/lifepillar/vim8-colorschemes.
+- Include a few color schemes, based on popularity:
+  - http://www.vim.org/scripts/script_search_results.php?keywords=&script_type=color+scheme&order_by=rating&direction=descending&search=search
 http://vimawesome.com/?q=tag:color-scheme
-Use names that indicate their appearance (Christian Brabandt, 2017 Aug 3)
-- monokai - Xia Crusoe (2017 Aug 4)
-- seoul256 - Christian Brabandt (2017 Aug 3)
-- gruvbox -  Christian Brabandt (2017 Aug 3) (simplified version from
-      Lifepillar, 2018 Jan 22, #2573)
-- janah - Marco Hinz (2017 Aug 4)
-- apprentice - Romain Lafourcade (2017 Aug 6)  remarks about help file #1964
-Suggested by Hiroki Kokubun:
-- [Iceberg](https://github.com/cocopon/iceberg.vim) (my one)
-- [hybrid](https://github.com/w0ng/vim-hybrid)
-Include solarized color scheme?, it does not support termguicolors.
-- Sanitized version of pablo (Lifepillar, 2017 Nov 21)
+- Use names that indicate their appearance (Christian Brabandt, 2017 Aug 3)
+  - monokai - Xia Crusoe (2017 Aug 4)
+  - seoul256 - Christian Brabandt (2017 Aug 3)
+  - gruvbox -  Christian Brabandt (2017 Aug 3) (simplified version from
+        Lifepillar, 2018 Jan 22, #2573)
+  - janah - Marco Hinz (2017 Aug 4)
+  - apprentice - Romain Lafourcade (2017 Aug 6)  remarks about help file #1964
+- Suggested by Hiroki Kokubun:
+  - [Iceberg](https://github.com/cocopon/iceberg.vim) (my one)
+  - [hybrid](https://github.com/w0ng/vim-hybrid)
+- Include solarized color scheme?, it does not support termguicolors.
+  - Sanitized version of pablo (Lifepillar, 2017 Nov 21)
 
 Bug: "vipgw" does not put cursor back where it belongs. (Jason Franklin, 2019
 Mar 5)
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index 7adff41..e9c6b7b 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -172,7 +172,7 @@
 
 							*:z!*
 :[range]z![+-^.=][count]
-			Like ":z:", but when [count] is not specified, it
+			Like ":z", but when [count] is not specified, it
 			defaults to the Vim window height minus one.
 
 :[range]z[!]#[+-^.=][count]				*:z#*
diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt
index b661097..576456a 100644
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -103,7 +103,7 @@
 	writefile(['done'], 'file.txt')
 - You cannot use `:xit`, `:t`, `:k`, `:append`, `:change`, `:insert`, `:open`,
   and `:s` or `:d` with only flags.
-  or curly-braces names.
+- You cannot use curly-braces names.
 - A range before a command must be prefixed with a colon: >
 	:%s/this/that
 - Executing a register with "@r" does not work, you can prepend a colon or use
@@ -206,7 +206,7 @@
 as the argument results in using the default value.  This is useful when you
 want to specify a value for an argument that comes after an argument that
 should use its default value.  Example: >
-	def MyFunc(one = 'one', last = 'last)
+	def MyFunc(one = 'one', last = 'last')
 	  ...
 	enddef
 	MyFunc(v:none, 'LAST')  # first argument uses default value 'one'
@@ -631,7 +631,7 @@
 		|   echo 'match'
 		| endif
 
-Note that this means that in heredoc the first line cannot be a bar: >
+Note that this means that in heredoc the first line cannot start with a bar: >
 	var lines =<< trim END
 	   | this doesn't work
 	END
@@ -639,7 +639,7 @@
 add the "C" flag to 'cpoptions': >
 	set cpo+=C
 	var lines =<< trim END
-	   | this doesn't work
+	   | this works
 	END
 	set cpo-=C
 If the heredoc is inside a function 'cpoptions' must be set before :def and
@@ -1118,7 +1118,7 @@
 function scope.  Instead, use a lambda: >
 	def MapList(): list<string>
 	  var list = ['aa', 'bb', 'cc', 'dd']
-	  return range(1, 2)->map(( _, v) => list[v])
+	  return range(1, 2)->map((_, v) => list[v])
 	enddef
 
 The same is true for commands that are not compiled, such as `:global`.
@@ -1322,16 +1322,16 @@
 - Using a string value when setting a number option.
 - Using a number where a string is expected.   *E1024*
 
-One consequence is that the item type of a list or dict given to map() must
+One consequence is that the item type of a list or dict given to |map()| must
 not change.  This will give an error in Vim9 script: >
-	vim9 echo map([1, 2, 3], (i, v) => 'item ' .. i)
+	echo map([1, 2, 3], (i, v) => 'item ' .. i)
 	E1012: Type mismatch; expected number but got string
-Instead use |mapnew(): >
-	vim9 echo mapnew([1, 2, 3], (i, v) => 'item ' .. i)
+Instead use |mapnew()|: >
+	echo mapnew([1, 2, 3], (i, v) => 'item ' .. i)
 	['item 0', 'item 1', 'item 2']
 
 If the item type was determined to be "any" it can change to a more specific
-type.  E.g. when a list of mixed types gets changed to a list of numbers: >
+type.  E.g. when a list of mixed types gets changed to a list of strings: >
 	var mylist = [1, 2.0, '3']
 	# typename(mylist) == "list<any>"
 	map(mylist, (i, v) => 'item ' .. i)
