diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index cce17b9..50ca376 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -10193,7 +10193,7 @@
 conpty			Platform where |ConPTY| can be used.
 cryptv			Compiled with encryption support |encryption|.
 cscope			Compiled with |cscope| support.
-cursorbind		Compiled with |cursorbind| (always true)
+cursorbind		Compiled with |'cursorbind'| (always true)
 debug			Compiled with "DEBUG" defined.
 dialog_con		Compiled with console dialog support.
 dialog_gui		Compiled with GUI dialog support.
diff --git a/runtime/doc/if_perl.txt b/runtime/doc/if_perl.txt
index cce3cdf..db0a92c 100644
--- a/runtime/doc/if_perl.txt
+++ b/runtime/doc/if_perl.txt
@@ -1,4 +1,4 @@
-*if_perl.txt*   For Vim version 8.1.  Last change: 2017 Nov 24
+*if_perl.txt*   For Vim version 8.1.  Last change: 2019 Jan 29
 
 
 		  VIM REFERENCE MANUAL    by Sven Verdoolaege
@@ -192,7 +192,7 @@
 			and inserting line breaks.
 
 							*perl-Blob*
-VIM::Blob({expr})	Return Blob literal string 0zXXXX from scalar value.
+VIM::Blob({expr})	Return |Blob| literal string 0zXXXX from scalar value.
 
 							*perl-SetHeight*
 Window->SetHeight({height})
diff --git a/runtime/doc/if_ruby.txt b/runtime/doc/if_ruby.txt
index c9fc797..a98b620 100644
--- a/runtime/doc/if_ruby.txt
+++ b/runtime/doc/if_ruby.txt
@@ -1,4 +1,4 @@
-*if_ruby.txt*   For Vim version 8.1.  Last change: 2018 Mar 15
+*if_ruby.txt*   For Vim version 8.1.  Last change: 2019 Jan 29
 
 
 		  VIM REFERENCE MANUAL    by Shugo Maeda
@@ -112,7 +112,7 @@
 
 							*ruby-blob*
 Vim::blob({arg})
-	Return Blob literal string from {arg}.
+	Return |Blob| literal string from {arg}.
 
 							*ruby-set_option*
 Vim::set_option({arg})
diff --git a/runtime/doc/indent.txt b/runtime/doc/indent.txt
index 299d1ac..57b1be1 100644
--- a/runtime/doc/indent.txt
+++ b/runtime/doc/indent.txt
@@ -1,4 +1,4 @@
-*indent.txt*    For Vim version 8.1.  Last change: 2018 Apr 04
+*indent.txt*    For Vim version 8.1.  Last change: 2019 Jan 31
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index 0431043..bd4fad2 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt*    For Vim version 8.1.  Last change: 2019 Jan 11
+*insert.txt*    For Vim version 8.1.  Last change: 2019 Jan 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1078,7 +1078,8 @@
 			leading text is changed.
 
 If you want to suppress the warning message for an empty result, return
-v:none.  This is useful to implement asynchronous completion with complete().
+|v:none|.  This is useful to implement asynchronous completion with
+|complete()|.
 
 Other items are ignored.
 
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index e73a9da..c9e2b0b 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 Jan 16
+*options.txt*	For Vim version 8.1.  Last change: 2019 Feb 03
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -354,12 +354,12 @@
 	:setlocal makeprg=perlmake
 You can switch back to using the global value by making the local value empty: >
 	:setlocal makeprg=
-This only works for a string option.  For a boolean option you need to use the
-"<" flag, like this: >
+This only works for a string option.  For a number or boolean option you need
+to use the "<" flag, like this: >
 	:setlocal autoread<
-Note that for non-boolean options using "<" copies the global value to the
-local value, it doesn't switch back to using the global value (that matters
-when the global value changes later).  You can also use: >
+Note that for non-boolean and non-number options using "<" copies the global
+value to the local value, it doesn't switch back to using the global value
+(that matters when the global value changes later).  You can also use: >
 	:set path<
 This will make the local value of 'path' empty, so that the global value is
 used.  Thus it does the same as: >
