changeset 12254:8d76a56861ec

Update runtime files commit https://github.com/vim/vim/commit/c572da5f67aa5cdbbc127fc6f1d0a42e38468325 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Aug 27 16:52:01 2017 +0200 Update runtime files
author Christian Brabandt <cb@256bit.org>
date Sun, 27 Aug 2017 17:00:05 +0200
parents c081ba0b6e8d
children d5710baf5cf7
files runtime/doc/editing.txt runtime/doc/eval.txt runtime/doc/gui.txt runtime/doc/intro.txt runtime/doc/options.txt runtime/doc/quickref.txt runtime/doc/syntax.txt runtime/doc/tags runtime/doc/term.txt runtime/doc/terminal.txt runtime/doc/todo.txt runtime/doc/usr_41.txt runtime/doc/vim.man runtime/doc/windows.txt runtime/ftplugin/verilog.vim runtime/indent/verilog.vim runtime/pack/dist/opt/termdebug/plugin/termdebug.vim runtime/scripts.vim runtime/syntax/debcontrol.vim runtime/syntax/murphi.vim runtime/syntax/n1ql.vim runtime/syntax/sas.vim runtime/syntax/vim.vim runtime/tutor/tutor.ru.utf-8 runtime/tutor/tutor.zh.utf-8 runtime/tutor/tutor.zh_tw.utf-8
diffstat 26 files changed, 733 insertions(+), 141 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -1,4 +1,4 @@
-*editing.txt*   For Vim version 8.0.  Last change: 2017 Aug 01
+*editing.txt*   For Vim version 8.0.  Last change: 2017 Aug 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1109,6 +1109,7 @@ 5. Writing and quitting					*write-quit*
 			window in the current tab page the current tab page is
 			closed |tab-page|.
 			Triggers the |QuitPre| autocommand event.
+			See |CTRL-W_q| for quitting another window.
 
 :conf[irm] q[uit]	Quit, but give prompt when changes have been made, or
 			the last file in the argument list has not been
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 8.0.  Last change: 2017 Aug 11
+*eval.txt*	For Vim version 8.0.  Last change: 2017 Aug 13
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -5225,6 +5225,7 @@ job_setoptions({job}, {options})			*job_
 job_start({command} [, {options}])			*job_start()*
 		Start a job and return a Job object.  Unlike |system()| and
 		|:!cmd| this does not wait for the job to finish.
+		To start a job in a terminal window see |term_start()|.
 
 		{command} can be a String.  This works best on MS-Windows.  On
 		Unix it is split up in white-separated parts to be passed to
@@ -5963,7 +5964,7 @@ mode([expr])	Return a string that indica
 		a non-empty String (|non-zero-arg|), then the full mode is
 		returned, otherwise only the first letter is returned.
 
-			n	Normal
+			n	Normal, Terminal-Normal
 			no	Operator-pending
 			v	Visual by character
 			V	Visual by line
@@ -5985,6 +5986,7 @@ mode([expr])	Return a string that indica
 			rm	The -- more -- prompt
 			r?	A |:confirm| query of some sort
 			!	Shell or external command is executing
+			t	Terminal-Job mode: keys go to the job
 		This is useful in the 'statusline' option or when used
 		with |remote_expr()| In most other places it always returns
 		"c" or "n".
@@ -7720,12 +7722,12 @@ synconcealed({lnum}, {col})				*synconce
 		   the text is "123456" and both "23" and "45" are concealed
 		   and replace by the character "X", then:
 			call			returns ~
-		   	synconcealed(lnum, 1)   [0, '', 0]
-		   	synconcealed(lnum, 2)   [1, 'X', 1]
-		   	synconcealed(lnum, 3)   [1, 'X', 1]
-		   	synconcealed(lnum, 4)   [1, 'X', 2]
-		   	synconcealed(lnum, 5)   [1, 'X', 2]
-		   	synconcealed(lnum, 6)   [0, '', 0]
+			synconcealed(lnum, 1)   [0, '', 0]
+			synconcealed(lnum, 2)   [1, 'X', 1]
+			synconcealed(lnum, 3)   [1, 'X', 1]
+			synconcealed(lnum, 4)   [1, 'X', 2]
+			synconcealed(lnum, 5)   [1, 'X', 2]
+			synconcealed(lnum, 6)   [0, '', 0]
 
 
 synstack({lnum}, {col})					*synstack()*
@@ -8633,7 +8635,7 @@ wordcount()						*wordcount()*
 					(only in Visual mode)
 			visual_chars    Number of chars visually selected
 					(only in Visual mode)
-			visual_words    Number of chars visually selected
+			visual_words    Number of words visually selected
 					(only in Visual mode)
 
 
--- a/runtime/doc/gui.txt
+++ b/runtime/doc/gui.txt
@@ -1,4 +1,4 @@
-*gui.txt*       For Vim version 8.0.  Last change: 2017 Jul 15
+*gui.txt*       For Vim version 8.0.  Last change: 2017 Aug 27
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -67,7 +67,7 @@ When the GUI starts up initializations a
     executed as an Ex command.
   - If the user gvimrc file exists, it is sourced.  The name of this file is
     normally "$HOME/.gvimrc".  You can check this with ":version".
-  - For Win32, when $HOME is not set, "$VIM\_gvimrc" is used.
+  - For Win32, $HOME is set by Vim if needed, see |$HOME-windows|.
   - When a "_gvimrc" file is not found, ".gvimrc" is tried too.  And vice
     versa.
   The name of the first file found is stored in $MYGVIMRC, unless it was
--- a/runtime/doc/intro.txt
+++ b/runtime/doc/intro.txt
@@ -1,4 +1,4 @@
-*intro.txt*     For Vim version 8.0.  Last change: 2017 Aug 05
+*intro.txt*     For Vim version 8.0.  Last change: 2017 Aug 24
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -839,10 +839,12 @@ by Vim.  {Vi: not ok}
 ==============================================================================
 8. Definitions						*definitions*
 
+  buffer		Contains lines of text, usually read from a file.
   screen		The whole area that Vim uses to work in.  This can be
 			a terminal emulator window.  Also called "the Vim
 			window".
-  window		A view on a buffer.
+  window		A view on a buffer.  There can be multiple windows for
+			one buffer.
 
 A screen contains one or more windows, separated by status lines and with the
 command line at the bottom.
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 8.0.  Last change: 2017 Jul 31
+*options.txt*	For Vim version 8.0.  Last change: 2017 Aug 27
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -417,12 +417,13 @@ On Unix systems the form "${HOME}" can b
 contain non-id characters then.  Note that if you want to use this for the
 "gf" command, you need to add the '{' and '}' characters to 'isfname'.
 
+NOTE: expanding environment variables and "~/" is only done with the ":set"
+command, not when assigning a value to an option with ":let".
+
+							*$HOME-windows*
 On MS-Windows, if $HOME is not defined as an environment variable, then
 at runtime Vim will set it to the expansion of $HOMEDRIVE$HOMEPATH.
 
-NOTE: expanding environment variables and "~/" is only done with the ":set"
-command, not when assigning a value to an option with ":let".
-
 
 Note the maximum length of an expanded option is limited.  How much depends on
 the system, mostly it is something like 256 or 1024 characters.
@@ -889,6 +890,10 @@ A jump table for the options with a shor
 	"screen.linux", "cygwin" or "putty", or $COLORFGBG suggests a dark
 	background.  Otherwise the default is "light".
 
+	The |:terminal| command and the |term_start()| function use the
+	'background' value to decide whether the terminal window will start
+	with a white or black background.
+
 	Normally this option would be set in the .vimrc file.  Possibly
 	depending on the terminal name.  Example: >
 		:if &term == "pcterm"
@@ -4041,7 +4046,7 @@ A jump table for the options with a shor
 				     x:PmenuSbar,X:PmenuThumb,*:TabLine,
 				     #:TabLineSel,_:TabLineFill,!:CursorColumn,
 				     .:CursorLine,o:ColorColumn,q:QuickFixLine,
-				     $:StatusLineTerm")
+				     z:StatusLineTerm,Z:StatusLineTermNC")
 			global
 			{not in Vi}
 	This option can be used to set highlighting mode for various
@@ -5723,18 +5728,6 @@ A jump table for the options with a shor
 <	Replace the ';' with a ':' or whatever separator is used.  Note that
 	this doesn't work when $INCL contains a comma or white space.
 
-						*'perldll'*
-'perldll'		string	(default depends on the build)
-			global
-			{not in Vi}
-			{only available when compiled with the |+perl/dyn|
-			feature}
-	Specifies the name of the Perl shared library. The default is
-	DYNAMIC_PERL_DLL, which was specified at compile time.
-	Environment variables are expanded |:set_env|.
-	This option cannot be set from a |modeline| or in the |sandbox|, for
-	security reasons.
-
 			*'preserveindent'* *'pi'* *'nopreserveindent'* *'nopi'*
 'preserveindent' 'pi'	boolean	(default off)
 			local to buffer
@@ -8839,7 +8832,7 @@ A jump table for the options with a shor
 			feature on MS-Windows}
 	Specifies the name of the winpty shared library, used for the
 	|:terminal| command. The default depends on whether was build as a
-	32-bit or 64-bit executable.  If not found, "win32pty.dll" is tried as
+	32-bit or 64-bit executable.  If not found, "winpty.dll" is tried as
 	a fallback.
 	Environment variables are expanded |:set_env|.
 	This option cannot be set from a |modeline| or in the |sandbox|, for
