updated for version 7.0004
diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index bfad112..157eb56 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	Vim 6.3 script
 " Maintainer:	Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change:	May 25, 2004
-" Version:	6.3-04
+" Last Change:	Jul 01, 2004
+" Version:	6.3-05
 " Automatically generated keyword lists: {{{1
 
 " Quit when a syntax file was already loaded {{{2
@@ -57,53 +57,60 @@
 syn keyword vimFuncName contained	append argc argidx argv browse bufexists buflisted bufloaded bufname bufnr bufwinnr byte2line char2nr cindent col confirm cscope_connection cursor delete did_filetype escape eventhandler executable exists expand filereadable filewritable fnamemodify foldclosed foldclosedend foldlevel foldtext foreground function getbufvar getchar getcharmod getcmdline getcmdpos getcwd getfsize getftime getline getreg getregtype getwinposx getwinposy getwinvar glob globpath has hasmapto histadd histdel histget histnr hlexists hlID hostname iconv indent input inputdialog inputrestore inputsave inputsecret isdirectory libcall libcallnr line line2byte lispindent localtime maparg mapcheck match matchend matchstr mode nextnonblank nr2char prevnonblank remote_expr remote_foreground remote_peek remote_read remote_send rename resolve search searchpair server2client serverlist setbufvar setcmdpos setline setreg setwinvar simplify strftime stridx strlen strpart strridx strtrans submatch substitute synID synIDattr synIDtrans system tempname tolower toupper type virtcol visualmode winbufnr wincol winheight winline winnr winrestcmd winwidth
 
 "--- syntax above generated by mkvimvim ---
+" Special Vim Highlighting (not automatic) {{{1
 
-" Special Vim Highlighting {{{1
-
-" Numbers {{{1
+" Numbers {{{2
 " =======
 syn match vimNumber	"\<\d\+\([lL]\|\.\d\+\)\="
 syn match vimNumber	"-\d\+\([lL]\|\.\d\+\)\="
 syn match vimNumber	"\<0[xX]\x\+"
 syn match vimNumber	"#\x\{6}"
 
-" All vimCommands are contained by vimIsCommands. {{{1
+" All vimCommands are contained by vimIsCommands. {{{2
 syn match vimCmdSep	"[:|]\+"	skipwhite nextgroup=vimAddress,vimAutoCmd,vimCommand,vimExtCmd,vimFilter,vimLet,vimMap,vimMark,vimSet,vimSyntax,vimUserCmd
 syn match vimIsCommand	"\<\a\+\>"	contains=vimCommand
 syn match vimVar		"\<[bwglsav]:\K\k*\>"
 syn match vimVar contained	"\<\K\k*\>"
 
-" Insertions And Appends: insert append {{{1
+" Insertions And Appends: insert append {{{2
 " =======================
 syn region vimInsert	matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=a\%[ppend]$"	matchgroup=vimCommand end="^\.$""
 syn region vimInsert	matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=c\%[hange]$"	matchgroup=vimCommand end="^\.$""
 syn region vimInsert	matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=i\%[nsert]$"	matchgroup=vimCommand end="^\.$""
 
-" Behave! {{{1
+" Behave! {{{2
 " =======
 syn match   vimBehave	"\<be\%[have]\>" skipwhite nextgroup=vimBehaveModel,vimBehaveError
 syn keyword vimBehaveModel contained	mswin	xterm
-syn match   vimBehaveError contained	"[^ ]\+"
+if !exists("g:vimsyntax_noerror")
+ syn match   vimBehaveError contained	"[^ ]\+"
+endif
 
-" Filetypes {{{1
+" Filetypes {{{2
 " =========
 syn match   vimFiletype	"\<filet\%[ype]\(\s\+\I\i*\)*\(|\|$\)"	skipwhite contains=vimFTCmd,vimFTOption,vimFTError
-syn match   vimFTError  contained	"\I\i*"
+if !exists("g:vimsyntax_noerror")
+ syn match   vimFTError  contained	"\I\i*"
+endif
 syn keyword vimFTCmd    contained	filet[ype]
 syn keyword vimFTOption contained	detect indent off on plugin
 
