Update runtime files.
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 2e5bf7f..e838395 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -954,6 +954,13 @@
 
 expr8							*expr8*
 -----
+This expression is either |expr9| or a sequence of the alternatives below,
+in any order.  E.g., these are all possible:
+	expr9[expr1].name
+	expr9.name[expr1]
+	expr9(expr1, ...)[expr1].name
+
+
 expr8[expr1]		item of String or |List|	*expr-[]* *E111*
 							*E909* *subscript*
 If expr8 is a Number or String this results in a String that contains the
@@ -8014,6 +8021,7 @@
 			mtime	last modification time in seconds
 			inode	Optional: INODE number of the file
 			dirty	1 if file was modified, 0 if not
+		Note that "user" and "host" are truncated to at most 39 bytes.
 		In case of failure an "error" item is added with the reason:
 			Cannot open file: file not found or in accessible
 			Cannot read file: cannot read first block
diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt
index b08e3d7..da3f260 100644
--- a/runtime/doc/filetype.txt
+++ b/runtime/doc/filetype.txt
@@ -638,11 +638,31 @@
 
 	setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
 
-To disable this behaviour, set the following variable in your vimrc: >
+To disable this behavior, set the following variable in your vimrc: >
 
 	let g:python_recommended_style = 0
 
 
+R MARKDOWN						*ft-rmd-plugin*
+
+By default ftplugin/html.vim is not sourced. If you want it sourced, add to
+your |vimrc|: >
+	let rmd_include_html = 1
+
+The 'formatexpr' option is set dynamically with different values for R code
+and for Markdown code. If you prefer that 'formatexpr' is not set, add to your
+|vimrc|: >
+	let rmd_dynamic_comments = 0
+
+
+R RESTRUCTURED TEXT					*ft-rrst-plugin*
+
+The 'formatexpr' option is set dynamically with different values for R code
+and for ReStructured text. If you prefer that 'formatexpr' is not set, add to
+your |vimrc|: >
+	let rrst_dynamic_comments = 0
+
+
 RPM SPEC						*ft-spec-plugin*
 
 Since the text for this plugin is rather long it has been put in a separate
diff --git a/runtime/doc/if_pyth.txt b/runtime/doc/if_pyth.txt
index 30a3a72..d21de4b 100644
--- a/runtime/doc/if_pyth.txt
+++ b/runtime/doc/if_pyth.txt
@@ -168,11 +168,15 @@
 	- a dictionary if the Vim expression evaluates to a Vim dictionary
 	Dictionaries and lists are recursively expanded.
 	Examples: >
+	    :" value of the 'textwidth' option
 	    :py text_width = vim.eval("&tw")
-	    :py str = vim.eval("12+12")		# NB result is a string! Use
-						# string.atoi() to convert to
-						# a number.
-
+	    :
+	    :" contents of the 'a' register
+	    :py a_reg = vim.eval("@a") 
+	    :
+	    :" Result is a string! Use string.atoi() to convert to a number.
+	    :py str = vim.eval("12+12")
+	    :
 	    :py tagList = vim.eval('taglist("eval_expr")')
 <	The latter will return a python list of python dicts, for instance:
 	[{'cmd': '/^eval_expr(arg, nextcmd)$/', 'static': 0, 'name': ~
diff --git a/runtime/doc/indent.txt b/runtime/doc/indent.txt
index 54fb526..b1f44b7 100644
--- a/runtime/doc/indent.txt
+++ b/runtime/doc/indent.txt
@@ -978,6 +978,11 @@
        paste(x)                                      paste(x)
    }                                             }
 <
+The code will be indented after lines that match the pattern
+`'\(&\||\|+\|-\|\*\|/\|=\|\~\|%\|->\)\s*$'`. If you want indentation after
+lines that match a different pattern, you should set the appropriate value of
+`r_indent_op_pattern` in your |vimrc|.
+
 
 SHELL							*ft-sh-indent*
 
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index e145cac..a200fc5 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1051,13 +1051,13 @@
 number between zero and the cursor column "col('.')".  This involves looking
 at the characters just before the cursor and including those characters that
 could be part of the completed item.  The text between this column and the
-cursor column will be replaced with the matches.
+cursor column will be replaced with the matches.  If the returned value is
+larger than the cursor column, the cursor column is used.
 
