diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt
index 9c52e8d..cf799a9 100644
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,4 +1,4 @@
-*change.txt*    For Vim version 8.2.  Last change: 2020 Feb 09
+*change.txt*    For Vim version 8.2.  Last change: 2020 Apr 11
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -209,7 +209,7 @@
 			start insert (for {Visual} see |Visual-mode|).
 
 							*v_r*
-{Visual}["x]r{char}	Replace all selected characters by {char}.
+{Visual}r{char}		Replace all selected characters by {char}.
 
 							*v_C*
 {Visual}["x]C		Delete the highlighted lines [into register x] and
diff --git a/runtime/doc/develop.txt b/runtime/doc/develop.txt
index c1e5a11..7ed251a 100644
--- a/runtime/doc/develop.txt
+++ b/runtime/doc/develop.txt
@@ -1,4 +1,4 @@
-*develop.txt*   For Vim version 8.2.  Last change: 2019 Nov 22
+*develop.txt*   For Vim version 8.2.  Last change: 2020 Apr 13
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -151,7 +151,8 @@
   A satirical way to say this: "Unlike Emacs, Vim does not attempt to include
   everything but the kitchen sink, but some people say that you can clean one
   with it.  ;-)"
-  To use Vim with gdb see: http://www.agide.org and http://clewn.sf.net.
+  To use Vim with gdb see |terminal-debugger|.  Other (older) tools can be
+  found at http://www.agide.org and http://clewn.sf.net.
 - Vim is not a fancy GUI editor that tries to look nice at the cost of
   being less consistent over all platforms.  But functional GUI features are
   welcomed.
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 6603376..e01aad3 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 8.2.  Last change: 2020 Apr 13
+*eval.txt*	For Vim version 8.2.  Last change: 2020 Apr 19
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1809,10 +1809,12 @@
 v:event		Dictionary containing information about the current
 		|autocommand|.  See the specific event for what it puts in
 		this dictionary.
-		The dictionary is emptied when the |autocommand|
-		finishes, please refer to |dict-identity| for how to get an
-		independent copy of it.
-
+		The dictionary is emptied when the |autocommand| finishes,
+		please refer to |dict-identity| for how to get an independent
+		copy of it.  Use |deepcopy()| if you want to keep the
+		information after the event triggers.  Example: >
+			au TextYankPost * let g:foo = deepcopy(v:event)
+<
 					*v:exception* *exception-variable*
 v:exception	The value of the exception most recently caught and not
 		finished.  See also |v:throwpoint| and |throw-variables|.
@@ -2901,13 +2903,13 @@
 				String	execute {command} in window {id}
 win_findbuf({bufnr})		List	find windows containing {bufnr}
 win_getid([{win} [, {tab}]])	Number	get window ID for {win} in {tab}
+win_gettype([{nr}])		String	type of window {nr}
 win_gotoid({expr})		Number	go to window with ID {expr}
 win_id2tabwin({expr})		List	get tab and window nr from window ID
 win_id2win({expr})		Number	get window nr from window ID
 win_screenpos({nr})		List	get screen position of window {nr}
 win_splitmove({nr}, {target} [, {options}])
 				Number	move window {nr} to split of {target}
-win_type([{nr}])		String	type of window {nr}
 winbufnr({nr})			Number	buffer number of window {nr}
 wincol()			Number	window column of the cursor
 winheight({nr})			Number	height of window {nr}
@@ -7766,7 +7768,7 @@
 			GetExpr()->range()
 <
 
-rand([{expr}])						*rand()*
+rand([{expr}])						*rand()* *random*
 		Return a pseudo-random Number generated with an xoshiro128**
 		algorithm using seed {expr}.  The returned number is 32 bits,
 		also on 64 bits systems, for consistency.
diff --git a/runtime/doc/netbeans.txt b/runtime/doc/netbeans.txt
index ac85623..803d388 100644
--- a/runtime/doc/netbeans.txt
+++ b/runtime/doc/netbeans.txt
@@ -1,4 +1,4 @@
-*netbeans.txt*  For Vim version 8.2.  Last change: 2019 May 05
+*netbeans.txt*  For Vim version 8.2.  Last change: 2020 Apr 19
 
 
 		  VIM REFERENCE MANUAL    by Gordon Prieur et al.
diff --git a/runtime/doc/popup.txt b/runtime/doc/popup.txt
index 79aab40..26435d1 100644
--- a/runtime/doc/popup.txt
+++ b/runtime/doc/popup.txt
@@ -1,4 +1,4 @@
-*popup.txt*  For Vim version 8.2.  Last change: 2020 Mar 21
+*popup.txt*  For Vim version 8.2.  Last change: 2020 Apr 13
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -535,6 +535,8 @@
 			wrap
 			zindex
 		The options from |popup_move()| can also be used.
+		Generally, setting an option to zero or an empty string resets
+		it to the default value, but there are exceptions.
 		For "hidden" use |popup_hide()| and |popup_show()|.
 		"tabpage" cannot be changed.
 
@@ -579,15 +581,15 @@
 	line		Screen line where to position the popup.  Can use a
 			number or "cursor", "cursor+1" or "cursor-1" to use
 			the line of the cursor and add or subtract a number of
-			lines.  If omitted the popup is vertically centered.
-			The first line is 1.
+			lines.  If omitted or zero the popup is vertically
+			centered.  The first line is 1.
 			When using "textprop" the number is relative to the
 			text property and can be negative.
 	col		Screen column where to position the popup.  Can use a
 			number or "cursor" to use the column of the cursor,
 			"cursor+9" or "cursor-9" to add or subtract a number
-			of columns.  If omitted the popup is horizontally
-			centered.  The first column is 1.
+			of columns.  If omitted or zero the popup is
+			horizontally centered.  The first column is 1.
 			When using "textprop" the number is relative to the
 			text property and can be negative.
 	pos		"topleft", "topright", "botleft" or "botright":
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 68ac1a9..301336c 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -1315,6 +1315,7 @@
 +iconv	various.txt	/*+iconv*
 +iconv/dyn	various.txt	/*+iconv\/dyn*
 +insert_expand	various.txt	/*+insert_expand*
++ipv6	various.txt	/*+ipv6*
 +job	various.txt	/*+job*
 +jumplist	various.txt	/*+jumplist*
 +keymap	various.txt	/*+keymap*
@@ -8579,6 +8580,7 @@
 r	change.txt	/*r*
 r.vim	syntax.txt	/*r.vim*
 rand()	eval.txt	/*rand()*
+random	eval.txt	/*random*
 range()	eval.txt	/*range()*
 raw-terminal-mode	term.txt	/*raw-terminal-mode*
 rcp	pi_netrw.txt	/*rcp*
diff --git a/runtime/doc/tagsrch.txt b/runtime/doc/tagsrch.txt
index 0b22deb..bab1a1c 100644
--- a/runtime/doc/tagsrch.txt
+++ b/runtime/doc/tagsrch.txt
@@ -1,4 +1,4 @@
-*tagsrch.txt*   For Vim version 8.2.  Last change: 2020 Apr 03
+*tagsrch.txt*   For Vim version 8.2.  Last change: 2020 Apr 19
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -527,10 +527,13 @@
 Some programs that generate tags files:
 ctags			As found on most Unix systems.  Only supports C.  Only
 			does the basic work.
+universal ctags		A maintained version of ctags based on exuberant
+			ctags. See https://ctags.io.
 							*Exuberant_ctags*
 exuberant ctags		This is a very good one.  It works for C, C++, Java,
 			Fortran, Eiffel and others.  It can generate tags for
 			many items.  See http://ctags.sourceforge.net.
+			No new version since 2009.
 etags			Connected to Emacs.  Supports many languages.
 JTags			For Java, in Java.  It can be found at
 			http://www.fleiner.com/jtags/.
diff --git a/runtime/doc/term.txt b/runtime/doc/term.txt
index 4bff365..9e0b0bb 100644
--- a/runtime/doc/term.txt
+++ b/runtime/doc/term.txt
@@ -1,4 +1,4 @@
-*term.txt*      For Vim version 8.2.  Last change: 2019 Dec 07
+*term.txt*      For Vim version 8.2.  Last change: 2020 Apr 12
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -545,6 +545,7 @@
 When it is non-zero, the 't_AB' and 't_AF' options are used to set the color.
 If one of these is not available, 't_Sb' and 't_Sf' are used.  't_me' is used
 to reset to the default colors.  Also see 'termguicolors'.
+When the GUI is running 't_Co' is set to 16777216.
 
 				*termcap-cursor-shape* *termcap-cursor-color*
 When Vim enters Insert mode the 't_SI' escape sequence is sent.  When Vim
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index c726921..14756f0 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.2.  Last change: 2020 Apr 10
+*todo.txt*      For Vim version 8.2.  Last change: 2020 Apr 20
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -39,10 +39,10 @@
 -------------------- Known bugs and current work -----------------------
 
 Vim9 script:
+more tests for # comments:
+  check all calls to ends_excmd() and test that space before # is needed.
+  next: ex_findpat()
 func and partial types:
-- check using func type with default arguments and varargs.
-	func(type, type?, ...): rettype
-- Type checking arguments when calling :def function and test
 - Calling unknown user function does not give proper error message:
       assert_equal('123text', RefDef2Arg())  typo for "RetDef2Arg"
 - "func" inside "vim9script" doesn't work?  (Ben Jackson, #5670)
@@ -51,15 +51,25 @@
 	let ref = def(arg: type): rettype
 	    body
 	enddef
+- Test that a script-local function in Vim9 script cannot be deleted.
+- Test that a function defined inside a :def function is local to that
+  function, g: functions can be defined and script-local functions cannot be
+  defined.
 Also:
+- When wildcards are expanded, find `=expr` and evaluate it before invoking
+  the command. For example:  :edit `=filename`
 - "echo Func()" is an error if Func() does not return anything.
+- Check all Ex commands, give error if they use an expression and should be
+  compiled.
+- For range: make table of first ASCII character with flag to quickly check if
+  it can be a Vim9 command. E.g. "+" can, but "." can't.
 - better implementation for partial and tests for that.
 - Make "g:imported = Export.exported" work in Vim9 script.
 - Make Foo.Bar() work to call the dict function. (#5676)
-- make "let var: string" work in a vim9script.
-- Disallow unlet for local/script/imported vars
 - Support type for ":let"/":const" at script level for Vim9 script.
     (Ben Jackson, #5671)
+    Can we share the code for :let between direct execution and compiling?
+- Disallow unlet for local/script/imported vars
 - Make "++nr" work.
 - Check that import in legacy script works and puts item in s:
 - Error in any command in "vim9script" aborts sourcing.
@@ -75,8 +85,6 @@
 	map(list, SomeFunc)
 - Test: Function declared inside a :def function is local, disappears at the
   end of the function.  Unless g: is used, just like with variables.
-- Can we omit \ for line continuation inside (), {}, ?
-  Requires parsing while reading a function.  Like fgetline in do_one_cmd()?
 - implement :type
 - import type declaration?
 - implement class
@@ -93,6 +101,7 @@
     Is buf->nwindows incorrect?
 - popup_clear() and popup_close() should close the terminal popup, and
    make the buffer hidden. #5745
+- Cursor not updated before a redraw, making it jump. (#5943)
 - With terminal in popup, allow for popup_hide() to temporarily hide it.?
 - Fire some autocommand event after a new popup window was created and
   positioned?  PopupNew?  Could be used to set some options or move it out of
@@ -113,6 +122,8 @@
 Text properties:
 - Patch to fix that split / join does not update properties properly (Axel
   Forsman, #5839)  Alternative: #5875.
+- :goto does not go to the right place when test properties are present.
+  (#5930)
 - "cc" does not call inserted_bytes(). (Axel Forsman, #5763)
 - Get E685 with a sequence of commands. (#5674)
 - Combining text property with 'cursorline' does not always work (Billie
@@ -152,6 +163,10 @@
   with another Vim instance.
 
 Terminal emulator window:
+- When started with ":terminal ++close" and the shell exits but there is a
+  background process, the window remains open, because the channel still
+  exists (and output still shows).  Perhaps close the window when an explicit
+  ++close was used? (#5931)
 - When the job in the terminal doesn't use mouse events, let the scroll wheel
   scroll the scrollback, like a terminal does at the shell prompt. #2490
   And use modeless selection.  #2962
@@ -184,7 +199,7 @@
 
 Error numbers available:
 E453, E454, E460, E489, E491, E565, E578, E610, E611, E653,
-E654, E856, E857, E861, E900
+E856, E857, E861, E900
 
 Buffer autocommands are a bit inconsistent.  Add a separate set of
 autocommands for the buffer lifecycle:
@@ -198,7 +213,7 @@
 Patch to fix drawing error with DirectX. (James Grant, #5688)
 Causes flicker on resizing.
 
-In gvim always set t_Co to 16777216 (#5903)
+Patch to support ipv6 for channel. (Ozaki Kiichi, #5893)
 
 Patch to explain use of "%" in :!.  (David Briscoe, #5591)
 
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index a88cc81..384e8e6 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -1,4 +1,4 @@
-*various.txt*   For Vim version 8.2.  Last change: 2020 Mar 19
+*various.txt*   For Vim version 8.2.  Last change: 2020 Apr 13
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -543,7 +543,7 @@
 			locked or the variable type is changed, then further
 			command output messages will cause errors.
 			To get the output of one command the |execute()|
-			function can be used.
+			function can be used instead of redirection.
 
 :redi[r] =>> {var}	Append messages to an existing variable.  Only string
 			variables can be used.
diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt
index dd2d510..704e801 100644
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -1,4 +1,4 @@
-*vim9.txt*	For Vim version 8.2.  Last change: 2020 Apr 09
+*vim9.txt*	For Vim version 8.2.  Last change: 2020 Apr 19
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -66,6 +66,10 @@
 numbers, but you can also use `:number` for that. >
 	let count = 0  # number of occurences of Ni!
 
+To improve readability there must be a space between the command and the #
+that starts a comment.  Note that #{ is the start of a dictionary, therefore
+it cannot start a comment.
+
 
 Vim9 functions ~
 
@@ -82,6 +86,29 @@
 	     ...
 
 
+Functions are script-local by default ~
+
+When using `:function` or `:def` to specify a new function at the script level
+in a Vim9 script, the function is local to the script, as if "s:" was
+prefixed.  To define a global function the "g:" prefix must be used.
+
+When using `:function` or `:def` to specify a new function inside a function,
+the function is local to the function.  It is not possible to define a
+script-local function inside a function. To define a global function the "g:"
+prefix must be used.
+
+When referring to a function and no "s:" or "g:" prefix is used, Vim will
+search for the function in this order:
+- Local to the current function scope.
+- Local to the current script file.
+- Imported functions, see `:import`.
+- Global.
+
+Global functions can be defined and deleted at nearly any time.  In Vim9
+script script-local functions are defined once when the script is sourced and
+cannot be deleted.
+
+
 Variable declarations with :let and :const ~
 
 Local variables need to be declared with `:let`.  Local constants need to be
@@ -468,9 +495,12 @@
 be available as `g:myvar` from any other script and function.
 
 The variables at the file level are very much like the script-local "s:"
-variables in legacy Vim script, but the "s:" is omitted.
+variables in legacy Vim script, but the "s:" is omitted.  And they cannot be
+deleted.
 
-In Vim9 script the global "g:" namespace can still be used as before.
+In Vim9 script the global "g:" namespace can still be used as before.  And the
+"w:", "b:" and "t:" namespaces.  These have in common that variables are not
+declared and they can be deleted.
 
 A side effect of `:vim9script` is that the 'cpoptions' option is set to the
 Vim default value, like with: >