-" Augroup : vimAugroupError removed because long augroups caused sync'ing problems. {{{1
+" Augroup : vimAugroupError removed because long augroups caused sync'ing problems. {{{2
 " ======= : Trade-off: Increasing synclines with slower editing vs augroup END error checking.
 syn cluster vimAugroupList	contains=vimIsCommand,vimFunction,vimFunctionError,vimLineComment,vimSpecFile,vimOper,vimNumber,vimComment,vimString,vimSubst,vimMark,vimRegister,vimAddress,vimFilter,vimCmplxRepeat,vimComment,vimLet,vimSet,vimAutoCmd,vimRegion,vimSynLine,vimNotation,vimCtrlChar,vimFuncVar,vimContinue
 syn region  vimAugroup	start="\<aug\%[roup]\>\s\+\K\k*" end="\<aug\%[roup]\>\s\+[eE][nN][dD]\>"	contains=vimAugroupKey,vimAutoCmd,@vimAugroupList keepend
-syn match   vimAugroupError	"\<aug\%[roup]\>\s\+[eE][nN][dD]\>"
+if !exists("g:vimsyntax_noerror")
+ syn match   vimAugroupError	"\<aug\%[roup]\>\s\+[eE][nN][dD]\>"
+endif
 syn keyword vimAugroupKey contained	aug[roup]
 
-" Functions : Tag is provided for those who wish to highlight tagged functions {{{1
+" Functions : Tag is provided for those who wish to highlight tagged functions {{{2
 " =========
 syn cluster vimFuncList	contains=vimFuncKey,Tag,vimFuncSID
 syn cluster vimFuncBodyList	contains=vimIsCommand,vimFunction,vimFunctionError,vimFuncBody,vimLineComment,vimSpecFile,vimOper,vimNumber,vimComment,vimString,vimSubst,vimMark,vimRegister,vimAddress,vimFilter,vimCmplxRepeat,vimComment,vimLet,vimSet,vimAutoCmd,vimRegion,vimSynLine,vimNotation,vimCtrlChar,vimFuncVar,vimContinue
-syn match   vimFunctionError	"\<fu\%[nction]!\=\s\+\zs\U\i\{-}\ze\s*("                	contains=vimFuncKey,vimFuncBlank nextgroup=vimFuncBody
+if !exists("g:vimsyntax_noerror")
+ syn match   vimFunctionError	"\<fu\%[nction]!\=\s\+\zs\U\i\{-}\ze\s*("                	contains=vimFuncKey,vimFuncBlank nextgroup=vimFuncBody
+endif
 syn match   vimFunction	"\<fu\%[nction]!\=\s\+\(<[sS][iI][dD]>\|[Ss]:\|\u\)\i*\ze\s*("	contains=@vimFuncList nextgroup=vimFuncBody
 syn region  vimFuncBody  contained	start=")"	end="\<endf\%[unction]"		contains=@vimFuncBodyList
 syn match   vimFuncVar   contained	"a:\(\I\i*\|\d\+\)"
@@ -111,17 +118,20 @@
 syn keyword vimFuncKey   contained	fu[nction]
 syn match   vimFuncBlank contained	"\s\+"
 
-syn keyword vimPattern  contained	start	skip	end
+syn keyword vimPattern   contained	start	skip	end
 
-" Operators: {{{1
+" Operators: {{{2
 " =========
-syn cluster vimOperGroup	contains=vimOper,vimOperParen,vimNumber,vimString
-syn match  vimOper                 	"\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}"	skipwhite nextgroup=vimString,vimSpecFile
-syn match  vimOper                 	"||\|&&\|[-+.]"	skipwhite nextgroup=vimString,vimSpecFile
-syn region vimOperParen	matchgroup=vimOper start="(" end=")" contains=@vimOperGroup
-syn match  vimOperError	")"
+syn cluster vimOperGroup	contains=vimOper,vimOperParen,vimNumber,vimString,vimOperOk
+syn match  vimOper	"\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}"	skipwhite nextgroup=vimString,vimSpecFile
+syn match  vimOper	"||\|&&\|[-+.]"	skipwhite nextgroup=vimString,vimSpecFile
+syn region vimOperParen oneline	matchgroup=vimOper start="(" end=")" contains=@vimOperGroup
+syn match  vimOperOk	"\<[aiAIrR][()]"
+if !exists("g:vimsyntax_noerror")
+ syn match  vimOperError	")"
+endif
 
-" Special Filenames, Modifiers, Extension Removal: {{{1
+" Special Filenames, Modifiers, Extension Removal: {{{2
 " ===============================================
 syn match vimSpecFile	"<c\(word\|WORD\)>"	nextgroup=vimSpecFileMod,vimSubst
 syn match vimSpecFile	"<\([acs]file\|amatch\|abuf\)>"	nextgroup=vimSpecFileMod,vimSubst
@@ -131,7 +141,7 @@
 syn match vimSpecFile	"#\d\+\|[#%]<\>"	nextgroup=vimSpecFileMod,vimSubst
 syn match vimSpecFileMod	"\(:[phtre]\)\+"	contained
 