--- a/runtime/doc/quickref.txt
+++ b/runtime/doc/quickref.txt
@@ -1,4 +1,4 @@
-*quickref.txt*  For Vim version 8.0.  Last change: 2017 Aug 01
+*quickref.txt*  For Vim version 8.0.  Last change: 2017 Aug 19
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -974,6 +974,7 @@ Short explanation of each option:		*opti
 'winfixwidth'	  'wfw'     keep window width when opening/closing windows
 'winminheight'	  'wmh'     minimum number of lines for any window
 'winminwidth'	  'wmw'     minimal number of columns for any window
+'winptydll'		    name of the winpty dynamic library
 'winwidth'	  'wiw'     minimal number of columns for current window
 'wrap'			    long lines wrap and continue on the next line
 'wrapmargin'	  'wm'	    chars from the right where wrapping starts
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt*	For Vim version 8.0.  Last change: 2017 Jul 14
+*syntax.txt*	For Vim version 8.0.  Last change: 2017 Aug 12
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -2138,6 +2138,16 @@ set "msql_minlines" to the value you des
 	:let msql_minlines = 200
 
 
+N1QL						*n1ql.vim* *ft-n1ql-syntax*
+
+N1QL is a SQL-like declarative language for manipulating JSON documents in
+Couchbase Server databases.
+
+Vim syntax highlights N1QL statements, keywords, operators, types, comments,
+and special values.  Vim ignores syntactical elements specific to SQL or its
+many dialects, like COLUMN or CHAR, that don't exist in N1QL.
+
+
 NCF						*ncf.vim* *ft-ncf-syntax*
 
 There is one option for NCF syntax highlighting.
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -746,7 +746,6 @@
 'path'	options.txt	/*'path'*
 'pdev'	options.txt	/*'pdev'*
 'penc'	options.txt	/*'penc'*
-'perldll'	options.txt	/*'perldll'*
 'pex'	options.txt	/*'pex'*
 'pexpr'	options.txt	/*'pexpr'*
 'pfn'	options.txt	/*'pfn'*
@@ -935,6 +934,7 @@
 't_Co'	term.txt	/*'t_Co'*
 't_Cs'	term.txt	/*'t_Cs'*
 't_DL'	term.txt	/*'t_DL'*
+'t_EC'	term.txt	/*'t_EC'*
 't_EI'	term.txt	/*'t_EI'*
 't_F1'	term.txt	/*'t_F1'*
 't_F2'	term.txt	/*'t_F2'*
@@ -972,11 +972,15 @@
 't_PS'	term.txt	/*'t_PS'*
 't_RB'	term.txt	/*'t_RB'*
 't_RI'	term.txt	/*'t_RI'*
+'t_RS'	term.txt	/*'t_RS'*
 't_RV'	term.txt	/*'t_RV'*
+'t_SC'	term.txt	/*'t_SC'*
+'t_SH'	term.txt	/*'t_SH'*
 't_SI'	term.txt	/*'t_SI'*
 't_SR'	term.txt	/*'t_SR'*
 't_Sb'	term.txt	/*'t_Sb'*
 't_Sf'	term.txt	/*'t_Sf'*
+'t_VS'	term.txt	/*'t_VS'*
 't_WP'	term.txt	/*'t_WP'*
 't_WS'	term.txt	/*'t_WS'*
 't_ZH'	term.txt	/*'t_ZH'*
@@ -1167,6 +1171,7 @@
 'winheight'	options.txt	/*'winheight'*
 'winminheight'	options.txt	/*'winminheight'*
 'winminwidth'	options.txt	/*'winminwidth'*
+'winptydll'	options.txt	/*'winptydll'*
 'winwidth'	options.txt	/*'winwidth'*
 'wiv'	options.txt	/*'wiv'*
 'wiw'	options.txt	/*'wiw'*
@@ -4537,6 +4542,7 @@ E944	pattern.txt	/*E944*
 E945	pattern.txt	/*E945*
 E946	terminal.txt	/*E946*
 E947	terminal.txt	/*E947*
+E948	terminal.txt	/*E948*
 E95	message.txt	/*E95*
 E96	diff.txt	/*E96*
 E97	diff.txt	/*E97*
@@ -6134,6 +6140,7 @@ ft-mathematica-syntax	syntax.txt	/*ft-ma
 ft-mma-syntax	syntax.txt	/*ft-mma-syntax*
 ft-moo-syntax	syntax.txt	/*ft-moo-syntax*
 ft-msql-syntax	syntax.txt	/*ft-msql-syntax*
+ft-n1ql-syntax	syntax.txt	/*ft-n1ql-syntax*
 ft-nasm-syntax	syntax.txt	/*ft-nasm-syntax*
 ft-ncf-syntax	syntax.txt	/*ft-ncf-syntax*
 ft-nroff-syntax	syntax.txt	/*ft-nroff-syntax*
@@ -7377,6 +7384,7 @@ mzscheme-vim	if_mzsch.txt	/*mzscheme-vim
 mzscheme-vimext	if_mzsch.txt	/*mzscheme-vimext*
 mzscheme-window	if_mzsch.txt	/*mzscheme-window*
 n	pattern.txt	/*n*
+n1ql.vim	syntax.txt	/*n1ql.vim*
 nasm.vim	syntax.txt	/*nasm.vim*
 navigation	motion.txt	/*navigation*
 nb-commands	netbeans.txt	/*nb-commands*
@@ -7720,6 +7728,7 @@ no-type-checking	eval.txt	/*no-type-chec
 no_buffers_menu	gui.txt	/*no_buffers_menu*
 no_mail_maps	filetype.txt	/*no_mail_maps*
 no_plugin_maps	filetype.txt	/*no_plugin_maps*
+nocombine	syntax.txt	/*nocombine*
 non-greedy	pattern.txt	/*non-greedy*
 non-zero-arg	eval.txt	/*non-zero-arg*
 none-variable	eval.txt	/*none-variable*
@@ -8537,12 +8546,14 @@ t_AL	term.txt	/*t_AL*
 t_BD	term.txt	/*t_BD*
 t_BE	term.txt	/*t_BE*
 t_CS	term.txt	/*t_CS*
+t_CTRL-W_CTRL-C	terminal.txt	/*t_CTRL-W_CTRL-C*
 t_CTRL-\_CTRL-N	terminal.txt	/*t_CTRL-\\_CTRL-N*
 t_CV	term.txt	/*t_CV*
 t_Ce	term.txt	/*t_Ce*
 t_Co	term.txt	/*t_Co*
 t_Cs	term.txt	/*t_Cs*
 t_DL	term.txt	/*t_DL*
+t_EC	term.txt	/*t_EC*
 t_EI	term.txt	/*t_EI*
 t_F1	term.txt	/*t_F1*
 t_F2	term.txt	/*t_F2*
@@ -8580,11 +8591,15 @@ t_PE	term.txt	/*t_PE*
 t_PS	term.txt	/*t_PS*
 t_RB	term.txt	/*t_RB*
 t_RI	term.txt	/*t_RI*
+t_RS	term.txt	/*t_RS*
 t_RV	term.txt	/*t_RV*
+t_SC	term.txt	/*t_SC*
+t_SH	term.txt	/*t_SH*
 t_SI	term.txt	/*t_SI*
 t_SR	term.txt	/*t_SR*
 t_Sb	term.txt	/*t_Sb*
 t_Sf	term.txt	/*t_Sf*
+t_VS	term.txt	/*t_VS*
 t_WP	term.txt	/*t_WP*
 t_WS	term.txt	/*t_WS*
 t_ZH	term.txt	/*t_ZH*
@@ -8827,6 +8842,7 @@ termcap-title	term.txt	/*termcap-title*
 terminal	terminal.txt	/*terminal*
 terminal-colors	os_unix.txt	/*terminal-colors*
 terminal-debug	terminal.txt	/*terminal-debug*
+terminal-functions	usr_41.txt	/*terminal-functions*
 terminal-info	term.txt	/*terminal-info*
 terminal-key-codes	term.txt	/*terminal-key-codes*
 terminal-options	term.txt	/*terminal-options*
--- a/runtime/doc/term.txt
+++ b/runtime/doc/term.txt
@@ -1,4 +1,4 @@
-*term.txt*      For Vim version 8.0.  Last change: 2017 Jul 21
+*term.txt*      For Vim version 8.0.  Last change: 2017 Aug 26
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -301,7 +301,7 @@ OUTPUT CODES						*terminal-output-codes
 	t_vb	visual bell					*t_vb* *'t_vb'*
 	t_ve	cursor visible					*t_ve* *'t_ve'*
 	t_vi	cursor invisible				*t_vi* *'t_vi'*
-	t_vs	cursor very visible				*t_vs* *'t_vs'*
+	t_vs	cursor very visible (blink)			*t_vs* *'t_vs'*
 								*t_xs* *'t_xs'*
 	t_xs	if non-empty, standout not erased by overwriting (hpterm)
 								*t_xn* *'t_xn'*
@@ -316,6 +316,7 @@ Added by Vim (there are no standard code
 	t_WP	set window position (Y, X) in pixels		*t_WP* *'t_WP'*
 	t_GP	get window position (Y, X) in pixels		*t_GP* *'t_GP'*
 	t_WS	set window size (height, width in cells)	*t_WS* *'t_WS'*
+	t_VS	cursor normally visible (no blink)		*t_VS* *'t_VS'*
 	t_SI	start insert mode (bar cursor shape)		*t_SI* *'t_SI'*
 	t_SR	start replace mode (underline cursor shape)	*t_SR* *'t_SR'*
 	t_EI	end insert or replace mode (block cursor shape)	*t_EI* *'t_EI'*
@@ -333,6 +334,28 @@ Added by Vim (there are no standard code
 		|xterm-bracketed-paste|
 	t_BD	disable bracketed paste mode			*t_BD* *'t_BD'*
 		|xterm-bracketed-paste|
+	t_SC	set cursor color start				*t_SC* *'t_SC'*
+	t_EC	set cursor color end				*t_EC* *'t_EC'*
+	t_SH	set cursor shape				*t_SH* *'t_SH'*
+	t_RS	request terminal cursor style			*t_RS* *'t_RS'*
+
+Some codes have a start, middle and end part.  The start and end are defined
+by the termcap option, the middle part is text.
+	set title text:     t_ts {title text} t_fs
+	set icon text:      t_IS {icon text} t_IE
+	set cursor color:   t_SC  {color name}  t_EC
+
+t_SH must take one argument:
+	0, 1 or none  	blinking block cursor
+	2	      	block cursor
+	3		blinking underline cursor
+	4		underline cursor
+	5		blinking vertical bar cursor
+	6		vertical bar cursor
+
+t_RS is sent only if the response to t_RV has been received.  It is not used
+on Mac OS when Terminal.app could be recognized from the termresponse.
+
 
 KEY CODES						*terminal-key-codes*
 Note: Use the <> form if possible
--- a/runtime/doc/terminal.txt
+++ b/runtime/doc/terminal.txt
@@ -1,4 +1,4 @@
-*terminal.txt*	For Vim version 8.0.  Last change: 2017 Aug 20
+*terminal.txt*	For Vim version 8.0.  Last change: 2017 Aug 26
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -19,6 +19,9 @@ 2. Remote testing		|terminal-testing|
 3. Debugging			|terminal-debug|
 
 {Vi does not have any of these commands}
+{only available when compiled with the |+terminal| feature}
+
+The terminal feature requires the |+multi_byte|, |+job| and |+channel| features.
 
 ==============================================================================
 1. Basic use						*terminal-use*
@@ -95,6 +98,8 @@ Syntax ~
 			If [command] is provided run it as a job and connect
 			the input and output to the terminal.
 			If [command] is not given the 'shell' option is used.
+			if [command] is NONE no job is started, the pty of the
+			terminal can be used by a command like gdb.
 
 			A new buffer will be created, using [command] or
 			'shell' as the name, prefixed with a "!".  If a buffer
@@ -207,6 +212,19 @@ the job ends while in Terminal-Normal mo
 It is not possible to enter Insert mode from Terminal-Job mode.
 
 
+Cursor style ~
+
+By default the cursor in the terminal window uses a not blinking block.  The
+normal xterm escape sequences can be used to change the blinking state and the
+shape.  Once focus leaves the terminal window Vim will restore the original
+cursor.
+
+An exception is when xterm is started with the "-bc" argument, or another way
+that causes the cursor to blink.  This actually means that the blinking flag
+is inverted.  Since Vim cannot detect this, the terminal window cursor
+blinking will also be inverted.
+
+
 Unix ~
 
 On Unix a pty is used to make it possible to run all kinds of commands.  You
@@ -269,23 +287,31 @@ term_scrape()		inspect terminal screen
 3. Debugging					*terminal-debug*
 
 The Terminal debugging plugin can be used to debug a program with gdb and view
-the source code in a Vim window. For example: >
+the source code in a Vim window.
 
+Load the plugin with this command: >
+	packadd termdebug
+
+To start debugging use `:TermDebug` folowed by the command name, for example: >
 	:TermDebug vim
 
-This opens three windows:
+This opens two windows:
 - A terminal window in which "gdb vim" is executed.  Here you can directly
   interact with gdb.
 - A terminal window for the executed program.  When "run" is used in gdb the
   program I/O will happen in this window, so that it does not interfere with
   controlling gdb.
-- A normal Vim window used to show the source code.  When gdb jumps to a
-  source file location this window will display the code, if possible.  Values
-  of variables can be inspected, breakpoints set and cleared, etc.
+The current window is used to show the source code.  When gdb jumps to a
+source file location this window will display the code, if possible.  Values
+of variables can be inspected, breakpoints set and cleared, etc.
+
+When the debugger ends the two opened windows are closed.
 
-This uses two terminal windows.  To open the gdb window: >
-	:term gdb [arguments]
-To open the terminal to run the tested program |term_start()| is used.
+
+Customizing ~
+
+g:debugger	The debugger command.  Default "gdb".
+
 
 TODO
 
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.0.  Last change: 2017 Aug 11
+*todo.txt*      For Vim version 8.0.  Last change: 2017 Aug 27
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -41,7 +41,6 @@ No maintainer for Simplified Chinese tra
 
 Terminal emulator window:
 - Lots of stuff to implement, see src/terminal.c
-- Add winpty.dll and winpty-agent.exe in the NSIS build.
 - Add debugger interface.  Implementation for gdb by Xavier de Gaye.  Should
   work like an IDE.  Try to keep it generic.  Now found here:
     http://clewn.sf.net.
@@ -60,6 +59,8 @@ Terminal emulator window:
 - Try out background make plugin: 
   https://github.com/AndrewVos/vim-make-background
 - Problem with stderr on Windows? (Vincent Rischmann, 2016 Aug 31, #1026)
+- Writing raw mode to a buffer should still handle NL characters as line
+  breaks. (Dmitry Zotikov, 2017 Aug 16)
 - When out_cb executes :sleep, the close_cb may be invoked. (Daniel Hahler,
   2016 Dec 11, #1320)
 - Implement |job-term| ?
@@ -74,7 +75,7 @@ Terminal emulator window:
   Feb 9)  How to do this on MS-Windows?
 - For connection to server, a "keep open" flag would be useful.  Retry
   connecting in the main loop with zero timeout.
-- job_start(): run job in a newly opened terminal.
+- job_start(): run job in a newly opened terminal (not a terminal window).
     With xterm could use -S{pty}.
     Although user could use "xterm -e 'cmd arg'".
 
@@ -122,6 +123,8 @@ Regexp problems:
   Another one: echom matchstr(" sdfsfsf\n sfdsdfsdf",'[^\n]*')
   (2017 May 15, #1252)
 
+Patch to turn test80 into a new style test. (Yegappan Lakshmanan, 2017 Aug 20)
+
 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
@@ -130,27 +133,34 @@ Use names that indicate their appearnce 
 - seoul256 - Christian Brabandt (2017 Aug 3)
 - gruvbox -  Christian Brabandt (2017 Aug 3)
 - janah - Marco Hinz (2017 Aug 4)
-- apprentice - Romain Lafourcade (2017 Aug 6)  remarks about help file
+- 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)
 
-test_gui fails with gnome2: cannot create .gnome2 dir
-    use  testdir/Xfakehome  instead of does/not/exist?
-
-Patch for quickfix: parse lines for any quickfix list. (Yegappan Lakshmanan,
-2017 Jul 20)
-
-Patch for restoring wide characters in the console buffer.
-(Ken Takata, 2016 Jun 7)
-
-Patch to add Couchbase syntax file. (Eugene Ciurana, 2017 Aug 8, #1951)
-
-Patch to fix font name problem with cp932. (Ken Takata, 2017 Aug 9)
+When starting with --clean packages under "start" are not loaded.  Make this
+work:  :packadd START {name}  similar to :runtime START name
+
+When using :packadd files under "later" are not used, which is inconsistent
+with packages under "start". (xtal8, #1994)
+
+After 8.0.0962 pasting leaves the cursor in another position. (Ken Takata,
+2017 Aug 23, #2015) Also (zdm, 2017 Aug 23)
+
+Patch to add quickfix list identifier. (Yegappan, 2017 Aug 15)
+
+Mac Terminal.app: ctermbg=15 gives light grey instead of white.
+ctermbg=256 breaks clearing till end of the line.  Both work fine in xterm.
+
+Patch to avoid editing a file in the session file twice. (Christian Brabandt,
+2017 Aug 21)  #1958
 
 With foldmethod=syntax and nofoldenable comment highlighting isn't removed.
 (Marcin Szewczyk, 2017 Apr 26)
 
+Using 'wildignore' also applies to literally entered file name.  Also with
+:drop (remote commands).
+
 ml_get error when using a Python. (Yggdroot, 2017 Jun 1, #1737)
 Lemonboy can reproduce (2017 Jun 5)
 
@@ -158,14 +168,19 @@ ml_get errors with buggy script. (Domini
 
 Error in emsg with buggy script. (Dominique, 2017 Apr 30)
 
-Start a test directory under runtime, to test runtime file changes.
-Start with filetype detection.  Only include in the source distribution.
-"make test" in src/ can be renamed to "make testsrc" and "make test" would do
-both "testsrc" and "testruntime" targets.
-
-Patch for Murphi syntax. (Matthew Fernandez, 2017 Jul 24)
-
-Better detection of strace file. (Steven Fernandez, 2017 Jul 12, #1837)
+Test runtime files.
+Start with filetype detection: testdir/test_filetype.vim
+
+Patch to support on-the-spot and over-the-spot input method. (Ken Takata, 2017
+Feb 14).  Also see #1215.
+
+Patch to ignore case when 'diffopt' has "icase" for finding the difference
+inside a line. (Rick Howe, 2017 Aug 21, 22 with test)
+
+Patch to support strikethrough next to bold and italic. (Christian Brabandt,
+2013 Jul 30)  Update from Ken Takata, 2013 Oct 12.
+Update mentioned by Christian, 2016 Apr 25.
+Update from Ken Takata, 2017 Aug 23.
 
 Patch to add setbufline(). (email from Yasuhiro Matsumoto, patch by Ozaki
 Kiichi, 2016 Feb 28)
@@ -173,13 +188,25 @@ Update Mar 8: https://gist.github.com/ma
 Update Mar 13: https://gist.github.com/mattn/23c1f50999084992ca98
 Update Aug 2017: #1953
 
+Patch to fix indenting for raw C++ string. (Christian Brabandt, 2017 Aug 24,
+#2019)
+
 Add options_default() / options_restore() to set several options to Vim
 defaults for a plugin. Comments from Zyx, 2017 May 10.
 Perhaps use a vimcontext / endvimcontext command block.
 
+Patch to fix bogus characters inserted in visual-block append. (Christian
+Brabandt, 2017 Aug 23)
+
 Illegal memory access, requires ASAN to see. (Dominique Pelle, 2015 Jul 28)
 Still happens (2017 Jul 9)
 
+When bracketed paste is used, pasting at the ":append" prompt does not get the
+line breaks. (Ken Takata, 2017 Aug 22)
+
+This example in the help does not work (Andy Wokula, 2017 Aug 20):
+    augroup mine | au! BufRead | augroup END
+
 Memory leak in test_arabic.
 
 Include Haiku port? (Adrien Destugues, Siarzhuk Zharski, 2013 Oct 24)
@@ -382,9 +409,6 @@ Implement optional arguments for functio
     call Foo(12, all = 0)
     call Foo(12, 15, 0)
 
-Patch to support on-the-spot and over-the-spot input method. (Ken Takata, 2017
-Feb 14).
-
 Change the Farsi code to work with UTF-8.  Possibly combined with the Arabic
 support, or similar.
 Invalid read error in Farsi mode. (Dominique Pelle, 2009 Aug 2)
@@ -624,11 +648,6 @@ Reject the value? #710.
 Patch to fix increment/decrement not working properly when 'virtualedit' is
 set. (Hirohito Higashi, 2016 Aug 1, #923)
 
-Patch to support strikethrough next to bold and italic. (Christian Brabandt,
-2013 Jul 30)  Update from Ken Takata, 2013 Oct 12.
-Update mentioned by Christian, 2016 Apr 25.
-Update from Ken Takata, 2016 Jul 17.
-
 When doing "vi buf.md" a BufNew autocommand for *.md is not triggered.
 Because of using the initial buffer? (Dun Peal, 2016 May 12)
 
@@ -1396,9 +1415,6 @@ Windows keys not set properly on Windows
 When using a Vim server, a # in the path causes an error message.
 (Jeff Lanzarotta, 2011 Feb 17)
 
-Setting $HOME on MS-Windows is not very well documented.  Suggestion by Ben
-Fritz (2011 Oct 27).
-
 When there is a ">" in a line that "gq" wraps to the start of the next line,
 then the following line will pick it up as a leader.  Should get the leader
 from the first line, not a wrapped line. (Matt Ackeret, 2012 Feb 27)
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt*	For Vim version 8.0.  Last change: 2017 Jul 19
+*usr_41.txt*	For Vim version 8.0.  Last change: 2017 Aug 22
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -966,6 +966,23 @@ Jobs:		    			        *job-functions*
 	job_info()		get information about a job
 	job_setoptions()	set options for a job
 
+Terminal window:				*terminal-functions*
+	term_start()		open a terminal window and run a job
+	term_list()		get the list of terminal buffers
+	term_sendkeys()		send keystrokes to a terminal
+	term_wait()		wait for screen to be updated
+	term_getjob()		get the job associated with a terminal
+	term_scrape()		get row of a terminal screen
+	term_getline()		get a line of text from a terminal
+	term_getattr()		get the value of attribute {what}
+	term_getcursor()	get the cursor position of a terminal
+	term_getscrolled()	get the scroll count of a terminal
+	term_getaltscreen()	get the alternate screen flag
+	term_getsize()		get the size of a terminal
+	term_getstatus()	get the status of a terminal
+	term_gettitle()		get the title of a terminal
+	term_gettty()		get the tty name of a terminal
+
 Timers:						*timer-functions*
 	timer_start()		create a timer
 	timer_pause()		pause or unpause a timer
--- a/runtime/doc/vim.man
+++ b/runtime/doc/vim.man
@@ -3,7 +3,7 @@ VIM(1)                      General Comm
 
 
 NAME
-       vim - Vi IMproved, a programmers text editor
+       vim - Vi IMproved, a programmer's text editor
 
 SYNOPSIS
        vim [options] [file ..]
--- a/runtime/doc/windows.txt
+++ b/runtime/doc/windows.txt
@@ -1,4 +1,4 @@
-*windows.txt*   For Vim version 8.0.  Last change: 2017 Jul 23
+*windows.txt*   For Vim version 8.0.  Last change: 2017 Aug 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -344,8 +344,9 @@ CTRL-W CTRL-C						*CTRL-W_CTRL-C*
 							*:hide*
 :hid[e]
 :{count}hid[e]
-		Quit the current window, unless it is the last window on the
-		screen.  For {count} see |:quit| command.
+		Without {count}: Quit the current window, unless it is the
+		last window on the screen.
+		If {count} is given quit the {count} window.
 		
 		The buffer becomes hidden (unless there is another window
 		editing it or 'bufhidden' is "unload", "delete" or "wipe").
@@ -1031,6 +1032,8 @@ list of buffers. |unlisted-buffer|
 			   displayed in a window |hidden-buffer|
 		   -	a buffer with 'modifiable' off
 		   =	a readonly buffer
+		   R	a terminal buffer with a running job
+		   F	a terminal buffer with a finished job
 		    +	a modified buffer
 		    x   a buffer with read errors
 
--- a/runtime/ftplugin/verilog.vim
+++ b/runtime/ftplugin/verilog.vim
@@ -1,8 +1,12 @@
 " Vim filetype plugin file
 " Language:	Verilog HDL
-" Maintainer:	Chih-Tsun Huang <cthuang@larc.ee.nthu.edu.tw>
-" Last Change:	Wed Sep  3 15:24:49 CST 2008
-" URL:		http://larc.ee.nthu.edu.tw/~cthuang/vim/ftplugin/verilog.vim
+" Maintainer:	Chih-Tsun Huang <cthuang@cs.nthu.edu.tw>
+" Last Change:	2017 Aug 25 by Chih-Tsun Huang
+" URL:	    	http://www.cs.nthu.edu.tw/~cthuang/vim/ftplugin/verilog.vim
+"
+" Credits:
+"   Suggestions for improvement, bug reports by
+"     Shao <shaominghai2005@163.com>
 
 " Only do this when not done yet for this buffer
 if exists("b:did_ftplugin")
@@ -45,11 +49,16 @@ if exists("loaded_matchit")
     \ '\<begin\>:\<end\>,' .
     \ '\<case\>\|\<casex\>\|\<casez\>:\<endcase\>,' .
     \ '\<module\>:\<endmodule\>,' .
-    \ '\<if\>:\<else\>,' .
+    \ '\<if\>:`\@<!\<else\>,' .
     \ '\<function\>:\<endfunction\>,' .
-    \ '`ifdef\>:`else\>:`endif\>,' .
+    \ '`ifn\?def\>:`elsif\>:`else\>:`endif\>,' .
     \ '\<task\>:\<endtask\>,' .
-    \ '\<specify\>:\<endspecify\>'
+    \ '\<specify\>:\<endspecify\>,' .
+    \ '\<config\>:\<endconfig\>,' .
+    \ '\<generate\>:\<endgenerate\>,' .
+    \ '\<fork\>:\<join\>,' .
+    \ '\<primitive\>:\<endprimitive\>,' .
+    \ '\<table\>:\<endtable\>'
 endif
 
 " Reset 'cpoptions' back to the user's setting
--- a/runtime/indent/verilog.vim
+++ b/runtime/indent/verilog.vim
@@ -1,6 +1,6 @@
 " Language:     Verilog HDL
 " Maintainer:	Chih-Tsun Huang <cthuang@cs.nthu.edu.tw>
-" Last Change:	2017 Feb 24 by Chih-Tsun Huang
+" Last Change:	2017 Aug 25 by Chih-Tsun Huang
 " URL:		    http://www.cs.nthu.edu.tw/~cthuang/vim/indent/verilog.vim
 "
 " Credits:
@@ -25,7 +25,8 @@ let b:did_indent = 1
 setlocal indentexpr=GetVerilogIndent()
 setlocal indentkeys=!^F,o,O,0),=begin,=end,=join,=endcase
 setlocal indentkeys+==endmodule,=endfunction,=endtask,=endspecify
-setlocal indentkeys+==`else,=`endif
+setlocal indentkeys+==endconfig,=endgenerate,=endprimitive,=endtable
+setlocal indentkeys+==`else,=`elsif,=`endif
 
 " Only define the function once.
 if exists("*GetVerilogIndent")
@@ -84,7 +85,9 @@ function GetVerilogIndent()
     endif
 
   " Indent after if/else/for/case/always/initial/specify/fork blocks
-  elseif last_line =~ '`\@<!\<\(if\|else\)\>' ||
+  " Note: We exclude '`if' or '`else' and consider 'end else' 
+  "       'end if' is redundant here
+  elseif last_line =~ '^\s*\(end\)\=\s*`\@<!\<\(if\|else\)\>' ||
     \ last_line =~ '^\s*\<\(for\|case\%[[zx]]\)\>' ||
     \ last_line =~ '^\s*\<\(always\|initial\)\>' ||
     \ last_line =~ '^\s*\<\(specify\|fork\)\>'
@@ -93,8 +96,8 @@ function GetVerilogIndent()
       let ind = ind + offset
       if vverb | echo vverb_str "Indent after a block statement." | endif
     endif
-  " Indent after function/task blocks
-  elseif last_line =~ '^\s*\<\(function\|task\)\>'
+  " Indent after function/task/config/generate/primitive/table blocks
+  elseif last_line =~ '^\s*\<\(function\|task\|config\|generate\|primitive\|table\)\>'
     if last_line !~ '\<end\>\s*' . vlog_comment . '*$' ||
       \ last_line =~ '\(//\|/\*\).*\(;\|\<end\>\)\s*' . vlog_comment . '*$'
       let ind = ind + offset
@@ -161,11 +164,11 @@ function GetVerilogIndent()
       let ind = ind - offset
       if vverb | echo vverb_str "De-indent after a close statement." | endif
 
-  " `ifdef and `else
-  elseif last_line =~ '^\s*`\<\(ifdef\|else\)\>'
+  " `ifdef or `ifndef or `elsif or `else
+  elseif last_line =~ '^\s*`\<\(ifn\?def\|elsif\|else\)\>'
     let ind = ind + offset
     if vverb
-      echo vverb_str "Indent after a `ifdef or `else statement."
+      echo vverb_str "Indent after a `ifdef or `ifndef or `elsif or `else statement."
     endif
 
   endif
@@ -175,7 +178,8 @@ function GetVerilogIndent()
   " De-indent on the end of the block
   " join/end/endcase/endfunction/endtask/endspecify
   if curr_line =~ '^\s*\<\(join\|end\|endcase\)\>' ||
-    \ curr_line =~ '^\s*\<\(endfunction\|endtask\|endspecify\)\>'
+    \ curr_line =~ '^\s*\<\(endfunction\|endtask\|endspecify\)\>' ||
+    \ curr_line =~ '^\s*\<\(endconfig\|endgenerate\|endprimitive\|endtable\)\>'
     let ind = ind - offset
     if vverb | echo vverb_str "De-indent the end of a block." | endif
   elseif curr_line =~ '^\s*\<endmodule\>'
@@ -186,7 +190,7 @@ function GetVerilogIndent()
 
   " De-indent on a stand-alone 'begin'
   elseif curr_line =~ '^\s*\<begin\>'
-    if last_line !~ '^\s*\<\(function\|task\|specify\|module\)\>' &&
+    if last_line !~ '^\s*\<\(function\|task\|specify\|module\|config\|generate\|primitive\|table\)\>' &&
       \ last_line !~ '^\s*\()*\s*;\|)\+\)\s*' . vlog_comment . '*$' &&
       \ ( last_line =~
 	\ '\<\(`\@<!if\|`\@<!else\|for\|case\%[[zx]]\|always\|initial\)\>' ||
@@ -208,10 +212,10 @@ function GetVerilogIndent()
       echo vverb_str "De-indent the end of a multiple statement."
     endif
 
-  " De-indent `else and `endif
-  elseif curr_line =~ '^\s*`\<\(else\|endif\)\>'
+  " De-indent `elsif or `else or `endif
+  elseif curr_line =~ '^\s*`\<\(elsif\|else\|endif\)\>'
     let ind = ind - offset
-    if vverb | echo vverb_str "De-indent `else and `endif statement." | endif
+    if vverb | echo vverb_str "De-indent `elsif or `else or `endif statement." | endif
 
   endif
 
new file mode 100644
--- /dev/null
+++ b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
@@ -0,0 +1,35 @@
+" Debugger commands.
+"
+" WORK IN PROGRESS - much doesn't work yet
+"
+" Open two terminal windows:
+" 1. run a pty, as with ":term NONE"
+" 2. run gdb, passing the pty
+" The current window is used to edit source code and follows gdb.
+"
+" Author: Bram Moolenaar
+" Copyright: Vim license applies
+
+command -nargs=* -complete=file Termdebug call s:StartDebug(<q-args>)
+
+if !exists('debugger')
+  let debugger = 'gdb'
+endif
+
+func s:StartDebug(cmd)
+  " Open a terminal window without a job, to run the debugged program
+  let s:ptybuf = term_start('NONE', {})
+  let pty = job_info(term_getjob(s:ptybuf))['tty']
+
+  " Open a terminal window to run the debugger.
+  let cmd = [g:debugger, '-tty', pty, a:cmd]
+  echomsg 'executing "' . join(cmd) . '"'
+  let gdbbuf = term_start(cmd, {
+	\ 'exit_cb': function('s:EndDebug'),
+	\ 'term_finish': 'close'
+	\ })
+endfunc
+
+func s:EndDebug(job, status)
+   exe 'bwipe! ' . s:ptybuf
+endfunc
--- a/runtime/scripts.vim
+++ b/runtime/scripts.vim
@@ -1,7 +1,7 @@
 " Vim support file to detect file types in scripts
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last change:	2017 Jun 11
+" Last change:	2017 Aug 27
 
 " This file is called by an autocommand for every file that has just been
 " loaded into a buffer.  It checks if the type of file can be recognized by
@@ -306,7 +306,7 @@ else
     set ft=virata
 
     " Strace
-  elseif s:line1 =~# '^\(\[pid \d\+\] \)\=[0-9:.]* *execve(' || s:line1 =~# '^__libc_start_main'
+  elseif s:line1 =~# '[0-9:.]* *execve(' || s:line1 =~# '^__libc_start_main'
     set ft=strace
 
     " VSE JCL
--- a/runtime/syntax/debcontrol.vim
+++ b/runtime/syntax/debcontrol.vim
@@ -3,7 +3,7 @@
 " Maintainer:  Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 " Former Maintainers: Gerfried Fuchs <alfie@ist.org>
 "                     Wichert Akkerman <wakkerma@debian.org>
-" Last Change: 2016 Aug 30
+" Last Change: 2017 Aug 18
 " URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debcontrol.vim
 
 " Standard syntax initialization
@@ -21,8 +21,8 @@ syn case match
 syn match debcontrolElse "^.*$"
 
 " Common seperators
-syn match debControlComma ", *"
-syn match debControlSpace " "
+syn match debControlComma ",[ \t]*"
+syn match debControlSpace "[ \t]"
 
 let s:kernels = '\%(linux\|hurd\|kfreebsd\|knetbsd\|kopensolaris\|netbsd\)'
 let s:archs = '\%(alpha\|amd64\|armeb\|armel\|armhf\|arm64\|avr32\|hppa\|i386'
@@ -38,7 +38,7 @@ unlet s:kernels s:archs s:pairs
 syn match debcontrolMultiArch contained "\%(no\|foreign\|allowed\|same\)"
 syn match debcontrolName contained "[a-z0-9][a-z0-9+.-]\+"
 syn match debcontrolPriority contained "\(extra\|important\|optional\|required\|standard\)"
-syn match debcontrolSection contained "\v((contrib|non-free|non-US/main|non-US/contrib|non-US/non-free|restricted|universe|multiverse)/)?(admin|cli-mono|comm|database|debian-installer|debug|devel|doc|editors|education|electronics|embedded|fonts|games|gnome|gnustep|gnu-r|graphics|hamradio|haskell|httpd|interpreters|introspection|java|javascript|kde|kernel|libs|libdevel|lisp|localization|mail|math|metapackages|misc|net|news|ocaml|oldlibs|otherosfs|perl|php|python|ruby|rust|science|shells|sound|text|tex|utils|vcs|video|web|x11|xfce|zope)"
+syn match debcontrolSection contained "\v((contrib|non-free|non-US/main|non-US/contrib|non-US/non-free|restricted|universe|multiverse)/)?(admin|cli-mono|comm|database|debian-installer|debug|devel|doc|editors|education|electronics|embedded|fonts|games|gnome|gnustep|gnu-r|graphics|hamradio|haskell|httpd|interpreters|introspection|java%(script)=|kde|kernel|libs|libdevel|lisp|localization|mail|math|metapackages|misc|net|news|ocaml|oldlibs|otherosfs|perl|php|python|ruby|rust|science|shells|sound|text|tex|utils|vcs|video|web|x11|xfce|zope)"
 syn match debcontrolPackageType contained "u\?deb"
 syn match debcontrolVariable contained "\${.\{-}}"
 syn match debcontrolDmUpload contained "\cyes"
@@ -60,7 +60,7 @@ syn match debcontrolComment "^#.*$" cont
 syn case ignore
 
 " List of all legal keys
-syn match debcontrolKey contained "^\%(Source\|Package\|Section\|Priority\|\%(XSBC-Original-\)\=Maintainer\|Uploaders\|Build-\%(Conflicts\|Depends\)\%(-Indep\)\=\|Standards-Version\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Breaks\|Essential\|Architecture\|Multi-Arch\|Description\|Bugs\|Origin\|X[SB]-Python-Version\|Homepage\|\(XS-\)\=Vcs-\(Browser\|Arch\|Bzr\|Cvs\|Darcs\|Git\|Hg\|Mtn\|Svn\)\|\%(XC-\)\=Package-Type\): *"
+syn match debcontrolKey contained "^\%(Source\|Package\|Section\|Priority\|\%(XSBC-Original-\)\=Maintainer\|Uploaders\|Build-\%(Conflicts\|Depends\)\%(-Arch\|-Indep\)\=\|Standards-Version\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Breaks\|Essential\|Architecture\|Multi-Arch\|Description\|Bugs\|Origin\|X[SB]-Python-Version\|Homepage\|\(XS-\)\=Vcs-\(Browser\|Arch\|Bzr\|Cvs\|Darcs\|Git\|Hg\|Mtn\|Svn\)\|\%(XC-\)\=Package-Type\|\%(XS-\)\=Testsuite\): *"
 
 syn match debcontrolDeprecatedKey contained "^\%(\%(XS-\)\=DM-Upload-Allowed\): *"
 
@@ -79,9 +79,9 @@ syn region debcontrolStrictField start="
 syn region debcontrolStrictField start="^\%(XS-\)\=DM-Upload-Allowed" end="$" contains=debcontrolDeprecatedKey,debcontrolDmUpload oneline
 
 " Catch-all for the other legal fields
-syn region debcontrolField start="^\%(\%(XSBC-Original-\)\=Maintainer\|Standards-Version\|Essential\|Bugs\|Origin\|X[SB]-Python-Version\|\%(XS-\)\=Vcs-Mtn\):" end="$" contains=debcontrolKey,debcontrolVariable,debcontrolEmail oneline
-syn region debcontrolMultiField start="^\%(Build-\%(Conflicts\|Depends\)\%(-Indep\)\=\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Breaks\|Uploaders\|Description\):" skip="^ " end="^$"me=s-1 end="^[^ #]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment
-syn region debcontrolMultiFieldSpell start="^\%(Description\):" skip="^ " end="^$"me=s-1 end="^[^ #]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment,@Spell
+syn region debcontrolField start="^\%(\%(XSBC-Original-\)\=Maintainer\|Standards-Version\|Essential\|Bugs\|Origin\|X[SB]-Python-Version\|\%(XS-\)\=Vcs-Mtn\|\%(XS-\)\=Testsuite\):" end="$" contains=debcontrolKey,debcontrolVariable,debcontrolEmail oneline
+syn region debcontrolMultiField start="^\%(Build-\%(Conflicts\|Depends\)\%(-Arch\|-Indep\)\=\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Breaks\|Uploaders\|Description\):" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment
+syn region debcontrolMultiFieldSpell start="^\%(Description\):" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment,@Spell
 
 " Associate our matches and regions with pretty colours
 hi def link debcontrolKey           Keyword
--- a/runtime/syntax/murphi.vim
+++ b/runtime/syntax/murphi.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language: Murphi model checking language
 " Maintainer: Matthew Fernandez <matthew.fernandez@gmail.com>
-" Last Change: 2017 May 3
+" Last Change: 2017 Aug 27
 " Version: 2
 " Remark: Originally authored by Diego Ongaro <ongaro@cs.stanford.edu> 
 
@@ -105,23 +105,23 @@ syn region murphiComment start="--" end=
 syn region murphiComment start="/\*" end="\*/" contains=murphiTodo
 
 " Link the rules to some groups.
