Updated runtime and language files.
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index e553d46..4e97457 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -901,8 +901,8 @@
 Note: When the 'write' option is off, you are not able to write any file.
 
 							*:w* *:write*
-						*E502* *E503* *E504* *E505*
-						*E512* *E514* *E667* *E796* *E949*
+					*E502* *E503* *E504* *E505*
+					*E512* *E514* *E667* *E796* *E949*
 :w[rite] [++opt]	Write the whole buffer to the current file.  This is
 			the normal way to save changes to a file.  It fails
 			when the 'readonly' option is set or when there is
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 46903bc..bd538d5 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -3629,6 +3629,7 @@
 			1	exists
 			0	does not exist
 			-1	not implemented on this system
+		|exepath()| can be used to get the full path of an executable.
 
 execute({command} [, {silent}])					*execute()*
 		Execute an Ex command or commands and return the output as a
diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt
index f41dc70..0c33845 100644
--- a/runtime/doc/filetype.txt
+++ b/runtime/doc/filetype.txt
@@ -320,8 +320,8 @@
 Note that the last one is the value of $VIMRUNTIME which has been expanded.
 
 Note that when using a plugin manager or |packages| many directories will be
-added to 'runtimepath'.  These plugins earch require their own directory,
-don't put them directly in ~/.vim/plugin.
+added to 'runtimepath'.  These plugins each require their own directory, don't
+put them directly in ~/.vim/plugin.
 
 What if it looks like your plugin is not being loaded?  You can find out what
 happens when Vim starts up by using the |-V| argument: >
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index 0aeac14..ca19136 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1535,7 +1535,7 @@
 
 If you wish non-filetype syntax items to also be included, you can use a
 regular expression syntax (added in version 13.0 of
-autoload\syntaxcomplete.vim) to add items.  Looking at the output from
+autoload/syntaxcomplete.vim) to add items.  Looking at the output from
 ":syntax list" while editing a PHP file I can see some of these entries: >
     htmlArg,htmlTag,htmlTagName,javaScriptStatement,javaScriptGlobalObjects
 
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 65a9d17..aac95ac 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -8489,11 +8489,11 @@
 	final value applying to all subsequent tabs.
 
 	For example, when editing assembly language files where statements
-	start in the 8th column and comments in the 40th, it may be useful
+	start in the 9th column and comments in the 41st, it may be useful
 	to use the following: >
 		:set varsofttabstop=8,32,8
-<	This will set soft tabstops at the 8th and 40th columns, and at every
-	8th column thereafter.
+<	This will set soft tabstops with 8 and 8 + 32 spaces, and 8 more
+	for every column thereafter.
 
 	Note that the value of |'softtabstop'| will be ignored while
 	'varsofttabstop' is set.
diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt
index 6246478..ff1d68d 100644
--- a/runtime/doc/repeat.txt
+++ b/runtime/doc/repeat.txt
@@ -265,7 +265,7 @@
 			loaded during initialization, see |load-plugins|.
 
 			Also see |pack-add|.
-			{only available when compiled with +eval}
+			{only available when compiled with |+eval|}
 
 						*:packl* *:packloadall*
 :packl[oadall][!]	Load all packages in the "start" directory under each
@@ -289,7 +289,7 @@
 			An error only causes sourcing the script where it
 			happens to be aborted, further plugins will be loaded.
 			See |packages|.
-			{only available when compiled with +eval}
+			{only available when compiled with |+eval|}
 
 :scripte[ncoding] [encoding]		*:scripte* *:scriptencoding* *E167*
 			Specify the character encoding used in the script.