-" User-Specified Commands: {{{1
+" User-Specified Commands: {{{2
 " =======================
 syn cluster vimUserCmdList	contains=vimAddress,vimSyntax,vimHighlight,vimAutoCmd,vimCmplxRepeat,vimComment,vimCtrlChar,vimEscapeBrace,vimFilter,vimFunc,vimFunction,vimIsCommand,vimMark,vimNotation,vimNumber,vimOper,vimRegion,vimRegister,vimLet,vimSet,vimSetEqual,vimSetString,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange,vimSynLine
 syn keyword vimUserCommand	contained	com[mand]
@@ -143,30 +153,34 @@
 syn match   vimUserAttrb	contained	"-bang\=\>"	contains=vimOper,vimUserAttrbKey
 syn match   vimUserAttrb	contained	"-bar\>"	contains=vimOper,vimUserAttrbKey
 syn match   vimUserAttrb	contained	"-re\%[gister]\>"	contains=vimOper,vimUserAttrbKey
-syn match   vimUserCmdError	contained	"\S\+\>"
+if !exists("g:vimsyntax_noerror")
+ syn match   vimUserCmdError	contained	"\S\+\>"
+endif
 syn case ignore
 syn keyword vimUserAttrbKey   contained	bar	ban[g]	cou[nt]	ra[nge] com[plete]	n[args]	re[gister]
 syn keyword vimUserAttrbCmplt contained	augroup buffer command dir environment event expression file function help highlight mapping menu option tag tag_listfiles var
 syn case match
 syn match   vimUserAttrbCmplt contained	"custom,\u\w*"
 
-" Errors: {{{1
+" Errors: {{{2
 " ======
-syn match  vimElseIfErr	"\<else\s\+if\>"
+if !exists("g:vimsyntax_noerror")
+ syn match  vimElseIfErr	"\<else\s\+if\>"
+endif
 
-" Lower Priority Comments: after some vim commands... {{{1
+" Lower Priority Comments: after some vim commands... {{{2
 " =======================
 syn match  vimComment	excludenl +\s"[^\-:.%#=*].*$+lc=1	contains=@vimCommentGroup,vimCommentString
 syn match  vimComment	+\<endif\s\+".*$+lc=5	contains=@vimCommentGroup,vimCommentString
 syn match  vimComment	+\<else\s\+".*$+lc=4	contains=@vimCommentGroup,vimCommentString
 syn region vimCommentString	contained oneline start='\S\s\+"'ms=s+1	end='"'
 
-" Environment Variables: {{{1
+" Environment Variables: {{{2
 " =====================
 syn match vimEnvvar	"\$\I\i*"
 syn match vimEnvvar	"\${\I\i*}"
 
-" In-String Specials: {{{1
+" In-String Specials: {{{2
 " Try to catch strings, if nothing else matches (therefore it must precede the others!)
 "  vimEscapeBrace handles ["]  []"] (ie. "s don't terminate string inside [])
 syn region vimEscapeBrace	oneline contained transparent	start="[^\\]\(\\\\\)*\[\^\=\]\=" skip="\\\\\|\\\]" end="\]"me=e-1
@@ -181,12 +195,11 @@
 syn region vimString	oneline keepend	start=+[^:a-zA-Z>!\\]'+lc=1 end=+'+	contains=@vimStringGroup
 syn region vimString	oneline	start=+=!+lc=1	skip=+\\\\\|\\!+ end=+!+	contains=@vimStringGroup
 syn region vimString	oneline	start="=+"lc=1	skip="\\\\\|\\+" end="+"	contains=@vimStringGroup
-syn region vimString	oneline	start="[^\\]+\s*[^a-zA-Z0-9. \t]"lc=1 skip="\\\\\|\\+" end="+"	contains=@vimStringGroup
 syn region vimString	oneline	start="\s/\s*\A"lc=1 skip="\\\\\|\\+" end="/"	contains=@vimStringGroup
 syn match  vimString	contained	+"[^"]*\\$+	skipnl nextgroup=vimStringCont
 syn match  vimStringCont	contained	+\(\\\\\|.\)\{-}[^\\]"+
 
-" Substitutions: {{{1
+" Substitutions: {{{2
 " =============
 syn cluster vimSubstList	contains=vimPatSep,vimPatRegion,vimPatSepErr,vimSubstTwoBS,vimSubstRange,vimNotation
 syn cluster vimSubstRepList	contains=vimSubstSubstr,vimSubstTwoBS,vimNotation
