changeset 13589:1073225cb749

Update runtime files commit https://github.com/vim/vim/commit/51ad4eaa22e15cf1fe6c45d82c7e1371e00401a4 Author: Bram Moolenaar <Bram@vim.org> Date: Fri Apr 6 11:14:11 2018 +0200 Update runtime files
author Christian Brabandt <cb@256bit.org>
date Fri, 06 Apr 2018 11:15:07 +0200
parents 01965f9ccc7a
children 0fc3ec8517e9
files runtime/doc/indent.txt runtime/doc/terminal.txt runtime/doc/todo.txt runtime/syntax/lisp.vim runtime/syntax/ninja.vim runtime/syntax/sh.vim runtime/syntax/tex.vim runtime/syntax/vim.vim runtime/tools/shtags.pl
diffstat 9 files changed, 560 insertions(+), 487 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/indent.txt
+++ b/runtime/doc/indent.txt
@@ -1,4 +1,4 @@
-*indent.txt*    For Vim version 8.0.  Last change: 2014 Dec 06
+*indent.txt*    For Vim version 8.0.  Last change: 2018 Apr 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -414,10 +414,10 @@ The examples below assume a 'shiftwidth'
 							*cino-(*
 	(N    When in unclosed parentheses, indent N characters from the line
 	      with the unclosed parentheses.  Add a 'shiftwidth' for every
-	      unclosed parentheses.  When N is 0 or the unclosed parentheses
-	      is the first non-white character in its line, line up with the
-	      next non-white character after the unclosed parentheses.
-	      (default 'shiftwidth' * 2).
+	      extra unclosed parentheses.  When N is 0 or the unclosed
+	      parentheses is the first non-white character in its line, line
+	      up with the next non-white character after the unclosed
+	      parentheses.  (default 'shiftwidth' * 2).
 
 		cino=			  cino=(0 >
 		  if (c1 && (c2 ||	    if (c1 && (c2 ||
@@ -428,7 +428,8 @@ The examples below assume a 'shiftwidth'
 		     {			       {
 <
 							*cino-u*
-	uN    Same as (N, but for one level deeper.  (default 'shiftwidth').
+	uN    Same as (N, but for one nesting level deeper.
+	      (default 'shiftwidth').
 
 		cino=			  cino=u2 >
 		  if (c123456789	    if (c123456789
--- a/runtime/doc/terminal.txt
+++ b/runtime/doc/terminal.txt
@@ -1,4 +1,4 @@
-*terminal.txt*	For Vim version 8.0.  Last change: 2018 Mar 26
+*terminal.txt*	For Vim version 8.0.  Last change: 2018 Apr 05
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.0.  Last change: 2018 Mar 29
+*todo.txt*      For Vim version 8.0.  Last change: 2018 Apr 05
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -39,7 +39,12 @@ Terminal emulator window:
 - dump diff sometimes creates a different way of repeating.
    Example: https://api.travis-ci.org/v3/job/359102504/log.txt
   unclear why this can happen.
+- Passing 'term' as $TERM doesn't work in GUI.
 - Still some stuff to implement and bugs to fix, see src/terminal.c
+- GUI: problem with split window and sourcing the current buffer into python?
+    (Blay263, 2018 Mar 31)
+- Terminal debugger: need a way to (re) open the source window, where current
+  position is displayed.
 
 Mode message isn't updated on vertical split. (Alexei Averchenko, 2018 Feb 2,
 #2611)
@@ -50,18 +55,31 @@ Problem with sudo. #2758
 
 Code refactoring, macro for message, #2729
 
+Fix for crash with non-dict argument to job options. (ichizok, #2765)
+
 Patch to enforce c89 compliance. (James McCoy, #2735)
 With fix for Mac from Kazunobu.
 
+Block insert doesn't work if the first line is auto-indented. (Christian
+Brabandt, 2018 Apr 4, #2778)
+
 Errors found with random data:
     heap-buffer-overflow in alist_add (#2472)
 
 Patch to avoid bad highlighting caused by #if. (ichizok, #2731)
 
+Patch to make mkdir() more like the shell command. (James McCoy, #2775)
+
 Implement option_save() and option_restore()?  Or remove the help.
 
+Patch for static analysis warnings. (Christian Brabandt, 2018 Apr 1, #2770)
+
+Patch to refactor ex_helpgrep. (Yegappan, #2766, 2018 Mar 30)
+Also in email, take the one with a test.
+
 Looks like an error for inserting register makes ":file other" not work.
-(Tom M, 2018 Mar 28)
+(Tom M, 2018 Mar 28)  Reset did_emsg after inserting a register.
+Or at the top of the loop? (Apr 4)
 
 Patch to fix mouse pointer after :tselect. (Hirohito Higashi, #2709)
 How to reproduce the problem?
@@ -116,6 +134,7 @@ Patch to add more flags to :ls. (Marcin 
 
 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)
 
 When using :packadd files under "later" are not used, which is inconsistent
 with packages under "start". (xtal8, #1994)
@@ -158,9 +177,6 @@ applying the diff, etc.
 User dictionary ~/.vim/spell/lang.utf-8.add not used for spell checking until a
 word is re-added to it. (Matej Cepl, 2018 Feb 6)
 
-Problem with mouse scroll in tmux. (fcying, #2419)  Might be caused by patch
-8.0.1309.  Removing "held_button = MOUSE_RELEASE;" helps. (2018 Feb 5)
-
 Fold at end of the buffer behaves inconsistently. (James McCoy, 2017 Oct 9)
 
 With foldmethod=syntax and nofoldenable comment highlighting isn't removed.
--- a/runtime/syntax/lisp.vim
+++ b/runtime/syntax/lisp.vim
@@ -1,9 +1,9 @@
 " Vim syntax file
 " Language:    Lisp
 " Maintainer:  Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change: May 02, 2016
-" Version:     26
-" URL:	       http://www.drchip.org/astronaut/vim/index.html#SYNTAX_LISP
+" Last Change: Feb 15, 2018
+" Version:     27
+" URL:	http://www.drchip.org/astronaut/vim/index.html#SYNTAX_LISP
 "
 "  Thanks to F Xavier Noria for a list of 978 Common Lisp symbols taken from HyperSpec
 "  Clisp additions courtesy of http://clisp.cvs.sourceforge.net/*checkout*/clisp/clisp/emacs/lisp.vim
@@ -40,8 +40,8 @@ syn case ignore
 
 " ---------------------------------------------------------------------
 " Lists: {{{1
-syn match			lispSymbol			contained			![^()'`,"; \t]\+!
-syn match			lispBarSymbol			contained			!|..\{-}|!
+syn match lispSymbol	contained	![^()'`,"; \t]\+!
+syn match lispBarSymbol	contained	!|..\{-}|!
 if exists("g:lisp_rainbow") && g:lisp_rainbow != 0
  syn region lispParen0           matchgroup=hlLevel0 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen1
  syn region lispParen1 contained matchgroup=hlLevel1 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen2
@@ -71,320 +71,320 @@ syn match lispLeadWhite			contained			"^
 
 " ---------------------------------------------------------------------
 " Standard Lisp Functions and Macros: {{{1
-syn keyword lispFunc		*				find-method					pprint-indent
-syn keyword lispFunc		**				find-package					pprint-linear
-syn keyword lispFunc		***				find-restart					pprint-logical-block
-syn keyword lispFunc		+				find-symbol					pprint-newline
-syn keyword lispFunc		++				finish-output					pprint-pop
-syn keyword lispFunc		+++				first						pprint-tab
-syn keyword lispFunc		-				fixnum						pprint-tabular
-syn keyword lispFunc		/				flet						prin1
-syn keyword lispFunc		//				float						prin1-to-string
-syn keyword lispFunc		///				float-digits					princ
-syn keyword lispFunc		/=				float-precision					princ-to-string
-syn keyword lispFunc		1+				float-radix					print
-syn keyword lispFunc		1-				float-sign					print-not-readable
-syn keyword lispFunc		<				floating-point-inexact				print-not-readable-object
-syn keyword lispFunc		<=				floating-point-invalid-operation print-object
-syn keyword lispFunc		=				floating-point-overflow				print-unreadable-object
-syn keyword lispFunc		>				floating-point-underflow			probe-file
-syn keyword lispFunc		>=				floatp						proclaim
-syn keyword lispFunc		abort				floor						prog
-syn keyword lispFunc		abs				fmakunbound					prog*
-syn keyword lispFunc		access				force-output					prog1
-syn keyword lispFunc		acons				format						prog2
-syn keyword lispFunc		acos				formatter					progn
-syn keyword lispFunc		acosh				fourth						program-error
-syn keyword lispFunc		add-method			fresh-line					progv
-syn keyword lispFunc		adjoin				fround						provide
-syn keyword lispFunc		adjust-array			ftruncate					psetf
-syn keyword lispFunc		adjustable-array-p		ftype						psetq
-syn keyword lispFunc		allocate-instance		funcall						push
-syn keyword lispFunc		alpha-char-p			function					pushnew
-syn keyword lispFunc		alphanumericp			function-keywords				putprop
-syn keyword lispFunc		and				function-lambda-expression			quote
-syn keyword lispFunc		append				functionp					random
-syn keyword lispFunc		apply				gbitp						random-state
-syn keyword lispFunc		applyhook			gcd						random-state-p
-syn keyword lispFunc		apropos				generic-function				rassoc
-syn keyword lispFunc		apropos-list			gensym						rassoc-if
-syn keyword lispFunc		aref				gentemp						rassoc-if-not
-syn keyword lispFunc		arithmetic-error		get						ratio
-syn keyword lispFunc		arithmetic-error-operands	get-decoded-time				rational
-syn keyword lispFunc		arithmetic-error-operation	get-dispatch-macro-character			rationalize
-syn keyword lispFunc		array				get-internal-real-time				rationalp
-syn keyword lispFunc		array-dimension			get-internal-run-time				read
-syn keyword lispFunc		array-dimension-limit		get-macro-character				read-byte
-syn keyword lispFunc		array-dimensions		get-output-stream-string			read-char
-syn keyword lispFunc		array-displacement		get-properties					read-char-no-hang
-syn keyword lispFunc		array-element-type		get-setf-expansion				read-delimited-list
-syn keyword lispFunc		array-has-fill-pointer-p	get-setf-method					read-eval-print
-syn keyword lispFunc		array-in-bounds-p		get-universal-time				read-from-string
-syn keyword lispFunc		array-rank			getf						read-line
-syn keyword lispFunc		array-rank-limit		gethash						read-preserving-whitespace
-syn keyword lispFunc		array-row-major-index		go						read-sequence
-syn keyword lispFunc		array-total-size		graphic-char-p					reader-error
-syn keyword lispFunc		array-total-size-limit		handler-bind					readtable
-syn keyword lispFunc		arrayp				handler-case					readtable-case
-syn keyword lispFunc		ash				hash-table					readtablep
-syn keyword lispFunc		asin				hash-table-count				real
-syn keyword lispFunc		asinh				hash-table-p					realp
-syn keyword lispFunc		assert				hash-table-rehash-size				realpart
-syn keyword lispFunc		assoc				hash-table-rehash-threshold			reduce
-syn keyword lispFunc		assoc-if			hash-table-size					reinitialize-instance
-syn keyword lispFunc		assoc-if-not			hash-table-test					rem
-syn keyword lispFunc		atan				host-namestring					remf
-syn keyword lispFunc		atanh				identity					remhash
-syn keyword lispFunc		atom				if						remove
-syn keyword lispFunc		base-char			if-exists					remove-duplicates
-syn keyword lispFunc		base-string			ignorable					remove-if
-syn keyword lispFunc		bignum				ignore						remove-if-not
-syn keyword lispFunc		bit				ignore-errors					remove-method
-syn keyword lispFunc		bit-and				imagpart					remprop
-syn keyword lispFunc		bit-andc1			import						rename-file
-syn keyword lispFunc		bit-andc2			in-package					rename-package
-syn keyword lispFunc		bit-eqv				in-package					replace
-syn keyword lispFunc		bit-ior				incf						require
-syn keyword lispFunc		bit-nand			initialize-instance				rest
-syn keyword lispFunc		bit-nor				inline						restart
-syn keyword lispFunc		bit-not				input-stream-p					restart-bind
-syn keyword lispFunc		bit-orc1			inspect						restart-case
-syn keyword lispFunc		bit-orc2			int-char					restart-name
-syn keyword lispFunc		bit-vector			integer						return
-syn keyword lispFunc		bit-vector-p			integer-decode-float				return-from
-syn keyword lispFunc		bit-xor				integer-length					revappend
-syn keyword lispFunc		block				integerp					reverse
-syn keyword lispFunc		boole				interactive-stream-p				room
-syn keyword lispFunc		boole-1				intern						rotatef
-syn keyword lispFunc		boole-2				internal-time-units-per-second			round
-syn keyword lispFunc		boole-and			intersection					row-major-aref
-syn keyword lispFunc		boole-andc1			invalid-method-error				rplaca
-syn keyword lispFunc		boole-andc2			invoke-debugger					rplacd
-syn keyword lispFunc		boole-c1			invoke-restart					safety
-syn keyword lispFunc		boole-c2			invoke-restart-interactively			satisfies
-syn keyword lispFunc		boole-clr			isqrt						sbit
-syn keyword lispFunc		boole-eqv			keyword						scale-float
-syn keyword lispFunc		boole-ior			keywordp					schar
-syn keyword lispFunc		boole-nand			labels						search
-syn keyword lispFunc		boole-nor			lambda						second
-syn keyword lispFunc		boole-orc1			lambda-list-keywords				sequence
-syn keyword lispFunc		boole-orc2			lambda-parameters-limit				serious-condition
-syn keyword lispFunc		boole-set			last						set
-syn keyword lispFunc		boole-xor			lcm						set-char-bit
-syn keyword lispFunc		boolean				ldb						set-difference
-syn keyword lispFunc		both-case-p			ldb-test					set-dispatch-macro-character
-syn keyword lispFunc		boundp				ldiff						set-exclusive-or
-syn keyword lispFunc		break				least-negative-double-float			set-macro-character
-syn keyword lispFunc		broadcast-stream		least-negative-long-float			set-pprint-dispatch
-syn keyword lispFunc		broadcast-stream-streams	least-negative-normalized-double-float		set-syntax-from-char
-syn keyword lispFunc		built-in-class			least-negative-normalized-long-float		setf
-syn keyword lispFunc		butlast				least-negative-normalized-short-float		setq
-syn keyword lispFunc		byte				least-negative-normalized-single-float		seventh
-syn keyword lispFunc		byte-position			least-negative-short-float			shadow
-syn keyword lispFunc		byte-size			least-negative-single-float			shadowing-import
-syn keyword lispFunc		call-arguments-limit		least-positive-double-float			shared-initialize
-syn keyword lispFunc		call-method			least-positive-long-float			shiftf
-syn keyword lispFunc		call-next-method		least-positive-normalized-double-float		short-float
-syn keyword lispFunc		capitalize			least-positive-normalized-long-float		short-float-epsilon
-syn keyword lispFunc		car				least-positive-normalized-short-float		short-float-negative-epsilon
-syn keyword lispFunc		case				least-positive-normalized-single-float		short-site-name
-syn keyword lispFunc		catch				least-positive-short-float			signal
-syn keyword lispFunc		ccase				least-positive-single-float			signed-byte
-syn keyword lispFunc		cdr				length						signum
-syn keyword lispFunc		ceiling				let						simple-condition
-syn keyword lispFunc		cell-error			let*						simple-array
-syn keyword lispFunc		cell-error-name			lisp						simple-base-string
-syn keyword lispFunc		cerror				lisp-implementation-type			simple-bit-vector
-syn keyword lispFunc		change-class			lisp-implementation-version			simple-bit-vector-p
-syn keyword lispFunc		char				list						simple-condition-format-arguments
-syn keyword lispFunc		char-bit			list*						simple-condition-format-control
-syn keyword lispFunc		char-bits			list-all-packages				simple-error
-syn keyword lispFunc		char-bits-limit			list-length					simple-string
-syn keyword lispFunc		char-code			listen						simple-string-p
-syn keyword lispFunc		char-code-limit			listp						simple-type-error
-syn keyword lispFunc		char-control-bit		load						simple-vector
-syn keyword lispFunc		char-downcase			load-logical-pathname-translations		simple-vector-p
-syn keyword lispFunc		char-equal			load-time-value					simple-warning
-syn keyword lispFunc		char-font			locally						sin
-syn keyword lispFunc		char-font-limit			log						single-flaot-epsilon
-syn keyword lispFunc		char-greaterp			logand						single-float
-syn keyword lispFunc		char-hyper-bit			logandc1					single-float-epsilon
-syn keyword lispFunc		char-int			logandc2					single-float-negative-epsilon
-syn keyword lispFunc		char-lessp			logbitp						sinh
-syn keyword lispFunc		char-meta-bit			logcount					sixth
-syn keyword lispFunc		char-name			logeqv						sleep
-syn keyword lispFunc		char-not-equal			logical-pathname				slot-boundp
-syn keyword lispFunc		char-not-greaterp		logical-pathname-translations			slot-exists-p
-syn keyword lispFunc		char-not-lessp			logior						slot-makunbound
-syn keyword lispFunc		char-super-bit			lognand						slot-missing
-syn keyword lispFunc		char-upcase			lognor						slot-unbound
-syn keyword lispFunc		char/=				lognot						slot-value
-syn keyword lispFunc		char<				logorc1						software-type
-syn keyword lispFunc		char<=				logorc2						software-version
-syn keyword lispFunc		char=				logtest						some
-syn keyword lispFunc		char>				logxor						sort
-syn keyword lispFunc		char>=				long-float					space
-syn keyword lispFunc		character			long-float-epsilon				special
-syn keyword lispFunc		characterp			long-float-negative-epsilon			special-form-p
-syn keyword lispFunc		check-type			long-site-name					special-operator-p
-syn keyword lispFunc		cis				loop						speed
-syn keyword lispFunc		class				loop-finish					sqrt
-syn keyword lispFunc		class-name			lower-case-p					stable-sort
-syn keyword lispFunc		class-of			machine-instance				standard
-syn keyword lispFunc		clear-input			machine-type					standard-char
-syn keyword lispFunc		clear-output			machine-version					standard-char-p
-syn keyword lispFunc		close				macro-function					standard-class
-syn keyword lispFunc		clrhash				macroexpand					standard-generic-function
-syn keyword lispFunc		code-char			macroexpand-1					standard-method
-syn keyword lispFunc		coerce				macroexpand-l					standard-object
-syn keyword lispFunc		commonp				macrolet					step
-syn keyword lispFunc		compilation-speed		make-array					storage-condition
-syn keyword lispFunc		compile				make-array					store-value
-syn keyword lispFunc		compile-file			make-broadcast-stream				stream
-syn keyword lispFunc		compile-file-pathname		make-char					stream-element-type
-syn keyword lispFunc		compiled-function		make-concatenated-stream			stream-error
-syn keyword lispFunc		compiled-function-p		make-condition					stream-error-stream
-syn keyword lispFunc		compiler-let			make-dispatch-macro-character			stream-external-format
-syn keyword lispFunc		compiler-macro			make-echo-stream				streamp
-syn keyword lispFunc		compiler-macro-function	make-hash-table						streamup
-syn keyword lispFunc		complement			make-instance					string
-syn keyword lispFunc		complex				make-instances-obsolete				string-capitalize
-syn keyword lispFunc		complexp			make-list					string-char
-syn keyword lispFunc		compute-applicable-methods	make-load-form					string-char-p
-syn keyword lispFunc		compute-restarts		make-load-form-saving-slots			string-downcase
-syn keyword lispFunc		concatenate			make-method					string-equal
-syn keyword lispFunc		concatenated-stream		make-package					string-greaterp
-syn keyword lispFunc		concatenated-stream-streams	make-pathname					string-left-trim
-syn keyword lispFunc		cond				make-random-state				string-lessp
-syn keyword lispFunc		condition			make-sequence					string-not-equal
-syn keyword lispFunc		conjugate			make-string					string-not-greaterp
-syn keyword lispFunc		cons				make-string-input-stream			string-not-lessp
-syn keyword lispFunc		consp				make-string-output-stream			string-right-strim
-syn keyword lispFunc		constantly			make-symbol					string-right-trim
-syn keyword lispFunc		constantp			make-synonym-stream				string-stream
-syn keyword lispFunc		continue			make-two-way-stream				string-trim
-syn keyword lispFunc		control-error			makunbound					string-upcase
-syn keyword lispFunc		copy-alist			map						string/=
-syn keyword lispFunc		copy-list			map-into					string<
-syn keyword lispFunc		copy-pprint-dispatch		mapc						string<=
-syn keyword lispFunc		copy-readtable			mapcan						string=
-syn keyword lispFunc		copy-seq			mapcar						string>
-syn keyword lispFunc		copy-structure			mapcon						string>=
-syn keyword lispFunc		copy-symbol			maphash						stringp
-syn keyword lispFunc		copy-tree			mapl						structure
-syn keyword lispFunc		cos				maplist						structure-class
-syn keyword lispFunc		cosh				mask-field					structure-object
-syn keyword lispFunc		count				max						style-warning
-syn keyword lispFunc		count-if			member						sublim
-syn keyword lispFunc		count-if-not			member-if					sublis
-syn keyword lispFunc		ctypecase			member-if-not					subseq
-syn keyword lispFunc		debug				merge						subsetp
-syn keyword lispFunc		decf				merge-pathname					subst
-syn keyword lispFunc		declaim				merge-pathnames					subst-if
-syn keyword lispFunc		declaration			method						subst-if-not
-syn keyword lispFunc		declare				method-combination				substitute
-syn keyword lispFunc		decode-float			method-combination-error			substitute-if
-syn keyword lispFunc		decode-universal-time		method-qualifiers				substitute-if-not
-syn keyword lispFunc		defclass			min						subtypep
-syn keyword lispFunc		defconstant			minusp						svref
-syn keyword lispFunc		defgeneric			mismatch					sxhash
-syn keyword lispFunc		define-compiler-macro		mod						symbol
-syn keyword lispFunc		define-condition		most-negative-double-float			symbol-function
-syn keyword lispFunc		define-method-combination	most-negative-fixnum				symbol-macrolet
-syn keyword lispFunc		define-modify-macro		most-negative-long-float			symbol-name
-syn keyword lispFunc		define-setf-expander		most-negative-short-float			symbol-package
-syn keyword lispFunc		define-setf-method		most-negative-single-float			symbol-plist
-syn keyword lispFunc		define-symbol-macro		most-positive-double-float			symbol-value
-syn keyword lispFunc		defmacro			most-positive-fixnum				symbolp
-syn keyword lispFunc		defmethod			most-positive-long-float			synonym-stream
-syn keyword lispFunc		defpackage			most-positive-short-float			synonym-stream-symbol
-syn keyword lispFunc		defparameter			most-positive-single-float			sys
-syn keyword lispFunc		defsetf				muffle-warning					system
-syn keyword lispFunc		defstruct			multiple-value-bind				t
-syn keyword lispFunc		deftype				multiple-value-call				tagbody
-syn keyword lispFunc		defun				multiple-value-list				tailp
-syn keyword lispFunc		defvar				multiple-value-prog1				tan
-syn keyword lispFunc		delete				multiple-value-seteq				tanh
-syn keyword lispFunc		delete-duplicates		multiple-value-setq				tenth
-syn keyword lispFunc		delete-file			multiple-values-limit				terpri
-syn keyword lispFunc		delete-if			name-char					the
-syn keyword lispFunc		delete-if-not			namestring					third
-syn keyword lispFunc		delete-package			nbutlast					throw
-syn keyword lispFunc		denominator			nconc						time
-syn keyword lispFunc		deposit-field			next-method-p					trace
-syn keyword lispFunc		describe			nil						translate-logical-pathname
-syn keyword lispFunc		describe-object			nintersection					translate-pathname
-syn keyword lispFunc		destructuring-bind		ninth						tree-equal
-syn keyword lispFunc		digit-char			no-applicable-method				truename
-syn keyword lispFunc		digit-char-p			no-next-method					truncase
-syn keyword lispFunc		directory			not						truncate
-syn keyword lispFunc		directory-namestring		notany						two-way-stream
-syn keyword lispFunc		disassemble			notevery					two-way-stream-input-stream
-syn keyword lispFunc		division-by-zero		notinline					two-way-stream-output-stream
-syn keyword lispFunc		do				nreconc						type
-syn keyword lispFunc		do*				nreverse					type-error
-syn keyword lispFunc		do-all-symbols			nset-difference					type-error-datum
-syn keyword lispFunc		do-exeternal-symbols		nset-exclusive-or				type-error-expected-type
-syn keyword lispFunc		do-external-symbols		nstring						type-of
-syn keyword lispFunc		do-symbols			nstring-capitalize				typecase
-syn keyword lispFunc		documentation			nstring-downcase				typep
-syn keyword lispFunc		dolist				nstring-upcase					unbound-slot
-syn keyword lispFunc		dotimes				nsublis						unbound-slot-instance
-syn keyword lispFunc		double-float			nsubst						unbound-variable
-syn keyword lispFunc		double-float-epsilon		nsubst-if					undefined-function
-syn keyword lispFunc		double-float-negative-epsilon	nsubst-if-not					unexport
-syn keyword lispFunc		dpb				nsubstitute					unintern
-syn keyword lispFunc		dribble				nsubstitute-if					union
-syn keyword lispFunc		dynamic-extent			nsubstitute-if-not				unless
-syn keyword lispFunc		ecase				nth						unread
-syn keyword lispFunc		echo-stream			nth-value					unread-char
-syn keyword lispFunc		echo-stream-input-stream	nthcdr						unsigned-byte
-syn keyword lispFunc		echo-stream-output-stream	null						untrace
-syn keyword lispFunc		ed				number						unuse-package
-syn keyword lispFunc		eighth				numberp						unwind-protect
-syn keyword lispFunc		elt				numerator					update-instance-for-different-class
-syn keyword lispFunc		encode-universal-time		nunion						update-instance-for-redefined-class
-syn keyword lispFunc		end-of-file			oddp						upgraded-array-element-type
-syn keyword lispFunc		endp				open						upgraded-complex-part-type
-syn keyword lispFunc		enough-namestring		open-stream-p					upper-case-p
-syn keyword lispFunc		ensure-directories-exist	optimize					use-package
-syn keyword lispFunc		ensure-generic-function	or							use-value
-syn keyword lispFunc		eq				otherwise					user
-syn keyword lispFunc		eql				output-stream-p					user-homedir-pathname
-syn keyword lispFunc		equal				package						values
-syn keyword lispFunc		equalp				package-error					values-list
-syn keyword lispFunc		error				package-error-package				vector
-syn keyword lispFunc		etypecase			package-name					vector-pop
-syn keyword lispFunc		eval				package-nicknames				vector-push
-syn keyword lispFunc		eval-when			package-shadowing-symbols			vector-push-extend
-syn keyword lispFunc		evalhook			package-use-list				vectorp
-syn keyword lispFunc		evenp				package-used-by-list				warn
-syn keyword lispFunc		every				packagep					warning
-syn keyword lispFunc		exp				pairlis						when
-syn keyword lispFunc		export				parse-error					wild-pathname-p
-syn keyword lispFunc		expt				parse-integer					with-accessors
-syn keyword lispFunc		extended-char			parse-namestring				with-compilation-unit
-syn keyword lispFunc		fboundp				pathname					with-condition-restarts
-syn keyword lispFunc		fceiling			pathname-device					with-hash-table-iterator
-syn keyword lispFunc		fdefinition			pathname-directory				with-input-from-string
-syn keyword lispFunc		ffloor				pathname-host					with-open-file
-syn keyword lispFunc		fifth				pathname-match-p				with-open-stream
-syn keyword lispFunc		file-author			pathname-name					with-output-to-string
-syn keyword lispFunc		file-error			pathname-type					with-package-iterator
-syn keyword lispFunc		file-error-pathname		pathname-version				with-simple-restart
-syn keyword lispFunc		file-length			pathnamep					with-slots
-syn keyword lispFunc		file-namestring			peek-char					with-standard-io-syntax
-syn keyword lispFunc		file-position			phase						write
-syn keyword lispFunc		file-stream			pi						write-byte
-syn keyword lispFunc		file-string-length		plusp						write-char
-syn keyword lispFunc		file-write-date			pop						write-line
-syn keyword lispFunc		fill				position					write-sequence
-syn keyword lispFunc		fill-pointer			position-if					write-string
-syn keyword lispFunc		find				position-if-not					write-to-string
-syn keyword lispFunc		find-all-symbols		pprint						y-or-n-p
-syn keyword lispFunc		find-class			pprint-dispatch					yes-or-no-p
-syn keyword lispFunc		find-if				pprint-exit-if-list-exhausted			zerop
-syn keyword lispFunc		find-if-not			pprint-fill
+syn keyword lispFunc		<				find-method				pprint-indent
+syn keyword lispFunc		<=				find-package				pprint-linear
+syn keyword lispFunc		=				find-restart				pprint-logical-block
+syn keyword lispFunc		>				find-symbol				pprint-newline
+syn keyword lispFunc		>=				finish-output				pprint-pop
+syn keyword lispFunc		-				first					pprint-tab
+syn keyword lispFunc		/				fixnum					pprint-tabular
+syn keyword lispFunc		/=				flet					prin1
+syn keyword lispFunc		//				float					prin1-to-string
+syn keyword lispFunc		///				float-digits				princ
+syn keyword lispFunc		*				floating-point-inexact			princ-to-string
+syn keyword lispFunc		**				floating-point-invalid-operation	print
+syn keyword lispFunc		***				floating-point-overflow			print-not-readable
+syn keyword lispFunc		+				floating-point-underflow		print-not-readable-object
+syn keyword lispFunc		++				floatp					print-object
+syn keyword lispFunc		+++				float-precision				print-unreadable-object
+syn keyword lispFunc		1-				float-radix				probe-file
+syn keyword lispFunc		1+				float-sign				proclaim
+syn keyword lispFunc		abort				floor					prog
+syn keyword lispFunc		abs				fmakunbound				prog*
+syn keyword lispFunc		access				force-output				prog1
+syn keyword lispFunc		acons				format					prog2
+syn keyword lispFunc		acos				formatter				progn
+syn keyword lispFunc		acosh				fourth					program-error
+syn keyword lispFunc		add-method			fresh-line				progv
+syn keyword lispFunc		adjoin				fround					provide
+syn keyword lispFunc		adjustable-array-p		ftruncate				psetf
+syn keyword lispFunc		adjust-array			ftype					psetq
+syn keyword lispFunc		allocate-instance		funcall					push
+syn keyword lispFunc		alpha-char-p			function				pushnew
+syn keyword lispFunc		alphanumericp			function-keywords			putprop
+syn keyword lispFunc		and				function-lambda-expression		quote
+syn keyword lispFunc		append				functionp				random
+syn keyword lispFunc		apply				gbitp					random-state
+syn keyword lispFunc		applyhook			gcd					random-state-p
+syn keyword lispFunc		apropos				generic-function			rassoc
+syn keyword lispFunc		apropos-list			gensym					rassoc-if
+syn keyword lispFunc		aref				gentemp					rassoc-if-not
+syn keyword lispFunc		arithmetic-error		get					ratio
+syn keyword lispFunc		arithmetic-error-operands	get-decoded-time			rational
+syn keyword lispFunc		arithmetic-error-operation	get-dispatch-macro-character		rationalize
+syn keyword lispFunc		array				getf					rationalp
+syn keyword lispFunc		array-dimension			gethash					read
+syn keyword lispFunc		array-dimension-limit		get-internal-real-time			read-byte
+syn keyword lispFunc		array-dimensions		get-internal-run-time			read-char
+syn keyword lispFunc		array-displacement		get-macro-character			read-char-no-hang
+syn keyword lispFunc		array-element-type		get-output-stream-string		read-delimited-list
+syn keyword lispFunc		array-has-fill-pointer-p	get-properties				reader-error
+syn keyword lispFunc		array-in-bounds-p		get-setf-expansion			read-eval-print
+syn keyword lispFunc		arrayp				get-setf-method				read-from-string
+syn keyword lispFunc		array-rank			get-universal-time			read-line
+syn keyword lispFunc		array-rank-limit		go					read-preserving-whitespace
+syn keyword lispFunc		array-row-major-index		graphic-char-p				read-sequence
+syn keyword lispFunc		array-total-size		handler-bind				readtable
+syn keyword lispFunc		array-total-size-limit		handler-case				readtable-case
+syn keyword lispFunc		ash				hash-table				readtablep
+syn keyword lispFunc		asin				hash-table-count			real
+syn keyword lispFunc		asinh				hash-table-p				realp
+syn keyword lispFunc		assert				hash-table-rehash-size			realpart
+syn keyword lispFunc		assoc				hash-table-rehash-threshold		reduce
+syn keyword lispFunc		assoc-if			hash-table-size				reinitialize-instance
+syn keyword lispFunc		assoc-if-not			hash-table-test				rem
+syn keyword lispFunc		atan				host-namestring				remf
+syn keyword lispFunc		atanh				identity				remhash
+syn keyword lispFunc		atom				if					remove
+syn keyword lispFunc		base-char			if-exists				remove-duplicates
+syn keyword lispFunc		base-string			ignorable				remove-if
+syn keyword lispFunc		bignum				ignore					remove-if-not
+syn keyword lispFunc		bit				ignore-errors				remove-method
+syn keyword lispFunc		bit-and				imagpart				remprop
+syn keyword lispFunc		bit-andc1			import					rename-file
+syn keyword lispFunc		bit-andc2			incf					rename-package
+syn keyword lispFunc		bit-eqv				initialize-instance			replace
+syn keyword lispFunc		bit-ior				inline					require
+syn keyword lispFunc		bit-nand			in-package				rest
+syn keyword lispFunc		bit-nor				in-package				restart
+syn keyword lispFunc		bit-not				input-stream-p				restart-bind
+syn keyword lispFunc		bit-orc1			inspect					restart-case
+syn keyword lispFunc		bit-orc2			int-char				restart-name
+syn keyword lispFunc		bit-vector			integer					return
+syn keyword lispFunc		bit-vector-p			integer-decode-float			return-from
+syn keyword lispFunc		bit-xor				integer-length				revappend
+syn keyword lispFunc		block				integerp				reverse
+syn keyword lispFunc		boole				interactive-stream-p			room
+syn keyword lispFunc		boole-1				intern					rotatef
+syn keyword lispFunc		boole-2				internal-time-units-per-second		round
+syn keyword lispFunc		boolean				intersection				row-major-aref
+syn keyword lispFunc		boole-and			invalid-method-error			rplaca
+syn keyword lispFunc		boole-andc1			invoke-debugger				rplacd
+syn keyword lispFunc		boole-andc2			invoke-restart				safety
+syn keyword lispFunc		boole-c1			invoke-restart-interactively		satisfies
+syn keyword lispFunc		boole-c2			isqrt					sbit
+syn keyword lispFunc		boole-clr			keyword					scale-float
+syn keyword lispFunc		boole-eqv			keywordp				schar
+syn keyword lispFunc		boole-ior			labels					search
+syn keyword lispFunc		boole-nand			lambda					second
+syn keyword lispFunc		boole-nor			lambda-list-keywords			sequence
+syn keyword lispFunc		boole-orc1			lambda-parameters-limit			serious-condition
+syn keyword lispFunc		boole-orc2			last					set
+syn keyword lispFunc		boole-set			lcm					set-char-bit
+syn keyword lispFunc		boole-xor			ldb					set-difference
+syn keyword lispFunc		both-case-p			ldb-test				set-dispatch-macro-character
+syn keyword lispFunc		boundp				ldiff					set-exclusive-or
+syn keyword lispFunc		break				least-negative-double-float		setf
+syn keyword lispFunc		broadcast-stream		least-negative-long-float		set-macro-character
+syn keyword lispFunc		broadcast-stream-streams	least-negative-normalized-double-float	set-pprint-dispatch
+syn keyword lispFunc		built-in-class			least-negative-normalized-long-float	setq
+syn keyword lispFunc		butlast				least-negative-normalized-short-float	set-syntax-from-char
+syn keyword lispFunc		byte				least-negative-normalized-single-float	seventh
+syn keyword lispFunc		byte-position			least-negative-short-float		shadow
+syn keyword lispFunc		byte-size			least-negative-single-float		shadowing-import
+syn keyword lispFunc		call-arguments-limit		least-positive-double-float		shared-initialize
+syn keyword lispFunc		call-method			least-positive-long-float		shiftf
+syn keyword lispFunc		call-next-method		least-positive-normalized-double-float	short-float
+syn keyword lispFunc		capitalize			least-positive-normalized-long-float	short-float-epsilon
+syn keyword lispFunc		car				least-positive-normalized-short-float	short-float-negative-epsilon
+syn keyword lispFunc		case				least-positive-normalized-single-float	short-site-name
+syn keyword lispFunc		catch				least-positive-short-float		signal
+syn keyword lispFunc		ccase				least-positive-single-float		signed-byte
+syn keyword lispFunc		cdr				length					signum
+syn keyword lispFunc		ceiling				let					simple-array
+syn keyword lispFunc		cell-error			let*					simple-base-string
+syn keyword lispFunc		cell-error-name			lisp					simple-bit-vector
+syn keyword lispFunc		cerror				lisp-implementation-type		simple-bit-vector-p
+syn keyword lispFunc		change-class			lisp-implementation-version		simple-condition
+syn keyword lispFunc		char				list					simple-condition-format-arguments
+syn keyword lispFunc		char<				list*					simple-condition-format-control
+syn keyword lispFunc		char<=				list-all-packages			simple-error
+syn keyword lispFunc		char=				listen					simple-string
+syn keyword lispFunc		char>				list-length				simple-string-p
+syn keyword lispFunc		char>=				listp					simple-type-error
+syn keyword lispFunc		char/=				load					simple-vector
+syn keyword lispFunc		character			load-logical-pathname-translations	simple-vector-p
+syn keyword lispFunc		characterp			load-time-value				simple-warning
+syn keyword lispFunc		char-bit			locally					sin
+syn keyword lispFunc		char-bits			log					single-flaot-epsilon
+syn keyword lispFunc		char-bits-limit			logand					single-float
+syn keyword lispFunc		char-code			logandc1				single-float-epsilon
+syn keyword lispFunc		char-code-limit			logandc2				single-float-negative-epsilon
+syn keyword lispFunc		char-control-bit		logbitp					sinh
+syn keyword lispFunc		char-downcase			logcount				sixth
+syn keyword lispFunc		char-equal			logeqv					sleep
+syn keyword lispFunc		char-font			logical-pathname			slot-boundp
+syn keyword lispFunc		char-font-limit			logical-pathname-translations		slot-exists-p
+syn keyword lispFunc		char-greaterp			logior					slot-makunbound
+syn keyword lispFunc		char-hyper-bit			lognand					slot-missing
+syn keyword lispFunc		char-int			lognor					slot-unbound
+syn keyword lispFunc		char-lessp			lognot					slot-value
+syn keyword lispFunc		char-meta-bit			logorc1					software-type
+syn keyword lispFunc		char-name			logorc2					software-version
+syn keyword lispFunc		char-not-equal			logtest					some
+syn keyword lispFunc		char-not-greaterp		logxor					sort
+syn keyword lispFunc		char-not-lessp			long-float				space
+syn keyword lispFunc		char-super-bit			long-float-epsilon			special
+syn keyword lispFunc		char-upcase			long-float-negative-epsilon		special-form-p
+syn keyword lispFunc		check-type			long-site-name				special-operator-p
+syn keyword lispFunc		cis				loop					speed
+syn keyword lispFunc		class				loop-finish				sqrt
+syn keyword lispFunc		class-name			lower-case-p				stable-sort
+syn keyword lispFunc		class-of			machine-instance			standard
+syn keyword lispFunc		clear-input			machine-type				standard-char
+syn keyword lispFunc		clear-output			machine-version				standard-char-p
+syn keyword lispFunc		close				macroexpand				standard-class
+syn keyword lispFunc		clrhash				macroexpand-1				standard-generic-function
+syn keyword lispFunc		code-char			macroexpand-l				standard-method
+syn keyword lispFunc		coerce				macro-function				standard-object
+syn keyword lispFunc		commonp				macrolet				step
+syn keyword lispFunc		compilation-speed		make-array				storage-condition
+syn keyword lispFunc		compile				make-array				store-value
+syn keyword lispFunc		compiled-function		make-broadcast-stream			stream
+syn keyword lispFunc		compiled-function-p		make-char				stream-element-type
+syn keyword lispFunc		compile-file			make-concatenated-stream		stream-error
+syn keyword lispFunc		compile-file-pathname		make-condition				stream-error-stream
+syn keyword lispFunc		compiler-let			make-dispatch-macro-character		stream-external-format
+syn keyword lispFunc		compiler-macro			make-echo-stream			streamp
+syn keyword lispFunc		compiler-macro-function		make-hash-table				streamup
+syn keyword lispFunc		complement			make-instance				string
+syn keyword lispFunc		complex				make-instances-obsolete			string<
+syn keyword lispFunc		complexp			make-list				string<=
+syn keyword lispFunc		compute-applicable-methods	make-load-form				string=
+syn keyword lispFunc		compute-restarts		make-load-form-saving-slots		string>
+syn keyword lispFunc		concatenate			make-method				string>=
+syn keyword lispFunc		concatenated-stream		make-package				string/=
+syn keyword lispFunc		concatenated-stream-streams	make-pathname				string-capitalize
+syn keyword lispFunc		cond				make-random-state			string-char
+syn keyword lispFunc		condition			make-sequence				string-char-p
+syn keyword lispFunc		conjugate			make-string				string-downcase
+syn keyword lispFunc		cons				make-string-input-stream		string-equal
+syn keyword lispFunc		consp				make-string-output-stream		string-greaterp
+syn keyword lispFunc		constantly			make-symbol				string-left-trim
+syn keyword lispFunc		constantp			make-synonym-stream			string-lessp
+syn keyword lispFunc		continue			make-two-way-stream			string-not-equal
+syn keyword lispFunc		control-error			makunbound				string-not-greaterp
+syn keyword lispFunc		copy-alist			map					string-not-lessp
+syn keyword lispFunc		copy-list			mapc					stringp
+syn keyword lispFunc		copy-pprint-dispatch		mapcan					string-right-strim
+syn keyword lispFunc		copy-readtable			mapcar					string-right-trim
+syn keyword lispFunc		copy-seq			mapcon					string-stream
+syn keyword lispFunc		copy-structure			maphash					string-trim
+syn keyword lispFunc		copy-symbol			map-into				string-upcase
+syn keyword lispFunc		copy-tree			mapl					structure
+syn keyword lispFunc		cos				maplist					structure-class
+syn keyword lispFunc		cosh				mask-field				structure-object
+syn keyword lispFunc		count				max					style-warning
+syn keyword lispFunc		count-if			member					sublim
+syn keyword lispFunc		count-if-not			member-if				sublis
+syn keyword lispFunc		ctypecase			member-if-not				subseq
+syn keyword lispFunc		debug				merge					subsetp
+syn keyword lispFunc		decf				merge-pathname				subst
+syn keyword lispFunc		declaim				merge-pathnames				subst-if
+syn keyword lispFunc		declaration			method					subst-if-not
+syn keyword lispFunc		declare				method-combination			substitute
+syn keyword lispFunc		decode-float			method-combination-error		substitute-if
+syn keyword lispFunc		decode-universal-time		method-qualifiers			substitute-if-not
+syn keyword lispFunc		defclass			min					subtypep
+syn keyword lispFunc		defconstant			minusp					svref
+syn keyword lispFunc		defgeneric			mismatch				sxhash
+syn keyword lispFunc		define-compiler-macro		mod					symbol
+syn keyword lispFunc		define-condition		most-negative-double-float		symbol-function
+syn keyword lispFunc		define-method-combination	most-negative-fixnum			symbol-macrolet
+syn keyword lispFunc		define-modify-macro		most-negative-long-float		symbol-name
+syn keyword lispFunc		define-setf-expander		most-negative-short-float		symbolp
+syn keyword lispFunc		define-setf-method		most-negative-single-float		symbol-package
+syn keyword lispFunc		define-symbol-macro		most-positive-double-float		symbol-plist
+syn keyword lispFunc		defmacro			most-positive-fixnum			symbol-value
+syn keyword lispFunc		defmethod			most-positive-long-float		synonym-stream
+syn keyword lispFunc		defpackage			most-positive-short-float		synonym-stream-symbol
+syn keyword lispFunc		defparameter			most-positive-single-float		sys
+syn keyword lispFunc		defsetf				muffle-warning				system
+syn keyword lispFunc		defstruct			multiple-value-bind			t
+syn keyword lispFunc		deftype				multiple-value-call			tagbody
+syn keyword lispFunc		defun				multiple-value-list			tailp
+syn keyword lispFunc		defvar				multiple-value-prog1			tan
+syn keyword lispFunc		delete				multiple-value-seteq			tanh
+syn keyword lispFunc		delete-duplicates		multiple-value-setq			tenth
+syn keyword lispFunc		delete-file			multiple-values-limit			terpri
+syn keyword lispFunc		delete-if			name-char				the
+syn keyword lispFunc		delete-if-not			namestring				third
+syn keyword lispFunc		delete-package			nbutlast				throw
+syn keyword lispFunc		denominator			nconc					time
+syn keyword lispFunc		deposit-field			next-method-p				trace
+syn keyword lispFunc		describe			nil					translate-logical-pathname
+syn keyword lispFunc		describe-object			nintersection				translate-pathname
+syn keyword lispFunc		destructuring-bind		ninth					tree-equal
+syn keyword lispFunc		digit-char			no-applicable-method			truename
+syn keyword lispFunc		digit-char-p			no-next-method				truncase
+syn keyword lispFunc		directory			not					truncate
+syn keyword lispFunc		directory-namestring		notany					two-way-stream
+syn keyword lispFunc		disassemble			notevery				two-way-stream-input-stream
+syn keyword lispFunc		division-by-zero		notinline				two-way-stream-output-stream
+syn keyword lispFunc		do				nreconc					type
+syn keyword lispFunc		do*				nreverse				typecase
+syn keyword lispFunc		do-all-symbols			nset-difference				type-error
+syn keyword lispFunc		documentation			nset-exclusive-or			type-error-datum
+syn keyword lispFunc		do-exeternal-symbols		nstring					type-error-expected-type
+syn keyword lispFunc		do-external-symbols		nstring-capitalize			type-of
+syn keyword lispFunc		dolist				nstring-downcase			typep
+syn keyword lispFunc		do-symbols			nstring-upcase				unbound-slot
+syn keyword lispFunc		dotimes				nsublis					unbound-slot-instance
+syn keyword lispFunc		double-float			nsubst					unbound-variable
+syn keyword lispFunc		double-float-epsilon		nsubst-if				undefined-function
+syn keyword lispFunc		double-float-negative-epsilon	nsubst-if-not				unexport
+syn keyword lispFunc		dpb				nsubstitute				unintern
+syn keyword lispFunc		dribble				nsubstitute-if				union
+syn keyword lispFunc		dynamic-extent			nsubstitute-if-not			unless
+syn keyword lispFunc		ecase				nth					unread
+syn keyword lispFunc		echo-stream			nthcdr					unread-char
+syn keyword lispFunc		echo-stream-input-stream	nth-value				unsigned-byte
+syn keyword lispFunc		echo-stream-output-stream	null					untrace
+syn keyword lispFunc		ed				number					unuse-package
+syn keyword lispFunc		eighth				numberp					unwind-protect
+syn keyword lispFunc		elt				numerator				update-instance-for-different-class
+syn keyword lispFunc		encode-universal-time		nunion					update-instance-for-redefined-class
+syn keyword lispFunc		end-of-file			oddp					upgraded-array-element-type
+syn keyword lispFunc		endp				open					upgraded-complex-part-type
+syn keyword lispFunc		enough-namestring		open-stream-p				upper-case-p
+syn keyword lispFunc		ensure-directories-exist	optimize				use-package
+syn keyword lispFunc		ensure-generic-function		or					user
+syn keyword lispFunc		eq				otherwise				user-homedir-pathname
+syn keyword lispFunc		eql				output-stream-p				use-value
+syn keyword lispFunc		equal				package					values
+syn keyword lispFunc		equalp				package-error				values-list
+syn keyword lispFunc		error				package-error-package			variable
+syn keyword lispFunc		etypecase			package-name				vector
+syn keyword lispFunc		eval				package-nicknames			vectorp
+syn keyword lispFunc		evalhook			packagep				vector-pop
+syn keyword lispFunc		eval-when			package-shadowing-symbols		vector-push
+syn keyword lispFunc		evenp				package-used-by-list			vector-push-extend
+syn keyword lispFunc		every				package-use-list			warn
+syn keyword lispFunc		exp				pairlis					warning
+syn keyword lispFunc		export				parse-error				when
+syn keyword lispFunc		expt				parse-integer				wild-pathname-p
+syn keyword lispFunc		extended-char			parse-namestring			with-accessors
+syn keyword lispFunc		fboundp				pathname				with-compilation-unit
+syn keyword lispFunc		fceiling			pathname-device				with-condition-restarts
+syn keyword lispFunc		fdefinition			pathname-directory			with-hash-table-iterator
+syn keyword lispFunc		ffloor				pathname-host				with-input-from-string
+syn keyword lispFunc		fifth				pathname-match-p			with-open-file
+syn keyword lispFunc		file-author			pathname-name				with-open-stream
+syn keyword lispFunc		file-error			pathnamep				with-output-to-string
+syn keyword lispFunc		file-error-pathname		pathname-type				with-package-iterator
+syn keyword lispFunc		file-length			pathname-version			with-simple-restart
+syn keyword lispFunc		file-namestring			peek-char				with-slots
+syn keyword lispFunc		file-position			phase					with-standard-io-syntax
+syn keyword lispFunc		file-stream			pi					write
+syn keyword lispFunc		file-string-length		plusp					write-byte
+syn keyword lispFunc		file-write-date			pop					write-char
+syn keyword lispFunc		fill				position				write-line
+syn keyword lispFunc		fill-pointer			position-if				write-sequence
+syn keyword lispFunc		find				position-if-not				write-string
+syn keyword lispFunc		find-all-symbols		pprint					write-to-string
+syn keyword lispFunc		find-class			pprint-dispatch				yes-or-no-p
+syn keyword lispFunc		find-if				pprint-exit-if-list-exhausted		y-or-n-p
+syn keyword lispFunc		find-if-not			pprint-fill				zerop
 
 syn match   lispFunc		"\<c[ad]\+r\>"
 if exists("g:lispsyntax_clisp")
@@ -563,50 +563,50 @@ syn sync lines=100
 " Define Highlighting: {{{1
 if !exists("skip_lisp_syntax_inits")
 
-  hi def link lispCommentRegion	lispComment
+  hi def link lispCommentRegion		lispComment
   hi def link lispAtomNmbr		lispNumber
   hi def link lispAtomMark		lispMark
   hi def link lispInStringString	lispString
 
-  hi def link lispAtom		Identifier
-  hi def link lispAtomBarSymbol	Special
+  hi def link lispAtom			Identifier
+  hi def link lispAtomBarSymbol		Special
   hi def link lispBarSymbol		Special
   hi def link lispComment		Comment
   hi def link lispConcat		Statement
-  hi def link lispDecl		Statement
-  hi def link lispFunc		Statement
-  hi def link lispKey		Type
-  hi def link lispMark		Delimiter
+  hi def link lispDecl			Statement
+  hi def link lispFunc			Statement
+  hi def link lispKey			Type
+  hi def link lispMark			Delimiter
   hi def link lispNumber		Number
   hi def link lispParenError		Error
-  hi def link lispEscapeSpecial	Type
+  hi def link lispEscapeSpecial		Type
   hi def link lispString		String
-  hi def link lispTodo		Todo
-  hi def link lispVar		Statement
+  hi def link lispTodo			Todo
+  hi def link lispVar			Statement
 
   if exists("g:lisp_rainbow") && g:lisp_rainbow != 0
    if &bg == "dark"
-    hi def hlLevel0 ctermfg=red         guifg=red1
-    hi def hlLevel1 ctermfg=yellow      guifg=orange1
-    hi def hlLevel2 ctermfg=green       guifg=yellow1
-    hi def hlLevel3 ctermfg=cyan        guifg=greenyellow
-    hi def hlLevel4 ctermfg=magenta     guifg=green1
-    hi def hlLevel5 ctermfg=red         guifg=springgreen1
-    hi def hlLevel6 ctermfg=yellow      guifg=cyan1
-    hi def hlLevel7 ctermfg=green       guifg=slateblue1
-    hi def hlLevel8 ctermfg=cyan        guifg=magenta1
-    hi def hlLevel9 ctermfg=magenta     guifg=purple1
+    hi def hlLevel0 ctermfg=red		guifg=red1
+    hi def hlLevel1 ctermfg=yellow	guifg=orange1
+    hi def hlLevel2 ctermfg=green	guifg=yellow1
+    hi def hlLevel3 ctermfg=cyan	guifg=greenyellow
+    hi def hlLevel4 ctermfg=magenta	guifg=green1
+    hi def hlLevel5 ctermfg=red		guifg=springgreen1
+    hi def hlLevel6 ctermfg=yellow	guifg=cyan1
+    hi def hlLevel7 ctermfg=green	guifg=slateblue1
+    hi def hlLevel8 ctermfg=cyan	guifg=magenta1
+    hi def hlLevel9 ctermfg=magenta	guifg=purple1
    else
-    hi def hlLevel0 ctermfg=red         guifg=red3
-    hi def hlLevel1 ctermfg=darkyellow  guifg=orangered3
-    hi def hlLevel2 ctermfg=darkgreen   guifg=orange2
-    hi def hlLevel3 ctermfg=blue        guifg=yellow3
-    hi def hlLevel4 ctermfg=darkmagenta guifg=olivedrab4
-    hi def hlLevel5 ctermfg=red         guifg=green4
-    hi def hlLevel6 ctermfg=darkyellow  guifg=paleturquoise3
-    hi def hlLevel7 ctermfg=darkgreen   guifg=deepskyblue4
-    hi def hlLevel8 ctermfg=blue        guifg=darkslateblue
-    hi def hlLevel9 ctermfg=darkmagenta guifg=darkviolet
+    hi def hlLevel0 ctermfg=red		guifg=red3
+    hi def hlLevel1 ctermfg=darkyellow	guifg=orangered3
+    hi def hlLevel2 ctermfg=darkgreen	guifg=orange2
+    hi def hlLevel3 ctermfg=blue	guifg=yellow3
+    hi def hlLevel4 ctermfg=darkmagenta	guifg=olivedrab4
+    hi def hlLevel5 ctermfg=red		guifg=green4
+    hi def hlLevel6 ctermfg=darkyellow	guifg=paleturquoise3
+    hi def hlLevel7 ctermfg=darkgreen	guifg=deepskyblue4
+    hi def hlLevel8 ctermfg=blue	guifg=darkslateblue
+    hi def hlLevel9 ctermfg=darkmagenta	guifg=darkviolet
    endif
   endif
 
--- a/runtime/syntax/ninja.vim
+++ b/runtime/syntax/ninja.vim
@@ -1,16 +1,16 @@
 " ninja build file syntax.
 " Language: ninja build file as described at
-"           http://martine.github.com/ninja/manual.html
-" Version: 1.4
-" Last Change: 2014/05/13
+"           http://ninja-build.org/manual.html
+" Version: 1.5
+" Last Change: 2018/04/05
 " Maintainer: Nicolas Weber <nicolasweber@gmx.de>
-" Version 1.4 of this script is in the upstream vim repository and will be
+" Version 1.5 of this script is in the upstream vim repository and will be
 " included in the next vim release. If you change this, please send your change
 " upstream.
 
 " ninja lexer and parser are at
-" https://github.com/martine/ninja/blob/master/src/lexer.in.cc
-" https://github.com/martine/ninja/blob/master/src/manifest_parser.cc
+" https://github.com/ninja-build/ninja/blob/master/src/lexer.in.cc
+" https://github.com/ninja-build/ninja/blob/master/src/manifest_parser.cc
 
 if exists("b:current_syntax")
   finish
@@ -21,7 +21,10 @@ set cpo&vim
 
 syn case match
 
-syn match ninjaComment /#.*/  contains=@Spell
+" Comments are only matched when the # is at the beginning of the line (with
+" optional whitespace), as long as the prior line didn't end with a $
+" continuation.
+syn match ninjaComment /\(\$\n\)\@<!\_^\s*#.*$/  contains=@Spell
 
 " Toplevel statements are the ones listed here and
 " toplevel variable assignments (ident '=' value).
@@ -38,12 +41,13 @@ syn match ninjaKeyword "^subninja\>"
 " limited set of magic variables, 'build' allows general
 " let assignments.
 " manifest_parser.cc, ParseRule()
-syn region ninjaRule start="^rule" end="^\ze\S" contains=ALL transparent
-syn keyword ninjaRuleCommand contained command deps depfile description generator
+syn region ninjaRule start="^rule" end="^\ze\S" contains=TOP transparent
+syn keyword ninjaRuleCommand contained containedin=ninjaRule command
+                                     \ deps depfile description generator
                                      \ pool restat rspfile rspfile_content
 
-syn region ninjaPool start="^pool" end="^\ze\S" contains=ALL transparent
-syn keyword ninjaPoolCommand contained depth
+syn region ninjaPool start="^pool" end="^\ze\S" contains=TOP transparent
+syn keyword ninjaPoolCommand contained containedin=ninjaPool  depth
 
 " Strings are parsed as follows:
 " lexer.in.cc, ReadEvalString()
--- a/runtime/syntax/sh.vim
+++ b/runtime/syntax/sh.vim
@@ -2,8 +2,8 @@
 " Language:		shell (sh) Korn shell (ksh) bash (sh)
 " Maintainer:		Charles E. Campbell  <NdrOchipS@PcampbellAfamily.Mbiz>
 " Previous Maintainer:	Lennart Schultz <Lennart.Schultz@ecmwf.int>
-" Last Change:		Oct 02, 2017
-" Version:		172
+" Last Change:		Mar 19, 2018
+" Version:		174
 " URL:		http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH
 " For options and settings, please use:      :help ft-sh-syntax
 " This file includes many ideas from Eric Brunet (eric.brunet@ens.fr)
@@ -121,7 +121,7 @@ syn case match
 " Clusters: contains=@... clusters {{{1
 "==================================
 syn cluster shErrorList	contains=shDoError,shIfError,shInError,shCaseError,shEsacError,shCurlyError,shParenError,shTestError,shOK
-if exists("b:is_kornshell")
+if exists("b:is_kornshell") || exists("b:is_bash")
  syn cluster ErrorList add=shDTestError
 endif
 syn cluster shArithParenList	contains=shArithmetic,shCaseEsac,shComment,shDeref,shDo,shDerefSimple,shEcho,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shExDoubleQuote,shHereString,shRedir,shSingleQuote,shDoubleQuote,shStatement,shVariable,shAlias,shTest,shCtrlSeq,shSpecial,shParen,bashSpecialVariables,bashStatement,shIf,shFor
@@ -164,7 +164,7 @@ syn region shEmbeddedEcho contained matc
 
 " Alias: {{{1
 " =====
-if exists("b:is_kornshell") || exists("b:is_bash")
+if exists("b:is_kornshell") || exists("b:is_bash") || exists("b:is_posix")
  syn match shStatement "\<alias\>"
  syn region shAlias matchgroup=shStatement start="\<alias\>\s\+\(\h[-._[:alnum:]]\+\)\@="  skip="\\$" end="\>\|`"
  syn region shAlias matchgroup=shStatement start="\<alias\>\s\+\(\h[-._[:alnum:]]\+=\)\@=" skip="\\$" end="="
@@ -186,7 +186,7 @@ if !exists("g:sh_no_error")
  syn match   shCurlyError "}"
  syn match   shParenError ")"
  syn match   shOK	'\.\(done\|fi\|in\|esac\)'
- if exists("b:is_kornshell")
+ if exists("b:is_kornshell") || exists("b:is_bash")
   syn match     shDTestError "]]"
  endif
  syn match     shTestError "]"
@@ -245,12 +245,14 @@ ShFoldIfDoFor syn region shIf	transparen
 ShFoldIfDoFor syn region shFor		matchgroup=shLoop start="\<for\ze\_s\s*\%(((\)\@!" end="\<in\>" end="\<do\>"me=e-2			contains=@shLoopList,shDblParen skipwhite nextgroup=shCurlyIn
 ShFoldIfDoFor syn region shForPP	matchgroup=shLoop start='\<for\>\_s*((' end='))' contains=shTestOpr
 
-if exists("b:is_kornshell") || exists("b:is_bash")
+if exists("b:is_kornshell") || exists("b:is_bash") || exists("b:is_posix")
  syn cluster shCaseList	add=shRepeat
  syn cluster shFunctionList	add=shRepeat
- syn region shRepeat   matchgroup=shLoop   start="\<while\_s" end="\<in\_s" end="\<do\>"me=e-2	contains=@shLoopList,shDblParen,shDblBrace
- syn region shRepeat   matchgroup=shLoop   start="\<until\_s" end="\<in\_s" end="\<do\>"me=e-2	contains=@shLoopList,shDblParen,shDblBrace
- syn region shCaseEsac matchgroup=shConditional start="\<select\s" matchgroup=shConditional end="\<in\>" end="\<do\>" contains=@shLoopList
+ syn region shRepeat   matchgroup=shLoop   start="\<while\_s" end="\<do\>"me=e-2	contains=@shLoopList,shDblParen,shDblBrace
+ syn region shRepeat   matchgroup=shLoop   start="\<until\_s" end="\<do\>"me=e-2	contains=@shLoopList,shDblParen,shDblBrace
+ if !exists("b:is_posix")
+  syn region shCaseEsac matchgroup=shConditional start="\<select\s" matchgroup=shConditional end="\<in\>" end="\<do\>" contains=@shLoopList
+ endif
 else
  syn region shRepeat   matchgroup=shLoop   start="\<while\_s" end="\<do\>"me=e-2		contains=@shLoopList
  syn region shRepeat   matchgroup=shLoop   start="\<until\_s" end="\<do\>"me=e-2		contains=@shLoopList
@@ -287,7 +289,7 @@ endif
 " Misc: {{{1
 "======
 syn match   shWrapLineOperator "\\$"
-syn region  shCommandSub   start="`" skip="\\\\\|\\." end="`"	contains=@shCommandSubList
+syn region  shCommandSub   	start="`" skip="\\\\\|\\." end="`"	contains=@shCommandSubList
 syn match   shEscape	contained	'\%(^\)\@!\%(\\\\\)*\\.'
 
 " $() and $(()): {{{1
@@ -315,7 +317,7 @@ if exists("b:is_bash")
  syn keyword bashStatement	command compgen
 endif
 
-if exists("b:is_kornshell")
+if exists("b:is_kornshell") || exists("b:is_posix")
  syn cluster shCommandSubList add=kshSpecialVariables,kshStatement
  syn cluster shCaseList add=kshStatement
  syn keyword kshSpecialVariables contained CDPATH COLUMNS EDITOR ENV ERRNO FCEDIT FPATH HISTFILE HISTSIZE HOME IFS LINENO LINES MAIL MAILCHECK MAILPATH OLDPWD OPTARG OPTIND PATH PPID PS1 PS2 PS3 PS4 PWD RANDOM REPLY SECONDS SHELL TMOUT VISUAL
@@ -327,7 +329,7 @@ syn match   shSource	"^\.\s"
 syn match   shSource	"\s\.\s"
 "syn region  shColon	start="^\s*:" end="$" end="\s#"me=e-2 contains=@shColonList
 "syn region  shColon	start="^\s*\zs:" end="$" end="\s#"me=e-2
-if exists("b:is_kornshell")
+if exists("b:is_kornshell") || exists("b:is_posix")
  syn match   shColon	'^\s*\zs:'
 endif
 
@@ -339,19 +341,18 @@ syn match   shCtrlSeq	"\\\d\d\d\|\\[abcf
 if exists("b:is_bash")
  syn match   shSpecial	"[^\\]\(\\\\\)*\zs\\\o\o\o\|\\x\x\x\|\\c[^"]\|\\[abefnrtv]"	contained
  syn match   shSpecial	"^\(\\\\\)*\zs\\\o\o\o\|\\x\x\x\|\\c[^"]\|\\[abefnrtv]"	contained
-endif
-if exists("b:is_bash")
  syn region  shExSingleQuote	matchgroup=shQuote start=+\$'+ skip=+\\\\\|\\.+ end=+'+	contains=shStringSpecial,shSpecial		nextgroup=shSpecialNxt
  syn region  shExDoubleQuote	matchgroup=shQuote start=+\$"+ skip=+\\\\\|\\.\|\\"+ end=+"+	contains=@shDblQuoteList,shStringSpecial,shSpecial	nextgroup=shSpecialNxt
 elseif !exists("g:sh_no_error")
  syn region  shExSingleQuote	matchGroup=Error start=+\$'+ skip=+\\\\\|\\.+ end=+'+	contains=shStringSpecial
  syn region  shExDoubleQuote	matchGroup=Error start=+\$"+ skip=+\\\\\|\\.+ end=+"+	contains=shStringSpecial
 endif
-syn region  shSingleQuote	matchgroup=shQuote start=+'+ end=+'+		contains=@Spell
-syn region  shDoubleQuote	matchgroup=shQuote start=+\%(\%(\\\\\)*\\\)\@<!"+ skip=+\\"+ end=+"+	contains=@shDblQuoteList,shStringSpecial,@Spell
+syn region  shSingleQuote	matchgroup=shQuote start=+'+ end=+'+		contains=@Spell	nextgroup=shSpecialStart
+syn region  shDoubleQuote	matchgroup=shQuote start=+\%(\%(\\\\\)*\\\)\@<!"+ skip=+\\"+ end=+"+	contains=@shDblQuoteList,shStringSpecial,@Spell	nextgroup=shSpecialStart
 syn match   shStringSpecial	"[^[:print:] \t]"			contained
 syn match   shStringSpecial	"[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]"
 syn match   shSpecial	"[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]"		nextgroup=shBkslshSnglQuote,shBkslshDblQuote,@shNoZSList
+syn match   shSpecialStart	"\%(\\\\\)*\\[\\"'`$()#]"			contained	nextgroup=shBkslshSnglQuote,shBkslshDblQuote,@shNoZSList
 syn match   shSpecial	"^\%(\\\\\)*\\[\\"'`$()#]"
 syn match   shSpecialNoZS	contained	"\%(\\\\\)*\\[\\"'`$()#]"
 syn match   shSpecialNxt	contained	"\\[\\"'`$()#]"
@@ -373,21 +374,21 @@ syn match	shQuickComment	contained	"#.*$
 
 " Here Documents: {{{1
 " =========================================
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc01 start="<<\s*\\\=\z([^ \t|>]\+\)"		matchgroup=shHereDoc01 end="^\z1\s*$"	contains=@shDblQuoteList
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc02 start="<<\s*\"\z([^ \t|>]\+\)\""		matchgroup=shHereDoc02 end="^\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc03 start="<<-\s*\z([^ \t|>]\+\)"		matchgroup=shHereDoc03 end="^\s*\z1\s*$"	contains=@shDblQuoteList
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc04 start="<<-\s*'\z([^']\+\)'"		matchgroup=shHereDoc04 end="^\s*\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc05 start="<<\s*'\z([^']\+\)'"		matchgroup=shHereDoc05 end="^\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc06 start="<<-\s*\"\z([^ \t|>]\+\)\""		matchgroup=shHereDoc06 end="^\s*\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc07 start="<<\s*\\\_$\_s*\z([^ \t|>]\+\)"		matchgroup=shHereDoc07 end="^\z1\s*$"           contains=@shDblQuoteList
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc08 start="<<\s*\\\_$\_s*'\z([^ \t|>]\+\)'"	matchgroup=shHereDoc08 end="^\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc09 start="<<\s*\\\_$\_s*\"\z([^ \t|>]\+\)\""	matchgroup=shHereDoc09 end="^\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc10 start="<<-\s*\\\_$\_s*\z([^ \t|>]\+\)"	matchgroup=shHereDoc10 end="^\s*\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc11 start="<<-\s*\\\_$\_s*\\\z([^ \t|>]\+\)"	matchgroup=shHereDoc11 end="^\s*\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc12 start="<<-\s*\\\_$\_s*'\z([^ \t|>]\+\)'"	matchgroup=shHereDoc12 end="^\s*\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc13 start="<<-\s*\\\_$\_s*\"\z([^ \t|>]\+\)\""	matchgroup=shHereDoc13 end="^\s*\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc14 start="<<\\\z([^ \t|>]\+\)"		matchgroup=shHereDoc14 end="^\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc15 start="<<-\s*\\\z([^ \t|>]\+\)"		matchgroup=shHereDoc15 end="^\s*\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc01 start="<<\s*\\\=\z([^ \t0-9|>]\+\)"		matchgroup=shHereDoc01 end="^\z1\s*$"	contains=@shDblQuoteList
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc02 start="<<\s*\"\z([^ \t0-9|>]\+\)\""		matchgroup=shHereDoc02 end="^\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc03 start="<<-\s*\z([^ \t0-9|>]\+\)"		matchgroup=shHereDoc03 end="^\s*\z1\s*$"	contains=@shDblQuoteList
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc04 start="<<-\s*'\z([^'0-9]\+\)'"		matchgroup=shHereDoc04 end="^\s*\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc05 start="<<\s*'\z([^'0-9]\+\)'"		matchgroup=shHereDoc05 end="^\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc06 start="<<-\s*\"\z([^ \t0-9|>]\+\)\""		matchgroup=shHereDoc06 end="^\s*\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc07 start="<<\s*\\\_$\_s*\z([^ \t0-9|>]\+\)"	matchgroup=shHereDoc07 end="^\z1\s*$"           contains=@shDblQuoteList
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc08 start="<<\s*\\\_$\_s*'\z([^ \t0-9|>]\+\)'"	matchgroup=shHereDoc08 end="^\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc09 start="<<\s*\\\_$\_s*\"\z([^ \t0-9|>]\+\)\""	matchgroup=shHereDoc09 end="^\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc10 start="<<-\s*\\\_$\_s*\z([^ \t0-9|>]\+\)"	matchgroup=shHereDoc10 end="^\s*\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc11 start="<<-\s*\\\_$\_s*\\\z([^ \t0-9|>]\+\)"	matchgroup=shHereDoc11 end="^\s*\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc12 start="<<-\s*\\\_$\_s*'\z([^ \t0-9|>]\+\)'"	matchgroup=shHereDoc12 end="^\s*\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc13 start="<<-\s*\\\_$\_s*\"\z([^ \t0-9|>]\+\)\""	matchgroup=shHereDoc13 end="^\s*\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc14 start="<<\\\z([^ \t0-9|>]\+\)"		matchgroup=shHereDoc14 end="^\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc15 start="<<-\s*\\\z([^ \t0-9|>]\+\)"		matchgroup=shHereDoc15 end="^\s*\z1\s*$"
 
 " Here Strings: {{{1
 " =============
@@ -405,7 +406,7 @@ syn region shAtExpr	contained	start="@("
 if exists("b:is_bash")
  syn region shSetList oneline matchgroup=shSet start="\<\(declare\|typeset\|local\|export\|unset\)\>\ze[^/]" end="$"	matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+#\|="	contains=@shIdList
  syn region shSetList oneline matchgroup=shSet start="\<set\>\ze[^/]" end="\ze[;|)]\|$"			matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+="	contains=@shIdList
-elseif exists("b:is_kornshell")
+elseif exists("b:is_kornshell") || exists("b:is_posix")
  syn region shSetList oneline matchgroup=shSet start="\<\(typeset\|export\|unset\)\>\ze[^/]" end="$"		matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]"	contains=@shIdList
  syn region shSetList oneline matchgroup=shSet start="\<set\>\ze[^/]" end="$"				matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]"	contains=@shIdList
 else
@@ -439,14 +440,14 @@ syn region shDeref	matchgroup=PreProc st
 syn match  shDerefSimple	"\$[-#*@!?]"	nextgroup=@shNoZSList
 syn match  shDerefSimple	"\$\$"	nextgroup=@shNoZSList
 syn match  shDerefSimple	"\${\d}"	nextgroup=@shNoZSList
-if exists("b:is_bash") || exists("b:is_kornshell")
+if exists("b:is_bash") || exists("b:is_kornshell") || exists("b:is_posix")
  syn region shDeref	matchgroup=PreProc start="\${##\=" end="}"	contains=@shDerefList	nextgroup=@shSpecialNoZS
  syn region shDeref	matchgroup=PreProc start="\${\$\$" end="}"	contains=@shDerefList	nextgroup=@shSpecialNoZS
 endif
 
 " ksh: ${!var[*]} array index list syntax: {{{1
 " ========================================
-if exists("b:is_kornshell")
+if exists("b:is_kornshell") || exists("b:is_posix")
  syn region shDeref	matchgroup=PreProc start="\${!" end="}"	contains=@shDerefVarArray
 endif
 
@@ -464,7 +465,7 @@ syn match  shDerefSpecial	contained	"{\@
 syn match  shDerefSpecial	contained	"\({[#!]\)\@<=[[:alnum:]*@_]\+"	nextgroup=@shDerefVarList,shDerefOp
 syn match  shDerefVar	contained	"{\@<=\h\w*"		nextgroup=@shDerefVarList
 syn match  shDerefVar	contained	'\d'                            nextgroup=@shDerefVarList
-if exists("b:is_kornshell")
+if exists("b:is_kornshell") || exists("b:is_posix")
   syn match  shDerefVar	contained	"{\@<=\h\w*[[:alnum:]_.]*"	nextgroup=@shDerefVarList
 endif
 
@@ -490,7 +491,7 @@ if !exists("g:sh_no_error")
 endif
 syn match  shDerefOp	contained	":\=[-=?]"	nextgroup=@shDerefPatternList
 syn match  shDerefOp	contained	":\=+"	nextgroup=@shDerefPatternList
-if exists("b:is_bash") || exists("b:is_kornshell")
+if exists("b:is_bash") || exists("b:is_kornshell") || exists("b:is_posix")
  syn match  shDerefOp	contained	"#\{1,2}"		nextgroup=@shDerefPatternList
  syn match  shDerefOp	contained	"%\{1,2}"		nextgroup=@shDerefPatternList
  syn match  shDerefPattern	contained	"[^{}]\+"		contains=shDeref,shDerefSimple,shDerefPattern,shDerefString,shCommandSub,shDerefEscape nextgroup=shDerefPattern
@@ -537,7 +538,7 @@ endif
 
 " Useful ksh Keywords: {{{1
 " ====================
-if exists("b:is_kornshell") || exists("b:is_bash")
+if exists("b:is_kornshell") || exists("b:is_bash") || exists("b:is_posix")
  syn keyword shStatement autoload bg false fc fg functions getopts hash history integer jobs let nohup printf r stop suspend times true type unalias whence
  if exists("b:is_posix")
   syn keyword shStatement command
@@ -635,6 +636,7 @@ if !exists("skip_sh_syntax_inits")
  hi def link shSingleQuote	shString
  hi def link shSource	shOperator
  hi def link shStringSpecial	shSpecial
+ hi def link shSpecialStart	shSpecial
  hi def link shSubShRegion	shOperator
  hi def link shTestOpr	shConditional
  hi def link shTestPattern	shString
@@ -652,7 +654,7 @@ if !exists("skip_sh_syntax_inits")
    hi def link shDerefOff		shDerefOp
    hi def link shDerefLen		shDerefOff
  endif
- if exists("b:is_kornshell")
+ if exists("b:is_kornshell") || exists("b:is_posix")
    hi def link kshSpecialVariables	shShellVariables
    hi def link kshStatement		shStatement
  endif
@@ -669,7 +671,7 @@ if !exists("skip_sh_syntax_inits")
   hi def link shInError		Error
   hi def link shParenError		Error
   hi def link shTestError		Error
-  if exists("b:is_kornshell")
+  if exists("b:is_kornshell") || exists("b:is_posix")
     hi def link shDTestError		Error
   endif
  endif
@@ -725,6 +727,8 @@ if exists("b:is_bash")
  let b:current_syntax = "bash"
 elseif exists("b:is_kornshell")
  let b:current_syntax = "ksh"
+elseif exists("b:is_posix")
+ let b:current_syntax = "posix"
 else
  let b:current_syntax = "sh"
 endif
--- a/runtime/syntax/tex.vim
+++ b/runtime/syntax/tex.vim
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	TeX
 " Maintainer:	Charles E. Campbell <NdrchipO@ScampbellPfamily.AbizM>
-" Last Change:	Dec 11, 2017
-" Version:	107
+" Last Change:	Mar 30, 2018
+" Version:	109
 " URL:		http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TEX
 "
 " Notes: {{{1
@@ -396,7 +396,7 @@ endif
 
 " Bad Math (mismatched): {{{1
 if !exists("g:tex_no_math") && !s:tex_no_error
- syn match texBadMath		"\\end\s*{\s*\(array\|bBpvV]matrix\|split\|smallmatrix\)\s*}"
+ syn match texBadMath		"\\end\s*{\s*\(array\|[bBpvV]matrix\|split\|smallmatrix\)\s*}"
  syn match texBadMath		"\\end\s*{\s*\(displaymath\|equation\|eqnarray\|math\)\*\=\s*}"
  syn match texBadMath		"\\[\])]"
 endif
@@ -1012,6 +1012,48 @@ if has("conceal") && &enc == 'utf-8'
   syn match texMathSymbol '\\hat{y}' contained conceal cchar=ŷ
   syn match texMathSymbol '\\hat{Y}' contained conceal cchar=Ŷ
 "  syn match texMathSymbol '\\bar{a}' contained conceal cchar=a̅
+
+  syn match texMathSymbol '\\dot{B}' contained conceal cchar=Ḃ
+  syn match texMathSymbol '\\dot{b}' contained conceal cchar=ḃ
+  syn match texMathSymbol '\\dot{D}' contained conceal cchar=Ḋ
+  syn match texMathSymbol '\\dot{d}' contained conceal cchar=ḋ
+  syn match texMathSymbol '\\dot{F}' contained conceal cchar=Ḟ
+  syn match texMathSymbol '\\dot{f}' contained conceal cchar=ḟ
+  syn match texMathSymbol '\\dot{H}' contained conceal cchar=Ḣ
+  syn match texMathSymbol '\\dot{h}' contained conceal cchar=ḣ
+  syn match texMathSymbol '\\dot{M}' contained conceal cchar=Ṁ
+  syn match texMathSymbol '\\dot{m}' contained conceal cchar=ṁ
+  syn match texMathSymbol '\\dot{N}' contained conceal cchar=Ṅ
+  syn match texMathSymbol '\\dot{n}' contained conceal cchar=ṅ
+  syn match texMathSymbol '\\dot{P}' contained conceal cchar=Ṗ
+  syn match texMathSymbol '\\dot{p}' contained conceal cchar=ṗ
+  syn match texMathSymbol '\\dot{R}' contained conceal cchar=Ṙ
+  syn match texMathSymbol '\\dot{r}' contained conceal cchar=ṙ
+  syn match texMathSymbol '\\dot{S}' contained conceal cchar=Ṡ
+  syn match texMathSymbol '\\dot{s}' contained conceal cchar=ṡ
+  syn match texMathSymbol '\\dot{T}' contained conceal cchar=Ṫ
+  syn match texMathSymbol '\\dot{t}' contained conceal cchar=ṫ
+  syn match texMathSymbol '\\dot{W}' contained conceal cchar=Ẇ
+  syn match texMathSymbol '\\dot{w}' contained conceal cchar=ẇ
+  syn match texMathSymbol '\\dot{X}' contained conceal cchar=Ẋ
+  syn match texMathSymbol '\\dot{x}' contained conceal cchar=ẋ
+  syn match texMathSymbol '\\dot{Y}' contained conceal cchar=Ẏ
+  syn match texMathSymbol '\\dot{y}' contained conceal cchar=ẏ
+  syn match texMathSymbol '\\dot{Z}' contained conceal cchar=Ż
+  syn match texMathSymbol '\\dot{z}' contained conceal cchar=ż
+
+  syn match texMathSymbol '\\dot{C}' contained conceal cchar=Ċ
+  syn match texMathSymbol '\\dot{c}' contained conceal cchar=ċ
+  syn match texMathSymbol '\\dot{E}' contained conceal cchar=Ė
+  syn match texMathSymbol '\\dot{e}' contained conceal cchar=ė
+  syn match texMathSymbol '\\dot{G}' contained conceal cchar=Ġ
+  syn match texMathSymbol '\\dot{g}' contained conceal cchar=ġ
+  syn match texMathSymbol '\\dot{I}' contained conceal cchar=İ
+
+  syn match texMathSymbol '\\dot{A}' contained conceal cchar=Ȧ
+  syn match texMathSymbol '\\dot{a}' contained conceal cchar=ȧ
+  syn match texMathSymbol '\\dot{O}' contained conceal cchar=Ȯ
+  syn match texMathSymbol '\\dot{o}' contained conceal cchar=ȯ
  endif
 
  " Greek {{{2
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -1,9 +1,9 @@
 " Vim syntax file
 " Language:	Vim 8.0 script
 " Maintainer:	Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change:	Dec 15, 2017
-" Version:	8.0-07
-" URL:	http://www.drchip.org/astronaut/vim/index.html#SYNTAX_VIM
+" Last Change:	February 13, 2018
+" Version:		8.0-12
+" URL:			http://www.drchip.org/astronaut/vim/index.html#SYNTAX_VIM
 " Automatically generated keyword lists: {{{1
 
 " Quit when a syntax file was already loaded {{{2
@@ -24,9 +24,9 @@ syn keyword vimCommand contained	ab argd
 syn keyword vimCommand contained	abc[lear] argdo au bel[owright] bp[revious] bro[wse] cNf[ile] cal[l] cd cfir[st] che[ckpath] clo[se] col[der] conf[irm] cs debug deletep delp diffp[atch] dj[ump] dr[op] ec em[enu] ene[w] filet fir[st] foldo[pen] grepa[dd] helpf[ind] i  imapc[lear] j[oin] keepj[umps] lad[dexpr] lb[uffer] lcscope lfdo lgrepa[dd] lmak[e] loadk lp[revious] luado ma[rk] messages mod[e] nbc[lose] noautocmd nu[mber] opt[ions] pc[lose] popu[p] prof[ile] ptN[ext] ptn[ext] pw[d] pyf[ile] pyxfile rec[over] reg[isters] ri[ght] rubyf[ile] sIe sIr sav[eas] sbl[ast] sc scl scscope sf[ind] sge sgr sig sip sm[ap] sno[magic] sp[lit] spellu[ndo] src srn startg[replace] sun[hide] sw[apname] syntime tabN[ext] tabfir[st] tabo[nly] tc[l] th[row] tmapc[lear] tr[ewind] u[ndo] unl ve[rsion] vim[grep] vs[plit] win[size] wp[revious] wv[iminfo] xmenu xunmenu
 syn keyword vimCommand contained	abo[veleft] arge[dit] bN[ext] bf[irst] br[ewind] bufdo c[hange] cat[ch] cdo cg[etfile] checkt[ime] cmapc[lear] colo[rscheme] cope[n] cscope debugg[reedy] deletl dep diffpu[t] dl ds[earch] echoe[rr] en[dif] ex filetype fix[del] for gui helpg[rep] ia in ju[mps] keepp[atterns] laddb[uffer] lbo[ttom] ld[o] lfir[st] lh[elpgrep] lmapc[lear] loadkeymap lpf[ile] luafile mak[e] mk[exrc] mz[scheme] nbs[tart] noh[lsearch] o[pen] ownsyntax pe[rl] pp[op] profd[el] pta[g] ptp[revious] py3 python3 q[uit] red[o] res[ize] rightb[elow] rundo sIg sN[ext] sbN[ext] sbm[odified] scI scp se[t] sfir[st] sgi sh[ell] sign sir sme snoreme spe[llgood] spellw[rong] sre[wind] srp startr[eplace] sunme sy t  tabc[lose] tabl[ast] tabp[revious] tcld[o] tj[ump] tn[ext] try una[bbreviate] unlo[ckvar] verb[ose] vimgrepa[dd] wN[ext] winc[md] wq x[it] xnoreme xwininfo
 syn keyword vimCommand contained	al[l] argg[lobal] b[uffer] bl[ast] brea[k] buffers cabc[lear] cb[uffer] ce[nter] cgetb[uffer] chi[story] cn[ext] com cp[revious] cstag delc[ommand] deletp di[splay] diffs[plit] dli[st] dsp[lit] echom[sg] endf[unction] exi[t] filt[er] fo[ld] fu[nction] gvim helpt[ags] iabc[lear] intro k  lN[ext] laddf[ile] lc[d] le[ft] lg[etfile] lhi[story] lne[xt] loc[kmarks] lr[ewind] lv[imgrep] marks mks[ession] mzf[ile] new nor ol[dfiles] p[rint] ped[it] pre[serve] promptf[ind] ptf[irst] ptr[ewind] py3do pythonx qa[ll] redi[r] ret[ab] ru[ntime] rv[iminfo] sIl sa[rgument] sb[uffer] sbn[ext] sce scr[iptnames] setf[iletype] sg sgl si sil[ent] sl[eep] smenu snoremenu spelld[ump] spr[evious] srg st[op] stj[ump] sunmenu syn tN[ext] tabd[o] tabm[ove] tabr[ewind] tclf[ile] tl[ast] tno[remap] ts[elect] undoj[oin] uns[ilent] vert[ical] viu[sage] w[rite] windo wqa[ll] xa[ll] xnoremenu y[ank]
-syn keyword vimCommand contained	ar[gs] argl[ocal] ba[ll] bm[odified] breaka[dd] bun[load] cad[dbuffer] cbo[ttom] cex[pr] cgete[xpr] cl[ist] cnew[er] comc[lear] cpf[ile] cuna[bbrev] delel delf[unction] dif[fupdate] difft[his] do e[dit] echon endfo[r] exu[sage] fin[d] foldc[lose] g  h[elp] hi if is[earch] kee[pmarks] lNf[ile] lan[guage] lch[dir] lefta[bove] lgetb[uffer] ll lnew[er] lockv[ar] ls lvimgrepa[dd] mat[ch] mksp[ell] 
+syn keyword vimCommand contained	ar[gs] argl[ocal] ba[ll] bm[odified] breaka[dd] bun[load] cad[dbuffer] cbo[ttom] cex[pr] cgete[xpr] cl[ist] cnew[er] comc[lear] cpf[ile] cuna[bbrev] delel delf[unction] dif[fupdate] difft[his] do e[dit] echon endfo[r] exu[sage] fin[d] foldc[lose] g  h[elp] hi if is[earch] kee[pmarks] lNf[ile] lan[guage] lch[dir] lefta[bove] lgetb[uffer] ll lnew[er] lockv[ar] ls lvimgrepa[dd] mat[ch] mksp[ell]
 syn match   vimCommand contained	"\<z[-+^.=]\=\>"
-syn keyword vimStdPlugin contained	DiffOrig Man N[ext] P[rint] S  TOhtml XMLent XMLns 
+syn keyword vimStdPlugin contained	DiffOrig Man N[ext] P[rint] S  TOhtml XMLent XMLns
 
 " vimOptions are caught only when contained in a vimSet {{{2
 syn keyword vimOption contained	acd ambw arshape background ballooneval bg bomb bs cb ch cinoptions cms commentstring copyindent cscopepathcomp csprg cursorbind delcombine digraph eadirection emo equalprg expandtab fdls fex fileignorecase fml foldlevel formatexpr gcr go guifontset helpheight history hlsearch imactivatekey imi imstyle indentkeys isf isprint km laststatus lisp loadplugins lz mat maxmempattern mh mmp more mouses mzq number opendevice paragraphs penc pi previewheight printmbcharset pvw rdt renderoptions rl ru sbo scrollbind secure shcf shelltemp shortmess showtabline sj smd spell splitbelow ssl stl sw sxe tabpagemax tags tbs termguicolors tf title tms ts ttybuiltin tx undolevels vbs viewdir vop wd wic wildmode winheight wm wrapscan
@@ -36,21 +36,21 @@ syn keyword vimOption contained	al ar au
 syn keyword vimOption contained	aleph arab autowrite backupdir belloff bk bri bufhidden cdpath cindent cm colorcolumn completeopt cpoptions cscopetag csto debug dictionary display ef endofline esckeys fdc fdt fileencoding fixeol foldcolumn foldminlines fp gfn gtl guipty hi hkp ignorecase imcmdline imsf incsearch infercase isk keymap langmenu linebreak lm lsp makeef maxfuncdepth menc mls modelines mousehide mp nf oft pa patchmode pfn popt printexpr pt pyxversion regexpengine ri rop rulerformat scl scs sessionoptions shellquote shiftround showfulltag sidescrolloff smartindent sol spellsuggest sr stal sua swf syntax tagcase tbi term textauto tildeop tk top ttimeoutlen ttyscroll ul ur verbosefile viminfofile wb wh wildignore window winwidth wop writedelay
 syn keyword vimOption contained	allowrevins arabic autowriteall backupext beval bkc briopt buflisted cedit cink cmdheight columns concealcursor cpt cscopetagorder csverb deco diff dy efm eol et fde fen fileencodings fk foldenable foldnestmax fs gfs gtt guitablabel hid hl im imd imst inde insertmode iskeyword keymodel langnoremap lines lmap luadll makeencoding maxmapdepth menuitems mm modifiable mousem mps nrformats ofu packpath path ph pp printfont pumheight qe relativenumber rightleft rs runtimepath scr sect sft shellredir shiftwidth showmatch signcolumn smarttab sp spf srr startofline suffixes switchbuf ta taglength tbidi termbidi textmode timeout tl tpm ttm ttytype undodir ut vfile virtualedit wc whichwrap wildignorecase winfixheight wiv wrap ws
 syn keyword vimOption contained	altkeymap arabicshape aw backupskip bex bl brk buftype cf cinkeys cmdwinheight com conceallevel crb cscopeverbose cuc def diffexpr ea ei ep eventignore fdi fenc fileformat fkmap foldexpr foldopen fsync gfw guicursor guitabtooltip hidden hlg imactivatefunc imdisable imstatusfunc indentexpr is isp keywordprg langremap linespace lnr lw makeprg maxmem mfd mmd modified mousemodel msm nu omnifunc para pdev pheader preserveindent printheader pvh quoteescape remap rightleftcmd rtp sb scroll sections sh shellslash shm showmode siso smc spc spl ss statusline suffixesadd sws tabline tagrelative tbis termencoding textwidth timeoutlen tm tr tty tw undofile vb vi visualbell wcm wi wildmenu winfixwidth wiw wrapmargin ww
-syn keyword vimOption contained	ambiwidth ari awa balloondelay bexpr bo browsedir casemap cfu cino cmp comments confirm cryptmethod cspc cul define diffopt ead ek equalalways ex fdl fencs fileformats flp foldignore foldtext ft ghr guifont helpfile highlight hls 
+syn keyword vimOption contained	ambiwidth ari awa balloondelay bexpr bo browsedir casemap cfu cino cmp comments confirm cryptmethod cspc cul define diffopt ead ek equalalways ex fdl fencs fileformats flp foldignore foldtext ft ghr guifont helpfile highlight hls
 
 " vimOptions: These are the turn-off setting variants {{{2
 syn keyword vimOption contained	noacd noallowrevins noantialias noarabic noarshape noautoread noaw noballooneval nobinary nobomb nobuflisted nocin noconfirm nocrb nocscopeverbose nocsverb nocursorbind nodeco nodiff noeb noek noendofline noerrorbells noex nofen nofixendofline nofkmap nofsync noguipty nohk nohkp noic noim noimd noinf nois nolangnoremap nolazyredraw nolinebreak nolist noloadplugins nolrm noma nomagic noml nomodeline nomodified nomousef nomousehide nonumber noopendevice nopi nopreviewwindow nopvw norelativenumber norestorescreen nori norl noro noru nosb noscb noscs nosft noshelltemp noshortname noshowfulltag noshowmode nosm nosmartindent nosmd nosol nosplitbelow nospr nossl nostartofline noswapfile nota notagrelative notbi notbs noterse notextmode notgst notimeout noto notr nottybuiltin notx noundofile novisualbell nowarn noweirdinvert nowfw nowildignorecase nowinfixheight nowiv nowrap nowrite nowritebackup
 syn keyword vimOption contained	noai noaltkeymap noar noarabicshape noautochdir noautowrite noawa nobeval nobk nobreakindent nocf nocindent nocopyindent nocscoperelative nocsre nocuc nocursorcolumn nodelcombine nodigraph noed noemo noeol noesckeys noexpandtab nofic nofixeol nofoldenable nogd nohid nohkmap nohls noicon noimc noimdisable noinfercase nojoinspaces nolangremap nolbr nolisp nolnr nolpl nolz nomacatsui nomh nomod nomodifiable nomore nomousefocus nonu noodev nopaste nopreserveindent noprompt noreadonly noremap norevins norightleft nornu nors noruler nosc noscrollbind nosecure noshellslash noshiftround noshowcmd noshowmatch nosi nosmartcase nosmarttab nosn nospell nosplitright nosr nosta nostmp noswf notagbsearch notagstack notbidi notermbidi notextauto notf notildeop notitle notop nottimeout nottyfast noudf novb nowa nowb nowfh nowic nowildmenu nowinfixwidth nowmnu nowrapscan nowriteany nows
-syn keyword vimOption contained	noakm noanti noarab noari noautoindent noautowriteall nobackup nobin nobl nobri noci nocompatible nocp nocscopetag nocst nocul nocursorline nodg noea noedcompatible noemoji noequalalways noet noexrc nofileignorecase nofk nofs nogdefault nohidden nohkmapp nohlsearch noignorecase noimcmdline noincsearch noinsertmode nojs 
+syn keyword vimOption contained	noakm noanti noarab noari noautoindent noautowriteall nobackup nobin nobl nobri noci nocompatible nocp nocscopetag nocst nocul nocursorline nodg noea noedcompatible noemoji noequalalways noet noexrc nofileignorecase nofk nofs nogdefault nohidden nohkmapp nohlsearch noignorecase noimcmdline noincsearch noinsertmode nojs
 
 " vimOptions: These are the invertible variants {{{2
 syn keyword vimOption contained	invacd invallowrevins invantialias invarabic invarshape invautoread invaw invballooneval invbinary invbomb invbuflisted invcin invconfirm invcrb invcscopeverbose invcsverb invcursorbind invdeco invdiff inveb invek invendofline inverrorbells invex invfen invfixendofline invfkmap invfsync invguipty invhk invhkp invic invim invimd invinf invis invlangnoremap invlazyredraw invlinebreak invlist invloadplugins invlrm invma invmagic invml invmodeline invmodified invmousef invmousehide invnumber invopendevice invpi invpreviewwindow invpvw invrelativenumber invrestorescreen invri invrl invro invru invsb invscb invscs invsft invshelltemp invshortname invshowfulltag invshowmode invsm invsmartindent invsmd invsol invsplitbelow invspr invssl invstartofline invswapfile invta invtagrelative invtbi invtbs invterse invtextmode invtgst invtimeout invto invtr invttybuiltin invtx invundofile invvisualbell invwarn invweirdinvert invwfw invwildignorecase invwinfixheight invwiv invwrap invwrite invwritebackup
 syn keyword vimOption contained	invai invaltkeymap invar invarabicshape invautochdir invautowrite invawa invbeval invbk invbreakindent invcf invcindent invcopyindent invcscoperelative invcsre invcuc invcursorcolumn invdelcombine invdigraph inved invemo inveol invesckeys invexpandtab invfic invfixeol invfoldenable invgd invhid invhkmap invhls invicon invimc invimdisable invinfercase invjoinspaces invlangremap invlbr invlisp invlnr invlpl invlz invmacatsui invmh invmod invmodifiable invmore invmousefocus invnu invodev invpaste invpreserveindent invprompt invreadonly invremap invrevins invrightleft invrnu invrs invruler invsc invscrollbind invsecure invshellslash invshiftround invshowcmd invshowmatch invsi invsmartcase invsmarttab invsn invspell invsplitright invsr invsta invstmp invswf invtagbsearch invtagstack invtbidi invtermbidi invtextauto invtf invtildeop invtitle invtop invttimeout invttyfast invudf invvb invwa invwb invwfh invwic invwildmenu invwinfixwidth invwmnu invwrapscan invwriteany invws
-syn keyword vimOption contained	invakm invanti invarab invari invautoindent invautowriteall invbackup invbin invbl invbri invci invcompatible invcp invcscopetag invcst invcul invcursorline invdg invea invedcompatible invemoji invequalalways invet invexrc invfileignorecase invfk invfs invgdefault invhidden invhkmapp invhlsearch invignorecase invimcmdline invincsearch invinsertmode invjs 
+syn keyword vimOption contained	invakm invanti invarab invari invautoindent invautowriteall invbackup invbin invbl invbri invci invcompatible invcp invcscopetag invcst invcul invcursorline invdg invea invedcompatible invemoji invequalalways invet invexrc invfileignorecase invfk invfs invgdefault invhidden invhkmapp invhlsearch invignorecase invimcmdline invincsearch invinsertmode invjs
 
 " termcap codes (which can also be set) {{{2
 syn keyword vimOption contained	t_8b t_AB t_al t_bc t_BE t_ce t_cl t_Co t_Cs t_CV t_db t_DL t_EI t_F2 t_F4 t_F6 t_F8 t_fs t_IE t_k1 t_k2 t_K3 t_K4 t_K5 t_K6 t_K7 t_k8 t_K8 t_k9 t_K9 t_KA t_kb t_kB t_KB t_KC t_kd t_kD t_KD t_ke t_KE t_KF t_KG t_kh t_KH t_kI t_KI t_KJ t_KK t_kl t_KL t_kN t_kP t_kr t_ks t_ku t_le t_mb t_md t_me t_mr t_ms t_nd t_op t_PE t_PS t_RB t_RC t_RF t_RI t_RS t_RV t_Sb t_SC t_se t_Sf t_SH t_SI t_so t_sr t_SR t_te t_Te t_ti t_ts t_Ts t_u7 t_ue t_us t_ut t_vb t_ve t_vi t_vs t_VS t_WP t_WS t_xn t_xs t_ZH t_ZR
-syn keyword vimOption contained	t_8f t_AF t_AL t_BD t_cd t_Ce t_cm t_cs t_CS t_da t_dl t_EC t_F1 t_F3 t_F5 t_F7 t_F9 t_GP t_IS t_K1 t_k3 t_k4 t_k5 t_k6 t_k7 
+syn keyword vimOption contained	t_8f t_AF t_AL t_BD t_cd t_Ce t_cm t_cs t_CS t_da t_dl t_EC t_F1 t_F3 t_F5 t_F7 t_F9 t_GP t_IS t_K1 t_k3 t_k4 t_k5 t_k6 t_k7
 syn match   vimOption contained	"t_%1"
 syn match   vimOption contained	"t_#2"
 syn match   vimOption contained	"t_#4"
@@ -62,17 +62,17 @@ syn match   vimOption contained	"t_k;"
 
 " unsupported settings: some were supported by vi but don't do anything in vim {{{2
 " others have been dropped along with msdos support
-syn keyword vimErrSetting contained	bioskey biosk conskey consk autoprint beautify flash graphic hardtabs mesg novice open op optimize redraw slow slowopen sourceany w300 w1200 w9600 hardtabs ht nobioskey nobiosk noconskey noconsk noautoprint nobeautify noflash nographic nohardtabs nomesg nonovice noopen noop nooptimize noredraw noslow noslowopen nosourceany now300 now1200 now9600 w1200 w300 w9600 
+syn keyword vimErrSetting contained	bioskey biosk conskey consk autoprint beautify flash graphic hardtabs mesg novice open op optimize redraw slow slowopen sourceany w300 w1200 w9600 hardtabs ht nobioskey nobiosk noconskey noconsk noautoprint nobeautify noflash nographic nohardtabs nomesg nonovice noopen noop nooptimize noredraw noslow noslowopen nosourceany now300 now1200 now9600 w1200 w300 w9600
 
 " AutoCmd Events {{{2
 syn case ignore
-syn keyword vimAutoEvent contained	BufAdd BufCreate BufDelete BufEnter BufFilePost BufFilePre BufHidden BufLeave BufNew BufNewFile BufRead BufReadCmd BufReadPost BufReadPre BufUnload BufWinEnter BufWinLeave BufWipeout BufWrite BufWriteCmd BufWritePost BufWritePre CmdlineEnter CmdlineLeave CmdUndefined CmdwinEnter CmdwinLeave ColorScheme CompleteDone CursorHold CursorHoldI CursorMoved CursorMovedI EncodingChanged FileAppendCmd FileAppendPost FileAppendPre FileChangedRO FileChangedShell FileChangedShellPost FileEncoding FileReadCmd FileReadPost FileReadPre FileType FileWriteCmd FileWritePost FileWritePre FilterReadPost FilterReadPre FilterWritePost FilterWritePre FocusGained FocusLost FuncUndefined GUIEnter GUIFailed InsertChange InsertCharPre InsertEnter InsertLeave MenuPopup OptionSet QuickFixCmdPost QuickFixCmdPre QuitPre RemoteReply SessionLoadPost ShellCmdPost ShellFilterPost SourceCmd SourcePre SpellFileMissing StdinReadPost StdinReadPre SwapExists Syntax TabClosed TabEnter TabLeave TabNew TermChanged TermResponse TextChanged TextChangedI TextChangedP User VimEnter VimLeave VimLeavePre VimResized WinEnter WinLeave WinNew 
+syn keyword vimAutoEvent contained	BufAdd BufCreate BufDelete BufEnter BufFilePost BufFilePre BufHidden BufLeave BufNew BufNewFile BufRead BufReadCmd BufReadPost BufReadPre BufUnload BufWinEnter BufWinLeave BufWipeout BufWrite BufWriteCmd BufWritePost BufWritePre CmdlineEnter CmdlineLeave CmdUndefined CmdwinEnter CmdwinLeave ColorScheme CompleteDone CursorHold CursorHoldI CursorMoved CursorMovedI EncodingChanged FileAppendCmd FileAppendPost FileAppendPre FileChangedRO FileChangedShell FileChangedShellPost FileEncoding FileReadCmd FileReadPost FileReadPre FileType FileWriteCmd FileWritePost FileWritePre FilterReadPost FilterReadPre FilterWritePost FilterWritePre FocusGained FocusLost FuncUndefined GUIEnter GUIFailed InsertChange InsertCharPre InsertEnter InsertLeave MenuPopup OptionSet QuickFixCmdPost QuickFixCmdPre QuitPre RemoteReply SessionLoadPost ShellCmdPost ShellFilterPost SourceCmd SourcePre SpellFileMissing StdinReadPost StdinReadPre SwapExists Syntax TabClosed TabEnter TabLeave TabNew TermChanged TermResponse TextChanged TextChangedI User VimEnter VimLeave VimLeavePre VimResized WinEnter WinLeave WinNew
 
 " Highlight commonly used Groupnames {{{2
-syn keyword vimGroup contained	Comment Constant String Character Number Boolean Float Identifier Function Statement Conditional Repeat Label Operator Keyword Exception PreProc Include Define Macro PreCondit Type StorageClass Structure Typedef Special SpecialChar Tag Delimiter SpecialComment Debug Underlined Ignore Error Todo 
+syn keyword vimGroup contained	Comment Constant String Character Number Boolean Float Identifier Function Statement Conditional Repeat Label Operator Keyword Exception PreProc Include Define Macro PreCondit Type StorageClass Structure Typedef Special SpecialChar Tag Delimiter SpecialComment Debug Underlined Ignore Error Todo
 
 " Default highlighting groups {{{2
-syn keyword vimHLGroup contained	ColorColumn Cursor CursorColumn CursorIM CursorLine CursorLineNr DiffAdd DiffChange DiffDelete DiffText Directory EndOfBuffer ErrorMsg FoldColumn Folded IncSearch LineNr MatchParen Menu ModeMsg MoreMsg NonText Normal Pmenu PmenuSbar PmenuSel PmenuThumb Question QuickFixLine Scrollbar Search SignColumn SpecialKey SpellBad SpellCap SpellLocal SpellRare StatusLine StatusLineNC TabLine TabLineFill TabLineSel Title Tooltip VertSplit Visual VisualNOS WarningMsg WildMenu 
+syn keyword vimHLGroup contained	ColorColumn Cursor CursorColumn CursorIM CursorLine CursorLineNr DiffAdd DiffChange DiffDelete DiffText Directory EndOfBuffer ErrorMsg FoldColumn Folded IncSearch LineNr MatchParen Menu ModeMsg MoreMsg NonText Normal Pmenu PmenuSbar PmenuSel PmenuThumb Question QuickFixLine Scrollbar Search SignColumn SpecialKey SpellBad SpellCap SpellLocal SpellRare StatusLine StatusLineNC TabLine TabLineFill TabLineSel Title Tooltip VertSplit Visual VisualNOS WarningMsg WildMenu
 syn match vimHLGroup contained	"Conceal"
 syn case match
 
@@ -80,52 +80,52 @@ syn case match
 syn keyword vimFuncName contained	abs append argv assert_fails assert_notequal atan browsedir bufname byte2line ceil ch_close ch_getbufnr ch_logfile ch_sendexpr cindent complete_add cos cursor diff_filler eval exepath extend filter floor foldclosed foldtextresult garbagecollect getbufvar getcmdline getcompletion getfperm getline getpos gettabinfo getwinposx glob2regpat haslocaldir histget hostname input inputsave isdirectory job_getchannel job_status js_encode len line2byte log10 mapcheck matcharg matchstr mkdir nr2char pow py3eval readfile remote_expr remote_send repeat screenattr search searchpos setbufvar setline setqflist setwinvar simplify soundfold sqrt strcharpart strftime string strridx submatch synID synstack tabpagebuflist tagfiles tanh term_getattr term_getline term_getstatus term_gettty term_sendkeys term_wait test_feedinput test_null_channel test_null_list test_override timer_pause timer_stopall tr undofile values wildmenumode win_findbuf winheight winline winrestview wordcount
 syn keyword vimFuncName contained	acos argc asin assert_false assert_notmatch atan2 bufexists bufnr byteidx changenr ch_close_in ch_getjob ch_open ch_sendraw clearmatches complete_check cosh deepcopy diff_hlID eventhandler exists feedkeys finddir fmod foldclosedend foreground get getchar getcmdpos getcurpos getfsize getloclist getqflist gettabvar getwinposy globpath hasmapto histnr iconv inputdialog inputsecret islocked job_info job_stop json_decode libcall lispindent luaeval match matchdelete matchstrpos mode or prevnonblank pyeval reltime remote_foreground remote_startserver resolve screenchar searchdecl server2client setcharsearch setloclist setreg sha256 sin spellbadword str2float strchars strgetchar strlen strtrans substitute synIDattr system tabpagenr taglist tempname term_getcursor term_getscrolled term_gettitle term_list term_setsize test_alloc_fail test_garbagecollect_now test_null_dict test_null_partial test_settime timer_start tolower trunc undotree virtcol winbufnr win_getid win_id2tabwin winnr winsaveview writefile
 syn keyword vimFuncName contained	add argidx assert_equal assert_inrange assert_report balloon_show buflisted bufwinid byteidxcomp char2nr ch_evalexpr ch_info ch_read ch_setoptions col confirm count delete empty executable exp filereadable findfile fnameescape foldlevel funcref getbufinfo getcharmod getcmdtype getcwd getftime getmatches getreg gettabwinvar getwinvar has histadd hlexists indent inputlist insert isnan job_setoptions join json_encode libcallnr localtime map matchadd matchend max mzeval pathshorten printf pyxeval reltimefloat remote_peek remove reverse screencol searchpair serverlist setcmdpos setmatches settabvar shellescape sinh spellsuggest str2nr strdisplaywidth stridx strpart strwidth synconcealed synIDtrans systemlist tabpagewinnr tan term_getaltscreen term_getjob term_getsize term_getttty term_scrape term_start test_autochdir test_ignore_error test_null_job test_null_string timer_info timer_stop toupper type uniq visualmode wincol win_gotoid win_id2win winrestcmd winwidth xor
-syn keyword vimFuncName contained	and arglistid assert_exception assert_match assert_true browse bufloaded bufwinnr call ch_canread ch_evalraw ch_log ch_readraw ch_status complete copy cscope_connection did_filetype escape execute expand filewritable float2nr fnamemodify foldtext function getbufline getcharsearch getcmdwintype getfontname getftype getpid getregtype getwininfo glob has_key histdel hlID index inputrestore invert items job_start js_decode keys line log maparg matchaddpos matchlist min nextnonblank perleval pumvisible range reltimestr remote_read rename round screenrow searchpairpos setbufline setfperm setpos settabwinvar shiftwidth sort split 
+syn keyword vimFuncName contained	and arglistid assert_exception assert_match assert_true browse bufloaded bufwinnr call ch_canread ch_evalraw ch_log ch_readraw ch_status complete copy cscope_connection did_filetype escape execute expand filewritable float2nr fnamemodify foldtext function getbufline getcharsearch getcmdwintype getfontname getftype getpid getregtype getwininfo glob has_key histdel hlID index inputrestore invert items job_start js_decode keys line log maparg matchaddpos matchlist min nextnonblank perleval pumvisible range reltimestr remote_read rename round screenrow searchpairpos setbufline setfperm setpos settabwinvar shiftwidth sort split
 
 "--- syntax here and above generated by mkvimvim ---
 " Special Vim Highlighting (not automatic) {{{1
 
 " Set up folding commands
 if exists("g:vimsyn_folding") && g:vimsyn_folding =~# '[aflmpPrt]'
- if g:vimsyn_folding =~# 'a' 
-  com! -nargs=* VimFolda <args> fold 
- else 
-  com! -nargs=* VimFolda <args> 
+ if g:vimsyn_folding =~# 'a'
+  com! -nargs=* VimFolda <args> fold
+ else
+  com! -nargs=* VimFolda <args>
  endif
- if g:vimsyn_folding =~# 'f' 
-  com! -nargs=* VimFoldf <args> fold 
- else 
-  com! -nargs=* VimFoldf <args> 
+ if g:vimsyn_folding =~# 'f'
+  com! -nargs=* VimFoldf <args> fold
+ else
+  com! -nargs=* VimFoldf <args>
  endif
- if g:vimsyn_folding =~# 'l' 
-  com! -nargs=* VimFoldl <args> fold 
- else 
-  com! -nargs=* VimFoldl <args> 
+ if g:vimsyn_folding =~# 'l'
+  com! -nargs=* VimFoldl <args> fold
+ else
+  com! -nargs=* VimFoldl <args>
  endif
- if g:vimsyn_folding =~# 'm' 
-  com! -nargs=* VimFoldm <args> fold 
- else 
-  com! -nargs=* VimFoldm <args> 
+ if g:vimsyn_folding =~# 'm'
+  com! -nargs=* VimFoldm <args> fold
+ else
+  com! -nargs=* VimFoldm <args>
  endif
- if g:vimsyn_folding =~# 'p' 
-  com! -nargs=* VimFoldp <args> fold 
- else 
-  com! -nargs=* VimFoldp <args> 
+ if g:vimsyn_folding =~# 'p'
+  com! -nargs=* VimFoldp <args> fold
+ else
+  com! -nargs=* VimFoldp <args>
  endif
- if g:vimsyn_folding =~# 'P' 
-  com! -nargs=* VimFoldP <args> fold 
- else 
-  com! -nargs=* VimFoldP <args> 
+ if g:vimsyn_folding =~# 'P'
+  com! -nargs=* VimFoldP <args> fold
+ else
+  com! -nargs=* VimFoldP <args>
  endif
- if g:vimsyn_folding =~# 'r' 
-  com! -nargs=* VimFoldr <args> fold 
- else 
-  com! -nargs=* VimFoldr <args> 
+ if g:vimsyn_folding =~# 'r'
+  com! -nargs=* VimFoldr <args> fold
+ else
+  com! -nargs=* VimFoldr <args>
  endif
- if g:vimsyn_folding =~# 't' 
-  com! -nargs=* VimFoldt <args> fold 
- else 
-  com! -nargs=* VimFoldt <args> 
+ if g:vimsyn_folding =~# 't'
+  com! -nargs=* VimFoldt <args> fold
+ else
+  com! -nargs=* VimFoldt <args>
  endif
 else
  com! -nargs=*	VimFolda	<args>
@@ -164,7 +164,7 @@ endif
 syn match vimNumber	"\<\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand
 syn match vimNumber	"-\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\="  skipwhite nextgroup=vimGlobal,vimSubst,vimCommand
 syn match vimNumber	"\<0[xX]\x\+"
-syn match vimNumber	"\%(^\|[^a-zA-Z]\)\zs#\x\{6}"
+syn match vimNumber	"\%(^\|\A\)\zs#\x\{6}"
 
 " All vimCommands are contained by vimIsCommands. {{{2
 syn match vimCmdSep	"[:|]\+"	skipwhite nextgroup=vimAddress,vimAutoCmd,vimIsCommand,vimExtCmd,vimFilter,vimLet,vimMap,vimMark,vimSet,vimSyntax,vimUserCmd
@@ -214,7 +214,7 @@ syn keyword vimAugroupKey contained	aug[
 " Operators: {{{2
 " =========
 syn cluster	vimOperGroup	contains=vimEnvvar,vimFunc,vimFuncVar,vimOper,vimOperParen,vimNumber,vimString,vimRegister,vimContinue
-syn match	vimOper	"\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}"	skipwhite nextgroup=vimString,vimSpecFile
+syn match	vimOper	"\%#=1\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}"	skipwhite nextgroup=vimString,vimSpecFile
 syn match	vimOper	"\(\<is\>\|\<isnot\>\)[?#]\{0,2}"		skipwhite nextgroup=vimString,vimSpecFile
 syn match	vimOper	"||\|&&\|[-+.]"			skipwhite nextgroup=vimString,vimSpecFile
 syn region	vimOperParen 	matchgroup=vimParenSep	start="(" end=")" contains=@vimOperGroup
@@ -321,7 +321,7 @@ syn region	vimSubstPat     contained	mat
 syn region	vimSubstRep4    contained	matchgroup=vimSubstDelim start="\z(.\)" skip="\\\\\|\\\z1" end="\z1" matchgroup=vimNotation end="<[cC][rR]>" contains=@vimSubstRepList	nextgroup=vimSubstFlagErr	oneline
 syn region	vimCollection   contained transparent	start="\\\@<!\[" skip="\\\[" end="\]"	contains=vimCollClass
 syn match	vimCollClassErr contained	"\[:.\{-\}:\]"
-syn match	vimCollClass    contained transparent	"\[:\(alnum\|alpha\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|xdigit\|return\|tab\|escape\|backspace\):\]"
+syn match	vimCollClass    contained transparent	"\%#=1\[:\(alnum\|alpha\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|xdigit\|return\|tab\|escape\|backspace\):\]"
 syn match	vimSubstSubstr  contained	"\\z\=\d"
 syn match	vimSubstTwoBS   contained	"\\\\"
 syn match	vimSubstFlagErr contained	"[^< \t\r|]\+" contains=vimSubstFlags
@@ -394,7 +394,7 @@ syn keyword	vimMap		mapc[lear] smapc[lea
 syn keyword	vimUnmap		cu[nmap] iu[nmap] lu[nmap] nun[map] ou[nmap] sunm[ap] unm[ap] unm[ap] vu[nmap] xu[nmap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs
 syn match	vimMapLhs	contained	"\S\+"			contains=vimNotation,vimCtrlChar skipwhite nextgroup=vimMapRhs
 syn match	vimMapBang	contained	"!"			skipwhite nextgroup=vimMapMod,vimMapLhs
-syn match	vimMapMod	contained	"\c<\(buffer\|expr\|\(local\)\=leader\|nowait\|plug\|script\|sid\|unique\|silent\)\+>" contains=vimMapModKey,vimMapModErr skipwhite nextgroup=vimMapMod,vimMapLhs
+syn match	vimMapMod	contained	"\%#=1\c<\(buffer\|expr\|\(local\)\=leader\|nowait\|plug\|script\|sid\|unique\|silent\)\+>" contains=vimMapModKey,vimMapModErr skipwhite nextgroup=vimMapMod,vimMapLhs
 syn match	vimMapRhs	contained	".*" contains=vimNotation,vimCtrlChar	skipnl nextgroup=vimMapRhsExtend
 syn match	vimMapRhsExtend	contained	"^\s*\\.*$"			contains=vimContinue
 syn case ignore
@@ -416,27 +416,27 @@ syn match	vimMenuBang	"!"	contained skip
 " Angle-Bracket Notation (tnx to Michael Geddes) {{{2
 " ======================
 syn case ignore
-syn match	vimNotation	"\(\\\|<lt>\)\=<\([scamd]-\)\{0,4}x\=\(f\d\{1,2}\|[^ \t:]\|cr\|lf\|linefeed\|return\|k\=del\%[ete]\|bs\|backspace\|tab\|esc\|right\|left\|help\|undo\|insert\|ins\|k\=home\|k\=end\|kplus\|kminus\|kdivide\|kmultiply\|kenter\|kpoint\|space\|k\=\(page\)\=\(\|down\|up\|k\d\>\)\)>" contains=vimBracket
-syn match	vimNotation	"\(\\\|<lt>\)\=<\([scam2-4]-\)\{0,4}\(right\|left\|middle\)\(mouse\)\=\(drag\|release\)\=>"	contains=vimBracket
-syn match	vimNotation	"\(\\\|<lt>\)\=<\(bslash\|plug\|sid\|space\|bar\|nop\|nul\|lt\)>"		contains=vimBracket
-syn match	vimNotation	'\(\\\|<lt>\)\=<C-R>[0-9a-z"%#:.\-=]'he=e-1			contains=vimBracket
-syn match	vimNotation	'\(\\\|<lt>\)\=<\%(q-\)\=\(line[12]\|count\|bang\|reg\|args\|mods\|f-args\|f-mods\|lt\)>'	contains=vimBracket
-syn match	vimNotation	"\(\\\|<lt>\)\=<\([cas]file\|abuf\|amatch\|cword\|cWORD\|client\)>"		contains=vimBracket
+syn match	vimNotation	"\%#=1\(\\\|<lt>\)\=<\([scamd]-\)\{0,4}x\=\(f\d\{1,2}\|[^ \t:]\|cr\|lf\|linefeed\|return\|k\=del\%[ete]\|bs\|backspace\|tab\|esc\|right\|left\|help\|undo\|insert\|ins\|k\=home\|k\=end\|kplus\|kminus\|kdivide\|kmultiply\|kenter\|kpoint\|space\|k\=\(page\)\=\(\|down\|up\|k\d\>\)\)>" contains=vimBracket
+syn match	vimNotation	"\%#=1\(\\\|<lt>\)\=<\([scam2-4]-\)\{0,4}\(right\|left\|middle\)\(mouse\)\=\(drag\|release\)\=>"	contains=vimBracket
+syn match	vimNotation	"\%#=1\(\\\|<lt>\)\=<\(bslash\|plug\|sid\|space\|bar\|nop\|nul\|lt\)>"			contains=vimBracket
+syn match	vimNotation	'\(\\\|<lt>\)\=<C-R>[0-9a-z"%#:.\-=]'he=e-1				contains=vimBracket
+syn match	vimNotation	'\%#=1\(\\\|<lt>\)\=<\%(q-\)\=\(line[12]\|count\|bang\|reg\|args\|mods\|f-args\|f-mods\|lt\)>'	contains=vimBracket
+syn match	vimNotation	"\%#=1\(\\\|<lt>\)\=<\([cas]file\|abuf\|amatch\|cword\|cWORD\|client\)>"		contains=vimBracket
 syn match	vimBracket contained	"[\\<>]"
 syn case match
 
 " User Function Highlighting {{{2
 " (following Gautam Iyer's suggestion)
 " ==========================
-syn match vimFunc		"\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%([a-zA-Z0-9_]\+\.\)*\I[a-zA-Z0-9_.]*\)\ze\s*("		contains=vimFuncName,vimUserFunc,vimExecute
-syn match vimUserFunc contained	"\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%([a-zA-Z0-9_]\+\.\)*\I[a-zA-Z0-9_.]*\)\|\<\u[a-zA-Z0-9.]*\>\|\<if\>"	contains=vimNotation
+syn match vimFunc		"\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%(\w\+\.\)*\I[a-zA-Z0-9_.]*\)\ze\s*("		contains=vimFuncName,vimUserFunc,vimExecute
+syn match vimUserFunc contained	"\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%(\w\+\.\)*\I[a-zA-Z0-9_.]*\)\|\<\u[a-zA-Z0-9.]*\>\|\<if\>"	contains=vimNotation
 syn match vimNotFunc	"\<if\>\|\<el\%[seif]\>\|\<return\>\|\<while\>"
 
 " Errors And Warnings: {{{2
 " ====================
 if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimfunctionerror")
  syn match	vimFunctionError	"\s\zs[a-z0-9]\i\{-}\ze\s*("			contained contains=vimFuncKey,vimFuncBlank
-" syn match	vimFunctionError	"\s\zs\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)[0-9]\i\{-}\ze\s*("	contained contains=vimFuncKey,vimFuncBlank
+" syn match	vimFunctionError	"\s\zs\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\d\i\{-}\ze\s*("	contained contains=vimFuncKey,vimFuncBlank
  syn match	vimElseIfErr	"\<else\s\+if\>"
  syn match	vimBufnrWarn	/\<bufnr\s*(\s*["']\.['"]\s*)/
 endif
@@ -493,14 +493,14 @@ syn cluster vimFuncBodyList add=vimSynTy
 syn cluster	vimSynKeyGroup	contains=vimSynNextgroup,vimSynKeyOpt,vimSynKeyContainedin
 syn keyword	vimSynType	contained	keyword	skipwhite nextgroup=vimSynKeyRegion
 syn region	vimSynKeyRegion	contained oneline keepend	matchgroup=vimGroupName start="\h\w*" skip="\\\\\|\\|" matchgroup=vimSep end="|\|$" contains=@vimSynKeyGroup
-syn match	vimSynKeyOpt	contained	"\<\(conceal\|contained\|transparent\|skipempty\|skipwhite\|skipnl\)\>"
+syn match	vimSynKeyOpt	contained	"\%#=1\<\(conceal\|contained\|transparent\|skipempty\|skipwhite\|skipnl\)\>"
 syn cluster vimFuncBodyList add=vimSynType
 
 " Syntax: match {{{2
 syn cluster	vimSynMtchGroup	contains=vimMtchComment,vimSynContains,vimSynError,vimSynMtchOpt,vimSynNextgroup,vimSynRegPat,vimNotation
 syn keyword	vimSynType	contained	match	skipwhite nextgroup=vimSynMatchRegion
 syn region	vimSynMatchRegion	contained keepend	matchgroup=vimGroupName start="\h\w*" matchgroup=vimSep end="|\|$" contains=@vimSynMtchGroup
-syn match	vimSynMtchOpt	contained	"\<\(conceal\|transparent\|contained\|excludenl\|keepend\|skipempty\|skipwhite\|display\|extend\|skipnl\|fold\)\>"
+syn match	vimSynMtchOpt	contained	"\%#=1\<\(conceal\|transparent\|contained\|excludenl\|keepend\|skipempty\|skipwhite\|display\|extend\|skipnl\|fold\)\>"
 if has("conceal")
  syn match	vimSynMtchOpt	contained	"\<cchar="	nextgroup=vimSynMtchCchar
  syn match	vimSynMtchCchar	contained	"\S"
@@ -515,12 +515,12 @@ syn cluster	vimSynRegPatGroup	contains=v
 syn cluster	vimSynRegGroup	contains=vimSynContains,vimSynNextgroup,vimSynRegOpt,vimSynReg,vimSynMtchGrp
 syn keyword	vimSynType	contained	region	skipwhite nextgroup=vimSynRegion
 syn region	vimSynRegion	contained keepend	matchgroup=vimGroupName start="\h\w*" skip="\\\\\|\\|" end="|\|$" contains=@vimSynRegGroup
-syn match	vimSynRegOpt	contained	"\<\(conceal\(ends\)\=\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|keepend\|oneline\|extend\|skipnl\|fold\)\>"
+syn match	vimSynRegOpt	contained	"\%#=1\<\(conceal\(ends\)\=\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|keepend\|oneline\|extend\|skipnl\|fold\)\>"
 syn match	vimSynReg	contained	"\(start\|skip\|end\)="he=e-1	nextgroup=vimSynRegPat
 syn match	vimSynMtchGrp	contained	"matchgroup="	nextgroup=vimGroup,vimHLGroup
 syn region	vimSynRegPat	contained extend	start="\z([-`~!@#$%^&*_=+;:'",./?]\)"  skip="\\\\\|\\\z1"  end="\z1"  contains=@vimSynRegPatGroup skipwhite nextgroup=vimSynPatMod,vimSynReg
-syn match	vimSynPatMod	contained	"\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\="
-syn match	vimSynPatMod	contained	"\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\=," nextgroup=vimSynPatMod
+syn match	vimSynPatMod	contained	"\%#=1\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\="
+syn match	vimSynPatMod	contained	"\%#=1\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\=," nextgroup=vimSynPatMod
 syn match	vimSynPatMod	contained	"lc=\d\+"
 syn match	vimSynPatMod	contained	"lc=\d\+," nextgroup=vimSynPatMod
 syn region	vimSynPatRange	contained	start="\["	skip="\\\\\|\\]"   end="]"
@@ -553,7 +553,7 @@ syn match	vimIsCommand	"<Bar>\s*\a\+"	tr
 " ============
 syn cluster	vimHighlightCluster		contains=vimHiLink,vimHiClear,vimHiKeyList,vimComment
 if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimhictermerror")
- syn match	vimHiCtermError	contained	"[^0-9]\i*"
+ syn match	vimHiCtermError	contained	"\D\i*"
 endif
 syn match	vimHighlight	"\<hi\%[ghlight]\>"	skipwhite nextgroup=vimHiBang,@vimHighlightCluster
 syn match	vimHiBang	contained	"!"	skipwhite nextgroup=@vimHighlightCluster
@@ -645,6 +645,7 @@ if !filereadable(s:luapath)
 endif
 if (g:vimsyn_embed =~# 'l' && has("lua")) && filereadable(s:luapath)
  unlet! b:current_syntax
+ syn cluster vimFuncBodyList	add=vimLuaRegion
  exe "syn include @vimLuaScript ".s:luapath
  VimFoldl syn region vimLuaRegion matchgroup=vimScriptDelim start=+lua\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimLuaScript
  VimFoldl syn region vimLuaRegion matchgroup=vimScriptDelim start=+lua\s*<<\s*$+ end=+\.$+		contains=@vimLuaScript
@@ -667,6 +668,7 @@ if !filereadable(s:perlpath)
 endif
 if (g:vimsyn_embed =~# 'p' && has("perl")) && filereadable(s:perlpath)
  unlet! b:current_syntax
+ syn cluster vimFuncBodyList	add=vimPerlRegion
  exe "syn include @vimPerlScript ".s:perlpath
  VimFoldp syn region vimPerlRegion  matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimPerlScript
  VimFoldp syn region vimPerlRegion	matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+	contains=@vimPerlScript
@@ -688,6 +690,7 @@ if !filereadable(s:rubypath)
  endfor
 endif
 if (g:vimsyn_embed =~# 'r' && has("ruby")) && filereadable(s:rubypath)
+ syn cluster vimFuncBodyList	add=vimRubyRegion
  unlet! b:current_syntax
  exe "syn include @vimRubyScript ".s:rubypath
  VimFoldr syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimRubyScript
@@ -709,12 +712,13 @@ if !filereadable(s:pythonpath)
   endif
  endfor
 endif
-if g:vimsyn_embed =~# 'P' && (has("python") || has("python3")) && filereadable(s:pythonpath)
+if g:vimsyn_embed =~# 'P' && has("pythonx") && filereadable(s:pythonpath)
  unlet! b:current_syntax
+ syn cluster vimFuncBodyList	add=vimPythonRegion
  exe "syn include @vimPythonScript ".s:pythonpath
  VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimPythonScript
  VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*$+ end=+\.$+		contains=@vimPythonScript
- VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+Py\%[thon]2or3\s*<<\s*\z(.*\)$+ end=+^\z1$+		contains=@vimPythonScript
+ VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+Py\%[thon]2or3\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimPythonScript
  VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+Py\%[thon]2or3\=\s*<<\s*$+ end=+\.$+		contains=@vimPythonScript
  syn cluster vimFuncBodyList	add=vimPythonRegion
 else
@@ -742,6 +746,7 @@ if s:trytcl
  endif
  if (g:vimsyn_embed =~# 't' && has("tcl")) && filereadable(s:tclpath)
   unlet! b:current_syntax
+  syn cluster vimFuncBodyList	add=vimTclRegion
   exe "syn include @vimTclScript ".s:tclpath
   VimFoldt syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimTclScript
   VimFoldt syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+	contains=@vimTclScript
@@ -770,6 +775,7 @@ endif
 if (g:vimsyn_embed =~# 'm' && has("mzscheme")) && filereadable(s:mzschemepath)
  unlet! b:current_syntax
  let s:iskKeep= &isk
+ syn cluster vimFuncBodyList	add=vimMzSchemeRegion
  exe "syn include @vimMzSchemeScript ".s:mzschemepath
  let &isk= s:iskKeep
  unlet s:iskKeep
--- a/runtime/tools/shtags.pl
+++ b/runtime/tools/shtags.pl
@@ -3,10 +3,11 @@
 # shtags: create a tags file for perl scripts
 #
 # Author:	Stephen Riehm
-# Last Changed:	96/11/27 19:46:06
+# Updated by: David Woodfall <dave@dawoodfall.net>
+# Last Changed:	2018/04/02
 #
-# "@(#) shtags 1.1 by S. Riehm"
-#
+
+use Getopt::Std;
 
 # obvious... :-)
 sub usage
@@ -30,7 +31,7 @@ sub version
     #
     # Version information
     #
-    @id = split( ', ', 'scripts/bin/shtags, /usr/local/, LOCAL_SCRIPTS, 1.1, 96/11/27, 19:46:06' );
+    @id = split( ', ', 'scripts/bin/shtags, /usr/local/, LOCAL_SCRIPTS, 1.2, 18/04/02, 07:37' );
     $id[0] =~ s,.*/,,;
     print <<_EOVERS;
 $id[0]:		$id[3]
@@ -45,12 +46,11 @@ Release:	$id[2]
 # initialisations
 #
 ($program = $0) =~ s,.*/,,;
-require 'getopts.pl';
 
 #
 # parse command line
 #
-&Getopts( "t:s:vVwx" ) || &usage();
+getopts( "t:s:vVwx" ) || &usage();
 $tags_file = $opt_t || 'tags';
 $explicit = $opt_x;
 $variable_tags = $opt_v;