-highlight link murphiComment        Comment
-highlight link murphiString         String
-highlight link murphiNumber         Number
-highlight link murphiBoolean        Boolean
-highlight link murphiIdentifier     Identifier
-highlight link murphiFunction       Function
-highlight link murphiStatement      Statement
-highlight link murphiConditional    Conditional
-highlight link murphiRepeat         Repeat
-highlight link murphiLabel          Label
-highlight link murphiOperator       Operator
-highlight link murphiKeyword        Keyword
-highlight link murphiType           Type
-highlight link murphiStructure      Structure
-highlight link murphiSpecial        Special
-highlight link murphiDelimiter      Delimiter
-highlight link murphiError          Error
-highlight link murphiTodo           Todo
+hi def link murphiComment        Comment
+hi def link murphiString         String
+hi def link murphiNumber         Number
+hi def link murphiBoolean        Boolean
+hi def link murphiIdentifier     Identifier
+hi def link murphiFunction       Function
+hi def link murphiStatement      Statement
+hi def link murphiConditional    Conditional
+hi def link murphiRepeat         Repeat
+hi def link murphiLabel          Label
+hi def link murphiOperator       Operator
+hi def link murphiKeyword        Keyword
+hi def link murphiType           Type
+hi def link murphiStructure      Structure
+hi def link murphiSpecial        Special
+hi def link murphiDelimiter      Delimiter
+hi def link murphiError          Error
+hi def link murphiTodo           Todo
 
 let b:current_syntax = "murphi"
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/n1ql.vim
@@ -0,0 +1,434 @@
+" Vim syntax file
+" Language:    N1QL / Couchbase Server
+" Maintainer:  Eugene Ciurana <n1ql AT cime.net>
+" Version:     1.0
+" Source:      https://github.com/pr3d4t0r/n1ql-vim-syntax
+"
+" License:     Vim is Charityware.  n1ql.vim syntax is Charityware.
+"              (c) Copyright 2017 by Eugene Ciurana / pr3d4t0r.  Licensed
+"              under the standard VIM LICENSE - Vim command :help uganda.txt
+"              for details.
+"
+" Questions, comments:  <n1ql AT cime.net>
+"                       https://ciurana.eu/pgp, https://keybase.io/pr3d4t0r
+"
+" vim: set fileencoding=utf-8:
+
+
+if exists("b:current_syntax")
+  finish
+endif
+
+
+syn case ignore
+
+syn keyword n1qlSpecial DATASTORES
+syn keyword n1qlSpecial DUAL
+syn keyword n1qlSpecial FALSE
+syn keyword n1qlSpecial INDEXES
+syn keyword n1qlSpecial KEYSPACES
+syn keyword n1qlSpecial MISSING
+syn keyword n1qlSpecial NAMESPACES
+syn keyword n1qlSpecial NULL
+syn keyword n1qlSpecial TRUE
+
+
+"
+" *** keywords ***
+"
+syn keyword n1qlKeyword ALL
+syn keyword n1qlKeyword ANY
+syn keyword n1qlKeyword ASC
+syn keyword n1qlKeyword BEGIN
+syn keyword n1qlKeyword BETWEEN
+syn keyword n1qlKeyword BREAK
+syn keyword n1qlKeyword BUCKET
+syn keyword n1qlKeyword CALL
+syn keyword n1qlKeyword CASE
+syn keyword n1qlKeyword CAST
+syn keyword n1qlKeyword CLUSTER
+syn keyword n1qlKeyword COLLATE
+syn keyword n1qlKeyword COLLECTION
+syn keyword n1qlKeyword CONNECT
+syn keyword n1qlKeyword CONTINUE
+syn keyword n1qlKeyword CORRELATE
+syn keyword n1qlKeyword COVER
+syn keyword n1qlKeyword DATABASE
+syn keyword n1qlKeyword DATASET
+syn keyword n1qlKeyword DATASTORE
+syn keyword n1qlKeyword DECLARE
+syn keyword n1qlKeyword DECREMENT
+syn keyword n1qlKeyword DERIVED
+syn keyword n1qlKeyword DESC
+syn keyword n1qlKeyword DESCRIBE
+syn keyword n1qlKeyword DO
+syn keyword n1qlKeyword EACH
+syn keyword n1qlKeyword ELEMENT
+syn keyword n1qlKeyword ELSE
+syn keyword n1qlKeyword END
+syn keyword n1qlKeyword EVERY
+syn keyword n1qlKeyword EXCLUDE
+syn keyword n1qlKeyword EXISTS
+syn keyword n1qlKeyword FETCH
+syn keyword n1qlKeyword FIRST
+syn keyword n1qlKeyword FLATTEN
+syn keyword n1qlKeyword FOR
+syn keyword n1qlKeyword FORCE
+syn keyword n1qlKeyword FROM
+syn keyword n1qlKeyword FUNCTION
+syn keyword n1qlKeyword GROUP
+syn keyword n1qlKeyword GSI
+syn keyword n1qlKeyword HAVING
+syn keyword n1qlKeyword IF
+syn keyword n1qlKeyword IGNORE
+syn keyword n1qlKeyword INCLUDE
+syn keyword n1qlKeyword INCREMENT
+syn keyword n1qlKeyword INDEX
+syn keyword n1qlKeyword INITIAL
+syn keyword n1qlKeyword INLINE
+syn keyword n1qlKeyword INNER
+syn keyword n1qlKeyword INTO
+syn keyword n1qlKeyword KEY
+syn keyword n1qlKeyword KEYS
+syn keyword n1qlKeyword KEYSPACE
+syn keyword n1qlKeyword KNOWN
+syn keyword n1qlKeyword LAST
+syn keyword n1qlKeyword LET
+syn keyword n1qlKeyword LETTING
+syn keyword n1qlKeyword LIMIT
+syn keyword n1qlKeyword LOOP
+syn keyword n1qlKeyword LSM
+syn keyword n1qlKeyword MAP
+syn keyword n1qlKeyword MAPPING
+syn keyword n1qlKeyword MATCHED
+syn keyword n1qlKeyword MATERIALIZED
+syn keyword n1qlKeyword MERGE
+syn keyword n1qlKeyword NAMESPACE
+syn keyword n1qlKeyword NEST
+syn keyword n1qlKeyword OPTION
+syn keyword n1qlKeyword ORDER
+syn keyword n1qlKeyword OUTER
+syn keyword n1qlKeyword OVER
+syn keyword n1qlKeyword PARSE
+syn keyword n1qlKeyword PARTITION
+syn keyword n1qlKeyword PASSWORD
+syn keyword n1qlKeyword PATH
+syn keyword n1qlKeyword POOL
+syn keyword n1qlKeyword PRIMARY
+syn keyword n1qlKeyword PRIVATE
+syn keyword n1qlKeyword PRIVILEGE
+syn keyword n1qlKeyword PROCEDURE
+syn keyword n1qlKeyword PUBLIC
+syn keyword n1qlKeyword REALM
+syn keyword n1qlKeyword REDUCE
+syn keyword n1qlKeyword RETURN
+syn keyword n1qlKeyword RETURNING
+syn keyword n1qlKeyword ROLE
+syn keyword n1qlKeyword SATISFIES
+syn keyword n1qlKeyword SCHEMA
+syn keyword n1qlKeyword SELF
+syn keyword n1qlKeyword SEMI
+syn keyword n1qlKeyword SHOW
+syn keyword n1qlKeyword START
+syn keyword n1qlKeyword STATISTICS
+syn keyword n1qlKeyword SYSTEM
+syn keyword n1qlKeyword THEN
+syn keyword n1qlKeyword TRANSACTION
+syn keyword n1qlKeyword TRIGGER
+syn keyword n1qlKeyword UNDER
+syn keyword n1qlKeyword UNKNOWN
+syn keyword n1qlKeyword UNSET
+syn keyword n1qlKeyword USE
+syn keyword n1qlKeyword USER
+syn keyword n1qlKeyword USING
+syn keyword n1qlKeyword VALIDATE
+syn keyword n1qlKeyword VALUE
+syn keyword n1qlKeyword VALUED
+syn keyword n1qlKeyword VALUES
+syn keyword n1qlKeyword VIEW
+syn keyword n1qlKeyword WHEN
+syn keyword n1qlKeyword WHERE
+syn keyword n1qlKeyword WHILE
+syn keyword n1qlKeyword WITHIN
+syn keyword n1qlKeyword WORK
+
+
+"
+" *** functions ***
+"
+syn keyword n1qlOperator ABS
+syn keyword n1qlOperator ACOS
+syn keyword n1qlOperator ARRAY_AGG
+syn keyword n1qlOperator ARRAY_APPEND
+syn keyword n1qlOperator ARRAY_AVG
+syn keyword n1qlOperator ARRAY_CONCAT
+syn keyword n1qlOperator ARRAY_CONTAINS
+syn keyword n1qlOperator ARRAY_COUNT
+syn keyword n1qlOperator ARRAY_DISTINCT
+syn keyword n1qlOperator ARRAY_FLATTEN
+syn keyword n1qlOperator ARRAY_IFNULL
+syn keyword n1qlOperator ARRAY_INSERT
+syn keyword n1qlOperator ARRAY_INTERSECT
+syn keyword n1qlOperator ARRAY_LENGTH
+syn keyword n1qlOperator ARRAY_MAX
+syn keyword n1qlOperator ARRAY_MIN
+syn keyword n1qlOperator ARRAY_POSITION
+syn keyword n1qlOperator ARRAY_PREPEND
+syn keyword n1qlOperator ARRAY_PUT
+syn keyword n1qlOperator ARRAY_RANGE
+syn keyword n1qlOperator ARRAY_REMOVE
+syn keyword n1qlOperator ARRAY_REPEAT
+syn keyword n1qlOperator ARRAY_REPLACE
+syn keyword n1qlOperator ARRAY_REVERSE
+syn keyword n1qlOperator ARRAY_SORT
+syn keyword n1qlOperator ARRAY_START
+syn keyword n1qlOperator ARRAY_SUM
+syn keyword n1qlOperator ARRAY_SYMDIFF
+syn keyword n1qlOperator ARRAY_UNION
+syn keyword n1qlOperator ASIN
+syn keyword n1qlOperator ATAN
+syn keyword n1qlOperator ATAN2
+syn keyword n1qlOperator AVG
+syn keyword n1qlOperator BASE64
+syn keyword n1qlOperator BASE64_DECODE
+syn keyword n1qlOperator BASE64_ENCODE
+syn keyword n1qlOperator CEIL
+syn keyword n1qlOperator CLOCK_LOCAL
+syn keyword n1qlOperator CLOCK_STR
+syn keyword n1qlOperator CLOCK_TZ
+syn keyword n1qlOperator CLOCK_UTC
+syn keyword n1qlOperator CLOCL_MILLIS
+syn keyword n1qlOperator CONTAINS
+syn keyword n1qlOperator COS
+syn keyword n1qlOperator COUNT
+syn keyword n1qlOperator DATE_ADD_MILLIS
+syn keyword n1qlOperator DATE_ADD_STR
+syn keyword n1qlOperator DATE_DIFF_MILLIS
+syn keyword n1qlOperator DATE_DIFF_STR
+syn keyword n1qlOperator DATE_FORMAT_STR
+syn keyword n1qlOperator DATE_PART_MILLIS
+syn keyword n1qlOperator DATE_PART_STR
+syn keyword n1qlOperator DATE_RANGE_MILLIS
+syn keyword n1qlOperator DATE_RANGE_STR
+syn keyword n1qlOperator DATE_TRUC_STR
+syn keyword n1qlOperator DATE_TRUNC_MILLIS
+syn keyword n1qlOperator DECODE_JSON
+syn keyword n1qlOperator DEGREES
+syn keyword n1qlOperator DURATION_TO_STR
+syn keyword n1qlOperator E
+syn keyword n1qlOperator ENCODED_SIZE
+syn keyword n1qlOperator ENCODE_JSON
+syn keyword n1qlOperator EXP
+syn keyword n1qlOperator FLOOR
+syn keyword n1qlOperator GREATEST
+syn keyword n1qlOperator IFINF
+syn keyword n1qlOperator IFMISSING
+syn keyword n1qlOperator IFMISSINGORNULL
+syn keyword n1qlOperator IFNAN
+syn keyword n1qlOperator IFNANORINF
+syn keyword n1qlOperator IFNULL
+syn keyword n1qlOperator INITCAP
+syn keyword n1qlOperator ISARRAY
+syn keyword n1qlOperator ISATOM
+syn keyword n1qlOperator ISBOOLEAN
+syn keyword n1qlOperator ISNUMBER
+syn keyword n1qlOperator ISOBJECT
+syn keyword n1qlOperator ISSTRING
+syn keyword n1qlOperator LEAST
+syn keyword n1qlOperator LENGTH
+syn keyword n1qlOperator LN
+syn keyword n1qlOperator LOG
+syn keyword n1qlOperator LOWER
+syn keyword n1qlOperator LTRIM
+syn keyword n1qlOperator MAX
+syn keyword n1qlOperator META
+syn keyword n1qlOperator MILLIS
+syn keyword n1qlOperator MILLIS_TO_LOCAL
+syn keyword n1qlOperator MILLIS_TO_STR
+syn keyword n1qlOperator MILLIS_TO_TZ
+syn keyword n1qlOperator MILLIS_TO_UTC
+syn keyword n1qlOperator MILLIS_TO_ZONE_NAME
+syn keyword n1qlOperator MIN
+syn keyword n1qlOperator MISSINGIF
+syn keyword n1qlOperator NANIF
+syn keyword n1qlOperator NEGINFIF
+syn keyword n1qlOperator NOW_LOCAL
+syn keyword n1qlOperator NOW_MILLIS
+syn keyword n1qlOperator NOW_STR
+syn keyword n1qlOperator NOW_TZ
+syn keyword n1qlOperator NOW_UTC
+syn keyword n1qlOperator NULLIF
+syn keyword n1qlOperator OBJECT_ADD
+syn keyword n1qlOperator OBJECT_CONCAT
+syn keyword n1qlOperator OBJECT_INNER_PAIRS
+syn keyword n1qlOperator OBJECT_INNER_VALUES
+syn keyword n1qlOperator OBJECT_LENGTH
+syn keyword n1qlOperator OBJECT_NAMES
+syn keyword n1qlOperator OBJECT_PAIRS
+syn keyword n1qlOperator OBJECT_PUT
+syn keyword n1qlOperator OBJECT_REMOVE
+syn keyword n1qlOperator OBJECT_RENAME
+syn keyword n1qlOperator OBJECT_REPLACE
+syn keyword n1qlOperator OBJECT_UNWRAP
+syn keyword n1qlOperator OBJECT_VALUES
+syn keyword n1qlOperator PI
+syn keyword n1qlOperator POLY_LENGTH
+syn keyword n1qlOperator POSINIF
+syn keyword n1qlOperator POSITION
+syn keyword n1qlOperator POWER
+syn keyword n1qlOperator RADIANS
+syn keyword n1qlOperator RANDOM
+syn keyword n1qlOperator REGEXP_CONTAINS
+syn keyword n1qlOperator REGEXP_LIKE
+syn keyword n1qlOperator REGEXP_POSITION
+syn keyword n1qlOperator REGEXP_REPLACE
+syn keyword n1qlOperator REPEAT
+syn keyword n1qlOperator REPLACE
+syn keyword n1qlOperator REVERSE
+syn keyword n1qlOperator ROUND
+syn keyword n1qlOperator RTRIM
+syn keyword n1qlOperator SIGN
+syn keyword n1qlOperator SIN
+syn keyword n1qlOperator SPLIT
+syn keyword n1qlOperator SQRT
+syn keyword n1qlOperator STR_TO_DURATION
+syn keyword n1qlOperator STR_TO_MILLIS
+syn keyword n1qlOperator STR_TO_TZ
+syn keyword n1qlOperator STR_TO_UTC
+syn keyword n1qlOperator STR_TO_ZONE_NAME
+syn keyword n1qlOperator SUBSTR
+syn keyword n1qlOperator SUFFIXES
+syn keyword n1qlOperator SUM
+syn keyword n1qlOperator TAN
+syn keyword n1qlOperator TITLE
+syn keyword n1qlOperator TOARRAY
+syn keyword n1qlOperator TOATOM
+syn keyword n1qlOperator TOBOOLEAN
+syn keyword n1qlOperator TOKENS
+syn keyword n1qlOperator TONUMBER
+syn keyword n1qlOperator TOOBJECT
+syn keyword n1qlOperator TOSTRING
+syn keyword n1qlOperator TRIM
+syn keyword n1qlOperator TRUNC
+syn keyword n1qlOperator TYPE
+syn keyword n1qlOperator UPPER
+syn keyword n1qlOperator UUID
+syn keyword n1qlOperator WEEKDAY_MILLIS
+syn keyword n1qlOperator WEEKDAY_STR
+
+
+"
+" *** operators ***
+"
+syn keyword n1qlOperator AND
+syn keyword n1qlOperator AS
+syn keyword n1qlOperator BY
+syn keyword n1qlOperator DISTINCT
+syn keyword n1qlOperator EXCEPT
+syn keyword n1qlOperator ILIKE
+syn keyword n1qlOperator IN
+syn keyword n1qlOperator INTERSECT
+syn keyword n1qlOperator IS
+syn keyword n1qlOperator JOIN
+syn keyword n1qlOperator LEFT
+syn keyword n1qlOperator LIKE
+syn keyword n1qlOperator MINUS
+syn keyword n1qlOperator NEST
+syn keyword n1qlOperator NESTING
+syn keyword n1qlOperator NOT
+syn keyword n1qlOperator OFFSET
+syn keyword n1qlOperator ON
+syn keyword n1qlOperator OR
+syn keyword n1qlOperator OUT
+syn keyword n1qlOperator RIGHT
+syn keyword n1qlOperator SOME
+syn keyword n1qlOperator TO
+syn keyword n1qlOperator UNION
+syn keyword n1qlOperator UNIQUE
+syn keyword n1qlOperator UNNEST
+syn keyword n1qlOperator VIA
+syn keyword n1qlOperator WITH
+syn keyword n1qlOperator XOR
+
+
+"
+" *** statements ***
+"
+syn keyword n1qlStatement ALTER
+syn keyword n1qlStatement ANALYZE
+syn keyword n1qlStatement BUILD
+syn keyword n1qlStatement COMMIT
+syn keyword n1qlStatement CREATE
+syn keyword n1qlStatement DELETE
+syn keyword n1qlStatement DROP
+syn keyword n1qlStatement EXECUTE
+syn keyword n1qlStatement EXPLAIN
+syn keyword n1qlStatement GRANT
+syn keyword n1qlStatement INFER
+syn keyword n1qlStatement INSERT
+syn keyword n1qlStatement MERGE
+syn keyword n1qlStatement PREPARE
+syn keyword n1qlStatement RENAME
+syn keyword n1qlStatement REVOKE
+syn keyword n1qlStatement ROLLBACK
+syn keyword n1qlStatement SELECT
+syn keyword n1qlStatement SET
+syn keyword n1qlStatement TRUNCATE
+syn keyword n1qlStatement UPDATE
+syn keyword n1qlStatement UPSERT
+
+
+"
+" *** types ***
+"
+syn keyword n1qlType ARRAY
+syn keyword n1qlType BINARY
+syn keyword n1qlType BOOLEAN
+syn keyword n1qlType NUMBER
+syn keyword n1qlType OBJECT
+syn keyword n1qlType RAW
+syn keyword n1qlType STRING
+
+
+"
+" *** strings and characters ***
+"
+syn region n1qlString start=+"+  skip=+\\\\\|\\"+  end=+"+
+syn region n1qlString start=+'+  skip=+\\\\\|\\'+  end=+'+
+syn region n1qlBucketSpec start=+`+  skip=+\\\\\|\\'+  end=+`+
+
+
+"
+" *** numbers ***
+"
+syn match n1qlNumber        "-\=\<\d*\.\=[0-9_]\>"
+
+
+"
+" *** comments ***
+"
+syn region n1qlComment start="/\*"  end="\*/" contains=n1qlTODO
+syn match n1qlComment  "--.*$" contains=n1qlTODO
+syn sync ccomment      n1qlComment
+
+
+"
+" *** TODO ***
+"
+syn keyword n1qlTODO contained TODO FIXME XXX DEBUG NOTE
+
+
+"
+" *** enable ***
+"
+hi def link n1qlBucketSpec Underlined
+hi def link n1qlComment    Comment
+hi def link n1qlKeyword    Macro
+hi def link n1qlOperator   Function
+hi def link n1qlSpecial    Special
+hi def link n1qlStatement  Statement
+hi def link n1qlString     String
+hi def link n1qlTODO       Todo
+hi def link n1qlType       Type
+
+let b:current_syntax = "n1ql"
--- a/runtime/syntax/sas.vim
+++ b/runtime/syntax/sas.vim
@@ -3,7 +3,7 @@
 " Maintainer:   Zhen-Huan Hu <wildkeny@gmail.com>
 " Original Maintainer: James Kidd <james.kidd@covance.com>
 " Version:      3.0.0