@@ -205,10 +218,10 @@
 syn match   vimSubstFlagErr contained	"[^< \t\r]\+" contains=vimSubstFlags
 syn match   vimSubstFlags   contained	"[&cegiIpr]\+"
 
-" 'String': {{{1
+" 'String': {{{2
 syn match  vimString	"[^(,]'[^']\{-}'"lc=1	contains=@vimStringGroup
 
-" Marks, Registers, Addresses, Filters: {{{1
+" Marks, Registers, Addresses, Filters: {{{2
 syn match  vimMark	"'[a-zA-Z0-9]\ze[-+,!]"	nextgroup=vimOper,vimMarkNumber,vimSubst
 syn match  vimMark	"'[<>]\ze[-+,!]"		nextgroup=vimOper,vimMarkNumber,vimSubst
 syn match  vimMark	",\zs'[<>]\ze"		nextgroup=vimOper,vimMarkNumber,vimSubst
@@ -220,6 +233,7 @@
 syn match  vimRegister	'[^(,;.]"[a-zA-Z0-9.%#:_\-/][^a-zA-Z_"]'lc=1,me=e-1
 syn match  vimRegister	'\<norm\s\+"[a-zA-Z0-9]'lc=5
 syn match  vimRegister	'\<normal\s\+"[a-zA-Z0-9]'lc=7
+syn match  vimRegister	'@"'
 syn match  vimPlainRegister contained	'"[a-zA-Z0-9\-:.%#*+=]'
 
 syn match  vimAddress	",[.$]"lc=1	skipwhite nextgroup=vimSubst1
@@ -228,29 +242,29 @@
 syn match  vimFilter contained	"^!.\{-}\(|\|$\)"		contains=vimSpecFile
 syn match  vimFilter contained	"\A!.\{-}\(|\|$\)"ms=s+1	contains=vimSpecFile
 
-" Complex repeats (:h complex-repeat) {{{1
+" Complex repeats (:h complex-repeat) {{{2
 syn match  vimCmplxRepeat	'[^a-zA-Z_/\\]q[0-9a-zA-Z"]'lc=1
 syn match  vimCmplxRepeat	'@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\)'
 
-" Set command and associated set-options (vimOptions) with comment {{{1
+" Set command and associated set-options (vimOptions) with comment {{{2
 syn region vimSet		matchgroup=vimCommand start="\<setlocal\|set\>" end="|"me=e-1 end="$" matchgroup=vimNotation end="<[cC][rR]>" keepend contains=vimSetEqual,vimOption,vimErrSetting,vimComment,vimSetString,vimSetMod
 syn region vimSetEqual  contained	start="="	skip="\\\\\|\\\s" end="[| \t]\|$"me=e-1 contains=vimCtrlChar,vimSetSep,vimNotation
 syn region vimSetString contained	start=+="+hs=s+1	skip=+\\\\\|\\"+  end=+"+	contains=vimCtrlChar
 syn match  vimSetSep    contained	"[,:]"
 syn match  vimSetMod	contained	"&vim\|[!&]\|all&"
 
-" Let {{{1
+" Let {{{2
 " ===
 syn keyword vimLet	let	unl[et]	skipwhite nextgroup=vimVar
 
-" Autocmd {{{1
+" Autocmd {{{2
 " =======
 syn match   vimAutoEventList	contained	"\(!\s\+\)\=\(\a\+,\)*\a\+"	contains=vimAutoEvent nextgroup=vimAutoCmdSpace
 syn match   vimAutoCmdSpace	contained	"\s\+"	nextgroup=vimAutoCmdSfxList
 syn match   vimAutoCmdSfxList	contained	"\S*"
 syn keyword vimAutoCmd	au[tocmd] do[autocmd] doautoa[ll]	skipwhite nextgroup=vimAutoEventList
 
-" Echo and Execute -- prefer strings! {{{1
+" Echo and Execute -- prefer strings! {{{2
 " ================
 syn region  vimEcho	oneline excludenl matchgroup=vimCommand start="\<ec\%[ho]\>" skip="\(\\\\\)*\\|" end="$\||" contains=vimFunc,vimString,varVar
 syn region  vimExecute	oneline excludenl matchgroup=vimCommand start="\<exe\%[cute]\>" skip="\(\\\\\)*\\|" end="$\||\|<[cC][rR]>" contains=vimIsCommand,vimString,vimOper,vimVar,vimNotation
@@ -259,7 +273,7 @@
 syn keyword vimEchoHLNone	none
 syn case match
 