diff --git a/runtime/doc/os_vms.txt b/runtime/doc/os_vms.txt
index 2e2f852..36a82b2 100644
--- a/runtime/doc/os_vms.txt
+++ b/runtime/doc/os_vms.txt
@@ -1,4 +1,4 @@
-*os_vms.txt*    For Vim version 8.1.  Last change: 2019 Jan 19
+*os_vms.txt*    For Vim version 8.1.  Last change: 2019 Jan 29
 
 
 		  VIM REFERENCE MANUAL
@@ -105,7 +105,7 @@
 GTK for OpenVMS or at least runtime shareable images - LIBGTK from
 polarhome.com
 Post 7.2 Vim uses GTK2+ while the last GTK on OpenVMS is 1.2.10, therefore
-the GTK build is no longer available. 
+the GTK build is no longer available.
 
 For more advanced questions, please send your problem to Vim on VMS mailing
 list <vim-vms@polarhome.com>
@@ -772,9 +772,9 @@
 Version 8.0
 - solve the 100% cpu usage issue while waiting for a keystroke
 - correct the VMS warnings and errors around handling the INFINITY (used in json.c)
-- minor VMS port related changes 
-- correct the make_vms.mms file for 8.0 
-- fix [.TESTDIR]make_vms.mms for 8.0 
+- minor VMS port related changes
+- correct the make_vms.mms file for 8.0
+- fix [.TESTDIR]make_vms.mms for 8.0
 
 Version 7.4
 - Undo: VMS can not handle more than one dot in the filenames use "dir/name" -> "dir/_un_name"
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 4cc2fa7..988d11b 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -1092,6 +1092,7 @@
 'termbidi'	options.txt	/*'termbidi'*
 'termencoding'	options.txt	/*'termencoding'*
 'termguicolors'	options.txt	/*'termguicolors'*
+'termmode'	options.txt	/*'termmode'*
 'termwinkey'	options.txt	/*'termwinkey'*
 'termwinscroll'	options.txt	/*'termwinscroll'*
 'termwinsize'	options.txt	/*'termwinsize'*
@@ -1112,6 +1113,7 @@
 'titlestring'	options.txt	/*'titlestring'*
 'tl'	options.txt	/*'tl'*
 'tm'	options.txt	/*'tm'*
+'tmod'	options.txt	/*'tmod'*
 'to'	options.txt	/*'to'*
 'toolbar'	options.txt	/*'toolbar'*
 'toolbariconsize'	options.txt	/*'toolbariconsize'*
@@ -1717,6 +1719,7 @@
 05.6	usr_05.txt	/*05.6*
 05.7	usr_05.txt	/*05.7*
 05.8	usr_05.txt	/*05.8*
+05.9	usr_05.txt	/*05.9*
 06.1	usr_06.txt	/*06.1*
 06.2	usr_06.txt	/*06.2*
 06.3	usr_06.txt	/*06.3*
@@ -3741,6 +3744,7 @@
 Command-line	cmdline.txt	/*Command-line*
 Command-line-mode	cmdline.txt	/*Command-line-mode*
 CompleteDone	autocmd.txt	/*CompleteDone*
+ConPTY	terminal.txt	/*ConPTY*
 Contents	quickref.txt	/*Contents*
 Cscope	if_cscop.txt	/*Cscope*
 CursorHold	autocmd.txt	/*CursorHold*
@@ -5012,7 +5016,10 @@
 [:cntrl:]	pattern.txt	/*[:cntrl:]*
 [:digit:]	pattern.txt	/*[:digit:]*
 [:escape:]	pattern.txt	/*[:escape:]*
+[:fname:]	pattern.txt	/*[:fname:]*
 [:graph:]	pattern.txt	/*[:graph:]*
+[:ident:]	pattern.txt	/*[:ident:]*
+[:keyword:]	pattern.txt	/*[:keyword:]*
 [:lower:]	pattern.txt	/*[:lower:]*
 [:print:]	pattern.txt	/*[:print:]*
 [:punct:]	pattern.txt	/*[:punct:]*
@@ -5847,6 +5854,7 @@
 decada_members	ft_ada.txt	/*decada_members*
 deepcopy()	eval.txt	/*deepcopy()*
 defaults.vim	starting.txt	/*defaults.vim*
+defaults.vim-explained	usr_05.txt	/*defaults.vim-explained*
 definition-search	tagsrch.txt	/*definition-search*
 definitions	intro.txt	/*definitions*
 delete()	eval.txt	/*delete()*
@@ -7313,7 +7321,7 @@
 lang-variable	eval.txt	/*lang-variable*
 language-mapping	map.txt	/*language-mapping*
 last-pattern	pattern.txt	/*last-pattern*
-last-position-jump	eval.txt	/*last-position-jump*
+last-position-jump	usr_05.txt	/*last-position-jump*
 last_buffer_nr()	eval.txt	/*last_buffer_nr()*
 latex-syntax	syntax.txt	/*latex-syntax*
 lc_time-variable	eval.txt	/*lc_time-variable*
diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt
index 3b78b55..de79ff0 100644
--- a/runtime/doc/terminal.txt
+++ b/runtime/doc/terminal.txt
@@ -1,4 +1,4 @@
-*terminal.txt*	For Vim version 8.1.  Last change: 2018 May 17
+*terminal.txt*	For Vim version 8.1.  Last change: 2019 Feb 03
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 95fdfeb..cb8733f 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.1.  Last change: 2019 Jan 26
+*todo.txt*      For Vim version 8.1.  Last change: 2019 Feb 02
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -38,6 +38,8 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+Timer test doesn't work on MS-Windows console, any way to make it work?
+
 'incsearch' with :s: (#3321)
 - Get E20 when using command history to get "'<,'>s/a/b" and no Visual area
   was set. (#3837)
@@ -61,6 +63,7 @@
 - Add option to not open the program window.  It's not used when attaching to
   an already running program. (M. Kelly)
 - When only gdb window exists, on "quit" edit another buffer.
+- Use a sign group
 - Termdebug does not work when Vim was build with mzscheme: gdb hangs just
   after "run".  Everything else works, including communication channel.  Not
   initializing mzscheme avoid the problem, thus it's not some #ifdef.
@@ -107,48 +110,18 @@
 Patch with tests, but it's not clear how it is supposed to work. (tommm, 2018
 Nov 17)  Asked about this, Dec 22. Christian will have a look.
 
-Key mapping times out when using a timer in Gvim. (Michael Henry, 2018 Sep 9,
-#3417)
-Another report, with reproduction steps. (#3799)
-Is this fixed by 8.1.0761?
-
 Does not build with MinGW out of the box:
 - _stat64 is not defined, need to use "struct stat" in vim.h
 - WINVER conflict, should use 0x0600 by default?
 
-js_decode() does not handle infinity properly. (Dominique Pelle, 2019 Jan 10,
-#3788)
-
-Patch to avoid skipping buffers when loading a session. (Jason Franklin, 2019
-Jan 20)
-
-Patch to update example of how to restore the cursor. (Ken Takata, 2019 Jan
-21)
-
-Patch to fix problems with timer in GUI. (Ozaki Kiichi, #3817)
-Should also fix #3824.
-Change the order in which GUI handles events?  Make it work like os_unix.c,
-check timer on lower level, check for pending messages higher up.
-
-Signs:
--   screen not redrawn correctly. (Dominique Pelle, 2019 Jan 14, #3803)
--   Use a sign group in the Termdebug plugin.
--   Avoid that "sign unplace id" does a redraw right away, esp. when there is
-    a sequence of these commands. (Andy Stewart, 2018 Mar 16)
-
 Crash when mixing matchadd and substitute()? (Max Christian Pohle, 2018 May
 13, #2910)  Can't reproduce?
 
-Patch to recognize more systems with has().  (Ozaki Kiichi, #3855)
-
 Merge checking for 'cursorline' and 'concealcursor', see neovim #9492.
 
 Errors found with random data:
     heap-buffer-overflow in alist_add (#2472)
 
-Patch for xxd to make it work with 64 bit numbers. (Christer Jense, 2019 Jan
-11, #3791)
-
 Win32 key codes are messy.  Mike Williams tried to fix that, but now old
 mappings no longer work.  Create a new terminal for the better solution?
 
@@ -177,12 +150,6 @@
 C syntax: {} inside () causes following {} to be highlighted as error.
 (Michalis Giannakidis, 2006 Jun 1)
 
-Patch on #3690 to fix that "wincmd p" does not always behave properly.
-(Christian Brabandt, 2018 Dec 17)
-
-Patch: When using %v in 'errorformat', assume the number is the screen column
-not bytes, also handle multi-byte charactes. (Yegappan Lakshmanan, #3700)
-
 Support setting the character displayed below the last line?  Neovim uses
 "eob:X" in 'fillchars'.
 
@@ -197,37 +164,24 @@
 2018 Sep 14)
 Another request: #3811.
 
-Patch for MinGW build with static libraries. (Ken Takata, 2018 Dec 16)
-
-Patch to add new regexp classes :ident:, :keyword:, :fname:.
-(ichizok, 2016 Jan 12, #1373)
-
-Patch to add "termsig" - signal that caused job to end. (Ozaki Kiichi, 2019
-Jan 10, #3786)
-
 More warnings from static analysis:
 https://lgtm.com/projects/g/vim/vim/alerts/?mode=list
 
-Patch for this: (Aron Widforss, 2018 Oct 13, #3539)
-    missing a test.
-7   Make 'scrolloff' a global-local option, so that it can be different in the
-    quickfix window, for example. (Gary Holloway)
-    Also do 'sidescrolloff'.
-
-Patch for ConPTY support, new one: #3794 Does this work now?
-(Nobuhiro Takasaki)
-
-Issue #3649: Retrying the X server connection once may be insufficient.
-Since patch 8.1.0615 we try reconnecting five times.  Does it work?
-
 nvo-mode mapping works on Windows, not on Linux. (#3678)
 
 Patch to be able to separately map CTRL-H and BS on Windows.
 (Linwei, 2017 Jul 11, #1833)
 
+Patch to improve readability of complicated if(). (ichizok, 2019 Jan 29,
+#3879)
+
 Pasting foo} causes Vim to behave weird. (John Little, 2018 Jun 17)
 Related to bracketed paste.  I cannot reproduce it.
 
+When 'confirm' is set a "silent q" doesn't show the prompt.  It should in this
+case. (Nate Peterson, 2019 Jan 31, #3892)
+For "silent! q" it should not prompt and just fail.
+
 Using CTRL-L to add a character to the search string doesn't work for the last
 character in the file. (Smylers, 2018 Nov 17, #3620)
 Suggested patch by Hirohito Higashi, 2018 Nov 18.
@@ -250,13 +204,16 @@
 scrolls back.  Should allow for this scrolling, like 'scrolloff' does when
 using CTRL-E. (Yee Cheng Chin, #3721)
 
-Patch to add ":vsbuffer" - vertical split + :sbuffer. (Rob Pilling, 2019 Jan
-17, #3816)  Do we really need this?
-
 Invalid memory access with old regexp engine. (Dominique Pelle, 2018 Sep 3,
 #3405)  Introduced by 8.0.1517, which was fixing another memory access error.
 (Sep 8)
 
+Patch to add complete_mode().  Shougo - #3866.  Alternate patch by Hirohito
+Higashi, 2019 Jan 27, included now?
+
+Patch for ConPTY support, new one: #3794 Does this work now?  It should.
+(Nobuhiro Takasaki)
+
 Add function to make use of internal diff, working on two lists and returning
 unified diff (list of lines).
 
@@ -272,6 +229,8 @@
 (Matéo Zanibelli, 2018 Oct 30, #3578)
 Patch by Christian, Oct 30.
 
+Patch to clean up CI configs. (Ozaki Kiichi, 2019 Feb 1, #3890)
+
 Memory leaks in test_channel? (or is it because of fork())
 Using uninitialized value in test_crypt.
 Memory leak in test_terminal:
@@ -293,6 +252,11 @@
 matchaddpos() gets slow with many matches.  Proposal by Rick Howe, 2018 Jul
 19.
 
+Should make 'listchars' global-local.  Local to window or to buffer?
+Probably window.
+Add something like 'fillchars' local to window, but allow for specifying a
+highlight name.  Esp. for the statusline.
+
 Sourceforge Vim pages still have content, redirect from empty page.
 Check for PHP errors. (Wayne Davison, 2018 Oct 26)
 
@@ -335,6 +299,9 @@
 
 Difference between two regexp engines: #3373
 
+Patch to properly break CJK lines: #3875
+Requires more tests.  dbcs_ functions are not implemented.
+
 Patch to add ch_listen() (Yasuhiro Matsumoto, 2018 Nov 26, #3639)
 What is the practical use for this?
 
@@ -424,8 +391,6 @@
 Make {skip} argument of searchpair() consistent with other places where we
 pass an expression to evaluate.  Allow passing zero for "never skip".
 
-The 'scrolloff' option is global, make it global-local. #3195
-
 Add an option similar to 'lazyredraw' to skip redrawing while executing a
 script or function.
 
diff --git a/runtime/doc/usr_05.txt b/runtime/doc/usr_05.txt
index a77f90b..9694efb 100644
--- a/runtime/doc/usr_05.txt
+++ b/runtime/doc/usr_05.txt
@@ -1,4 +1,4 @@
-*usr_05.txt*	For Vim version 8.1.  Last change: 2018 Feb 20
+*usr_05.txt*	For Vim version 8.1.  Last change: 2019 Jan 26
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -11,12 +11,13 @@
 
 |05.1|	The vimrc file
 |05.2|	The example vimrc file explained
-|05.3|	Simple mappings
-|05.4|	Adding a package
-|05.5|	Adding a plugin
-|05.6|	Adding a help file
-|05.7|	The option window
-|05.8|	Often used options
+|05.3|	The defaults.vim file explained
+|05.4|	Simple mappings
+|05.5|	Adding a package
+|05.6|	Adding a plugin
+|05.7|	Adding a help file
+|05.8|	The option window
+|05.9|	Often used options
 
      Next chapter: |usr_06.txt|  Using syntax highlighting
  Previous chapter: |usr_04.txt|  Making small changes
@@ -82,6 +83,95 @@
 will be explained though.  Use the ":help" command to find out more.
 
 >
+	" Get the defaults that most users want.
+	source $VIMRUNTIME/defaults.vim
+>
+This loads the "defaults.vim" file in the $VIMRUNTIME directory.  This sets up
+Vim for how most users like it.  If you are one of the few that don't, then
+comment out this line.  The commands are explained below:
+|defaults.vim-explained|
+
+>
+	if has("vms")
+	  set nobackup
+	else
+	  set backup
+	  if has('persistent_undo')
+	    set undofile
+	  endif
+	endif
+
+This tells Vim to keep a backup copy of a file when overwriting it.  But not
+on the VMS system, since it keeps old versions of files already.  The backup
+file will have the same name as the original file with "~" added.  See |07.4|
+
+This also sets the 'undofile' option, if available.  This will store the
+multi-level undo information in a file.  The result is that when you change a
+file, exit Vim, and then edit the file again, you can undo the changes made
+previously.  It's a very powerful and useful feature, at the cost of storing a
+file.  For more information see |undo-persistence|.
+
+The "if" command is very useful to set options
+only when some condition is met.  More about that in |usr_41.txt|.
+
+>
+	if &t_Co > 2 || has("gui_running")
+	  set hlsearch
+	endif
+
+This switches on the 'hlsearch' option, telling Vim to highlight matches with
+the last used search pattern.
+
+>
+	augroup vimrcEx
+	  au!
+	  autocmd FileType text setlocal textwidth=78
+	augroup END
+
+This makes Vim break text to avoid lines getting longer than 78 characters.
+But only for files that have been detected to be plain text.  There are
+actually two parts here.  "autocmd FileType text" is an autocommand.  This
+defines that when the file type is set to "text" the following command is
+automatically executed.  "setlocal textwidth=78" sets the 'textwidth' option
+to 78, but only locally in one file.
+
+The wrapper with "augroup vimrcEx" and "augroup END" makes it possible to
+delete the autocommand with the "au!" command.  See |:augroup|.
+
+>
+	if has('syntax') && has('eval')
+	  packadd! matchit
+	endif
+
+This loads the "matchit" plugin if the required features are available.
+It makes the |%| command more powerful.  This is explained at
+|matchit-install|.
+
+
+==============================================================================
+*05.3*	The defaults.vim file explained		*defaults.vim-explained*
+
+The |defaults.vim| file is loaded when the user has no vimrc file.  When you
+create a new vimrc file, add this line near the top to keep using it: >
+
+	source $VIMRUNTIME/defaults.vim
+
+Or use the vimrc_example.vim file, as explained above.
+
+The following explains what defaults.vim is doing.
+
+>
+	if exists('skip_defaults_vim')
+	  finish
+	endif
+>
+Loading defaults.vim can be disabled with this command: >
+	let skip_defaults_vim = 1
+This has to be done in the system vimrc file.  See |system-vimrc|.  If you
+have a user vimrc this is not needed, since defaults.vim will not be loaded
+automatically.
+>
+>
 	set nocompatible
 
 As mentioned in the first chapter, these manuals explain Vim working in an
@@ -94,38 +184,19 @@
 This specifies where in Insert mode the <BS> is allowed to delete the
 character in front of the cursor.  The three items, separated by commas, tell
 Vim to delete the white space at the start of the line, a line break and the
-character before where Insert mode started.
+character before where Insert mode started.  See 'backspace'.
+
 >
+	set history=200
 
-	set autoindent
-
-This makes Vim use the indent of the previous line for a newly created line.
-Thus there is the same amount of white space before the new line.  For example
-when pressing <Enter> in Insert mode, and when using the "o" command to open a
-new line.
->
-
-	if has("vms")
-	  set nobackup
-	else
-	  set backup
-	endif
-
-This tells Vim to keep a backup copy of a file when overwriting it.  But not
-on the VMS system, since it keeps old versions of files already.  The backup
-file will have the same name as the original file with "~" added.  See |07.4|
->
-
-	set history=50
-
-Keep 50 commands and 50 search patterns in the history.  Use another number if
-you want to remember fewer or more lines.
+Keep 200 commands and 200 search patterns in the history.  Use another number
+if you want to remember fewer or more lines.  See 'history'.
 >
 
 	set ruler
 
 Always display the current cursor position in the lower right corner of the
-Vim window.
+Vim window.  See 'ruler'.
 
 >
 	set showcmd
@@ -144,10 +215,37 @@
 	 ^^^^^^^^^^^		      ^^^^^^^^ ^^^^^^^^^^
 	  'showmode'		     'showcmd'	'ruler'
 
+
+>
+	set wildmenu
+
+Display completion matches in a status line.  That is when you type <Tab> and
+there is more than one match.  See 'wildmenu'.
+
+>
+	set ttimeout
+	set ttimeoutlen=100
+
+This makes typing Esc take effect more quickly.  Normally Vim waits a second
+to see if the Esc is the start of an escape sequence.  If you have a very slow
+remote connection, increase the number.  See 'ttimeout'.
+
+>
+	set display=truncate
+
+Show @@@ in the last line if it is truncated, instead of hiding the whole
+like.  See 'display'.
+
 >
 	set incsearch
 
-Display the match for a search pattern when halfway typing it.
+Display the match for a search pattern when halfway typing it.  See
+'incsearch'.
+
+>
+	set nrformats-=octal
+
+Do not recognize numbers starting with a zero as octal.  See 'nrformats'.
 
 >
 	map Q gq
@@ -158,23 +256,30 @@
 will not need it.
 
 >
+	inoremap <C-U> <C-G>u<C-U>
+>
+CTRL-U in insert mode deletes all entered text in the current line.  Use
+CTRL-G u to first break undo, so that you can undo CTRL-U after inserting a
+line break.  Revert with ":iunmap <C-U>".
+
+>
+	if has('mouse')
+	  set mouse=a
+	endif
+
+Enable using the mouse if available.  See 'mouse'.
+
+>
 	vnoremap _g y:exe "grep /" . escape(@", '\\/') . "/ *.c *.h"<CR>
 
 This mapping yanks the visually selected text and searches for it in C files.
-This is a complicated mapping.  You can see that mappings can be used to do
-quite complicated things.  Still, it is just a sequence of commands that are
-executed like you typed them.
+You can see that a mapping can be used to do quite complicated things.  Still,
+it is just a sequence of commands that are executed like you typed them.
 
 >
-	if &t_Co > 2 || has("gui_running")
-	  syntax on
-	  set hlsearch
-	endif
+	syntax on
 
-This switches on syntax highlighting, but only if colors are available.  And
-the 'hlsearch' option tells Vim to highlight matches with the last used search
-pattern.  The "if" command is very useful to set options only when some
-condition is met.  More about that in |usr_41.txt|.
+Enable highlighting files in color.  See |syntax|.
 
 							*vimrc-filetype*  >
 	filetype plugin indent on
@@ -201,21 +306,12 @@
    automatically.  Vim comes with these indent rules for a number of
    filetypes.  See |:filetype-indent-on| and 'indentexpr'.
 
->
-	autocmd FileType text setlocal textwidth=78
 
-This makes Vim break text to avoid lines getting longer than 78 characters.
-But only for files that have been detected to be plain text.  There are
-actually two parts here.  "autocmd FileType text" is an autocommand.  This
-defines that when the file type is set to "text" the following command is
-automatically executed.  "setlocal textwidth=78" sets the 'textwidth' option
-to 78, but only locally in one file.
-
-							*restore-cursor*  >
-	autocmd BufReadPost *
-	    \ if line("'\"") > 1 && line("'\"") <= line("$") |
-	    \   exe "normal! g`\"" |
-	    \ endif
+				*restore-cursor* *last-position-jump*  >
+    autocmd BufReadPost *
+      \ if line("'\"") >= 1 && line("'\"") <= line("$") && &ft !~# 'commit'
+      \ |   exe "normal! g`\""
+      \ | endif
 
 Another autocommand.  This time it is used after reading any file.  The
 complicated stuff after it checks if the '" mark is defined, and jumps to it
@@ -224,8 +320,22 @@
 See |line-continuation|.  This only works in a Vim script file, not when
 typing commands at the command-line.
 
+>
+	command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ | diffthis
+		  \ | wincmd p | diffthis
+
+This adds the ":DiffOrig" command.  Use this in a modified buffer to see the
+differences with the file it was loaded from.  See |diff|.
+
+>
+	set nolangremap
+
+Prevent that the langmap option applies to characters that result from a
+mapping.  If set (default), this may break plugins (but it's backward
+compatible).  See 'langremap'.
+
 ==============================================================================
-*05.3*	Simple mappings
+*05.4*	Simple mappings
 
 A mapping enables you to bind a set of Vim commands to a single key.  Suppose,
 for example, that you need to surround certain words with curly braces.  In
@@ -272,7 +382,7 @@
 least the ones for Normal mode.  More about mappings in section |40.1|.
 
 ==============================================================================
-*05.4*	Adding a package			*add-package* *matchit-install*
+*05.5*	Adding a package			*add-package* *matchit-install*
 
 A package is a set of files that you can add to Vim.  There are two kinds of
 packages: optional and automatically loaded on startup.
@@ -310,7 +420,7 @@
 More information about packages can be found here: |packages|.
 
 ==============================================================================
-*05.5*	Adding a plugin					*add-plugin* *plugin*
+*05.6*	Adding a plugin					*add-plugin* *plugin*
 
 Vim's functionality can be extended by adding plugins.  A plugin is nothing
 more than a Vim script file that is loaded automatically when Vim starts.  You
@@ -462,7 +572,7 @@
 |new-filetype|		How to detect a new file type.
 
 ==============================================================================
-*05.6*	Adding a help file				*add-local-help*
+*05.7*	Adding a help file				*add-local-help*
 
 If you are lucky, the plugin you installed also comes with a help file.  We
 will explain how to install the help file, so that you can easily find help
@@ -507,7 +617,7 @@
 For writing a local help file, see |write-local-help|.
 
 ==============================================================================
-*05.7*	The option window
+*05.8*	The option window
 
 If you are looking for an option that does what you want, you can search in
 the help files here: |options|.  Another way is by using this command: >
@@ -546,7 +656,7 @@
 from the window border where scrolling starts.
 
 ==============================================================================
-*05.8*	Often used options
+*05.9*	Often used options
 
 There are an awful lot of options.  Most of them you will hardly ever use.
 Some of the more useful ones will be mentioned here.  Don't forget you can
diff --git a/runtime/doc/usr_11.txt b/runtime/doc/usr_11.txt
index 4cffc7d..cd0b726 100644
--- a/runtime/doc/usr_11.txt
+++ b/runtime/doc/usr_11.txt
@@ -1,4 +1,4 @@
-*usr_11.txt*	For Vim version 8.1.  Last change: 2018 Apr 13
+*usr_11.txt*	For Vim version 8.1.  Last change: 2019 Jan 30
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -120,7 +120,7 @@
 USING A SPECIFIC SWAP FILE
 
 If you know which swap file needs to be used, you can recover by giving the
-swap file name.  Vim will then finds out the name of the original file from
+swap file name.  Vim will then find out the name of the original file from
 the swap file.
 
 Example: >
@@ -284,7 +284,6 @@
 'shortmess' option.  But it's very unusual that you need this.
 
 For remarks about encryption and the swap file, see |:recover-crypt|.
-For programatic access to the swap file, see |swapinfo()|.
 
 ==============================================================================
 *11.4*	Further reading
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index dd0583b..07d11f8 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt*	For Vim version 8.1.  Last change: 2019 Jan 12
+*usr_41.txt*	For Vim version 8.1.  Last change: 2019 Jan 29
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -771,7 +771,7 @@
 	systemlist()		get the result of a shell command as a list
 	hostname()		name of the system
 	readfile()		read a file into a List of lines
-	writefile()		write a List of lines into a file
+	writefile()		write a List of lines or Blob into a file
 
 Date and Time:				*date-functions* *time-functions*
 	getftime()		get last modification time of a file
@@ -941,6 +941,7 @@
 	test_override()		test with Vim internal overrides
 	test_garbagecollect_now()   free memory right now
 	test_ignore_error()	ignore a specific error message
+	test_null_blob()	return a null Blob
 	test_null_channel()	return a null Channel
 	test_null_dict()	return a null Dict
 	test_null_job()		return a null Job