-" Last Change:  Mar 10, 2017
+" Last Change:  Aug 26, 2017
 "
 " 2017 Mar 7
 "
@@ -120,7 +120,7 @@ syn match sasDataStepStatement '\v%(^|;)
 syn match sasDataStepStatement '\v%(^|;)\s*\zsods>' display contained contains=sasGlobalStatementKeyword nextgroup=sasGlobalStatementODSKeyword skipwhite skipnl skipempty
 syn match sasDataStepStatement '\v%(^|;)\s*\zs%(format|informat|input|put)>' display contained contains=sasDataStepStatementKeyword nextgroup=sasFormatContext skipwhite skipnl skipempty
 syn match sasDataStepStatement '\v%(^|;)\s*\zs%(cards|datalines|lines)4=\s*;' display contained contains=sasDataStepStatementKeyword nextgroup=sasDataLine skipwhite skipnl skipempty
-syn region sasDataLine start='^' end='^;'me=s-1 contained
+syn region sasDataLine start='^' end='^\s*;'me=s-1 contained
 syn region sasDataStep matchgroup=sasSectionKeyword start='\v%(^|;)\s*\zsdata>' end='\v%(^|;)\s*%(run|data|proc|endsas)>'me=s-1 fold contains=@sasBasicSyntax,@sasDataStepSyntax
 syn cluster sasDataStepSyntax contains=sasDataStepFunction,sasDataStepHashOperator,sasDataStepHashAttribute,sasDataStepHashMethod,sasDataStepControl,sasDataStepStatement
 
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -560,7 +560,7 @@ syn match	vimHiBang	contained	"!"	skipwh
 
 syn match	vimHiGroup	contained	"\i\+"
 syn case ignore