-" Maps {{{1
+" Maps {{{2
 " ====
 syn cluster vimMapGroup	contains=vimMapBang,vimMapLhs,vimMapMod
 syn keyword vimMap	cm[ap] cno[remap] im[ap] ino[remap] map nm[ap] nn[oremap] no[remap] om[ap] ono[remap] vm[ap] vn[oremap] skipwhite nextgroup=@vimMapGroup
@@ -270,7 +284,7 @@
 syn keyword vimMapModKey contained	buffer	leader	localleader	plug	script	sid	silent	unique
 syn case match
 
-" Menus {{{1
+" Menus {{{2
 " =====
 syn cluster vimMenuList contains=vimMenuBang,vimMenuPriority,vimMenuName,vimMenuMod
 syn keyword vimCommand	am[enu] an[oremenu] aun[menu] cme[nu] cnoreme[nu] cunme[nu] ime[nu] inoreme[nu] iunme[nu] me[nu] nme[nu] nnoreme[nu] noreme[nu] nunme[nu] ome[nu] onoreme[nu] ounme[nu] unme[nu] vme[nu] vnoreme[nu] vunme[nu] skipwhite nextgroup=@vimMenuList
@@ -282,7 +296,7 @@
 syn match   vimMenuRhs	".*$"	contained contains=vimString,vimComment,vimIsCommand
 syn match   vimMenuBang	"!"	contained skipwhite nextgroup=@vimMenuList
 
-" Angle-Bracket Notation (tnx to Michael Geddes) {{{1
+" Angle-Bracket Notation (tnx to Michael Geddes) {{{2
 " ======================
 syn case ignore
 syn match vimNotation	"\(\\\|<lt>\)\=<\([scam]-\)\{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\|space\|k\=\(page\)\=\(\|down\|up\)\)>" contains=vimBracket
@@ -294,18 +308,21 @@
 syn match vimBracket contained	"[\\<>]"
 syn case match
 
-" User Function Highlighting (following Gautam Iyer's suggestion)
+" User Function Highlighting (following Gautam Iyer's suggestion) {{{2
 " ==========================
-syn match vimFunc	"\%([sS]:\|<[sS][iI][dD]>\)\=\I\i*\ze\s*("		contains=vimUserFunc,vimFuncName
-syn match vimUserFunc "\%([sS]:\|<[sS][iI][dD]>\)\i\+\|\<\u\i*\>\|\<if\>"	contained contains=vimNotation,vimCommand
+syn match vimFunc		"\%([sS]:\|<[sS][iI][dD]>\)\=\I\i*\ze\s*("	contains=vimUserFunc,vimFuncName,vimCommand,vimNotFunc
+syn match vimUserFunc contained	"\%([sS]:\|<[sS][iI][dD]>\)\i\+\|\<\u\i*\>\|\<if\>"	contains=vimNotation,vimCommand
+syn match vimNotFunc  contained	"\<[aiAIrR]("
 
-" Syntax {{{1
+" Syntax {{{2
 "=======
 syn match   vimGroupList	contained	"@\=[^ \t,]*"	contains=vimGroupSpecial,vimPatSep
 syn match   vimGroupList	contained	"@\=[^ \t,]*,"	nextgroup=vimGroupList contains=vimGroupSpecial,vimPatSep
 syn keyword vimGroupSpecial	contained	ALL	ALLBUT
-syn match   vimSynError	contained	"\i\+"
-syn match   vimSynError	contained	"\i\+="	nextgroup=vimGroupList
+if !exists("g:vimsyntax_noerror")
+ syn match   vimSynError	contained	"\i\+"
+ syn match   vimSynError	contained	"\i\+="	nextgroup=vimGroupList
+endif
 syn match   vimSynContains	contained	"\<contain\(s\|edin\)="	nextgroup=vimGroupList
 syn match   vimSynKeyContainedin	contained	"\<containedin="	nextgroup=vimGroupList
 syn match   vimSynNextgroup	contained	"nextgroup="	nextgroup=vimGroupList
@@ -313,30 +330,32 @@
 syn match   vimSyntax	"\<sy\%[ntax]\>"	contains=vimCommand skipwhite nextgroup=vimSynType,vimComment
 syn match   vimAuSyntax	contained	"\s+sy\%[ntax]"	contains=vimCommand skipwhite nextgroup=vimSynType,vimComment
 
-" Syntax: case {{{1
+" Syntax: case {{{2
 syn keyword vimSynType	contained	case	skipwhite nextgroup=vimSynCase,vimSynCaseError
-syn match   vimSynCaseError	contained	"\i\+"
+if !exists("g:vimsyntax_noerror")
+ syn match   vimSynCaseError	contained	"\i\+"
+endif
 syn keyword vimSynCase	contained	ignore	match
 