diff --git a/runtime/doc/tags b/runtime/doc/tags
index f2e4556..58f3a6b 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -5176,6 +5176,7 @@
 autocommand	autocmd.txt	/*autocommand*
 autocommand-events	autocmd.txt	/*autocommand-events*
 autocommand-pattern	autocmd.txt	/*autocommand-pattern*
+autocommands	autocmd.txt	/*autocommands*
 autoformat	change.txt	/*autoformat*
 autoload	eval.txt	/*autoload*
 autoload-functions	eval.txt	/*autoload-functions*
@@ -5762,6 +5763,7 @@
 debug-win32	debug.txt	/*debug-win32*
 debug-windbg	debug.txt	/*debug-windbg*
 debug.txt	debug.txt	/*debug.txt*
+debugbreak()	eval.txt	/*debugbreak()*
 debugger-compilation	debugger.txt	/*debugger-compilation*
 debugger-features	debugger.txt	/*debugger-features*
 debugger-integration	debugger.txt	/*debugger-integration*
diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt
index 262b162..cd2c664 100644
--- a/runtime/doc/terminal.txt
+++ b/runtime/doc/terminal.txt
@@ -523,9 +523,9 @@
 
 Functions ~
 
-term_sendkeys()		send keystrokes to a terminal (not subject to tmap)
-term_wait()		wait for screen to be updated
-term_scrape()		inspect terminal screen
+|term_sendkeys()|	send keystrokes to a terminal (not subject to tmap)
+|term_wait()|		wait for screen to be updated
+|term_scrape()|		inspect terminal screen
 
 
 ==============================================================================
@@ -552,7 +552,7 @@
   characters.  This makes sure the dump is always this size.  The function
   RunVimInTerminal() takes care of this.  Pass it the arguments for the Vim
   command.
-- Send any commands to Vim using term_sendkeys().  For example: >
+- Send any commands to Vim using |term_sendkeys()|.  For example: >
 	call term_sendkeys(buf, ":echo &lines &columns\<CR>")
 - Check that the screen is now in the expected state, using
   VerifyScreenDump().  This expects the reference screen dump to be in the
@@ -580,13 +580,13 @@
 							*terminal-screendump*
 
 To create the screen dump, run Vim (or any other program) in a terminal and
-make it show the desired state.  Then use the term_dumpwrite() function to
+make it show the desired state.  Then use the |term_dumpwrite()| function to
 create a screen dump file.  For example: >
 	:call term_dumpwrite(77, "mysyntax.dump")
 
 Here "77" is the buffer number of the terminal.  Use `:ls!` to see it.
 
-You can view the screen dump with term_dumpload(): >
+You can view the screen dump with |term_dumpload()|: >
 	:call term_dumpload("mysyntax.dump")
 
 To verify that Vim still shows exactly the same screen, run Vim again with
@@ -594,7 +594,7 @@
 again, using a different file name: >
 	:call term_dumpwrite(88, "test.dump")
 
-To assert that the files are exactly the same use assert_equalfile(): >
+To assert that the files are exactly the same use |assert_equalfile()|: >
 	call assert_equalfile("mysyntax.dump", "test.dump")
 
 If there are differences then v:errors will contain the error message.
@@ -603,8 +603,8 @@
 Comparing screen dumps ~
 						*terminal-diffscreendump*
 
-assert_equalfile() does not make it easy to see what is different.
-To spot the problem use term_dumpdiff(): >
+|assert_equalfile()| does not make it easy to see what is different.
+To spot the problem use |term_dumpdiff()|: >
 	call term_dumpdiff("mysyntax.dump", "test.dump")
 
 This will open a window consisting of three parts:
@@ -900,7 +900,7 @@
 To change the width of the Vim window when debugging starts, and use a
 vertical split: >
   let g:termdebug_wide = 163
-This will set &columns to 163 when :Termdebug is used.  The value is restored
+This will set &columns to 163 when `:Termdebug` is used.  The value is restored
 when quitting the debugger.
 If g:termdebug_wide is set and &columns is already larger than
 g:termdebug_wide then a vertical split will be used without changing &columns.
diff --git a/runtime/doc/tips.txt b/runtime/doc/tips.txt
index 3698348..619c955 100644
--- a/runtime/doc/tips.txt
+++ b/runtime/doc/tips.txt
@@ -408,14 +408,13 @@
 ==============================================================================
 Executing shell commands in a window			*shell-window*
 
-There have been questions for the possibility to execute a shell in a window
-inside Vim.  The answer: you can't!  Including this would add a lot of code to
-Vim, which is a good reason not to do this.  After all, Vim is an editor, it
-is not supposed to do non-editing tasks.  However, to get something like this,
-you might try splitting your terminal screen or display window with the
+See |terminal|.
+
+Another solution is splitting your terminal screen or display window with the
 "splitvt" program.  You can probably find it on some ftp server.  The person
 that knows more about this is Sam Lantinga <slouken@cs.ucdavis.edu>.
-An alternative is the "window" command, found on BSD Unix systems, which
+
+Another alternative is the "window" command, found on BSD Unix systems, which
 supports multiple overlapped windows.  Or the "screen" program, found at
 www.uni-erlangen.de, which supports a stack of windows.
 
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index c90a771..ca27ba3 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -38,6 +38,8 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+testdir: remove use of lua.vim from makefiles and test1.in
+
 Prompt buffer:
 - Add a command line history.
 - delay next prompt until plugin gives OK?
@@ -89,8 +91,8 @@
 More warnings from static analysis:
 https://lgtm.com/projects/g/vim/vim/alerts/?mode=list
 
-Patch to fix duplicate entry in tagfiles() and add a test. (Dominique Pelle,
-#2979)
+Patch to fix that :cexpr no longer jumps to first error. (Yegappan 2018 Jun
+25, #3092)
 
 Pasting foo} causes Vim to behave weird. (John Little, 2018 Jun 17)
 Related to bracketed paste.  I cannot reproduce it.
@@ -103,13 +105,15 @@
 Patch for xterm and vt320 builtin termcap. (Kouichi Iwamoto, 2018 May 31,
 #2973)
 
+Patch for matchit and matchparen. (Christian, 2018 Jun 25)
+
 Patch to add more testing for :cd command. (Dominique Pelle, 2018 May 30,
 #2972)
 
 Whenever the file name is "~" then expand('%:p') returns $HOME. (Aidan
-Shafran, 2018 Jun 23, #3072)
+Shafran, 2018 Jun 23, #3072)  Proposed patch by Aidan, 2018 Jun 24.
 
-Patch to set w_curswant when setting the cursor in language interfaces.
+Patch to set w_set_curswant when setting the cursor in language interfaces.
 (David Hotham, 2018 Jun 22, #3060)
 
 Patch to make CTRL-W <CR> work properly in a quickfix window. (Jason Franklin,
@@ -169,9 +173,19 @@
 
 Patch for Lua support. (Kazunobu Kuriyama, 2018 May 26)
 
+Make {skip} argument of searchpair() consistent with other places where we
+pass an expression to evaluate.  Allow passing zero for "never skip".
+
 Add an option similar to 'lazyredraw' to skip redrawing while executing a
 script or function.
 
+Universal solution to detect if t_RS is working, using cursor position.
+Koichi Iwamoto, #2126
+
+When using a menu item while the "more" prompt is displayed doesn't work well.
+E.g. after using help->version.  Have a key that ends the "more" prompt and
+does nothing otherwise?
+
 MS-Windows: write may fail if another program is reading the file.
 If 'readonly' is not set but the file appears to be readonly later, try again
 (wait a little while).
@@ -353,9 +367,6 @@
 In an optional package the "after" directory is not scanned?
 (Renato Fabbri, 2018 Feb 22)
 
-Universal solution to detect if t_RS is working, using cursor position.
-Koichi Iwamoto, #2126
-
 Patch for Neovim concerning restoring when closing help window. (glacambre
 neovim #7431)
 
@@ -1405,9 +1416,6 @@
 
 :help gives example for z?, but it does not work.  m? and t? do work.
 
-Patch to add funcref to Lua.  (Luis Carvalho, 2013 Sep 4)
-With tests: Sep 5.
-
 Discussion about canonicalization of Hebrew. (Ron Aaron, 2011 April 10)
 
 Checking runtime scripts: Thilo Six, 2012 Jun 6.
@@ -4664,10 +4672,7 @@
     command used dos fileformat.  Same for 'fileencoding'.
 -   Add events to autocommands:
     Error	    - When an error happens
-    NormalEnter	    - Entering Normal mode
-    ReplaceEnter    - Entering Replace mode
-    VisualEnter	    - Entering Visual mode
-    *Leave	    - Leaving a mode (in pair with the above *Enter)
+    ModeChange	    - after changing mode (before waiting for a char)
     VimLeaveCheck    - Before Vim decides to exit, so that it can be cancelled
 		      when exiting isn't a good idea.
     CursorHoldC     - CursorHold while command-line editing
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index 045bd30..8155176 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1980,7 +1980,7 @@
 flag to 'cpoptions' for this.
 
 Using "I" in a line with only blanks appended to the line.  This is not Vi
-compatible.  Added the 'H' flag in 'coptions' for this.
+compatible.  Added the 'H' flag in 'cpoptions' for this.
 
 When joining multiple lines the cursor would be at the last joint, but Vi
 leaves it at the position where "J" would put it.  Added the 'q' flag in