-Special return values:
-   -1 If no completion can be done, the completion will be cancelled with an
-      error message.
-   -2 To cancel silently and stay in completion mode.
-   -3 To cancel silently and leave completion mode.
+Negative return values:
+   -2 	To cancel silently and stay in completion mode.
+   -3 	To cancel silently and leave completion mode.
+   Another negative value: completion starts at the cursor column
 
 On the second invocation the arguments are:
    a:findstart  0
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 2343d63..9d2d6bf 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -4480,8 +4480,18 @@
 	so far, matches.  The matched string is highlighted.  If the pattern
 	is invalid or not found, nothing is shown.  The screen will be updated
 	often, this is only useful on fast terminals.
-	Also applies to the `:s`, `:g` and `:v` commands.
-	Note that the match will be shown, but the cursor will return to its
+	Also applies to the pattern in commands: >
+		:global
+		:lvimgrep
+		:lvimgrepadd
+		:smagic
+		:snomagic
+		:sort
+		:substitute
+		:vglobal
+		:vimgrep
+		:vimgrepadd
+<	Note that the match will be shown, but the cursor will return to its
 	original position when no match is found and when pressing <Esc>.  You
 	still need to finish the search command with <Enter> to move the
 	cursor to the match.
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index 211fe96..3ef3be8 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -1557,8 +1557,8 @@
    packadd cfilter
 
 Then you can use these command: >
-   :Cfilter[!] {pat}
-   :Lfilter[!] {pat}
+   :Cfilter[!] /{pat}/
+   :Lfilter[!] /{pat}/
 
 :Cfilter creates a new quickfix list from entries matching {pat} in the
 current quickfix list. Both the file name and the text of the entries are
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index b1a1e72..8d9029a 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1265,7 +1265,7 @@
 doxygen_end_punctuation		'[.]'	Set to regexp match for the ending
 					punctuation of brief
 
-There are also some hilight groups worth mentioning as they can be useful in
+There are also some highlight groups worth mentioning as they can be useful in
 configuration.
 
 Highlight			Effect ~
@@ -2641,6 +2641,48 @@
 commands than are actually available to you by the game.
 
 
+R							*r.vim* *ft-r-syntax*
+
+The parsing of R code for syntax highlight starts 40 lines backwards, but you
+can set a different value in your |vimrc|. Example: >
+	let r_syntax_minlines = 60
+
+You can also turn off syntax highlighting of ROxygen: >
+	let r_syntax_hl_roxygen = 0
+
+enable folding of code delimited by parentheses, square brackets and curly
+braces: >
+	let r_syntax_folding = 1
+
+and highlight as functions all keywords followed by an opening parenthesis: >
+	let r_syntax_fun_pattern = 1
+
+
+R MARKDOWN					*rmd.vim* *ft-rmd-syntax*
+
+To disable syntax highlight of YAML header, add to your |vimrc|: >
+	let rmd_syn_hl_yaml = 0
+
+To disable syntax highlighting of citation keys: >
+	let rmd_syn_hl_citations = 0
+
+To highlight R code in knitr chunk headers: >
+	let rmd_syn_hl_chunk = 1
+
+By default, chunks of R code will be highlighted following the rules of R
+language. If you want proper syntax highlighting of chunks of other languages,
+you should add them to either `markdown_fenced_languages` or
+`rmd_fenced_languages`. For example to properly highlight both R and Python,
+you may add this to your |vimrc|: >
+	let rmd_fenced_languages = ['r', 'python']
+
+
+R RESTRUCTURED TEXT				*rrst.vim* *ft-rrst-syntax*
+
+To highlight R code in knitr chunk headers, add to your |vimrc|: >
+	let rrst_syn_hl_chunk = 1
+
+
 READLINE				*readline.vim* *ft-readline-syntax*
 
 The readline library is primarily used by the BASH shell, which adds quite a
diff --git a/runtime/doc/tabpage.txt b/runtime/doc/tabpage.txt
index 1d3365c..57224f6 100644
--- a/runtime/doc/tabpage.txt
+++ b/runtime/doc/tabpage.txt
@@ -243,7 +243,7 @@
 		Move the current tab page to after tab page N.  Use zero to
 		make the current tab page the first one.  N is counted before
 		the move, thus if the second tab is the current one,