-" Syntax: clear {{{1
+" Syntax: clear {{{2
 syn keyword vimSynType	contained	clear	skipwhite nextgroup=vimGroupList
 
-" Syntax: cluster {{{1
+" Syntax: cluster {{{2
 syn keyword vimSynType	contained	cluster	skipwhite nextgroup=vimClusterName
 syn region  vimClusterName	contained	matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" matchgroup=vimSep end="$\||" contains=vimGroupAdd,vimGroupRem,vimSynContains,vimSynError
 syn match   vimGroupAdd	contained	"add="	nextgroup=vimGroupList
 syn match   vimGroupRem	contained	"remove="	nextgroup=vimGroupList
 
-" Syntax: include {{{1
+" Syntax: include {{{2
 syn keyword vimSynType	contained	include	skipwhite nextgroup=vimGroupList
 
-" Syntax: keyword {{{1
+" Syntax: keyword {{{2
 syn cluster vimSynKeyGroup	contains=vimSynNextgroup,vimSynKeyOpt,vimSynKeyContainedin
 syn keyword vimSynType	contained	keyword	skipwhite nextgroup=vimSynKeyRegion
 syn region  vimSynKeyRegion	contained keepend	matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" matchgroup=vimSep end="|\|$" contains=@vimSynKeyGroup
 syn match   vimSynKeyOpt	contained	"\<\(conceal\|contained\|transparent\|skipempty\|skipwhite\|skipnl\)\>"
 
-" Syntax: match {{{1
+" 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="\k\+" matchgroup=vimSep end="|\|$" contains=@vimSynMtchGroup
@@ -346,10 +365,10 @@
  syn match   vimSynMtchCchar	contained	"."
 endif
 
-" Syntax: off and on {{{1
+" Syntax: off and on {{{2
 syn keyword vimSynType	contained	enable	list	manual	off	on	reset
 
-" Syntax: region {{{1
+" Syntax: region {{{2
 syn cluster vimSynRegPatGroup	contains=vimPatSep,vimNotPatSep,vimSynPatRange,vimSynNotPatRange,vimSubstSubstr,vimPatRegion,vimPatSepErr,vimNotation
 syn cluster vimSynRegGroup	contains=vimSynContains,vimSynNextgroup,vimSynRegOpt,vimSynReg,vimSynMtchGrp
 syn keyword vimSynType	contained	region	skipwhite nextgroup=vimSynRegion
@@ -366,10 +385,12 @@
 syn match   vimSynNotPatRange	contained	"\\\\\|\\\["
 syn match   vimMtchComment	contained	'"[^"]\+$'
 
-" Syntax: sync {{{1
+" Syntax: sync {{{2
 " ============
 syn keyword vimSynType	contained	sync	skipwhite	nextgroup=vimSyncC,vimSyncLines,vimSyncMatch,vimSyncError,vimSyncLinecont,vimSyncRegion
-syn match   vimSyncError	contained	"\i\+"
+if !exists("g:vimsyntax_noerror")
+ syn match   vimSyncError	contained	"\i\+"
+endif
 syn keyword vimSyncC	contained	ccomment	clear	fromstart
 syn keyword vimSyncMatch	contained	match	skipwhite	nextgroup=vimSyncGroupName
 syn keyword vimSyncRegion	contained	region	skipwhite	nextgroup=vimSynReg
@@ -380,11 +401,11 @@
 syn match   vimSyncGroup	contained	"\k\+"	skipwhite	nextgroup=vimSynRegPat,vimSyncNone
 syn keyword vimSyncNone	contained	NONE
 
-" Additional IsCommand, here by reasons of precedence {{{1
+" Additional IsCommand, here by reasons of precedence {{{2
 " ====================
 syn match vimIsCommand	"<Bar>\s*\a\+"	transparent contains=vimCommand,vimNotation
 
-" Highlighting {{{1
+" Highlighting {{{2
 " ============
 syn cluster vimHighlightCluster	contains=vimHiLink,vimHiClear,vimHiKeyList,vimComment
 syn match   vimHighlight	"\<hi\%[ghlight]\>" skipwhite nextgroup=vimHiBang,@vimHighlightCluster
@@ -404,12 +425,16 @@
 syn match   vimHiFontname	contained	"[a-zA-Z\-*]\+"
 syn match   vimHiGuiFontname	contained	"'[a-zA-Z\-* ]\+'"
 syn match   vimHiGuiRgb	contained	"#\x\{6}"
-syn match   vimHiCtermError	contained	"[^0-9]\i*"
+if !exists("g:vimsyntax_noerror")
+ syn match   vimHiCtermError	contained	"[^0-9]\i*"
+endif
 