-syn keyword	vimHiAttrib	contained	none bold inverse italic reverse standout underline undercurl
+syn keyword	vimHiAttrib	contained	none bold inverse italic reverse standout underline undercurl nocombine
 syn keyword	vimFgBgAttrib	contained	none bg background fg foreground
 syn case match
 syn match	vimHiAttribList	contained	"\i\+"	contains=vimHiAttrib
--- a/runtime/tutor/tutor.ru.utf-8
+++ b/runtime/tutor/tutor.ru.utf-8
@@ -790,10 +790,10 @@
   1. Переместите курсор вниз, к первой строке помеченной --->, и в начало
      первого слова  xxx.
 
-  2. Теперь нажмите  R  и введите число указанный ниже во второй строке чтобы
+  2. Теперь нажмите  R  и введите число, указанное ниже во второй строке, чтобы
      заменить  xxx.
 
-  3. Нажмите <ESC> для выхода из режима замены. Заметьте что остаток строки
+  3. Нажмите <ESC> для выхода из режима замены. Заметьте, что остаток строки
      не был изменён.
 
   4. Повторите эти шаги для замены оставшихся  xxx.
--- a/runtime/tutor/tutor.zh.utf-8
+++ b/runtime/tutor/tutor.zh.utf-8
@@ -35,7 +35,7 @@
 
 ---> 現在您應該已經學會如何移動到下一講吧。
 
-  3. 現在請使用下行鍵,將光標移動到第二講。
+  3. 現在請使用下行鍵,將光標移動到第一講第二節。
 
 提示︰如果您不敢確定您所按下的字母,請按下<ESC>鍵回到正常(Normal)模式。
       然後再次從鍵盤輸入您想要的命令。
--- a/runtime/tutor/tutor.zh_tw.utf-8
+++ b/runtime/tutor/tutor.zh_tw.utf-8
@@ -35,7 +35,7 @@
 
 ---> 現在您應該已經學會如何移動到下一講吧。
 
-  3. 現在請使用下行鍵,將光標移動到第二講。
+  3. 現在請使用下行鍵,將光標移動到第一講第二節。
 
 提示︰如果您不敢確定您所按下的字母,請按下<ESC>鍵回到正常(Normal)模式。
       然後再次從鍵盤輸入您想要的命令。