-		`:tabmove 1`` and `:tabmove 2`  have no effect.
+		`:tabmove 1` and `:tabmove 2`  have no effect.
 		Without N the tab page is made the last one. >
 		    :.tabmove	" do nothing
 		    :-tabmove	" move the tab page to the left
diff --git a/runtime/doc/tags b/runtime/doc/tags
index ed262d4..75615fe 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -6270,8 +6270,13 @@
 ft-python-syntax	syntax.txt	/*ft-python-syntax*
 ft-quake-syntax	syntax.txt	/*ft-quake-syntax*
 ft-r-indent	indent.txt	/*ft-r-indent*
+ft-r-syntax	syntax.txt	/*ft-r-syntax*
 ft-readline-syntax	syntax.txt	/*ft-readline-syntax*
 ft-rexx-syntax	syntax.txt	/*ft-rexx-syntax*
+ft-rmd-plugin	filetype.txt	/*ft-rmd-plugin*
+ft-rmd-syntax	syntax.txt	/*ft-rmd-syntax*
+ft-rrst-plugin	filetype.txt	/*ft-rrst-plugin*
+ft-rrst-syntax	syntax.txt	/*ft-rrst-syntax*
 ft-rst-syntax	syntax.txt	/*ft-rst-syntax*
 ft-ruby-omni	insert.txt	/*ft-ruby-omni*
 ft-ruby-syntax	syntax.txt	/*ft-ruby-syntax*
@@ -8200,6 +8205,7 @@
 quotestar	gui.txt	/*quotestar*
 quote~	change.txt	/*quote~*
 r	change.txt	/*r*
+r.vim	syntax.txt	/*r.vim*
 range()	eval.txt	/*range()*
 raw-terminal-mode	term.txt	/*raw-terminal-mode*
 rcp	pi_netrw.txt	/*rcp*
@@ -8264,8 +8270,10 @@
 rileft	rileft.txt	/*rileft*
 rileft.txt	rileft.txt	/*rileft.txt*
 riscos	os_risc.txt	/*riscos*
+rmd.vim	syntax.txt	/*rmd.vim*
 rot13	change.txt	/*rot13*
 round()	eval.txt	/*round()*
+rrst.vim	syntax.txt	/*rrst.vim*
 rst.vim	syntax.txt	/*rst.vim*
 rsync	pi_netrw.txt	/*rsync*
 ruby	if_ruby.txt	/*ruby*
diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt
index 7bdef48..b954715 100644
--- a/runtime/doc/terminal.txt
+++ b/runtime/doc/terminal.txt
@@ -228,6 +228,10 @@
 
 			If you want to use more options use the |term_start()|
 			function.
+			If you want to split the window vertically, use: >
+				:vertical terminal
+<			Or short: >
+				:vert ter
 
 When the buffer associated with the terminal is forcibly unloaded or wiped out
 the job is killed, similar to calling `job_stop(job, "kill")` .
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 4b1739b..818cb37 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -38,6 +38,15 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+'incsearch' with :s: (#3321)
+- :/foo/s//<Esc>  changes last search pattern.  Also E486.
+- :s/foo  using CTRL-G moves to another line, should not happen, or use the
+  correct line (it uses the last but one line) (Lifepillar, Aug 18, #3345)
+- Also support range: :/foo/,/bar/delete
+- :%s/foo should take the first match below the cursor line, unless there
+  isn't one?
+  Then :%s?foo should take the first match above the cursor line.
+
 Prompt buffer:
 - Add a command line history.
 - delay next prompt until plugin gives OK?
@@ -50,11 +59,16 @@
   initializing mzscheme avoid the problem, thus it's not some #ifdef.
 
 Terminal emulator window:
+- GUI: When using ":set go+=!" a system() call causes the hit-enter prompt.
+  (#3327)
 - 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
+- Allow for specifying the directory, with ++cwd={dir}.
 - With a vertical split only one window is updated. (Linwei, 2018 Jun 2,
   #2977)
+- Add a way to make ":term cmd" run "cmd" in a shell, instead of executing it
+  directly.  Perhaps ":term ++shell cmd". (#3340)
 - When pasting should call vterm_keyboard_start_paste(), e.g. when using
   K_MIDDLEMOUSE, calling insert_reg().
 - Users expect parsing the :term argument like a shell does, also support
@@ -74,35 +88,12 @@
 - When 'encoding' is not utf-8, or the job is using another encoding, setup
   conversions.
 
-Patch to support ":tag <tagkind> <tagname". (emmrk, 2018 May 7, #2871)
-
-Patch to parse ":line" in tags file and use it for search. (Daniel Hahler,
-#2546)  Fixes #1057.  Missing a test.
-
-Problem with quickfix giving E42 when filtering the error list.
-(Nobuhiro Takasaki, 2018 Aug 1, #3270)
-Patch with test from Yegappan, Aug 2.
-
-Patch to add variable name after "scope add". (Eddie Lebow, 2018 Feb 7, #2620)
-Maybe not needed?
-
-Patch in issue 3268, fix suggestion window appearing on wrong screen.
-Also from Ken Takata, 2018 Aug 2.
-
-Patch for Lua support. (Kazunobu Kuriyama, 2018 May 26)
-
-Patch to use NGETTEXT() in many more places. (Sergey Alyoshin, 2018 May 25)
-Updated patch May 27.
-
-Patch to add winlayout() function. (Yegappan Lakshmanan, 2018 Jan 4)
-
-Patch to fix profiling condition lines. (Ozaki Kiichi,, 2017 Dec 26, #2499)
-
-Issue #686: apply 'F' in 'shortmess' to more messages.  Also #3221.
-Patch on #3221 from Christian.  Does it work now?
-
-Patch to include a cfilter plugin to filter quickfix/location lists.
-(Yegappan Lakshmanan, 2018 May 12)
+Not possible to have a comment in between line continuation.  Use |\":
+	let array = [
+	    \ item,
+	    |\" comment
+	    \ item,
+	    \ ]
 
 Does not build with MinGW out of the box:
 - _stat64 is not defined, need to use "struct stat" in vim.h
@@ -111,9 +102,6 @@
 Crash when mixing matchadd and substitute()? (Max Christian Pohle, 2018 May
 13, #2910)  Can't reproduce?
 
-On Win32 when not in the console and t_Co >= 256, allow using 'tgc'.
-(Nobuhiro Takasaki, #2833)  Also check t_Co.
-
 Errors found with random data:
     heap-buffer-overflow in alist_add (#2472)
 
@@ -121,7 +109,15 @@
 files that source the actual file.  E.g. menu_da_de -> menu_da
 Include part of #3242?
 
-Inlcude Chinese-Taiwan translations. (bystar, #3261)
+Using ":file" in quickfix window during an autocommand doesn't work. 
+(Jason Franklin, 2018 May 23) Allow for using it when there is no argument.
+Patch should now work. (Jason Franklin, 2018 Aug 12)
+
+Include Chinese-Taiwan translations. (bystar, #3261)
+
+Screendump test fails even though characters are the same.
+Some attribute difference that isn't included in the screenshot?
+(Elimar Riesebieter, 2018 Aug 21)
 
 Completion mixes results from the current buffer with tags and other files.
 Happens when typing CTRL-N while still search for results.  E.g., type "b_" in
@@ -129,8 +125,10 @@
 Should do current file first and not split it up when more results are found.
 (Also #1890)
 
-Using mouse for inputlist() doesn't work after patch 8.0.1756. (Dominique
-Pelle, 2018 Jul 22, #3239)  Also see 8.0.0722.  Check both console and GUI.
+Patch to support VTP better. (Nobuhiro Takasaki, 2018 Aug 19, #3347)
+
+Patch with improvement for ccomplete: #3350
+Try it out.  Perhaps write a test?
 
 More warnings from static analysis:
 https://lgtm.com/projects/g/vim/vim/alerts/?mode=list
@@ -138,12 +136,12 @@
 Pasting foo} causes Vim to behave weird. (John Little, 2018 Jun 17)
 Related to bracketed paste.  I cannot reproduce it.
 
-Using ":file" in quickfix window during an autocommand doesn't work. 
-(Jason Franklin, 2018 May 23) Allow for using it when there is no argument.
-
 Patch in pull request #2967: Allow white space in sign text. (Ben Jackson)
 Test fails in AppVeyor.
 
+Patch to add script line number to script ID. (ichizok, Ozaki Kiichi, 2018 Aug
+24, #3362)
+
 Removing flags from 'cpoptions' breaks the Winbar buttons in termdebug.
 (Dominique Pelle, 2018 Jul 16)
 
@@ -186,6 +184,10 @@
 matchaddpos() gets slow with many matches.  Proposal by Rick Howe, 2018 Jul
 19.
 
+Patch to support ":tag <tagkind> <tagname>". (emmrk, 2018 May 7, #2871)
+Use something like ":tag {kind}/{tagname}".
+Not ready to include.
+
 home_replace() uses $HOME instead of "homedir". (Cesar Martins, 2018 Aug 9)
 
 Adjust windows installer explanation of behavior. (scootergrisen, #3310)
@@ -193,6 +195,17 @@
 Set g:actual_curbuf when evaluating 'statusline', not just with an expression.
 (Daniel Hahler, 2018 Aug 8, #3299)
 
+Difference between two regexp engines: #3373
+
+When the last line wraps, selecting with the mouse below that line only
+includes the first screen line. (2018 Aug 23, #3368)
+
+Refactored HTML indent file. (Michael Lee, #1821)
+
+Patch to add getregpoint() and setreg() with an option to set "".
+(Andy Massimino, 2018 Aug 24, #3370)
+Better name?
+
 Script generated by :mksession does not work well if there are windows with
 modified buffers
   change "silent only" into "silent only!"
@@ -209,6 +222,12 @@
 Win32 console: <F11> and <F12> typed in Insert mode don't result in normal
 characters. (#3246)
 
+Height of quickfix window is not retained with vertical splits. (Lifepillar,
+2018 Aug 24, #2998)
+
+Window size is wrong when using quickfix window. (Lifepillar, 2018 Aug 24,
+#2999)
+
 Tests failing for "make testgui" with GTK:
 - Test_setbufvar_options()
 - Test_exit_callback_interval()
@@ -224,6 +243,7 @@
 balloon_show() does not work properly in the terminal. (Ben Jackson, 2017 Dec
 20, #2481)
 Also see #2352, want better control over balloon, perhaps set the position.
+Should also be possible to add highlighting, like in the status line?
 
 Try out background make plugin: 
   https://github.com/AndrewVos/vim-make-background
@@ -239,9 +259,14 @@
 
 Cursor in wrong position when line wraps. (#2540)
 
+Patch to parse ":line" in tags file and use it for search. (Daniel Hahler,
+#2546)  Fixes #1057.  Missing a test.
+
 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.
 
@@ -281,6 +306,9 @@
 
 Alternative manpager.vim. (Enno, 2018 Jan 5, #2529)
 
+Delete all the speficic stuff for the Borland compiler? (#3374)
+Patch in #3377 (Thomas Dziedzic)
+
 Does setting 'cursorline' cause syntax highlighting to slow down?  Perhaps is
 mess up the cache?  (Mike Lee Williams, 2018 Jan 27, #2539)
 Also: 'foldtext' is evaluated too often. (Daniel Hahler, #2773)
@@ -320,7 +348,8 @@
 ch_sendraw() with long string does not try to read in between, which may cause
 a deadlock if the reading side is waiting for the write to finish. (Nate
 Bosch, 2018 Jan 13, #2548)
-Perhaps just make chunks of 1024 bytes?  Make the write non-blocking?
+Perhaps just make chunks of 1024 bytes?
+Probably better: Make the write non-blocking
 Also a problem on MS-Windows: #2828.
 
 Add Makefiles to the runtime/spell directory tree, since nobody uses Aap.
@@ -388,6 +417,8 @@
 
 A function on a dictionary is not profiled. (ZyX, 2010 Dec 25)
 
+Add script number to profile?  (#3330 breaks tests).
+
 A function defined locally and lambda's are not easily recognized.
 Mention where they were defined somewhere.
 
@@ -486,8 +517,6 @@
 Now on github: #1856.  Updated Oct 2017
 Got permission to include this under the Vim license.
 
-Refactored HTML indent file. (Michael Lee, #1821)
-
 Test_writefile_fails_conversion failure on Solaris because if different iconv
 behavior.  Skip when "uname" returns "SunOS"? (Pavel Heimlich, #1872)
 
@@ -566,7 +595,7 @@
 possible to collect this?  (Daniel Hahler, #2350)
 
 Add `:filter` support for various commands (Marcin Szamotulski, 2017 Nov 12
-#2322)  Now in #2327?
+#2322)  Patch now in #2856.
 
 When checking if a bufref is valid, also check the buffer number, to catch the
 case of :bwipe followed by :new.
@@ -751,6 +780,7 @@
 vertical split. (Haldean Brown, 2017 Mar 1)
 
 Use ADDR_OTHER instead of ADDR_LINES for many more commands.
+E.g. all the location list commands use a count.
 Add tests for using number larger than number of lines in buffer.
 
 Might be useful to have isreadonly(), like we have islocked().
diff --git a/runtime/doc/usr_11.txt b/runtime/doc/usr_11.txt
index 727228c..4cffc7d 100644
--- a/runtime/doc/usr_11.txt
+++ b/runtime/doc/usr_11.txt
@@ -284,6 +284,7 @@
 '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 cf34363..1ec743a 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -809,6 +809,7 @@
 	getwininfo()		get a list with window information
 	getchangelist()		get a list of change list entries
 	getjumplist()		get a list of jump list entries
+	swapinfo()		information about a swap file
 
 Command line:					*command-line-functions*
 	getcmdline()		get the current command line