-" Highlighting: hi group key=arg ... {{{1
+" Highlighting: hi group key=arg ... {{{2
 syn cluster vimHiCluster contains=vimHiGroup,vimHiTerm,vimHiCTerm,vimHiStartStop,vimHiCtermFgBg,vimHiGui,vimHiGuiFont,vimHiGuiFgBg,vimHiKeyError,vimNotation
 syn region vimHiKeyList	contained oneline start="\i\+" skip="\\\\\|\\|" end="$\||"	contains=@vimHiCluster
-syn match  vimHiKeyError	contained	"\i\+="he=e-1
+if !exists("g:vimsyntax_noerror")
+ syn match  vimHiKeyError	contained	"\i\+="he=e-1
+endif
 syn match  vimHiTerm	contained	"\cterm="he=e-1		nextgroup=vimHiAttribList
 syn match  vimHiStartStop	contained	"\c\(start\|stop\)="he=e-1	nextgroup=vimHiTermcap,vimOption
 syn match  vimHiCTerm	contained	"\ccterm="he=e-1		nextgroup=vimHiAttribList
@@ -419,17 +444,17 @@
 syn match  vimHiGuiFgBg	contained	"\cgui[fb]g="he=e-1	nextgroup=vimHiGroup,vimHiGuiFontname,vimHiGuiRgb,vimFgBgAttrib
 syn match  vimHiTermcap	contained	"\S\+"		contains=vimNotation
 
-" Highlight: clear {{{1
+" Highlight: clear {{{2
 syn keyword vimHiClear	contained	clear	nextgroup=vimHiGroup
 
-" Highlight: link {{{1
+" Highlight: link {{{2
 syn region vimHiLink	contained oneline matchgroup=vimCommand start="\<\(def\s\+\)\=link\>\|\<def\>" end="$"	contains=vimHiGroup,vimGroup,vimHLGroup,vimNotation
 
-" Control Characters {{{1
+" Control Characters {{{2
 " ==================
 syn match vimCtrlChar	"[--]"
 
-" Beginners - Patterns that involve ^ {{{1
+" Beginners - Patterns that involve ^ {{{2
 " =========
 syn match  vimLineComment	+^[ \t:]*".*$+	contains=@vimCommentGroup,vimCommentString,vimCommentTitle
 syn match  vimCommentTitle	'"\s*\u\w*\(\s\+\u\w*\)*:'hs=s+1	contained contains=vimCommentTitleLeader,vimTodo,@vimCommentGroup
@@ -437,7 +462,7 @@
 syn region vimString	start="^\s*\\\z(['"]\)" skip='\\\\\|\\\z1' end="\z1" oneline keepend contains=@vimStringGroup,vimContinue
 syn match  vimCommentTitleLeader	'"\s\+'ms=s+1	contained
 
-" Scripts  : perl,ruby : Benoit Cerrina {{{1
+" Scripts  : perl,ruby : Benoit Cerrina {{{2
 " =======    python,tcl: Johannes Zellner
 
 " allow users to prevent embedded script syntax highlighting
@@ -447,7 +472,7 @@
  let g:vimembedscript= 1
 endif
 
-" [-- perl --] {{{2
+" [-- perl --] {{{3
 if (has("perl") || g:vimembedscript) && filereadable(expand("<sfile>:p:h")."/perl.vim")
  unlet! b:current_syntax
  syn include @vimPerlScript <sfile>:p:h/perl.vim
@@ -455,7 +480,7 @@
  syn region vimPerlRegion matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+ contains=@vimPerlScript
 endif
 
-" [-- ruby --] {{{2
+" [-- ruby --] {{{3
 if (has("ruby") || g:vimembedscript) && filereadable(expand("<sfile>:p:h")."/ruby.vim")
  unlet! b:current_syntax
  syn include @vimRubyScript <sfile>:p:h/ruby.vim
@@ -463,7 +488,7 @@
  syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*$+ end=+\.$+ contains=@vimRubyScript
 endif
 
-" [-- python --] {{{2
+" [-- python --] {{{3
 if (has("python") || g:vimembedscript) && filereadable(expand("<sfile>:p:h")."/python.vim")
  unlet! b:current_syntax
  syn include @vimPythonScript <sfile>:p:h/python.vim
@@ -471,7 +496,7 @@
  syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]\s*<<\s*$+ end=+\.$+ contains=@vimPythonScript
 endif
 
-" [-- tcl --] {{{2
+" [-- tcl --] {{{3
 if (has("tcl") || g:vimembedscript) && filereadable(expand("<sfile>:p:h")."/tcl.vim")
  unlet! b:current_syntax
  syn include @vimTclScript <sfile>:p:h/tcl.vim
@@ -479,7 +504,7 @@
  syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript
 endif
 
-" Synchronize (speed) {{{1
+" Synchronize (speed) {{{2
 "============
 if exists("g:vim_minlines")
  exe "syn sync minlines=".g:vim_minlines
@@ -492,39 +517,47 @@
 syn sync linecont	"^\s\+\\"
 syn sync match vimAugroupSyncA	groupthere NONE	"\<aug\%[roup]\>\s\+[eE][nN][dD]"
 
-" Highlighting Settings {{{1
+" Highlighting Settings {{{2
 " ====================
 
 hi def link vimAuHighlight	vimHighlight
 hi def link vimSubst1	vimSubst
 hi def link vimBehaveModel	vimBehave
 
-hi def link vimAddress	vimMark
+if !exists("g:vimsyntax_noerror")
 "  hi def link vimAugroupError	vimError
+ hi def link vimBehaveError	vimError
+ hi def link vimCollClassErr	vimError
+ hi def link vimErrSetting	vimError
+ hi def link vimFTError	vimError
+ hi def link vimFunctionError	vimError
+ hi def link VimFunc         	vimError
+ hi def link vimHiAttribList	vimError
+ hi def link vimHiCtermError	vimError
+ hi def link vimHiKeyError	vimError
+ hi def link vimKeyCodeError	vimError
+ hi def link vimMapModErr	vimError
+ hi def link vimSubstFlagErr	vimError
+ hi def link vimSynCaseError	vimError
+endif
+
+hi def link vimAddress	vimMark
 hi def link vimAugroupKey	vimCommand
 hi def link vimAutoCmdOpt	vimOption
 hi def link vimAutoCmd	vimCommand
 hi def link vimAutoSet	vimCommand
-hi def link vimBehaveError	vimError
 hi def link vimBehave	vimCommand
-hi def link vimCollClassErr	vimError
 hi def link vimCommentString	vimString
 hi def link vimCondHL	vimCommand
 hi def link vimEchoHLNone	vimGroup
 hi def link vimEchoHL	vimCommand
 hi def link vimElseif	vimCondHL
-hi def link vimErrSetting	vimError
 hi def link vimFgBgAttrib	vimHiAttrib
 hi def link vimFTCmd	vimCommand
-hi def link vimFTError	vimError
 hi def link vimFTOption	vimSynType
-hi def link VimFunc         	vimError
 hi def link vimFuncKey	vimCommand
-hi def link vimFunctionError	vimError
 hi def link vimGroupAdd	vimSynOption
 hi def link vimGroupRem	vimSynOption
-hi def link vimHiAttribList	vimError
-hi def link vimHiCtermError	vimError
 hi def link vimHiCtermFgBg	vimHiTerm
 hi def link vimHiCTerm	vimHiTerm
 hi def link vimHighlight	vimCommand
@@ -533,16 +566,13 @@
 hi def link vimHiGuiFont	vimHiTerm
 hi def link vimHiGuiRgb	vimNumber
 hi def link vimHiGui	vimHiTerm
-hi def link vimHiKeyError	vimError
 hi def link vimHiStartStop	vimHiTerm
 hi def link vimHLGroup	vimGroup
 hi def link vimInsert	vimString
-hi def link vimKeyCodeError	vimError
 hi def link vimKeyCode	vimSpecFile
 hi def link vimLet	vimCommand
 hi def link vimLineComment	vimComment
 hi def link vimMapBang	vimCommand
-hi def link vimMapModErr	vimError
 hi def link vimMapModKey	vimFuncSID
 hi def link vimMapMod	vimBracket
 hi def link vimMap	vimCommand
@@ -560,10 +590,8 @@
 hi def link vimSetString	vimString
 hi def link vimSpecFileMod	vimSpecFile
 hi def link vimStringCont	vimString
-hi def link vimSubstFlagErr	vimError
 hi def link vimSubstTwoBS	vimString
 hi def link vimSubst	vimCommand
-hi def link vimSynCaseError	vimError
 hi def link vimSyncGroupName	vimGroupName
 hi def link vimSyncGroup	vimGroupName
 hi def link vimSynContains	vimSynOption
@@ -637,6 +665,6 @@
 hi def link vimTodo	Todo
 hi def link vimUserCmdError	Error
 
-" Current Syntax Variable: {{{1
+" Current Syntax Variable: {{{2
 let b:current_syntax = "vim"
 " vim:ts=18  fdm=marker