diff --git a/runtime/autoload/csscomplete.vim b/runtime/autoload/csscomplete.vim
index 9eebb87..50048a3 100644
--- a/runtime/autoload/csscomplete.vim
+++ b/runtime/autoload/csscomplete.vim
@@ -1,429 +1,740 @@
 " Vim completion script
-" Language:	CSS 2.1
-" Maintainer:	Mikolaj Machowski ( mikmach AT wp DOT pl )
-" Last Change:	2007 May 5
+" Language: CSS
+"           Based on MDN CSS Reference at 2016 Jan <https://developer.mozilla.org/en-US/docs/Web/CSS/Reference>
+"           plus CSS Speech Module <http://www.w3.org/TR/css3-speech/>
+" Maintainer: Kao, Wei-Ko(othree) ( othree AT gmail DOT com )
+" Original Author: Mikolaj Machowski ( mikmach AT wp DOT pl )
+" Last Change: 2016 Jan 11
 
-	let s:values = split("azimuth background background-attachment background-color background-image background-position background-repeat border bottom border-collapse border-color border-spacing border-style border-top border-right border-bottom border-left border-top-color border-right-color border-bottom-color border-left-color  border-top-style border-right-style border-bottom-style border-left-style border-top-width border-right-width border-bottom-width border-left-width border-width caption-side clear clip color content counter-increment counter-reset cue cue-after cue-before cursor display direction elevation empty-cells float font font-family font-size font-style font-variant font-weight height left letter-spacing line-height list-style list-style-image list-style-position list-style-type margin margin-right margin-left margin-top margin-bottom max-height max-width min-height min-width orphans outline outline-color outline-style outline-width overflow padding padding-top padding-right padding-bottom padding-left page-break-after page-break-before page-break-inside pause pause-after pause-before pitch pitch-range play-during position quotes right richness speak speak-header speak-numeral speak-punctuation speech-rate stress table-layout text-align text-decoration text-indent text-transform top unicode-bidi vertical-align visibility voice-family volume white-space width widows word-spacing z-index")
+let s:values = split("all additive-symbols align-content align-items align-self animation animation-delay animation-direction animation-duration animation-fill-mode animation-iteration-count animation-name animation-play-state animation-timing-function backface-visibility background background-attachment background-blend-mode background-clip background-color background-image background-origin background-position background-repeat background-size block-size border border-block-end border-block-end-color border-block-end-style border-block-end-width border-block-start border-block-start-color border-block-start-style border-block-start-width border-bottom border-bottom-color border-bottom-left-radius border-bottom-right-radius border-bottom-style border-bottom-width border-collapse border-color border-image border-image-outset border-image-repeat border-image-slice border-image-source border-image-width border-inline-end border-inline-end-color border-inline-end-style border-inline-end-width border-inline-start border-inline-start-color border-inline-start-style border-inline-start-width border-left border-left-color border-left-style border-left-width border-radius border-right border-right-color border-right-style border-right-width border-spacing border-style border-top border-top-color border-top-left-radius border-top-right-radius border-top-style border-top-width border-width bottom box-decoration-break box-shadow box-sizing break-after break-before break-inside caption-side clear clip clip-path color columns column-count column-fill column-gap column-rule column-rule-color column-rule-style column-rule-width column-span column-width content counter-increment counter-reset cue cue-before cue-after cursor direction display empty-cells fallback filter flex flex-basis flex-direction flex-flow flex-grow flex-shrink flex-wrap float font font-family font-feature-settings font-kerning font-language-override font-size font-size-adjust font-stretch font-style font-synthesis font-variant font-variant-alternates font-variant-caps font-variant-east-asian font-variant-ligatures font-variant-numeric font-variant-position font-weight grid grid-area grid-auto-columns grid-auto-flow grid-auto-position grid-auto-rows grid-column grid-column-start grid-column-end grid-row grid-row-start grid-row-end grid-template grid-template-areas grid-template-rows grid-template-columns height hyphens image-rendering image-resolution image-orientation ime-mode inline-size isolation justify-content left letter-spacing line-break line-height list-style list-style-image list-style-position list-style-type margin margin-block-end margin-block-start margin-bottom margin-inline-end margin-inline-start margin-left margin-right margin-top marks mask mask-type max-block-size max-height max-inline-size max-width max-zoom min-block-size min-height min-inline-size min-width min-zoom mix-blend-mode negative object-fit object-position offset-block-end offset-block-start offset-inline-end offset-inline-start opacity order orientation orphans outline outline-color outline-offset outline-style outline-width overflow overflow-wrap overflow-x overflow-y pad padding padding-block-end padding-block-start padding-bottom padding-inline-end padding-inline-start padding-left padding-right padding-top page-break-after page-break-before page-break-inside pause-before pause-after pause perspective perspective-origin pointer-events position prefix quotes range resize rest rest-before rest-after right ruby-align ruby-merge ruby-position scroll-behavior scroll-snap-coordinate scroll-snap-destination scroll-snap-points-x scroll-snap-points-y scroll-snap-type scroll-snap-type-x scroll-snap-type-y shape-image-threshold shape-margin shape-outside speak speak-as suffix symbols system table-layout tab-size text-align text-align-last text-combine-upright text-decoration text-decoration-color text-decoration-line text-emphasis text-emphasis-color text-emphasis-position text-emphasis-style text-indent text-orientation text-overflow text-rendering text-shadow text-transform text-underline-position top touch-action transform transform-box transform-origin transform-style transition transition-delay transition-duration transition-property transition-timing-function unicode-bidi unicode-range user-zoom vertical-align visibility voice-balance voice-duration voice-family voice-pitch voice-rate voice-range voice-stress voice-volume white-space widows width will-change word-break word-spacing word-wrap writing-mode z-index zoom")
+
 
 function! csscomplete#CompleteCSS(findstart, base)
 
-if a:findstart
-	" We need whole line to proper checking
-	let line = getline('.')
-	let start = col('.') - 1
-	let compl_begin = col('.') - 2
-	while start >= 0 && line[start - 1] =~ '\%(\k\|-\)'
-		let start -= 1
-	endwhile
-	let b:compl_context = line[0:compl_begin]
-	return start
-endif
+  if a:findstart
+    " We need whole line to proper checking
+    let line = getline('.')
+    let start = col('.') - 1
+    let compl_begin = col('.') - 2
+    while start >= 0 && line[start - 1] =~ '\%(\k\|-\)'
+      let start -= 1
+    endwhile
+    let b:after = line[compl_begin :]
+    let b:compl_context = line[0:compl_begin]
+    return start
+  endif
 
-" There are few chars important for context:
-" ^ ; : { } /* */
-" Where ^ is start of line and /* */ are comment borders
-" Depending on their relative position to cursor we will know what should
-" be completed. 
-" 1. if nearest are ^ or { or ; current word is property
-" 2. if : it is value (with exception of pseudo things)
-" 3. if } we are outside of css definitions
-" 4. for comments ignoring is be the easiest but assume they are the same
-"    as 1. 
-" 5. if @ complete at-rule
-" 6. if ! complete important
-if exists("b:compl_context")
-	let line = b:compl_context
-	unlet! b:compl_context
-else
-	let line = a:base
-endif
+  " There are few chars important for context:
+  " ^ ; : { } /* */
+  " Where ^ is start of line and /* */ are comment borders
+  " Depending on their relative position to cursor we will know what should
+  " be completed. 
+  " 1. if nearest are ^ or { or ; current word is property
+  " 2. if : it is value (with exception of pseudo things)
+  " 3. if } we are outside of css definitions
+  " 4. for comments ignoring is be the easiest but assume they are the same
+  "    as 1. 
+  " 5. if @ complete at-rule
+  " 6. if ! complete important
+  if exists("b:compl_context")
+    let line = b:compl_context
+    let after = b:after
+    unlet! b:compl_context
+  else
+    let line = a:base
+  endif
 
-let res = []
-let res2 = []
-let borders = {}
+  let res = []
+  let res2 = []
+  let borders = {}
 
-" Check last occurrence of sequence
+  " Check last occurrence of sequence
 
-let openbrace  = strridx(line, '{')
-let closebrace = strridx(line, '}')
-let colon      = strridx(line, ':')
-let semicolon  = strridx(line, ';')
-let opencomm   = strridx(line, '/*')
-let closecomm  = strridx(line, '*/')
-let style      = strridx(line, 'style\s*=')
-let atrule     = strridx(line, '@')
-let exclam     = strridx(line, '!')
+  let openbrace  = strridx(line, '{')
+  let closebrace = strridx(line, '}')
+  let colon      = strridx(line, ':')
+  let semicolon  = strridx(line, ';')
+  let opencomm   = strridx(line, '/*')
+  let closecomm  = strridx(line, '*/')
+  let style      = strridx(line, 'style\s*=')
+  let atrule     = strridx(line, '@')
+  let exclam     = strridx(line, '!')
 
-if openbrace > -1
-	let borders[openbrace] = "openbrace"
-endif
-if closebrace > -1
-	let borders[closebrace] = "closebrace"
-endif
-if colon > -1
-	let borders[colon] = "colon"
-endif
-if semicolon > -1
-	let borders[semicolon] = "semicolon"
-endif
-if opencomm > -1
-	let borders[opencomm] = "opencomm"
-endif
-if closecomm > -1
-	let borders[closecomm] = "closecomm"
-endif
-if style > -1
-	let borders[style] = "style"
-endif
-if atrule > -1
-	let borders[atrule] = "atrule"
-endif
-if exclam > -1
-	let borders[exclam] = "exclam"
-endif
+  if openbrace > -1
+    let borders[openbrace] = "openbrace"
+  endif
+  if closebrace > -1
+    let borders[closebrace] = "closebrace"
+  endif
+  if colon > -1
+    let borders[colon] = "colon"
+  endif
+  if semicolon > -1
+    let borders[semicolon] = "semicolon"
+  endif
+  if opencomm > -1
+    let borders[opencomm] = "opencomm"
+  endif
+  if closecomm > -1
+    let borders[closecomm] = "closecomm"
+  endif
+  if style > -1
+    let borders[style] = "style"
+  endif
+  if atrule > -1
+    let borders[atrule] = "atrule"
+  endif
+  if exclam > -1
+    let borders[exclam] = "exclam"
+  endif
 
 
-if len(borders) == 0 || borders[max(keys(borders))] =~ '^\%(openbrace\|semicolon\|opencomm\|closecomm\|style\)$'
-	" Complete properties
+  if len(borders) == 0 || borders[max(keys(borders))] =~ '^\%(openbrace\|semicolon\|opencomm\|closecomm\|style\)$'
+    " Complete properties
 
 
-	let entered_property = matchstr(line, '.\{-}\zs[a-zA-Z-]*$')
+    let entered_property = matchstr(line, '.\{-}\zs[a-zA-Z-]*$')
 
-	for m in s:values
-		if m =~? '^'.entered_property
-			call add(res, m . ':')
-		elseif m =~? entered_property
-			call add(res2, m . ':')
-		endif
-	endfor
+    for m in s:values
+      if m =~? '^'.entered_property
+        call add(res, m . ':')
+      elseif m =~? entered_property
+        call add(res2, m . ':')
+      endif
+    endfor
 
-	return res + res2
+    return res + res2
 
-elseif borders[max(keys(borders))] == 'colon'
-	" Get name of property
-	let prop = tolower(matchstr(line, '\zs[a-zA-Z-]*\ze\s*:[^:]\{-}$'))
+  elseif borders[max(keys(borders))] == 'colon'
+    " Get name of property
+    let prop = tolower(matchstr(line, '\zs[a-zA-Z-]*\ze\s*:[^:]\{-}$'))
 
-	if prop == 'azimuth'
-		let values = ["left-side", "far-left", "left", "center-left", "center", "center-right", "right", "far-right", "right-side", "behind", "leftwards", "rightwards"]
-	elseif prop == 'background-attachment'
-		let values = ["scroll", "fixed"]
-	elseif prop == 'background-color'
-		let values = ["transparent", "rgb(", "#"]
-	elseif prop == 'background-image'
-		let values = ["url(", "none"]
-	elseif prop == 'background-position'
-		let vals = matchstr(line, '.*:\s*\zs.*')
-		if vals =~ '^\%([a-zA-Z]\+\)\?$'
-			let values = ["top", "center", "bottom"]
-		elseif vals =~ '^[a-zA-Z]\+\s\+\%([a-zA-Z]\+\)\?$'
-			let values = ["left", "center", "right"]
-		else
-			return []
-		endif
-	elseif prop == 'background-repeat'
-		let values = ["repeat", "repeat-x", "repeat-y", "no-repeat"]
-	elseif prop == 'background'
-		let values = ["url(", "scroll", "fixed", "transparent", "rgb(", "#", "none", "top", "center", "bottom" , "left", "right", "repeat", "repeat-x", "repeat-y", "no-repeat"]
-	elseif prop == 'border-collapse'
-		let values = ["collapse", "separate"]
-	elseif prop == 'border-color'
-		let values = ["rgb(", "#", "transparent"]
-	elseif prop == 'border-spacing'
-		return []
-	elseif prop == 'border-style'
-		let values = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"]
-	elseif prop =~ 'border-\%(top\|right\|bottom\|left\)$'
-		let vals = matchstr(line, '.*:\s*\zs.*')
-		if vals =~ '^\%([a-zA-Z0-9.]\+\)\?$'
-			let values = ["thin", "thick", "medium"]
-		elseif vals =~ '^[a-zA-Z0-9.]\+\s\+\%([a-zA-Z]\+\)\?$'
-			let values = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"]
-		elseif vals =~ '^[a-zA-Z0-9.]\+\s\+[a-zA-Z]\+\s\+\%([a-zA-Z(]\+\)\?$'
-			let values = ["rgb(", "#", "transparent"]
-		else
-			return []
-		endif
-	elseif prop =~ 'border-\%(top\|right\|bottom\|left\)-color'
-		let values = ["rgb(", "#", "transparent"]
-	elseif prop =~ 'border-\%(top\|right\|bottom\|left\)-style'
-		let values = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"]
-	elseif prop =~ 'border-\%(top\|right\|bottom\|left\)-width'
-		let values = ["thin", "thick", "medium"]
-	elseif prop == 'border-width'
-		let values = ["thin", "thick", "medium"]
-	elseif prop == 'border'
-		let vals = matchstr(line, '.*:\s*\zs.*')
-		if vals =~ '^\%([a-zA-Z0-9.]\+\)\?$'
-			let values = ["thin", "thick", "medium"]
-		elseif vals =~ '^[a-zA-Z0-9.]\+\s\+\%([a-zA-Z]\+\)\?$'
-			let values = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"]
-		elseif vals =~ '^[a-zA-Z0-9.]\+\s\+[a-zA-Z]\+\s\+\%([a-zA-Z(]\+\)\?$'
-			let values = ["rgb(", "#", "transparent"]
-		else
-			return []
-		endif
-	elseif prop == 'bottom'
-		let values = ["auto"]
-	elseif prop == 'caption-side'
-		let values = ["top", "bottom"]
-	elseif prop == 'clear'
-		let values = ["none", "left", "right", "both"]
-	elseif prop == 'clip'
-		let values = ["auto", "rect("]
-	elseif prop == 'color'
-		let values = ["rgb(", "#"]
-	elseif prop == 'content'
-		let values = ["normal", "attr(", "open-quote", "close-quote", "no-open-quote", "no-close-quote"]
-	elseif prop =~ 'counter-\%(increment\|reset\)$'
-		let values = ["none"]
-	elseif prop =~ '^\%(cue-after\|cue-before\|cue\)$'
-		let values = ["url(", "none"]
-	elseif prop == 'cursor'
-		let values = ["url(", "auto", "crosshair", "default", "pointer", "move", "e-resize", "ne-resize", "nw-resize", "n-resize", "se-resize", "sw-resize", "s-resize", "w-resize", "text", "wait", "help", "progress"]
-	elseif prop == 'direction'
-		let values = ["ltr", "rtl"]
-	elseif prop == 'display'
-		let values = ["inline", "block", "list-item", "run-in", "inline-block", "table", "inline-table", "table-row-group", "table-header-group", "table-footer-group", "table-row", "table-column-group", "table-column", "table-cell", "table-caption", "none"]
-	elseif prop == 'elevation'
-		let values = ["below", "level", "above", "higher", "lower"]
-	elseif prop == 'empty-cells'
-		let values = ["show", "hide"]
-	elseif prop == 'float'
-		let values = ["left", "right", "none"]
-	elseif prop == 'font-family'
-		let values = ["sans-serif", "serif", "monospace", "cursive", "fantasy"]
-	elseif prop == 'font-size'
-		 let values = ["xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "larger", "smaller"]
-	elseif prop == 'font-style'
-		let values = ["normal", "italic", "oblique"]
-	elseif prop == 'font-variant'
-		let values = ["normal", "small-caps"]
-	elseif prop == 'font-weight'
-		let values = ["normal", "bold", "bolder", "lighter", "100", "200", "300", "400", "500", "600", "700", "800", "900"]
-	elseif prop == 'font'
-		let values = ["normal", "italic", "oblique", "small-caps", "bold", "bolder", "lighter", "100", "200", "300", "400", "500", "600", "700", "800", "900", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "larger", "smaller", "sans-serif", "serif", "monospace", "cursive", "fantasy", "caption", "icon", "menu", "message-box", "small-caption", "status-bar"]
-	elseif prop =~ '^\%(height\|width\)$'
-		let values = ["auto"]
-	elseif prop =~ '^\%(left\|rigth\)$'
-		let values = ["auto"]
-	elseif prop == 'letter-spacing'
-		let values = ["normal"]
-	elseif prop == 'line-height'
-		let values = ["normal"]
-	elseif prop == 'list-style-image'
-		let values = ["url(", "none"]
-	elseif prop == 'list-style-position'
-		let values = ["inside", "outside"]
-	elseif prop == 'list-style-type'
-		let values = ["disc", "circle", "square", "decimal", "decimal-leading-zero", "lower-roman", "upper-roman", "lower-latin", "upper-latin", "none"]
-	elseif prop == 'list-style'
-		return []
-	elseif prop == 'margin'
-		let values = ["auto"]
-	elseif prop =~ 'margin-\%(right\|left\|top\|bottom\)$'
-		let values = ["auto"]
-	elseif prop == 'max-height'
-		let values = ["auto"]
-	elseif prop == 'max-width'
-		let values = ["none"]
-	elseif prop == 'min-height'
-		let values = ["none"]
-	elseif prop == 'min-width'
-		let values = ["none"]
-	elseif prop == 'orphans'
-		return []
-	elseif prop == 'outline-color'
-		let values = ["rgb(", "#"]
-	elseif prop == 'outline-style'
-		let values = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"]
-	elseif prop == 'outline-width'
-		let values = ["thin", "thick", "medium"]
-	elseif prop == 'outline'
-		let vals = matchstr(line, '.*:\s*\zs.*')
-		if vals =~ '^\%([a-zA-Z0-9,()#]\+\)\?$'
-			let values = ["rgb(", "#"]
-		elseif vals =~ '^[a-zA-Z0-9,()#]\+\s\+\%([a-zA-Z]\+\)\?$'
-			let values = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"]
-		elseif vals =~ '^[a-zA-Z0-9,()#]\+\s\+[a-zA-Z]\+\s\+\%([a-zA-Z(]\+\)\?$'
-			let values = ["thin", "thick", "medium"]
-		else
-			return []
-		endif
-	elseif prop == 'overflow'
-		let values = ["visible", "hidden", "scroll", "auto"]
-	elseif prop == 'padding'
-		return []
-	elseif prop =~ 'padding-\%(top\|right\|bottom\|left\)$'
-		return []
-	elseif prop =~ 'page-break-\%(after\|before\)$'
-		let values = ["auto", "always", "avoid", "left", "right"]
-	elseif prop == 'page-break-inside'
-		let values = ["auto", "avoid"]
-	elseif prop =~ 'pause-\%(after\|before\)$'
-		return []
-	elseif prop == 'pause'
-		return []
-	elseif prop == 'pitch-range'
-		return []
-	elseif prop == 'pitch'
-		let values = ["x-low", "low", "medium", "high", "x-high"]
-	elseif prop == 'play-during'
-		let values = ["url(", "mix", "repeat", "auto", "none"]
-	elseif prop == 'position'
-		let values = ["static", "relative", "absolute", "fixed"]
-	elseif prop == 'quotes'
-		let values = ["none"]
-	elseif prop == 'richness'
-		return []
-	elseif prop == 'speak-header'
-		let values = ["once", "always"]
-	elseif prop == 'speak-numeral'
-		let values = ["digits", "continuous"]
-	elseif prop == 'speak-punctuation'
-		let values = ["code", "none"]
-	elseif prop == 'speak'
-		let values = ["normal", "none", "spell-out"]
-	elseif prop == 'speech-rate'
-		let values = ["x-slow", "slow", "medium", "fast", "x-fast", "faster", "slower"]
-	elseif prop == 'stress'
-		return []
-	elseif prop == 'table-layout'
-		let values = ["auto", "fixed"]
-	elseif prop == 'text-align'
-		let values = ["left", "right", "center", "justify"]
-	elseif prop == 'text-decoration'
-		let values = ["none", "underline", "overline", "line-through", "blink"]
-	elseif prop == 'text-indent'
-		return []
-	elseif prop == 'text-transform'
-		let values = ["capitalize", "uppercase", "lowercase", "none"]
-	elseif prop == 'top'
-		let values = ["auto"]
-	elseif prop == 'unicode-bidi'
-		let values = ["normal", "embed", "bidi-override"]
-	elseif prop == 'vertical-align'
-		let values = ["baseline", "sub", "super", "top", "text-top", "middle", "bottom", "text-bottom"]
-	elseif prop == 'visibility'
-		let values = ["visible", "hidden", "collapse"]
-	elseif prop == 'voice-family'
-		return []
-	elseif prop == 'volume'
-		let values = ["silent", "x-soft", "soft", "medium", "loud", "x-loud"]
-	elseif prop == 'white-space'
-		let values = ["normal", "pre", "nowrap", "pre-wrap", "pre-line"]
-	elseif prop == 'widows'
-		return []
-	elseif prop == 'word-spacing'
-		let values = ["normal"]
-	elseif prop == 'z-index'
-		let values = ["auto"]
-	else
-		" If no property match it is possible we are outside of {} and
-		" trying to complete pseudo-(class|element)
-		let element = tolower(matchstr(line, '\zs[a-zA-Z1-6]*\ze:[^:[:space:]]\{-}$'))
-		if stridx(',a,abbr,acronym,address,area,b,base,bdo,big,blockquote,body,br,button,caption,cite,code,col,colgroup,dd,del,dfn,div,dl,dt,em,fieldset,form,head,h1,h2,h3,h4,h5,h6,hr,html,i,img,input,ins,kbd,label,legend,li,link,map,meta,noscript,object,ol,optgroup,option,p,param,pre,q,samp,script,select,small,span,strong,style,sub,sup,table,tbody,td,textarea,tfoot,th,thead,title,tr,tt,ul,var,', ','.element.',') > -1
-			let values = ["first-child", "link", "visited", "hover", "active", "focus", "lang", "first-line", "first-letter", "before", "after"]
-		else
-			return []
-		endif
-	endif
+    let wide_keywords = ["initial", "inherit", "unset"]
+    let color_values = ["transparent", "rgb(", "rgba(", "hsl(", "hsla(", "#"]
+    let border_style_values = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"]
+    let border_width_values = ["thin", "thick", "medium"]
+    let list_style_type_values = ["decimal", "decimal-leading-zero", "arabic-indic", "armenian", "upper-armenian", "lower-armenian", "bengali", "cambodian", "khmer", "cjk-decimal", "devanagari", "georgian", "gujarati", "gurmukhi", "hebrew", "kannada", "lao", "malayalam", "mongolian", "myanmar", "oriya", "persian", "lower-roman", "upper-roman", "tamil", "telugu", "thai", "tibetan", "lower-alpha", "lower-latin", "upper-alpha", "upper-latin", "cjk-earthly-branch", "cjk-heavenly-stem", "lower-greek", "hiragana", "hiragana-iroha", "katakana", "katakana-iroha", "disc", "circle", "square", "disclosure-open", "disclosure-closed"]
+    let timing_functions = ["cubic-bezier(", "steps(", "linear", "ease", "ease-in", "ease-in-out", "ease-out", "step-start", "step-end"]
 
-	" Complete values
-	let entered_value = matchstr(line, '.\{-}\zs[a-zA-Z0-9#,.(_-]*$')
+    if prop == 'all'
+      let values = []
+    elseif prop == 'additive-symbols'
+      let values = []
+    elseif prop == 'align-content'
+      let values = ["flex-start", "flex-end", "center", "space-between", "space-around", "stretch"]
+    elseif prop == 'align-items'
+      let values = ["flex-start", "flex-end", "center", "baseline", "stretch"]
+    elseif prop == 'align-self'
+      let values = ["auto", "flex-start", "flex-end", "center", "baseline", "stretch"]
+    elseif prop == 'animation'
+      let values = timing_functions + ["normal", "reverse", "alternate", "alternate-reverse"] + ["none", "forwards", "backwards", "both"] + ["running", "paused"]
+    elseif prop == 'animation-delay'
+      let values = []
+    elseif prop == 'animation-direction'
+      let values = ["normal", "reverse", "alternate", "alternate-reverse"]
+    elseif prop == 'animation-duration'
+      let values = []
+    elseif prop == 'animation-fill-mode'
+      let values = ["none", "forwards", "backwards", "both"]
+    elseif prop == 'animation-iteration-count'
+      let values = []
+    elseif prop == 'animation-name'
+      let values = []
+    elseif prop == 'animation-play-state'
+      let values = ["running", "paused"]
+    elseif prop == 'animation-timing-function'
+      let values = timing_functions
+    elseif prop == 'background-attachment'
+      let values = ["scroll", "fixed"]
+    elseif prop == 'background-color'
+      let values = color_values
+    elseif prop == 'background-image'
+      let values = ["url(", "none"]
+    elseif prop == 'background-position'
+      let vals = matchstr(line, '.*:\s*\zs.*')
+      if vals =~ '^\%([a-zA-Z]\+\)\?$'
+        let values = ["top", "center", "bottom"]
+      elseif vals =~ '^[a-zA-Z]\+\s\+\%([a-zA-Z]\+\)\?$'
+        let values = ["left", "center", "right"]
+      else
+        return []
+      endif
+    elseif prop == 'background-repeat'
+      let values = ["repeat", "repeat-x", "repeat-y", "no-repeat"]
+    elseif prop == 'background-size'
+      let values = ["auto", "contain", "cover"]
+    elseif prop == 'background'
+      let values = ["scroll", "fixed"] + color_values + ["url(", "none"] + ["top", "center", "bottom", "left", "right"] + ["repeat", "repeat-x", "repeat-y", "no-repeat"] + ["auto", "contain", "cover"]
+    elseif prop =~ 'border\%(-top\|-right\|-bottom\|-left\|-block-start\|-block-end\)\?$'
+      let vals = matchstr(line, '.*:\s*\zs.*')
+      if vals =~ '^\%([a-zA-Z0-9.]\+\)\?$'
+        let values = border_width_values
+      elseif vals =~ '^[a-zA-Z0-9.]\+\s\+\%([a-zA-Z]\+\)\?$'
+        let values = border_style_values
+      elseif vals =~ '^[a-zA-Z0-9.]\+\s\+[a-zA-Z]\+\s\+\%([a-zA-Z(]\+\)\?$'
+        let values = color_values
+      else
+        return []
+      endif
+    elseif prop =~ 'border-\%(top\|right\|bottom\|left\|block-start\|block-end\)-color'
+      let values = color_values
+    elseif prop =~ 'border-\%(top\|right\|bottom\|left\|block-start\|block-end\)-style'
+      let values = border_style_values
+    elseif prop =~ 'border-\%(top\|right\|bottom\|left\|block-start\|block-end\)-width'
+      let values = border_width_values
+    elseif prop == 'border-color'
+      let values = color_values
+    elseif prop == 'border-style'
+      let values = border_style_values
+    elseif prop == 'border-width'
+      let values = border_width_values
+    elseif prop == 'bottom'
+      let values = ["auto"]
+    elseif prop == 'box-decoration-break'
+      let values = ["slice", "clone"]
+    elseif prop == 'box-shadow'
+      let values = ["inset"]
+    elseif prop == 'box-sizing'
+      let values = ["border-box", "content-box"]
+    elseif prop =~ 'break-\%(before\|after\)'
+      let values = ["auto", "always", "avoid", "left", "right", "page", "column", "region", "recto", "verso", "avoid-page", "avoid-column", "avoid-region"]
+    elseif prop == 'break-inside'
+      let values = ["auto", "avoid", "avoid-page", "avoid-column", "avoid-region"]
+    elseif prop == 'caption-side'
+      let values = ["top", "bottom"]
+    elseif prop == 'clear'
+      let values = ["none", "left", "right", "both"]
+    elseif prop == 'clip'
+      let values = ["auto", "rect("]
+    elseif prop == 'clip-path'
+      let values = ["fill-box", "stroke-box", "view-box", "none"]
+    elseif prop == 'color'
+      let values = color_values
+    elseif prop == 'columns'
+      let values = []
+    elseif prop == 'column-count'
+      let values = ['auto']
+    elseif prop == 'column-fill'
+      let values = ['auto', 'balance']
+    elseif prop == 'column-rule-color'
+      let values = color_values
+    elseif prop == 'column-rule-style'
+      let values = border_style_values
+    elseif prop == 'column-rule-width'
+      let values = border_width_values
+    elseif prop == 'column-rule'
+      let vals = matchstr(line, '.*:\s*\zs.*')
+      if vals =~ '^\%([a-zA-Z0-9.]\+\)\?$'
+        let values = border_width_values
+      elseif vals =~ '^[a-zA-Z0-9.]\+\s\+\%([a-zA-Z]\+\)\?$'
+        let values = border_style_values
+      elseif vals =~ '^[a-zA-Z0-9.]\+\s\+[a-zA-Z]\+\s\+\%([a-zA-Z(]\+\)\?$'
+        let values = color_values
+      else
+        return []
+      endif
+    elseif prop == 'column-span'
+      let values = ["none", "all"]
+    elseif prop == 'column-width'
+      let values = ["auto"]
+    elseif prop == 'content'
+      let values = ["normal", "attr(", "open-quote", "close-quote", "no-open-quote", "no-close-quote"]
+    elseif prop =~ 'counter-\%(increment\|reset\)$'
+      let values = ["none"]
+    elseif prop =~ 'cue\%(-after\|-before\)\=$'
+      let values = ["url("]
+    elseif prop == 'cursor'
+      let values = ["url(", "auto", "crosshair", "default", "pointer", "move", "e-resize", "ne-resize", "nw-resize", "n-resize", "se-resize", "sw-resize", "s-resize", "w-resize", "text", "wait", "help", "progress"]
+    elseif prop == 'direction'
+      let values = ["ltr", "rtl"]
+    elseif prop == 'display'
+      let values = ["inline", "block", "list-item", "inline-list-item", "run-in", "inline-block", "table", "inline-table", "table-row-group", "table-header-group", "table-footer-group", "table-row", "table-column-group", "table-column", "table-cell", "table-caption", "none", "flex", "inline-flex", "grid", "inline-grid", "ruby", "ruby-base", "ruby-text", "ruby-base-container", "ruby-text-container", "contents"]
+    elseif prop == 'elevation'
+      let values = ["below", "level", "above", "higher", "lower"]
+    elseif prop == 'empty-cells'
+      let values = ["show", "hide"]
+    elseif prop == 'fallback'
+      let values = list_style_type_values
+    elseif prop == 'filter'
+      let values = ["blur(", "brightness(", "contrast(", "drop-shadow(", "grayscale(", "hue-rotate(", "invert(", "opacity(", "sepia(", "saturate("]
+    elseif prop == 'flex-basis'
+      let values = ["auto", "content"]
+    elseif prop == 'flex-flow'
+      let values = ["row", "row-reverse", "column", "column-reverse", "nowrap", "wrap", "wrap-reverse"]
+    elseif prop == 'flex-grow'
+      let values = []
+    elseif prop == 'flex-shrink'
+      let values = []
+    elseif prop == 'flex-wrap'
+      let values = ["nowrap", "wrap", "wrap-reverse"]
+    elseif prop == 'flex'
+      let values = ["nowrap", "wrap", "wrap-reverse"] + ["row", "row-reverse", "column", "column-reverse", "nowrap", "wrap", "wrap-reverse"] + ["auto", "content"]
+    elseif prop == 'float'
+      let values = ["left", "right", "none"]
+    elseif prop == 'font-family'
+      let values = ["sans-serif", "serif", "monospace", "cursive", "fantasy"]
+    elseif prop == 'font-feature-settings'
+      let values = ["normal", '"aalt"', '"abvf"', '"abvm"', '"abvs"', '"afrc"', '"akhn"', '"blwf"', '"blwm"', '"blws"', '"calt"', '"case"', '"ccmp"', '"cfar"', '"cjct"', '"clig"', '"cpct"', '"cpsp"', '"cswh"', '"curs"', '"cv', '"c2pc"', '"c2sc"', '"dist"', '"dlig"', '"dnom"', '"dtls"', '"expt"', '"falt"', '"fin2"', '"fin3"', '"fina"', '"flac"', '"frac"', '"fwid"', '"half"', '"haln"', '"halt"', '"hist"', '"hkna"', '"hlig"', '"hngl"', '"hojo"', '"hwid"', '"init"', '"isol"', '"ital"', '"jalt"', '"jp78"', '"jp83"', '"jp90"', '"jp04"', '"kern"', '"lfbd"', '"liga"', '"ljmo"', '"lnum"', '"locl"', '"ltra"', '"ltrm"', '"mark"', '"med2"', '"medi"', '"mgrk"', '"mkmk"', '"mset"', '"nalt"', '"nlck"', '"nukt"', '"numr"', '"onum"', '"opbd"', '"ordn"', '"ornm"', '"palt"', '"pcap"', '"pkna"', '"pnum"', '"pref"', '"pres"', '"pstf"', '"psts"', '"pwid"', '"qwid"', '"rand"', '"rclt"', '"rkrf"', '"rlig"', '"rphf"', '"rtbd"', '"rtla"', '"rtlm"', '"ruby"', '"salt"', '"sinf"', '"size"', '"smcp"', '"smpl"', '"ss01"', '"ss02"', '"ss03"', '"ss04"', '"ss05"', '"ss06"', '"ss07"', '"ss08"', '"ss09"', '"ss10"', '"ss11"', '"ss12"', '"ss13"', '"ss14"', '"ss15"', '"ss16"', '"ss17"', '"ss18"', '"ss19"', '"ss20"', '"ssty"', '"stch"', '"subs"', '"sups"', '"swsh"', '"titl"', '"tjmo"', '"tnam"', '"tnum"', '"trad"', '"twid"', '"unic"', '"valt"', '"vatu"', '"vert"', '"vhal"', '"vjmo"', '"vkna"', '"vkrn"', '"vpal"', '"vrt2"', '"zero"']
+    elseif prop == 'font-kerning'
+      let values = ["auto", "normal", "none"]
+    elseif prop == 'font-language-override'
+      let values = ["normal"]
+    elseif prop == 'font-size'
+      let values = ["xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "larger", "smaller"]
+    elseif prop == 'font-size-adjust'
+      let values = []
+    elseif prop == 'font-stretch'
+      let values = ["normal", "ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded"]
+    elseif prop == 'font-style'
+      let values = ["normal", "italic", "oblique"]
+    elseif prop == 'font-synthesis'
+      let values = ["none", "weight", "style"]
+    elseif prop == 'font-variant-alternates'
+      let values = ["normal", "historical-forms", "stylistic(", "styleset(", "character-variant(", "swash(", "ornaments(", "annotation("]
+    elseif prop == 'font-variant-caps'
+      let values = ["normal", "small-caps", "all-small-caps", "petite-caps", "all-petite-caps", "unicase", "titling-caps"]
+    elseif prop == 'font-variant-asian'
+      let values = ["normal", "ruby", "jis78", "jis83", "jis90", "jis04", "simplified", "traditional"]
+    elseif prop == 'font-variant-ligatures'
+      let values = ["normal", "none", "common-ligatures", "no-common-ligatures", "discretionary-ligatures", "no-discretionary-ligatures", "historical-ligatures", "no-historical-ligatures", "contextual", "no-contextual"]
+    elseif prop == 'font-variant-numeric'
+      let values = ["normal", "ordinal", "slashed-zero", "lining-nums", "oldstyle-nums", "proportional-nums", "tabular-nums", "diagonal-fractions", "stacked-fractions"]
+    elseif prop == 'font-variant-position'
+      let values = ["normal", "sub", "super"]
+    elseif prop == 'font-variant'
+      let values = ["normal", "historical-forms", "stylistic(", "styleset(", "character-variant(", "swash(", "ornaments(", "annotation("] + ["small-caps", "all-small-caps", "petite-caps", "all-petite-caps", "unicase", "titling-caps"] + ["ruby", "jis78", "jis83", "jis90", "jis04", "simplified", "traditional"] + ["none", "common-ligatures", "no-common-ligatures", "discretionary-ligatures", "no-discretionary-ligatures", "historical-ligatures", "no-historical-ligatures", "contextual", "no-contextual"] + ["ordinal", "slashed-zero", "lining-nums", "oldstyle-nums", "proportional-nums", "tabular-nums", "diagonal-fractions", "stacked-fractions"] + ["sub", "super"]
+    elseif prop == 'font-weight'
+      let values = ["normal", "bold", "bolder", "lighter", "100", "200", "300", "400", "500", "600", "700", "800", "900"]
+    elseif prop == 'font'
+      let values = ["normal", "italic", "oblique", "small-caps", "bold", "bolder", "lighter", "100", "200", "300", "400", "500", "600", "700", "800", "900", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "larger", "smaller", "sans-serif", "serif", "monospace", "cursive", "fantasy", "caption", "icon", "menu", "message-box", "small-caption", "status-bar"]
+    elseif prop =~ '^\%(height\|width\)$'
+      let values = ["auto", "border-box", "content-box", "max-content", "min-content", "available", "fit-content"]
+    elseif prop =~ '^\%(left\|rigth\)$'
+      let values = ["auto"]
+    elseif prop == 'image-rendering'
+      let values = ["auto", "crisp-edges", "pixelated"]
+    elseif prop == 'image-orientation'
+      let values = ["from-image", "flip"]
+    elseif prop == 'ime-mode'
+      let values = ["auto", "normal", "active", "inactive", "disabled"]
+    elseif prop == 'inline-size'
+      let values = ["auto", "border-box", "content-box", "max-content", "min-content", "available", "fit-content"]
+    elseif prop == 'isolation'
+      let values = ["auto", "isolate"]
+    elseif prop == 'justify-content'
+      let values = ["flex-start", "flex-end", "center", "space-between", "space-around"]
+    elseif prop == 'letter-spacing'
+      let values = ["normal"]
+    elseif prop == 'line-break'
+      let values = ["auto", "loose", "normal", "strict"]
+    elseif prop == 'line-height'
+      let values = ["normal"]
+    elseif prop == 'list-style-image'
+      let values = ["url(", "none"]
+    elseif prop == 'list-style-position'
+      let values = ["inside", "outside"]
+    elseif prop == 'list-style-type'
+      let values = list_style_type_values
+    elseif prop == 'list-style'
+      let values = list_style_type_values + ["inside", "outside"] + ["url(", "none"]
+    elseif prop == 'margin'
+      let values = ["auto"]
+    elseif prop =~ 'margin-\%(right\|left\|top\|bottom\|block-start\|block-end\|inline-start\|inline-end\)$'
+      let values = ["auto"]
+    elseif prop == 'marks'
+      let values = ["crop", "cross", "none"]
+    elseif prop == 'mask'
+      let values = ["url("]
+    elseif prop == 'mask-type'
+      let values = ["luminance", "alpha"]
+    elseif prop == '\%(max\|min\)-\%(block\|inline\)-size'
+      let values = ["auto", "border-box", "content-box", "max-content", "min-content", "available", "fit-content"]
+    elseif prop == '\%(max\|min\)-\%(height\|width\)'
+      let values = ["auto", "border-box", "content-box", "max-content", "min-content", "available", "fit-content"]
+    elseif prop == '\%(max\|min\)-zoom'
+      let values = ["auto"]
+    elseif prop == 'mix-blend-mode'
+      let values = ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"]
+    elseif prop == 'opacity'
+      let values = []
+    elseif prop == 'orientation'
+      let values = ["auto", "portrait", "landscape"]
+    elseif prop == 'orphans'
+      let values = []
+    elseif prop == 'outline-offset'
+      let values = []
+    elseif prop == 'outline-color'
+      let values = color_values
+    elseif prop == 'outline-style'
+      let values = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"]
+    elseif prop == 'outline-width'
+      let values = ["thin", "thick", "medium"]
+    elseif prop == 'outline'
+      let vals = matchstr(line, '.*:\s*\zs.*')
+      if vals =~ '^\%([a-zA-Z0-9,()#]\+\)\?$'
+        let values = color_values
+      elseif vals =~ '^[a-zA-Z0-9,()#]\+\s\+\%([a-zA-Z]\+\)\?$'
+        let values = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"]
+      elseif vals =~ '^[a-zA-Z0-9,()#]\+\s\+[a-zA-Z]\+\s\+\%([a-zA-Z(]\+\)\?$'
+        let values = ["thin", "thick", "medium"]
+      else
+        return []
+      endif
+    elseif prop == 'overflow-wrap'
+      let values = ["normal", "break-word"]
+    elseif prop =~ 'overflow\%(-x\|-y\)\='
+      let values = ["visible", "hidden", "scroll", "auto"]
+    elseif prop == 'pad'
+      let values = []
+    elseif prop == 'padding'
+      let values = []
+    elseif prop =~ 'padding-\%(top\|right\|bottom\|left\|inline-start\|inline-end\|block-start\|block-end\)$'
+      let values = []
+    elseif prop =~ 'page-break-\%(after\|before\)$'
+      let values = ["auto", "always", "avoid", "left", "right", "recto", "verso"]
+    elseif prop == 'page-break-inside'
+      let values = ["auto", "avoid"]
+    elseif prop =~ 'pause\%(-after\|-before\)\=$'
+      let values = ["none", "x-weak", "weak", "medium", "strong", "x-strong"]
+    elseif prop == 'perspective'
+      let values = ["none"]
+    elseif prop == 'perspective-origin'
+      let values = ["top", "bottom", "left", "center", " right"]
+    elseif prop == 'pointer-events'
+      let values = ["auto", "none", "visiblePainted", "visibleFill", "visibleStroke", "visible", "painted", "fill", "stroke", "all"]
+    elseif prop == 'position'
+      let values = ["static", "relative", "absolute", "fixed", "sticky"]
+    elseif prop == 'prefix'
+      let values = []
+    elseif prop == 'quotes'
+      let values = ["none"]
+    elseif prop == 'range'
+      let values = ["auto", "infinite"]
+    elseif prop == 'resize'
+      let values = ["none", "both", "horizontal", "vertical"]
+    elseif prop =~ 'rest\%(-after\|-before\)\=$'
+      let values = ["none", "x-weak", "weak", "medium", "strong", "x-strong"]
+    elseif prop == 'ruby-align'
+      let values = ["start", "center", "space-between", "space-around"]
+    elseif prop == 'ruby-merge'
+      let values = ["separate", "collapse", "auto"]
+    elseif prop == 'ruby-position'
+      let values = ["over", "under", "inter-character"]
+    elseif prop == 'scroll-behavior'
+      let values = ["auto", "smooth"]
+    elseif prop == 'scroll-snap-coordinate'
+      let values = ["none"]
+    elseif prop == 'scroll-snap-destination'
+      return []
+    elseif prop == 'scroll-snap-points-\%(x\|y\)$'
+      let values = ["none", "repeat("]
+    elseif prop == 'scroll-snap-type\%(-x\|-y\)\=$'
+      let values = ["none", "mandatory", "proximity"]
+    elseif prop == 'shape-image-threshold'
+      let values = []
+    elseif prop == 'shape-margin'
+      let values = []
+    elseif prop == 'shape-outside'
+      let values = ["margin-box", "border-box", "padding-box", "content-box", 'inset(', 'circle(', 'ellipse(', 'polygon(', 'url(']
+    elseif prop == 'speak'
+      let values = ["auto", "none", "normal"]
+    elseif prop == 'speak-as'
+      let values = ["auto", "normal", "spell-out", "digits"]
+    elseif prop == 'src'
+      let values = ["url("]
+    elseif prop == 'suffix'
+      let values = []
+    elseif prop == 'symbols'
+      let values = []
+    elseif prop == 'system'
+      let vals = matchstr(line, '.*:\s*\zs.*')
+      if vals =~ '^extends'
+        let values = list_style_type_values
+      else
+        let values = ["cyclic", "numeric", "alphabetic", "symbolic", "additive", "fixed", "extends"]
+      endif
+    elseif prop == 'table-layout'
+      let values = ["auto", "fixed"]
+    elseif prop == 'tab-size'
+      let values = []
+    elseif prop == 'text-align'
+      let values = ["start", "end", "left", "right", "center", "justify", "match-parent"]
+    elseif prop == 'text-align-last'
+      let values = ["auto", "start", "end", "left", "right", "center", "justify"]
+    elseif prop == 'text-combine-upright'
+      let values = ["none", "all", "digits"]
+    elseif prop == 'text-decoration-line'
+      let values = ["none", "underline", "overline", "line-through", "blink"]
+    elseif prop == 'text-decoration-color'
+      let values = color_values
+    elseif prop == 'text-decoration-style'
+      let values = ["solid", "double", "dotted", "dashed", "wavy"]
+    elseif prop == 'text-decoration'
+      let values = ["none", "underline", "overline", "line-through", "blink"] + ["solid", "double", "dotted", "dashed", "wavy"] + color_values
+    elseif prop == 'text-emphasis-color'
+      let values = color_values
+    elseif prop == 'text-emphasis-position'
+      let values = ["over", "under", "left", "right"]
+    elseif prop == 'text-emphasis-style'
+      let values = ["none", "filled", "open", "dot", "circle", "double-circle", "triangle", "sesame"]
+    elseif prop == 'text-emphasis'
+      let values = color_values + ["over", "under", "left", "right"] + ["none", "filled", "open", "dot", "circle", "double-circle", "triangle", "sesame"]
+    elseif prop == 'text-indent'
+      let values = ["hanging", "each-line"]
+    elseif prop == 'text-orientation'
+      let values = ["mixed", "upright", "sideways", "sideways-right", "use-glyph-orientation"]
+    elseif prop == 'text-overflow'
+      let values = ["clip", "ellipsis"]
+    elseif prop == 'text-rendering'
+      let values = ["auto", "optimizeSpeed", "optimizeLegibility", "geometricPrecision"]
+    elseif prop == 'text-shadow'
+      let values = color_values
+    elseif prop == 'text-transform'
+      let values = ["capitalize", "uppercase", "lowercase", "full-width", "none"]
+    elseif prop == 'text-underline-position'
+      let values = ["auto", "under", "left", "right"]
+    elseif prop == 'touch-action'
+      let values = ["auto", "none", "pan-x", "pan-y", "manipulation", "pan-left", "pan-right", "pan-top", "pan-down"]
+    elseif prop == 'transform'
+      let values = ["matrix(", "translate(", "translateX(", "translateY(", "scale(", "scaleX(", "scaleY(", "rotate(", "skew(", "skewX(", "skewY(", "matrix3d(", "translate3d(", "translateZ(", "scale3d(", "scaleZ(", "rotate3d(", "rotateX(", "rotateY(", "rotateZ(", "perspective("]
+    elseif prop == 'transform-box'
+      let values = ["border-box", "fill-box", "view-box"]
+    elseif prop == 'transform-origin'
+      let values = ["left", "center", "right", "top", "bottom"]
+    elseif prop == 'transform-style'
+      let values = ["flat", "preserve-3d"]
+    elseif prop == 'top'
+      let values = ["auto"]
+    elseif prop == 'transition-property'
+      let values = ["all", "none"] + s:values
+    elseif prop == 'transition-duration'
+      let values = []
+    elseif prop == 'transition-delay'
+      let values = []
+    elseif prop == 'transition-timing-function'
+      let values = timing_functions
+    elseif prop == 'transition'
+      let values = ["all", "none"] + s:values + timing_functions
+    elseif prop == 'unicode-bidi'
+      let values = ["normal", "embed", "isolate", "bidi-override", "isolate-override", "plaintext"]
+    elseif prop == 'unicode-range'
+      let values = ["U+"]
+    elseif prop == 'user-zoom'
+      let values = ["zoom", "fixed"]
+    elseif prop == 'vertical-align'
+      let values = ["baseline", "sub", "super", "top", "text-top", "middle", "bottom", "text-bottom"]
+    elseif prop == 'visibility'
+      let values = ["visible", "hidden", "collapse"]
+    elseif prop == 'voice-volume'
+      let values = ["silent", "x-soft", "soft", "medium", "loud", "x-loud"]
+    elseif prop == 'voice-balance'
+      let values = ["left", "center", "right", "leftwards", "rightwards"]
+    elseif prop == 'voice-family'
+      let values = []
+    elseif prop == 'voice-rate'
+      let values = ["normal", "x-slow", "slow", "medium", "fast", "x-fast"]
+    elseif prop == 'voice-pitch'
+      let values = ["absolute", "x-low", "low", "medium", "high", "x-high"]
+    elseif prop == 'voice-range'
+      let values = ["absolute", "x-low", "low", "medium", "high", "x-high"]
+    elseif prop == 'voice-stress'
+      let values = ["normal", "strong", "moderate", "none", "reduced "]
+    elseif prop == 'voice-duration'
+      let values = ["auto"]
+    elseif prop == 'white-space'
+      let values = ["normal", "pre", "nowrap", "pre-wrap", "pre-line"]
+    elseif prop == 'widows'
+      let values = []
+    elseif prop == 'will-change'
+      let values = ["auto", "scroll-position", "contents"] + s:values
+    elseif prop == 'word-break'
+      let values = ["normal", "break-all", "keep-all"]
+    elseif prop == 'word-spacing'
+      let values = ["normal"]
+    elseif prop == 'word-wrap'
+      let values = ["normal", "break-word"]
+    elseif prop == 'writing-mode'
+      let values = ["horizontal-tb", "vertical-rl", "vertical-lr", "sideways-rl", "sideways-lr"]
+    elseif prop == 'z-index'
+      let values = ["auto"]
+    elseif prop == 'zoom'
+      let values = ["auto"]
+    else
+      " If no property match it is possible we are outside of {} and
+      " trying to complete pseudo-(class|element)
+      let element = tolower(matchstr(line, '\zs[a-zA-Z1-6]*\ze:[^:[:space:]]\{-}$'))
+      if stridx('a,abbr,address,area,article,aside,audio,b,base,bdi,bdo,bgsound,blockquote,body,br,button,canvas,caption,center,cite,code,col,colgroup,command,content,data,datalist,dd,del,details,dfn,dialog,div,dl,dt,element,em,embed,fieldset,figcaption,figure,font,footer,form,frame,frameset,head,header,hgroup,hr,html,i,iframe,image,img,input,ins,isindex,kbd,keygen,label,legend,li,link,main,map,mark,menu,menuitem,meta,meter,nav,nobr,noframes,noscript,object,ol,optgroup,option,output,p,param,picture,pre,progress,q,rp,rt,rtc,ruby,s,samp,script,section,select,shadow,small,source,span,strong,style,sub,summary,sup,table,tbody,td,template,textarea,tfoot,th,thead,time,title,tr,track,u,ul,var,video,wbr', ','.element.',') > -1
+        let values = ["active", "any", "checked", "default", "dir(", "disabled", "empty", "enabled", "first", "first-child", "first-of-type", "fullscreen", "focus", "hover", "indeterminate", "in-range", "invalid", "lang(", "last-child", "last-of-type", "left", "link", "not(", "nth-child(", "nth-last-child(", "nth-last-of-type(", "nth-of-type(", "only-child", "only-of-type", "optional", "out-of-range", "read-only", "read-write", "required", "right", "root", "scope", "target", "valid", "visited", "first-line", "first-letter", "before", "after", "selection", "backdrop"]
+      else
+        return []
+      endif
+    endif
 
-	for m in values
-		if m =~? '^'.entered_value
-			call add(res, m)
-		elseif m =~? entered_value
-			call add(res2, m)
-		endif
-	endfor
+    let values = wide_keywords + values
+    " Complete values
+    let entered_value = matchstr(line, '.\{-}\zs[a-zA-Z0-9#,.(_-]*$')
 
-	return res + res2
+    for m in values
+      if m =~? '^'.entered_value
+        call add(res, m)
+      elseif m =~? entered_value
+        call add(res2, m)
+      endif
+    endfor
 
-elseif borders[max(keys(borders))] == 'closebrace'
+    return res + res2
 
-	return []
+  elseif borders[max(keys(borders))] == 'closebrace'
 
-elseif borders[max(keys(borders))] == 'exclam'
+    return []
 
-	" Complete values
-	let entered_imp = matchstr(line, '.\{-}!\s*\zs[a-zA-Z ]*$')
+  elseif borders[max(keys(borders))] == 'exclam'
 
-	let values = ["important"]
+    " Complete values
+    let entered_imp = matchstr(line, '.\{-}!\s*\zs[a-zA-Z ]*$')
 
-	for m in values
-		if m =~? '^'.entered_imp
-			call add(res, m)
-		endif
-	endfor
+    let values = ["important"]
 
-	return res
+    for m in values
+      if m =~? '^'.entered_imp
+        call add(res, m)
+      endif
+    endfor
 
-elseif borders[max(keys(borders))] == 'atrule'
+    return res
 
-	let afterat = matchstr(line, '.*@\zs.*')
+  elseif borders[max(keys(borders))] == 'atrule'
 
-	if afterat =~ '\s'
+    let afterat = matchstr(line, '.*@\zs.*')
 
-		let atrulename = matchstr(line, '.*@\zs[a-zA-Z-]\+\ze')
+    if afterat =~ '\s'
 
-		if atrulename == 'media'
-			let values = ["screen", "tty", "tv", "projection", "handheld", "print", "braille", "aural", "all"]
+      let atrulename = matchstr(line, '.*@\zs[a-zA-Z-]\+\ze')
 
-			let entered_atruleafter = matchstr(line, '.*@media\s\+\zs.*$')
+      if atrulename == 'media'
+        let entered_atruleafter = matchstr(line, '.*@media\s\+\zs.*$')
 
-		elseif atrulename == 'import'
-			let entered_atruleafter = matchstr(line, '.*@import\s\+\zs.*$')
+        if entered_atruleafter =~ "([^)]*$"
+          let entered_atruleafter = matchstr(entered_atruleafter, '(\s*\zs[^)]*$')
+          let values = ["max-width", "min-width", "width", "max-height", "min-height", "height", "max-aspect-ration", "min-aspect-ration", "aspect-ratio", "orientation", "max-resolution", "min-resolution", "resolution", "scan", "grid", "update-frequency", "overflow-block", "overflow-inline", "max-color", "min-color", "color", "max-color-index", "min-color-index", "color-index", "monochrome", "inverted-colors", "pointer", "hover", "any-pointer", "any-hover", "light-level", "scripting"]
+        else
+          let values = ["screen", "print", "speech", "all", "not", "and", "("]
+        endif
 
-			if entered_atruleafter =~ "^[\"']"
-				let filestart = matchstr(entered_atruleafter, '^.\zs.*')
-				let files = split(glob(filestart.'*'), '\n')
-				let values = map(copy(files), '"\"".v:val')
+      elseif atrulename == 'supports'
+        let entered_atruleafter = matchstr(line, '.*@supports\s\+\zs.*$')
 
-			elseif entered_atruleafter =~ "^url("
-				let filestart = matchstr(entered_atruleafter, "^url([\"']\\?\\zs.*")
-				let files = split(glob(filestart.'*'), '\n')
-				let values = map(copy(files), '"url(".v:val')
-				
-			else
-				let values = ['"', 'url(']
+        if entered_atruleafter =~ "([^)]*$"
+          let entered_atruleafter = matchstr(entered_atruleafter, '(\s*\zs.*$')
+          let values = s:values
+        else
+          let values = ["("]
+        endif
 
-			endif
+      elseif atrulename == 'charset'
+        let entered_atruleafter = matchstr(line, '.*@charset\s\+\zs.*$')
+        let values = [
+          \ '"UTF-8";', '"ANSI_X3.4-1968";', '"ISO_8859-1:1987";', '"ISO_8859-2:1987";', '"ISO_8859-3:1988";', '"ISO_8859-4:1988";', '"ISO_8859-5:1988";', 
+          \ '"ISO_8859-6:1987";', '"ISO_8859-7:1987";', '"ISO_8859-8:1988";', '"ISO_8859-9:1989";', '"ISO-8859-10";', '"ISO_6937-2-add";', '"JIS_X0201";', 
+          \ '"JIS_Encoding";', '"Shift_JIS";', '"Extended_UNIX_Code_Packed_Format_for_Japanese";', '"Extended_UNIX_Code_Fixed_Width_for_Japanese";',
+          \ '"BS_4730";', '"SEN_850200_C";', '"IT";', '"ES";', '"DIN_66003";', '"NS_4551-1";', '"NF_Z_62-010";', '"ISO-10646-UTF-1";', '"ISO_646.basic:1983";',
+          \ '"INVARIANT";', '"ISO_646.irv:1983";', '"NATS-SEFI";', '"NATS-SEFI-ADD";', '"NATS-DANO";', '"NATS-DANO-ADD";', '"SEN_850200_B";', '"KS_C_5601-1987";',
+          \ '"ISO-2022-KR";', '"EUC-KR";', '"ISO-2022-JP";', '"ISO-2022-JP-2";', '"JIS_C6220-1969-jp";', '"JIS_C6220-1969-ro";', '"PT";', '"greek7-old";', 
+          \ '"latin-greek";', '"NF_Z_62-010_(1973)";', '"Latin-greek-1";', '"ISO_5427";', '"JIS_C6226-1978";', '"BS_viewdata";', '"INIS";', '"INIS-8";', 
+          \ '"INIS-cyrillic";', '"ISO_5427:1981";', '"ISO_5428:1980";', '"GB_1988-80";', '"GB_2312-80";', '"NS_4551-2";', '"videotex-suppl";', '"PT2";', 
+          \ '"ES2";', '"MSZ_7795.3";', '"JIS_C6226-1983";', '"greek7";', '"ASMO_449";', '"iso-ir-90";', '"JIS_C6229-1984-a";', '"JIS_C6229-1984-b";', 
+          \ '"JIS_C6229-1984-b-add";', '"JIS_C6229-1984-hand";', '"JIS_C6229-1984-hand-add";', '"JIS_C6229-1984-kana";', '"ISO_2033-1983";', 
+          \ '"ANSI_X3.110-1983";', '"T.61-7bit";', '"T.61-8bit";', '"ECMA-cyrillic";', '"CSA_Z243.4-1985-1";', '"CSA_Z243.4-1985-2";', '"CSA_Z243.4-1985-gr";', 
+          \ '"ISO_8859-6-E";', '"ISO_8859-6-I";', '"T.101-G2";', '"ISO_8859-8-E";', '"ISO_8859-8-I";', '"CSN_369103";', '"JUS_I.B1.002";', '"IEC_P27-1";', 
+          \ '"JUS_I.B1.003-serb";', '"JUS_I.B1.003-mac";', '"greek-ccitt";', '"NC_NC00-10:81";', '"ISO_6937-2-25";', '"GOST_19768-74";', '"ISO_8859-supp";', 
+          \ '"ISO_10367-box";', '"latin-lap";', '"JIS_X0212-1990";', '"DS_2089";', '"us-dk";', '"dk-us";', '"KSC5636";', '"UNICODE-1-1-UTF-7";', '"ISO-2022-CN";', 
+          \ '"ISO-2022-CN-EXT";', '"ISO-8859-13";', '"ISO-8859-14";', '"ISO-8859-15";', '"ISO-8859-16";', '"GBK";', '"GB18030";', '"OSD_EBCDIC_DF04_15";', 
+          \ '"OSD_EBCDIC_DF03_IRV";', '"OSD_EBCDIC_DF04_1";', '"ISO-11548-1";', '"KZ-1048";', '"ISO-10646-UCS-2";', '"ISO-10646-UCS-4";', '"ISO-10646-UCS-Basic";',
+          \ '"ISO-10646-Unicode-Latin1";', '"ISO-10646-J-1";', '"ISO-Unicode-IBM-1261";', '"ISO-Unicode-IBM-1268";', '"ISO-Unicode-IBM-1276";', 
+          \ '"ISO-Unicode-IBM-1264";', '"ISO-Unicode-IBM-1265";', '"UNICODE-1-1";', '"SCSU";', '"UTF-7";', '"UTF-16BE";', '"UTF-16LE";', '"UTF-16";', '"CESU-8";', 
+          \ '"UTF-32";', '"UTF-32BE";', '"UTF-32LE";', '"BOCU-1";', '"ISO-8859-1-Windows-3.0-Latin-1";', '"ISO-8859-1-Windows-3.1-Latin-1";', 
+          \ '"ISO-8859-2-Windows-Latin-2";', '"ISO-8859-9-Windows-Latin-5";', '"hp-roman8";', '"Adobe-Standard-Encoding";', '"Ventura-US";', 
+          \ '"Ventura-International";', '"DEC-MCS";', '"IBM850";', '"PC8-Danish-Norwegian";', '"IBM862";', '"PC8-Turkish";', '"IBM-Symbols";', '"IBM-Thai";', 
+          \ '"HP-Legal";', '"HP-Pi-font";', '"HP-Math8";', '"Adobe-Symbol-Encoding";', '"HP-DeskTop";', '"Ventura-Math";', '"Microsoft-Publishing";', 
+          \ '"Windows-31J";', '"GB2312";', '"Big5";', '"macintosh";', '"IBM037";', '"IBM038";', '"IBM273";', '"IBM274";', '"IBM275";', '"IBM277";', '"IBM278";', 
+          \ '"IBM280";', '"IBM281";', '"IBM284";', '"IBM285";', '"IBM290";', '"IBM297";', '"IBM420";', '"IBM423";', '"IBM424";', '"IBM437";', '"IBM500";', '"IBM851";', 
+          \ '"IBM852";', '"IBM855";', '"IBM857";', '"IBM860";', '"IBM861";', '"IBM863";', '"IBM864";', '"IBM865";', '"IBM868";', '"IBM869";', '"IBM870";', '"IBM871";', 
+          \ '"IBM880";', '"IBM891";', '"IBM903";', '"IBM904";', '"IBM905";', '"IBM918";', '"IBM1026";', '"EBCDIC-AT-DE";', '"EBCDIC-AT-DE-A";', '"EBCDIC-CA-FR";', 
+          \ '"EBCDIC-DK-NO";', '"EBCDIC-DK-NO-A";', '"EBCDIC-FI-SE";', '"EBCDIC-FI-SE-A";', '"EBCDIC-FR";', '"EBCDIC-IT";', '"EBCDIC-PT";', '"EBCDIC-ES";', 
+          \ '"EBCDIC-ES-A";', '"EBCDIC-ES-S";', '"EBCDIC-UK";', '"EBCDIC-US";', '"UNKNOWN-8BIT";', '"MNEMONIC";', '"MNEM";', '"VISCII";', '"VIQR";', '"KOI8-R";', 
+          \ '"HZ-GB-2312";', '"IBM866";', '"IBM775";', '"KOI8-U";', '"IBM00858";', '"IBM00924";', '"IBM01140";', '"IBM01141";', '"IBM01142";', '"IBM01143";', 
+          \ '"IBM01144";', '"IBM01145";', '"IBM01146";', '"IBM01147";', '"IBM01148";', '"IBM01149";', '"Big5-HKSCS";', '"IBM1047";', '"PTCP154";', '"Amiga-1251";', 
+          \ '"KOI7-switched";', '"BRF";', '"TSCII";', '"windows-1250";', '"windows-1251";', '"windows-1252";', '"windows-1253";', '"windows-1254";', '"windows-1255";', 
+          \ '"windows-1256";', '"windows-1257";', '"windows-1258";', '"TIS-620";']
 
-		else
-			return []
+      elseif atrulename == 'namespace'
+        let entered_atruleafter = matchstr(line, '.*@namespace\s\+\zs.*$')
+        let values = ["url("]
 
-		endif
+      elseif atrulename == 'document'
+        let entered_atruleafter = matchstr(line, '.*@document\s\+\zs.*$')
+        let values = ["url(", "url-prefix(", "domain(", "regexp("]
 
-		for m in values
-			if m =~? '^'.entered_atruleafter
-				call add(res, m)
-			elseif m =~? entered_atruleafter
-				call add(res2, m)
-			endif
-		endfor
+      elseif atrulename == 'import'
+        let entered_atruleafter = matchstr(line, '.*@import\s\+\zs.*$')
 
-		return res + res2
+        if entered_atruleafter =~ "^[\"']"
+          let filestart = matchstr(entered_atruleafter, '^.\zs.*')
+          let files = split(glob(filestart.'*'), '\n')
+          let values = map(copy(files), '"\"".v:val')
 
-	endif
+        elseif entered_atruleafter =~ "^url("
+          let filestart = matchstr(entered_atruleafter, "^url([\"']\\?\\zs.*")
+          let files = split(glob(filestart.'*'), '\n')
+          let values = map(copy(files), '"url(".v:val')
 
-	let values = ["charset", "page", "media", "import", "font-face"]
+        else
+          let values = ['"', 'url(']
 
-	let entered_atrule = matchstr(line, '.*@\zs[a-zA-Z-]*$')
+        endif
 
-	for m in values
-		if m =~? '^'.entered_atrule
-			call add(res, m .' ')
-		elseif m =~? entered_atrule
-			call add(res2, m .' ')
-		endif
-	endfor
+      else
+        return []
 
-	return res + res2
+      endif
 
-endif
+      for m in values
+        if m =~? '^'.entered_atruleafter
+          if entered_atruleafter =~? '^"' && m =~? '^"'
+            let m = m[1:]
+          endif
+          if b:after =~? '"' && stridx(m, '"') > -1
+            let m = m[0:stridx(m, '"')-1]
+          endif 
+          call add(res, m)
+        elseif m =~? entered_atruleafter
+          if m =~? '^"'
+            let m = m[1:]
+          endif
+          call add(res2, m)
+        endif
+      endfor
 
-return []
+      return res + res2
+
+    endif
+
+    let values = ["charset", "page", "media", "import", "font-face", "namespace", "supports", "keyframes", "viewport", "document"]
+
+    let entered_atrule = matchstr(line, '.*@\zs[a-zA-Z-]*$')
+
+    for m in values
+      if m =~? '^'.entered_atrule
+        call add(res, m .' ')
+      elseif m =~? entered_atrule
+        call add(res2, m .' ')
+      endif
+    endfor
+
+    return res + res2
+
+  endif
+
+  return []
 
 endfunction
diff --git a/runtime/doc/develop.txt b/runtime/doc/develop.txt
index 6e6feb3..34ff38d 100644
--- a/runtime/doc/develop.txt
+++ b/runtime/doc/develop.txt
@@ -1,4 +1,4 @@
-*develop.txt*   For Vim version 7.4.  Last change: 2014 Mar 27
+*develop.txt*   For Vim version 7.4.  Last change: 2016 Jan 19
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -166,12 +166,27 @@
 MAKING CHANGES						*style-changes*
 
 The basic steps to make changes to the code:
-1. Adjust the documentation.  Doing this first gives you an impression of how
+1. Get the code from github.  That makes it easier to keep your changed
+   version in sync with the main code base (it may be a while before your
+   changes will be included).  You do need to spend some time learning git,
+   it's not the most user friendly tool.
+2. Adjust the documentation.  Doing this first gives you an impression of how
    your changes affect the user.
-2. Make the source code changes.
-3. Check ../doc/todo.txt if the change affects any listed item.
-4. Make a patch with "diff -c" against the unmodified code and docs.
-5. Make a note about what changed and include it with the patch.
+3. Make the source code changes.
+4. Check ../doc/todo.txt if the change affects any listed item.
+5. Make a patch with "git diff".  You can also create a pull request on
+   github, but it's the diff that matters.
+6. Make a note about what changed, preferably mentioning the problem and the
+   solution.  Send an email to the vim-dev maillist with an explanation and
+   include the diff. Or create a pull request on github.
+
+
+C COMPILER						*style-compiler*
+
+The minimal C compiler version supported is C89, also known as ANSI C.
+Later standards don't add much and C89 is the widest supported.
+
+One restriction that this implies: no // comments, only /* comments */.
 
 
 USE OF COMMON FUNCTIONS					*style-functions*
@@ -197,7 +212,7 @@
 
 Function names can not be more than 31 characters long (because of VMS).
 
-Don't use "delete" as a variable name, C++ doesn't like it.
+Don't use "delete" or "this" as a variable name, C++ doesn't like it.
 
 Because of the requirement that Vim runs on as many systems as possible, we
 need to avoid using names that are already defined by the system.  This is a
@@ -288,6 +303,24 @@
 		a = 1;
 	    while (cond);
 
+Wrong:	    if (cond) {
+               cmd;
+               cmd;
+	    } else {
+               cmd;
+               cmd;
+	    }
+
+OK:	    if (cond)
+            {
+               cmd;
+               cmd;
+	    }
+	    else
+	    {
+               cmd;
+               cmd;
+	    }
 
 Functions start with:
 
@@ -299,9 +332,9 @@
 	 * Return value explanation.
 	 */
 	    int
-	function_name(arg1, arg2)
-	    int		arg1;		/* short comment about arg1 */
-	    int		arg2;		/* short comment about arg2 */
+	function_name(
+	    int		arg1,		/* short comment about arg1 */
+	    int		arg2)		/* short comment about arg2 */
 	{
 	    int		local;		/* comment about local */
 
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index ebd21ae..2073f28 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 7.4.  Last change: 2016 Jan 17
+*eval.txt*	For Vim version 7.4.  Last change: 2016 Jan 21
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -103,6 +103,9 @@
 there is no automatic conversion of Float.  You can use str2float() for String
 to Float, printf() for Float to String and float2nr() for Float to Number.
 
+						*E891* *E892* *E893* *E894*
+When expecting a Float a Number can also be used, but nothing else.
+
 						*E706* *sticky-type-checking*
 You will get an error if you try to change the type of a variable.  You need
 to |:unlet| it first to avoid this error.  String and Number are considered
@@ -3601,7 +3604,8 @@
 			getftype("/home")
 <		Note that a type such as "link" will only be returned on
 		systems that support it.  On some systems only "dir" and
-		"file" are returned.
+		"file" are returned.  On MS-Windows a symbolic link to a
+		directory returns "dir" instead of "link".
 
 							*getline()*
 getline({lnum} [, {end}])
@@ -5893,6 +5897,9 @@
 		sorted numerical. This is like 'n' but a string containing
 		digits will be used as the number they represent.
 
+		When {func} is given and it is 'f' then all items will be
+		sorted numerical. All values must be a Number or a Float.
+
 		When {func} is a |Funcref| or a function name, this function
 		is called to compare items.  The function is invoked with two
 		items as argument and must return zero if they are equal, 1 or
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index 2c4c135..d23edd0 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,4 +1,4 @@
-*index.txt*     For Vim version 7.4.  Last change: 2016 Jan 10
+*index.txt*     For Vim version 7.4.  Last change: 2016 Jan 19
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1539,14 +1539,14 @@
 |:tabdo|	:tabdo		execute command in each tab page
 |:tabedit|	:tabe[dit]	edit a file in a new tab page
 |:tabfind|	:tabf[ind]	find file in 'path', edit it in a new tab page
-|:tabfirst|	:tabfir[st]	got to first tab page
-|:tablast|	:tabl[ast]	got to last tab page
+|:tabfirst|	:tabfir[st]	go to first tab page
+|:tablast|	:tabl[ast]	go to last tab page
 |:tabmove|	:tabm[ove]	move tab page to other position
 |:tabnew|	:tabnew		edit a file in a new tab page
 |:tabnext|	:tabn[ext]	go to next tab page
 |:tabonly|	:tabo[nly]	close all tab pages except the current one
 |:tabprevious|	:tabp[revious]	go to previous tab page
-|:tabrewind|	:tabr[ewind]	got to first tab page
+|:tabrewind|	:tabr[ewind]	go to first tab page
 |:tabs|		:tabs		list the tab pages and what they contain
 |:tab|		:tab		create new tab when opening new window
 |:tag|		:ta[g]		jump to tag
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index 5436a80..3d42337 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -1,4 +1,4 @@
-*quickfix.txt*  For Vim version 7.4.  Last change: 2015 Dec 31
+*quickfix.txt*  For Vim version 7.4.  Last change: 2016 Jan 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 4945072..38c251b 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -2948,6 +2948,7 @@
 :syn-files	syntax.txt	/*:syn-files*
 :syn-fold	syntax.txt	/*:syn-fold*
 :syn-include	syntax.txt	/*:syn-include*
+:syn-iskeyword	syntax.txt	/*:syn-iskeyword*
 :syn-keepend	syntax.txt	/*:syn-keepend*
 :syn-keyword	syntax.txt	/*:syn-keyword*
 :syn-lc	syntax.txt	/*:syn-lc*
@@ -4417,6 +4418,10 @@
 E889	map.txt	/*E889*
 E89	message.txt	/*E89*
 E890	syntax.txt	/*E890*
+E891	eval.txt	/*E891*
+E892	eval.txt	/*E892*
+E893	eval.txt	/*E893*
+E894	eval.txt	/*E894*
 E90	message.txt	/*E90*
 E91	options.txt	/*E91*
 E92	message.txt	/*E92*
@@ -8134,6 +8139,7 @@
 strtrans()	eval.txt	/*strtrans()*
 strwidth()	eval.txt	/*strwidth()*
 style-changes	develop.txt	/*style-changes*
+style-compiler	develop.txt	/*style-compiler*
 style-examples	develop.txt	/*style-examples*
 style-functions	develop.txt	/*style-functions*
 style-names	develop.txt	/*style-names*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index bc7b962..2570ac8 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.4.  Last change: 2016 Jan 17
+*todo.txt*      For Vim version 7.4.  Last change: 2016 Jan 21
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -75,6 +75,12 @@
 - The pattern "\1" with the old engine gives E65, with the new engine it
   matches the empty string. (Dominique Pelle, 2015 Oct 2, Nov 24)
 - Search for \\~ causes error E874.
+- "\%1l^#.*" does not match on a line starting with "#".  The zero-width match
+  clears the start-of-line flag.
+
+C89: remove __ARGS in more places
+- Script: Hirohito Higashi, Jan 21.
+- Update to osdef.sh, Hirohito Higashi, 2016 Jan 21.
 
 Need to try out instructions in INSSTALLpc.txt about how to install all
 interfaces and how to build Vim with them.
@@ -90,6 +96,11 @@
 
 Problem using ":try" inside ":execute". (ZyX, 2013 Sep 15)
 
+Use vim.vim syntax highlighting for help file examples, but without ":" in
+'iskeyword' for syntax.
+
+Remove SPACE_IN_FILENAME ? What could possibly go wrong?
+
 Installation of .desktop files does not work everywhere.
 It's now fixed, but the target directory probably isn't right.
 Add configure check?
@@ -103,6 +114,11 @@
 ":cd C:\Windows\System32\drivers\etc*" does not work, even though the
 directory exists. (Sergio Gallelli, 2013 Dec 29)
 
+Win32: patch to use 64 bit stat() if possible. (Ken Takata, 2014 May 12)
+More tests May 14. Update May 29.  Update Aug 10.
+Now part of large file patches. (Ken Takata, 2016 Jan 19, second one)
+Updated patches with ordering: Jan 20.
+
 Using ":windo" to set options in all windows has the side effect that it
 changes the window layout and the current window.  Make a variant that saves
 and restores.  Use in the matchparen plugin.
@@ -118,6 +134,8 @@
 Unexpected delay when using CTRL-O u.  It's not timeoutlen.
 (Gary Johnson, 2015 Aug 28)
 
+Patch to support 64 bit ints for Number. (Ken Takata, 2016 Jan 21)
+
 Instead of separately uploading patches to the ftp site, we can get them from
 github with a URL like this:
    https://github.com/vim/vim/compare/v7.4.920%5E...v7.4.920.diff
@@ -152,8 +170,7 @@
 Build with Python on Mac does not always use the right library.
 (Kazunobu Kuriyama, 2015 Mar 28)
 
-Patch to support Python 'None' value in pyeval(). (Damien, 2015 Nov 21)
-Need a Vim equivalent of None and a way to test for it.
+Need a Vim equivalent of Python's None and a way to test for it.
 
 To support Thai (and other languages) word boundaries, include the ICU
 library:  http://userguide.icu-project.org/boundaryanalysis
@@ -161,10 +178,6 @@
 When complete() first argument is before where insert started and 'backspace'
 is Vi compatible, the completion fails. (Hirohito Higashi, 2015 Feb 19)
 
-Patch to fix bug in searchpair(). (Christian Brabandt, 2016 Jan 11)
-Problem reported by David Fishburn, using searchpair() with synID() used in
-the skip expression.
-
 Test 44 fails when [[=A=]] is changed to [[=À=]].  Caused by getcmdline() not
 handling the 0x80 as a second byte correctly?  (Dominique Pelle, 2015 Jun 10)
 
@@ -174,14 +187,6 @@
 MS-Windows: Crash opening very long file name starting with "\\".
 (Christian Brock, 2012 Jun 29)
 
-Patch to add ":syn iskeyword". (Christian Brabandt, 2015 Nov 10)
-
-Patch to use PLATFORM to determine target architecture. (Taro Muraoka, 2015
-Nov 29)
-
-If libiconv.dll is not found search for libiconv2.dll. (Yasuhiro Matsumoto,
-2015 Oct 7)
-
 Using an external diff is inefficient.  Not all systems have a good diff
 program available (esp. MS-Windows).  Would be nice to have in internal diff
 implementation.  Can then also use this for displaying changes within a line.
@@ -199,9 +204,6 @@
 The argument for "-S" is not taken literally, the ":so" command expands
 wildcards.  Add a ":nowild" command modifier?  (ZyX, 2015 March 4)
 
-Patch to support sorting on floating point number.  (Alex Jakushev, 2010 Oct
-30)
-
 Proposal to make options.txt easier to read. (Arnaud Decara, 2015 Aug 5)
 Update Aug 14.
 
@@ -321,10 +323,6 @@
 Should be easy to highlight all matches with 'incsearch'.  Idea by Itchyny,
 2015 Feb 6.
 
-Plugins need to make a lot of effort, lots of mappings, to know what happened
-before pressing the key that triggers a plugin action.  How about keeping the
-last N pressed keys, so that they do not need to be mapped?
-
 Wrong scrolling when using incsearch.  Patch by Christian Brabandt, 2014 Dec 4.
 Is this a good solution?
 
@@ -410,9 +408,6 @@
 Saito, 2013 Apr 24)  Has a problem (email 2015 Jan 7).
 Update 2015 Jan 10.
 
-Win32: patch to use 64 bit stat() if possible. (Ken Takata, 2014 May 12)
-More tests May 14. Update May 29.  Update Aug 10.
-
 Idea: For a window in the middle (has window above and below it), use
 right-mouse-drag on the status line to move a window up/down without changing
 its height?  It's like dragging the status bar above it at the same time.
@@ -438,11 +433,13 @@
 2014 Jun 8)
 
 Include a plugin manager with Vim? Neobundle seems to be the best currently.
+Also Vundle: https://github.com/gmarik/vundle
 Long message about this from ZyX, 2014 Mar 23.  And following replies.
 Also see http://vim-wiki.mawercer.de/wiki/topic/vim%20plugin%20managment.html
 User view:
-- Support multiple sources, basically any http:// URL.  Be able to look into
-  the files before deciding to install.
+- Support multiple sources, basically any http:// URL. Or a central place that
+  will work for everybody (github?  redirects from vim.org?).
+  Be able to look into the files before deciding to install.
 - Be able to try out a plugin and remove it again with (almost) no traces.
 - Each plugin needs a "manifest" file that has the version, dependencies
   (including Vim version and features), conflicts, list of files, etc.
@@ -1113,6 +1110,14 @@
 Winckler, 2011 May 11)
 Requires a map mode for Insert mode started from blockwise Visual mode.
 
+Use json format for new items in .viminfo:
+    |["info","any info"]
+    |["text","text text text"
+    |"continuation line"]
+    |["hist",242342342,{"arg":"value"}]
+  Use \" for a single ".  Use \\ for a \.
+  See http://www.ietf.org/rfc/rfc4627.txt
+
 Writing nested List and Dict in viminfo gives error message and can't be read
 back. (Yukihiro Nakadaira, 2010 Nov 13)
 
@@ -2130,10 +2135,37 @@
 (Kartik Agaram)
 
 
-At next release:
--   Build a huge version by default.
--   Improve plugin handling: Automatic updates, handle dependencies?
-    E.g. Vundle: https://github.com/gmarik/vundle
+Better plugin support (not plugin manager, see elsewhere for that):
+- Add interface to another process, e.g. to run a background plugin.
+  Can use the code from netbeans to communicate over a socket.
+  A bit like +clientserver but without the hassle of starting another Vim.
+  Use json for the messages.
+    let handle = startjob({command})             # uses stdin/stdout
+    let handle = startjob({command}, {address})  # uses socket
+    let handle = connect({address})              # uses socket
+    let handle = deamon({command}, {address})    # start it if connect fails
+    let response = sendjson(handle, {json})      # sync
+    call sendjson(handle, {json}, {callback})    # async
+    call sethandler(handle, {callback})
+  The response json is wrapped in an array:
+    [{code},{response}]
+    {code} must be positive, when zero the callback from sethandler() is called
+  The job can send Vim commands that do not require a handler:
+    ['ex', {Ex command}]
+    ['normal', {Normal mode command}]
+    ['keys', {condition}, {key sequence}]
+    ['eval', {expression}]  sync, will send back result
+    ['expr', {expression}]  async
+- Native JSON support (to be able to commucate with any interface in the same
+  way).
+- Avoid use of feedkeys, add eval functions where needed:
+  - manipulating the Visual selection?
+- Add createmark(): add a mark like mM, but return a unique ID.  Need some way
+  to clean them up again...  Use a name + the script ID.
+  Add createmark( , 'c') to track inserts/deletes before the column.
+- Plugins need to make a lot of effort, lots of mappings, to know what
+  happened before pressing the key that triggers a plugin action.  How about
+  keeping the last N pressed keys, so that they do not need to be mapped?
 
 
 More patches:
@@ -3482,10 +3514,7 @@
     one is contained in.  Like "keepend" but specified on the contained item,
     instead of the containing item.
 8   cpp.vim: In C++ it's allowed to use {} inside ().
-8   Some syntax files set 'iskeyword'.  When switching to another filetype
-    this isn't reset.  Add a special keyword definition for the syntax rules?
-    When this is done, use vim.vim syntax highlighting for help file examples,
-    but without ":" in 'iskeyword' for syntax.
+8   Some syntax files set 'iskeyword', they should use "syn iskeyword".
     Also need a separate 'iskeyword' for the command line, e.g., in a help
     window ":e /asdf/asdf/" CTRL-W works different.
 8   Add specific syntax item to match with parens/braces that don't have a
diff --git a/runtime/syntax/dcl.vim b/runtime/syntax/dcl.vim
index 0c3e598..30ebcce 100644
--- a/runtime/syntax/dcl.vim
+++ b/runtime/syntax/dcl.vim
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	DCL (Digital Command Language - vms)
 " Maintainer:	Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change:	Oct 23, 2014
-" Version:	7
+" Last Change:	Jan 20, 2016
+" Version:	8
 " URL:	http://www.drchip.org/astronaut/vim/index.html#SYNTAX_DCL
 
 " For version 5.x: Clear all syntax items
@@ -13,10 +13,10 @@
   finish
 endif
 
-if version < 600
-  set iskeyword=$,@,48-57,_
-else
+if !has("patch-7.4.1141")
   setlocal iskeyword=$,@,48-57,_
+else
+ syn iskeyword $,@,48-57,_
 endif
 
 syn case ignore
diff --git a/runtime/syntax/lisp.vim b/runtime/syntax/lisp.vim
index 2528f4f..f496398 100644
--- a/runtime/syntax/lisp.vim
+++ b/runtime/syntax/lisp.vim
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:    Lisp
 " Maintainer:  Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change: Oct 06, 2014
-" Version:     23
+" Last Change: Jan 20, 2016
+" Version:     24
 " 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
@@ -16,8 +16,10 @@
 
 if exists("g:lisp_isk")
  exe "setl isk=".g:lisp_isk
-else
+elseif !has("patch-7.4.1141")
  setl isk=38,42,43,45,47-58,60-62,64-90,97-122,_
+else
+ syn iskeyword 38,42,43,45,47-58,60-62,64-90,97-122,_
 endif
 
 if exists("g:lispsyntax_ignorecase") || exists("g:lispsyntax_clisp")
diff --git a/runtime/syntax/maple.vim b/runtime/syntax/maple.vim
index 9c94643..9a4db26 100644
--- a/runtime/syntax/maple.vim
+++ b/runtime/syntax/maple.vim
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	Maple V (based on release 4)
 " Maintainer:	Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change:	Oct 23, 2014
-" Version:	11
+" Last Change:	Jan 20, 2016
+" Version:	12
 " URL:	http://www.drchip.org/astronaut/vim/index.html#SYNTAX_MAPLE
 "
 " Package Function Selection: {{{1
@@ -30,10 +30,10 @@
 endif
 
 " Iskeyword Effects: {{{1
-if version < 600
-  set iskeyword=$,48-57,_,a-z,@-Z
+if !has("patch-7.4.1141")
+ setl isk=$,48-57,_,a-z,@-Z
 else
-  setlocal iskeyword=$,48-57,_,a-z,@-Z
+ syn iskeyword $,48-57,_,a-z,@-Z
 endif
 
 " Package Selection: {{{1
diff --git a/runtime/syntax/messages.vim b/runtime/syntax/messages.vim
index 4648e94..c22e4e8 100644
--- a/runtime/syntax/messages.vim
+++ b/runtime/syntax/messages.vim
@@ -3,6 +3,7 @@
 " Maintainer:       Yakov Lerner <iler.ml@gmail.com>
 " Latest Revision:  2008-06-29
 " Changes:          2008-06-29 support for RFC3339 tuimestamps James Vega
+" 		    2016 Jan 19: messagesDate changed by Bram
 
 if exists("b:current_syntax")
   finish
@@ -13,7 +14,7 @@
 
 syn match   messagesBegin       display '^' nextgroup=messagesDate,messagesDateRFC3339
 
-syn match   messagesDate        contained display '\a\a\a [ 0-9]\d *'
+syn match   messagesDate        contained display '[[:lower:][:upper:]][[:lower:][:upper:]][[:lower:][:upper:]] [ 0-9]\d *'
                                 \ nextgroup=messagesHour
 
 syn match   messagesHour        contained display '\d\d:\d\d:\d\d\s*'
diff --git a/runtime/syntax/tex.vim b/runtime/syntax/tex.vim
index d31e14b..40013b5 100644
--- 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:	Oct 20, 2015
-" Version:	90
+" Last Change:	Jan 20, 2016
+" Version:	91
 " URL:		http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TEX
 "
 " Notes: {{{1
@@ -129,8 +129,10 @@
 " g:tex_isk
 if exists("g:tex_isk")
  exe "setlocal isk=".g:tex_isk
+elseif !has("patch-7.4.1141")
+ setl isk=48-57,a-z,A-Z,192-255
 else
- setlocal isk=48-57,a-z,A-Z,192-255
+ syn iskeyword 48-57,a-z,A-Z,192-255
 endif
 if b:tex_stylish
   setlocal isk+=@-@
diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index 6c8f323..ebed5be 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	Vim 7.4 script
 " Maintainer:	Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change:	January 04, 2016
-" Version:	7.4-39
+" Last Change:	January 20, 2016
+" Version:	7.4-40
 " Automatically generated keyword lists: {{{1
 
 " Quit when a syntax file was already loaded {{{2
@@ -18,38 +18,39 @@
 syn cluster vimCommentGroup	contains=vimTodo,@Spell
 
 " regular vim commands {{{2
-syn keyword vimCommand contained	a arga[dd] argl[ocal] ba[ll] bn[ext] breakd[el] bufdo cabc[lear] cat[ch] ce[nter] cgetb[uffer] che[ckpath] cmapc[lear] cnf com cope[n] cs de delep delf di difft[his] dj[ump] dr[op] ec elsei[f] endf[unction] exi[t] filetype fix[del] for gr[ep] h[elp] hid[e] ij[ump] isp[lit] keepalt lad la[st] lcl[ose] lex[pr] lgete[xpr] ll lne lnf[ile] loc[kmarks] lr[ewind] lv[imgrep] marks mk mkv[imrc] mz[scheme] new noswap[file] o[pen] ped[it] pp[op] profd[el] ptf[irst] ptN[ext] py python3 re redr[aw] rew[ind] rubyf[ile] sa[rgument] sbn[ext] scripte[ncoding] setf[iletype] sh[ell] sim[alt] sm[ap] sni[ff] sor[t] spelli[nfo] spr[evious] start st[op] sunmenu syn ta tabf[ind] tabnew tabr[ewind] tcld[o] tj[ump] tN tr tu[nmenu] undoj[oin] uns[ilent] ve[rsion] vimgrepa[dd] vs[plit] winc[md] wN[ext] ws[verb] x[it] xnoremenu
-syn keyword vimCommand contained	ab argd ar[gs] bd[elete] bN[ext] breakl[ist] b[uffer] cad cb[uffer] cex[pr] cgete[xpr] checkt[ime] cn cNf comc[lear] co[py] cscope debug d[elete] delf[unction] diffg[et] diffu[pdate] dl ds[earch] echoe[rr] em[enu] en[dif] exu[sage] fin fo[ld] fu grepa[dd] helpc[lose] his[tory] il[ist] iuna[bbrev] keepj[umps] laddb[uffer] lat lcs lf lg[etfile] lla[st] lnew[er] lNf[ile] lockv[ar] ls lvimgrepa[dd] mat[ch] mk[exrc] mo n n[ext] nu[mber] opt[ions] pe[rl] pr prof[ile] ptj[ump] ptp[revious] py3 q r[ead] redraws[tatus] ri[ght] rundo sav[eas] sbN[ext] scrip[tnames] setg[lobal] si sl sme sno[magic] so[urce] spellr[epall] sre[wind] startg[replace] stopi[nsert] sus[pend] sync tab tabfir[st] tabn[ext] tabs tclf[ile] tl[ast] tn[ext] tr[ewind] u undol[ist] up[date] vert[ical] vi[sual] w windo wp[revious] wundo xmapc[lear] xunme
-syn keyword vimCommand contained	abc[lear] argd[elete] argu[ment] bel[owright] bo[tright] br[ewind] buffers caddb[uffer] cc cf cg[etfile] cl cN cnf[ile] comp[iler] cpf[ile] cstag debugg[reedy] deletel dell diffo[ff] dig dli[st] dsp[lit] echom[sg] en endt[ry] f fina[lly] foldc[lose] fun gui helpf[ind] i imapc[lear] j[oin] kee[pmarks] lad[dexpr] later lcscope lfdo lgr[ep] lli[st] lne[xt] lo lol[der] lt[ag] lw[indow] menut mks[ession] mod[e] nbc[lose] nmapc[lear] o ownsyntax perld[o] pre[serve] promptf[ind] ptl[ast] ptr[ewind] py3do qa[ll] rec[over] reg[isters] rightb[elow] ru[ntime] sba[ll] sbp[revious] scs setl[ocal] sig sla[st] smenu snoreme spe spellu[ndo] st star[tinsert] sts[elect] sv[iew] syncbind tabc[lose] tabl[ast] tabN[ext] ta[g] te[aroff] tm tN[ext] try un unh[ide] v vi viu[sage] wa[ll] winp[os] wq wv[iminfo] xme xunmenu
-syn keyword vimCommand contained	abo[veleft] argdo as[cii] bf[irst] bp[revious] bro[wse] bun[load] cad[dexpr] ccl[ose] cfdo c[hange] cla[st] cnew[er] cNf[ile] con cp[revious] cuna[bbrev] del deletep delm[arks] diffp[atch] dig[raphs] do e echon endf endw[hile] f[ile] fin[d] folddoc[losed] fu[nction] gvim helpg[rep] ia in ju[mps] keepp[atterns] laddf[ile] lb[uffer] ld[o] lf[ile] lgrepa[dd] lmak[e] lN[ext] loadk lop[en] lua ma menut[ranslate] mksp[ell] m[ove] nb[key] noa ol[dfiles] p po[p] prev[ious] promptr[epl] ptn pts[elect] pydo q[uit] red res[ize] ru rv[iminfo] sbf[irst] sbr[ewind] scscope sf[ind] sign sl[eep] sn[ext] snoremenu spelld[ump] spellw[rong] sta[g] startr[eplace] sun[hide] sw[apname] syntime tabd[o] tabm[ove] tabo[nly] tags tf[irst] tm[enu] to[pleft] ts[elect] una[bbreviate] unl ve vie[w] vmapc[lear] wh[ile] win[size] wqa[ll] x xmenu xwininfo
-syn keyword vimCommand contained	al[l] arge[dit] au bl[ast] brea[k] bu bw[ipeout] caddf[ile] cd cf[ile] changes cl[ist] cn[ext] col[der] conf[irm] cq[uit] cw[indow] delc[ommand] deletl delp diffpu[t] dir doau ea e[dit] endfo[r] ene[w] files fini[sh] foldd[oopen] g h helpt[ags] iabc[lear] intro k l lan lc[d] le[ft] lfir[st] lh[elpgrep] lmapc[lear] lnf loadkeymap lpf[ile] luado mak[e] mes mkv mz nbs[tart] noautocmd omapc[lear] pc[lose] popu p[rint] ps[earch] ptN pu[t] pyf[ile] quita[ll] redi[r] ret[ab] rub[y] sal[l] sbl[ast] sb[uffer] se[t] sfir[st] sil[ent] sm[agic] sN[ext] so spe[llgood] sp[lit] star stj[ump] sunme sy t tabe[dit] tabN tabp[revious] tc[l] th[row] tn tp[revious] tu u[ndo] unlo[ckvar] verb[ose] vim[grep] vne[w] win wn[ext] w[rite] xa[ll] xnoreme y[ank]
-syn keyword vimCommand contained	ar argg[lobal] bad[d] bm[odified] breaka[dd] buf c cal[l] cdo cfir[st] chd[ir] clo[se] cN[ext] colo[rscheme] con[tinue] cr[ewind] d delel deletp dep diffs[plit] di[splay] dp earlier el[se] endfun ex filet fir[st] foldo[pen] go[to] ha[rdcopy] hi if is[earch] keepa la lan[guage] lch[dir] lefta[bove] lgetb[uffer] l[ist] lN lNf lo[adview] lp[revious] luafile ma[rk] messages mkvie[w] mzf[ile] ne noh[lsearch] on[ly] pe popu[p] pro pta[g] ptn[ext] pw[d] py[thon] r red[o] retu[rn] rubyd[o] san[dbox] sbm[odified] scrip 
+syn keyword vimCommand contained	a argd argu[ment] bf[irst] brea[k] buf cabc[lear] cc cfdo changes clo[se] cN[ext] colo[rscheme] con[tinue] cr[ewind] d delel deletp dep diffpu[t] dir doau ea e[dit] endfo[r] ene[w] files fini[sh] foldd[oopen] g h helpt[ags] iabc[lear] intro k l lan lc[d] le[ft] lfir[st] lh[elpgrep] lmapc[lear] lnf loadkeymap lpf[ile] luado mak[e] mes mkv mz nbs[tart] noautocmd o ownsyntax perld[o] pre[serve] promptf[ind] ptl[ast] ptr[ewind] py3do qa[ll] rec[over] reg[isters] rightb[elow] ru[ntime] sba[ll] sbp[revious] sci scr[iptnames] setl[ocal] sgi sh[ell] sIe sil[ent] sir sm[ap] sno[magic] sp spellu[ndo] sre[wind] srp star[tinsert] sun[hide] sy ta tabfir[st] tabN[ext] tags th[row] tN tr[ewind] un unl verb[ose] vimgrepa[dd] w winp[os] wqa[ll] xa[ll] xnoremenu
+syn keyword vimCommand contained	ab argd[elete] as[cii] bl[ast] breaka[dd] bufdo cad[dbuffer] ccl[ose] cf[ile] chd[ir] cmapc[lear] cnf com cope[n] cs de delep delf di diffs[plit] di[splay] dp earlier el[se] endfun ex filet fir[st] foldo[pen] go[to] ha[rdcopy] hi if is[earch] keepa la lan[guage] lch[dir] lefta[bove] lgetb[uffer] l[ist] lN lNf lo[adview] lp[revious] luafile ma[rk] messages mkvie[w] mzf[ile] ne noh[lsearch] ol[dfiles] p po[p] prev[ious] promptr[epl] ptn pts[elect] pydo q[uit] red res[ize] ru rv[iminfo] sbf[irst] sbr[ewind] scI scs sf[ind] sgI si sig sim[alt] sIr sme snoreme spe spellw[rong] srg st startr[eplace] sunme syn tab tabl[ast] tabo[nly] tc[l] tj[ump] tn[ext] try una[bbreviate] unlo[ckvar] ve[rsion] vi[sual] wa[ll] win[size] w[rite] x[it] xprop
+syn keyword vimCommand contained	abc[lear] argdo au bm[odified] breakd[el] b[uffer] cadde[xpr] cd cfir[st] che[ckpath] cn cNf comc[lear] co[py] cscope debug d[elete] delf[unction] dif difft[his] dj[ump] dr[op] ec elsei[f] endf[unction] exi[t] filetype fix[del] for gr[ep] h[elp] hid[e] ij[ump] isp[lit] keepalt lad la[st] lcl[ose] lex[pr] lgete[xpr] ll lne lnf[ile] loc[kmarks] lr[ewind] lv[imgrep] marks mk mkv[imrc] mz[scheme] new nor omapc[lear] pc[lose] popu p[rint] ps[earch] ptN pu[t] pyf[ile] quita[ll] redi[r] ret[ab] rub[y] sal[l] sbl[ast] sb[uffer] scl scscope sfir[st] sgl sI sIg sin sl smenu snoremenu spelld[ump] sp[lit] sri sta[g] stj[ump] sunmenu sync tabc[lose] tabm[ove] tabp[revious] tcld[o] tl[ast] tN[ext] ts[elect] u[ndo] uns[ilent] vert[ical] viu[sage] wh[ile] wn[ext] ws[verb] xmapc[lear] xunme
+syn keyword vimCommand contained	abo[veleft] arge[dit] bad[d] bn[ext] breakl[ist] buffers caddf[ile] cdo cgetb[uffer] checkt[ime] cN cnf[ile] comp[iler] cpf[ile] cstag debugg[reedy] deletel dell diffg[et] dif[fupdate] dl ds[earch] echoe[rr] em[enu] en[dif] exu[sage] fin fo[ld] fu grepa[dd] helpc[lose] his[tory] il[ist] iuna[bbrev] keepj[umps] laddb[uffer] lat lcs lf lg[etfile] lla[st] lnew[er] lNf[ile] lockv[ar] ls lvimgrepa[dd] mat[ch] mk[exrc] mo n n[ext] nore on[ly] pe popu[p] pro pta[g] ptn[ext] pw[d] py[thon] r red[o] retu[rn] rubyd[o] san[dbox] sbm[odified] sc scp se[t] sg sgn sic sign sIn sla[st] sn[ext] so spe[llgood] spr[evious] srI star st[op] sus[pend] syncbind tabd[o] tabN tabr[ewind] tclf[ile] tm to[pleft] tu undoj[oin] up[date] vi vmapc[lear] win wN[ext] wundo xme xunmenu
+syn keyword vimCommand contained	al[l] argg[lobal] ba[ll] bN[ext] br[ewind] bun[load] cal[l] ce[nter] cgete[xpr] cl cnew[er] cNf[ile] con cp[revious] cuna[bbrev] del deletep delm[arks] diffo[ff] dig dli[st] dsp[lit] echom[sg] en endt[ry] f fina[lly] foldc[lose] fun gui helpf[ind] i imapc[lear] j[oin] kee[pmarks] lad[dexpr] later lcscope lfdo lgr[ep] lli[st] lne[xt] lo lol[der] lt[ag] lw[indow] menut mks[ession] mod[e] nbc[lose] nmapc[lear] nos[wapfile] o[pen] ped[it] pp[op] profd[el] ptf[irst] ptN[ext] py python3 re redr[aw] rew[ind] rubyf[ile] sa[rgument] sbn[ext] sce scr setf[iletype] sgc sgp sIc sil sip sl[eep] sN[ext] sor[t] spelli[nfo] sr srl start stopi[nsert] sv[iew] syntime tabe[dit] tabnew tabs te[aroff] tm[enu] tp[revious] tu[nmenu] undol[ist] v vie[w] vne[w] winc[md] wp[revious] wv[iminfo] xmenu xwininfo
+syn keyword vimCommand contained	ar argl[ocal] bd[elete] bo[tright] bro[wse] bw[ipeout] cat[ch] cex[pr] cg[etfile] cla[st] cn[ext] col[der] conf[irm] cq[uit] cw[indow] delc[ommand] deletl delp diffp[atch] dig[raphs] do e echon endf endw[hile] f[ile] fin[d] folddoc[losed] fu[nction] gvim helpg[rep] ia in ju[mps] keepp[atterns] laddf[ile] lb[uffer] ld[o] lf[ile] lgrepa[dd] lmak[e] lN[ext] loadk lop[en] lua ma menut[ranslate] mksp[ell] m[ove] nb[key] noa nu[mber] opt[ions] pe[rl] pr prof[ile] ptj[ump] ptp[revious] py3 q r[ead] redraws[tatus] ri[ght] rundo sav[eas] sbN[ext] scg scripte[ncoding] setg[lobal] sge sgr sie sIl sIp sm[agic] sni[ff] so[urce] spellr[epall] src srn startg[replace] sts[elect] sw[apname] t tabf[ind] tabn[ext] ta[g] tf[irst] tn tr u unh[ide] ve vim[grep] vs[plit] windo wq x xnoreme y[ank]
+syn keyword vimCommand contained	arga[dd] ar[gs] bel[owright] bp[revious] bu c cb[uffer] cf c[hange] cl[ist] 
 syn match   vimCommand contained	"\<z[-+^.=]\=\>"
 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 bl brk buftype cf cinkeys cmp com concealcursor cp cscopeprg csprg cul def diff display edcompatible endofline errorformat fcl fdm fex fileformats fkmap foldenable foldminlines formatprg gdefault gp guifontset helpfile hidden hl ignorecase imcmdline imsf indentexpr is isp keywordprg laststatus lisp loadplugins ma matchtime mco ml modeline mousefocus mousetime nrformats ofu para pdev pheader previewheight printmbcharset pvw readonly restorescreen rnu ruf sc scrollopt selectmode shellpipe shellxquote showcmd sidescroll smartindent sol spellsuggest sr stal sua swf syntax tagcase tbi termbidi tgst titleold top ttimeoutlen ttyscroll ul ur verbosefile visualbell wcm wi wildmenu winfixwidth wm wrapscan
-syn keyword vimOption contained	ai anti autochdir backspace balloonexpr bh bo browsedir casemap cfu cino cms comments conceallevel cpo cscopequickfix csqf cursorbind define diffexpr dy ef eol esckeys fcs fdn ff fileignorecase flp foldexpr foldnestmax fp gfm grepformat guifontwide helpheight highlight hlg im imd imstatusfunc indentkeys isf isprint km lazyredraw lispwords lpl macatsui maxcombine mef mls modelines mousehide mp nu omnifunc paragraphs penc pi previewwindow printmbfont pythondll redrawtime revins ro ruler scb scs sessionoptions shellquote shiftround showfulltag sidescrolloff smarttab sp spf srr startofline suffixes switchbuf ta taglength tbidi termencoding thesaurus titlestring tpm ttm ttytype undodir ut vfile vop wd wic wildmode winheight wmh write
-syn keyword vimOption contained	akm antialias autoindent backup bdir bin bomb bs cb ch cinoptions co commentstring confirm cpoptions cscoperelative csre cursorcolumn delcombine diffopt ea efm ep et fdc fdo ffs filetype fml foldignore foldopen fs gfn grepprg guiheadroom helplang history hls imactivatefunc imdisable inc indk isfname joinspaces kmp lbr list ls magic maxfuncdepth menuitems mm modifiable mousem mps number opendevice paste perldll pm printdevice printoptions pythonthreedll regexpengine ri rop rulerformat scr sect sft shellredir shiftwidth showmatch siso smc spc spl ss statusline suffixesadd sws tabline tagrelative tbis terse tildeop tl tr tty tw undofile vb vi wa weirdinvert wig wildoptions winminheight wmnu writeany
-syn keyword vimOption contained	al ar autoread backupcopy bdlay binary breakat bsdir cc charconvert cinw cocu compatible consk cpt cscopetag cst cursorline dex digraph ead ei equalalways eventignore fde fdt fic fillchars fmr foldlevel foldtext fsync gfs gtl guioptions hf hk hlsearch imactivatekey imi include inex isi js kp lcs listchars lsp makeef maxmapdepth mfd mmd modified mousemodel msm numberwidth operatorfunc pastetoggle pex pmbcs printencoding prompt qe relativenumber rightleft rs runtimepath scroll sections sh shellslash shm showmode sj smd spell splitbelow ssl stl sw sxe tabpagemax tags tbs textauto timeout tm ts ttybuiltin tx undolevels vbs viewdir wak wfh wildchar wim winminwidth wmw writebackup
-syn keyword vimOption contained	aleph arab autowrite backupdir belloff biosk breakindent bsk ccv ci cinwords cole complete conskey crb cscopetagorder csto cwh dg dip eadirection ek equalprg ex fdi fen fileencoding fixendofline fo foldlevelstart formatexpr ft gfw gtt guipty hh hkmap ic imaf iminsert includeexpr inf isident key langmap linebreak lm luadll makeprg maxmem mh mmp more mouses mzq nuw opfunc patchexpr pexpr pmbfn printexpr pt quoteescape remap rightleftcmd rtp sb scrollbind secure shcf shelltemp shortmess showtabline slm sn spellcapcheck splitright ssop stmp swapfile sxq tabstop tagstack tc textmode timeoutlen to tsl ttyfast uc undoreload vdir viewoptions warn wfw wildcharm winaltkeys winwidth wop writedelay
-syn keyword vimOption contained	allowrevins arabic autowriteall backupext beval bioskey breakindentopt bt cd cin clipboard colorcolumn completefunc copyindent cryptmethod cscopeverbose csverb debug dict dir eb enc errorbells expandtab fdl fenc fileencodings fixeol foldclose foldmarker formatlistpat gcr ghr guicursor guitablabel hi hkmapp icon imak ims incsearch infercase isk keymap langmenu lines lmap lw mat maxmempattern mis mmt mouse mouseshape mzquantum odev osfiletype patchmode pfn popt printfont pumheight rdt renderoptions rl ru sbo scrolljump sel shell shelltype shortname shq sm so spellfile spr st sts swapsync syn tag tal tenc textwidth title toolbar tsr ttym udf updatecount ve viminfo wb wh wildignore window wiv wrap ws
-syn keyword vimOption contained	altkeymap arabicshape aw backupskip bex bk bri bufhidden cdpath cindent cmdheight columns completeopt cot cscopepathcomp cspc cuc deco dictionary directory ed encoding errorfile exrc fdls fencs fileformat fk foldcolumn foldmethod formatoptions gd go guifont guitabtooltip hid hkp iconstring imc imsearch inde insertmode iskeyword keymodel langnoremap linespace lnr lz matchpairs maxmemtot mkspellmem mod mousef mouset nf oft pa path ph preserveindent printheader pvh re report rlc rubydll sbr scrolloff selection shellcmdflag shellxescape showbreak si smartcase softtabstop spelllang sps sta su swb synmaxcol tagbsearch tb term tf titlelen toolbariconsize ttimeout ttymouse udir updatetime verbose virtualedit wc whichwrap wildignorecase winfixheight wiw wrapmargin ww
-syn keyword vimOption contained	ambiwidth ari awa balloondelay bexpr bkc briopt buflisted cedit cink cmdwinheight 
+syn keyword vimOption contained	acd ambw arshape background ballooneval bg bl brk buftype cf cinkeys cmdwinheight com conceallevel cpo cscopequickfix csqf cursorbind define diffexpr dy ef eol esckeys fcs fdn ff fileignorecase flp foldexpr foldnestmax fp gfm grepformat guifontwide helpheight highlight hlg im imd imstatusfunc indentkeys isf isprint km lazyredraw lispwords lpl macatsui maxcombine mef mls modelines mousehide mp nu omnifunc paragraphs penc pi previewwindow printmbfont pythondll redrawtime revins ro ruler scb scs sessionoptions shellquote shiftround showfulltag sidescrolloff smarttab sp spf srr startofline suffixes switchbuf ta taglength tbidi termbidi tgst titleold top ttimeoutlen ttyscroll ul ur verbosefile visualbell wcm wi wildmenu winfixwidth wm wrapscan
+syn keyword vimOption contained	ai anti autochdir backspace balloonexpr bh bo browsedir casemap cfu cino cmp comments confirm cpoptions cscoperelative csre cursorcolumn delcombine diffopt ea efm ep et fdc fdo ffs filetype fml foldignore foldopen fs gfn grepprg guiheadroom helplang history hls imactivatefunc imdisable inc indk isfname joinspaces kmp lbr list ls magic maxfuncdepth menuitems mm modifiable mousem mps number opendevice paste perldll pm printdevice printoptions pythonthreedll regexpengine ri rop rulerformat scr sect sft shellredir shiftwidth showmatch siso smc spc spl ss statusline suffixesadd sws tabline tagrelative tbis termencoding thesaurus titlestring tpm ttm ttytype undodir ut vfile vop wd wic wildmode winheight wmh write
+syn keyword vimOption contained	akm antialias autoindent backup bdir bin bomb bs cb ch cinoptions cms commentstring consk cpt cscopetag cst cursorline dex digraph ead ei equalalways eventignore fde fdt fic fillchars fmr foldlevel foldtext fsync gfs gtl guioptions hf hk hlsearch imactivatekey imi include inex isi js kp lcs listchars lsp makeef maxmapdepth mfd mmd modified mousemodel msm numberwidth operatorfunc pastetoggle pex pmbcs printencoding prompt qe relativenumber rightleft rs runtimepath scroll sections sh shellslash shm showmode sj smd spell splitbelow ssl stl sw sxe tabpagemax tags tbs terse tildeop tl tr tty tw undofile vb vi wa weirdinvert wig wildoptions winminheight wmnu writeany
+syn keyword vimOption contained	al ar autoread backupcopy bdlay binary breakat bsdir cc charconvert cinw co compatible conskey crb cscopetagorder csto cwh dg dip eadirection ek equalprg ex fdi fen fileencoding fixendofline fo foldlevelstart formatexpr ft gfw gtt guipty hh hkmap ic imaf iminsert includeexpr inf isident key langmap linebreak lm luadll makeprg maxmem mh mmp more mouses mzq nuw opfunc patchexpr pexpr pmbfn printexpr pt quoteescape remap rightleftcmd rtp sb scrollbind secure shcf shelltemp shortmess showtabline slm sn spellcapcheck splitright ssop stmp swapfile sxq tabstop tagstack tc textauto timeout tm ts ttybuiltin tx undolevels vbs viewdir wak wfh wildchar wim winminwidth wmw writebackup
+syn keyword vimOption contained	aleph arab autowrite backupdir belloff biosk breakindent bsk ccv ci cinwords cocu complete copyindent cryptmethod cscopeverbose csverb debug dict dir eb enc errorbells expandtab fdl fenc fileencodings fixeol foldclose foldmarker formatlistpat gcr ghr guicursor guitablabel hi hkmapp icon imak ims incsearch infercase isk keymap langmenu lines lmap lw mat maxmempattern mis mmt mouse mouseshape mzquantum odev osfiletype patchmode pfn popt printfont pumheight rdt renderoptions rl ru sbo scrolljump sel shell shelltype shortname shq sm so spellfile spr st sts swapsync syn tag tal tcldll textmode timeoutlen to tsl ttyfast uc undoreload vdir viewoptions warn wfw wildcharm winaltkeys winwidth wop writedelay
+syn keyword vimOption contained	allowrevins arabic autowriteall backupext beval bioskey breakindentopt bt cd cin clipboard cole completefunc cot cscopepathcomp cspc cuc deco dictionary directory ed encoding errorfile exrc fdls fencs fileformat fk foldcolumn foldmethod formatoptions gd go guifont guitabtooltip hid hkp iconstring imc imsearch inde insertmode iskeyword keymodel langnoremap linespace lnr lz matchpairs maxmemtot mkspellmem mod mousef mouset nf oft pa path ph preserveindent printheader pvh re report rlc rubydll sbr scrolloff selection shellcmdflag shellxescape showbreak si smartcase softtabstop spelllang sps sta su swb synmaxcol tagbsearch tb tenc textwidth title toolbar tsr ttym udf updatecount ve viminfo wb wh wildignore window wiv wrap ws
+syn keyword vimOption contained	altkeymap arabicshape aw backupskip bex bk bri bufhidden cdpath cindent cm colorcolumn completeopt cp cscopeprg csprg cul def diff display edcompatible endofline errorformat fcl fdm fex fileformats fkmap foldenable foldminlines formatprg gdefault gp guifontset helpfile hidden hl ignorecase imcmdline imsf indentexpr is isp keywordprg laststatus lisp loadplugins ma matchtime mco ml modeline mousefocus mousetime nrformats ofu para pdev pheader previewheight printmbcharset pvw readonly restorescreen rnu ruf sc scrollopt selectmode shellpipe shellxquote showcmd sidescroll smartindent sol spellsuggest sr stal sua swf syntax tagcase tbi term tf titlelen toolbariconsize ttimeout ttymouse udir updatetime verbose virtualedit wc whichwrap wildignorecase winfixheight wiw wrapmargin ww
+syn keyword vimOption contained	ambiwidth ari awa balloondelay bexpr bkc briopt buflisted cedit cink cmdheight columns concealcursor 
 
 " vimOptions: These are the turn-off setting variants {{{2
-syn keyword vimOption contained	noacd noallowrevins noantialias noarabic noarshape noautoread noaw noballooneval nobinary nobk nobuflisted nocin noconfirm nocopyindent nocscoperelative nocsre nocuc nocursorcolumn nodelcombine nodigraph noed noendofline noerrorbells noex nofen nofixendofline nofkmap nogdefault nohidden nohkmapp nohlsearch noicon noim noimcmdline noimdisable noinf noinsertmode nojoinspaces nolazyredraw nolinebreak nolist nolpl 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 nobiosk nobl nocf nocindent noconsk nocp nocscopetag nocst nocul nocursorline nodg noea noedcompatible noeol noesckeys noexpandtab nofic nofixeol nofoldenable noguipty nohk nohkp noic noignorecase noimc noimd noincsearch noinfercase nois nojs nolbr nolisp noloadplugins 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 nobioskey nobomb noci nocompatible noconskey nocrb nocscopeverbose nocsverb nocursorbind nodeco nodiff noeb noek noequalalways noet noexrc nofileignorecase nofk nogd nohid nohkmap nohls 
+syn keyword vimOption contained	noacd noallowrevins noantialias noarabic noarshape noautoread noaw noballooneval nobinary nobk nobreakindent nocf nocindent noconsk nocp nocscopetag nocst nocul nocursorline nodg noea noedcompatible noeol noesckeys noexpandtab nofic nofixeol nofoldenable nogd nohid nohkmap nohls noicon noimc noimdisable noinfercase nojoinspaces nolangnoremap nolbr nolisp nolnr nolpl 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 nobiosk nobl nobri noci nocompatible noconskey nocrb nocscopeverbose nocsverb nocursorbind nodeco nodiff noeb noek noequalalways noet noexrc nofileignorecase nofk nofs nogdefault nohidden nohkmapp nohlsearch noignorecase noimcmdline noincsearch noinsertmode nojs nolazyredraw nolinebreak nolist noloadplugins 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 nobioskey nobomb nobuflisted nocin noconfirm nocopyindent nocscoperelative nocsre nocuc nocursorcolumn nodelcombine nodigraph noed noendofline noerrorbells noex nofen nofixendofline nofkmap nofsync noguipty nohk nohkp noic noim noimd noinf nois 
 
 " vimOptions: These are the invertible variants {{{2
-syn keyword vimOption contained	invacd invallowrevins invantialias invarabic invarshape invautoread invaw invballooneval invbinary invbk invbuflisted invcin invconfirm invcopyindent invcscoperelative invcsre invcuc invcursorcolumn invdelcombine invdigraph inved invendofline inverrorbells invex invfen invfixendofline invfkmap invgdefault invhidden invhkmapp invhlsearch invicon invim invimcmdline invimdisable invinf invinsertmode invjoinspaces invlazyredraw invlinebreak invlist invlpl 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 invbiosk invbl invcf invcindent invconsk invcp invcscopetag invcst invcul invcursorline invdg invea invedcompatible inveol invesckeys invexpandtab invfic invfixeol invfoldenable invguipty invhk invhkp invic invignorecase invimc invimd invincsearch invinfercase invis invjs invlbr invlisp invloadplugins 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 invbioskey invbomb invci invcompatible invconskey invcrb invcscopeverbose invcsverb invcursorbind invdeco invdiff inveb invek invequalalways invet invexrc invfileignorecase invfk invgd invhid invhkmap invhls 
+syn keyword vimOption contained	invacd invallowrevins invantialias invarabic invarshape invautoread invaw invballooneval invbinary invbk invbreakindent invcf invcindent invconsk invcp invcscopetag invcst invcul invcursorline invdg invea invedcompatible inveol invesckeys invexpandtab invfic invfixeol invfoldenable invgd invhid invhkmap invhls invicon invimc invimdisable invinfercase invjoinspaces invlangnoremap invlbr invlisp invlnr invlpl 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 invbiosk invbl invbri invci invcompatible invconskey invcrb invcscopeverbose invcsverb invcursorbind invdeco invdiff inveb invek invequalalways invet invexrc invfileignorecase invfk invfs invgdefault invhidden invhkmapp invhlsearch invignorecase invimcmdline invincsearch invinsertmode invjs invlazyredraw invlinebreak invlist invloadplugins 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 invbioskey invbomb invbuflisted invcin invconfirm invcopyindent invcscoperelative invcsre invcuc invcursorcolumn invdelcombine invdigraph inved invendofline inverrorbells invex invfen invfixendofline invfkmap invfsync invguipty invhk invhkp invic invim invimd invinf invis 
 
 " termcap codes (which can also be set) {{{2
-syn keyword vimOption contained	t_AB t_al t_bc t_ce t_cl t_Co t_Cs t_CV t_db t_dl t_DL t_EI t_F1 t_F2 t_F3 t_F4 t_F5 t_F6 t_F7 t_F8 t_F9 t_fs t_IE t_IS t_k1 t_K1 t_k2 t_k3 t_K3 t_k4 t_K4 t_k5 t_K5 t_k6 t_K6 t_k7 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_RI t_RV t_Sb t_se t_Sf t_SI t_so t_sr t_SR t_te t_ti t_ts t_u7 t_ue t_us t_ut t_vb t_ve t_vi t_vs t_WP t_WS t_xn t_xs t_ZH t_ZR
-syn keyword vimOption contained	t_AF t_AL t_cd t_Ce t_cm t_cs t_CS t_da 
+syn keyword vimOption contained	t_AB t_al t_bc t_ce t_cl t_Co t_Cs t_CV t_db t_DL t_EI t_F1 t_F2 t_F3 t_F4 t_F5 t_F6 t_F7 t_F8 t_F9 t_fs t_IE t_IS t_k1 t_K1 t_k2 t_k3 t_K3 t_k4 t_K4 t_k5 t_K5 t_k6 t_K6 t_k7 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_RB t_RI t_RV t_Sb t_se t_Sf t_SI t_so t_sr t_SR t_te t_ti t_ts t_u7 t_ue t_us t_ut t_vb t_ve t_vi t_vs t_WP t_WS t_xn t_xs t_ZH t_ZR
+syn keyword vimOption contained	t_AF t_AL t_cd t_Ce t_cm t_cs t_CS t_da t_dl 
 syn match   vimOption contained	"t_%1"
 syn match   vimOption contained	"t_#2"
 syn match   vimOption contained	"t_#4"
@@ -75,9 +76,9 @@
 syn case match
 
 " Function Names {{{2
-syn keyword vimFuncName contained	abs and argidx asin assert_true browse buflisted bufnr byteidx ceil cindent complete confirm cosh cursor did_filetype empty eventhandler exists expr8 filereadable finddir floor fnamemodify foldlevel foreground get getchar getcmdline getcmdwintype getfontname getftime getloclist getpos getregtype getwinposx glob has hasmapto histget hlID indent inputdialog inputsave invert items len line localtime luaeval mapcheck matchaddpos matchend max mode nr2char pow pumvisible range reltimestr remote_peek remove resolve screenattr screenrow searchpair server2client setcharsearch setloclist setqflist settabwinvar shellescape sin soundfold split str2nr strftime strlen strridx strwidth substitute synID synIDtrans system tabpagebuflist tabpagewinnr taglist tanh tolower tr type undotree values visualmode winbufnr winheight winnr winrestview winwidth writefile
-syn keyword vimFuncName contained	acos append arglistid assert_equal atan browsedir bufloaded bufwinnr byteidxcomp changenr clearmatches complete_add copy count deepcopy diff_filler escape executable exp extend filewritable findfile fmod foldclosed foldtext function getbufline getcharmod getcmdpos getcurpos getfperm getftype getmatches getqflist gettabvar getwinposy glob2regpat has_key histadd histnr hostname index inputlist inputsecret isdirectory join libcall line2byte log map match matcharg matchlist min mzeval or prevnonblank py3eval readfile remote_expr remote_read rename reverse screenchar search searchpairpos serverlist setcmdpos setmatches setreg setwinvar shiftwidth sinh spellbadword sqrt strchars stridx strpart strtrans submatch synconcealed synIDattr synstack systemlist tabpagenr tagfiles tan tempname toupper trunc undofile uniq virtcol wildmenumode wincol winline winrestcmd winsaveview wordcount xor
-syn keyword vimFuncName contained	add argc argv assert_false atan2 bufexists bufname byte2line call char2nr col complete_check cos cscope_connection delete diff_hlID eval exepath expand feedkeys filter float2nr fnameescape foldclosedend foldtextresult garbagecollect getbufvar getcharsearch getcmdtype getcwd getfsize getline getpid getreg gettabwinvar getwinvar globpath haslocaldir histdel hlexists iconv input inputrestore insert islocked keys libcallnr lispindent log10 maparg matchadd matchdelete matchstr mkdir nextnonblank pathshorten printf pyeval reltime remote_foreground remote_send repeat round screencol searchdecl searchpos setbufvar setline setpos settabvar sha256 simplify sort spellsuggest str2float strdisplaywidth string 
+syn keyword vimFuncName contained	abs alloc_fail argc argv assert_exception assert_true browse buflisted bufnr byteidx ceil cindent complete confirm cosh cursor did_filetype empty eventhandler exists expr8 filereadable finddir floor fnamemodify foldlevel foreground get getchar getcmdline getcmdwintype getfontname getftime getloclist getpos getregtype getwinposx glob has hasmapto histget hlID indent inputdialog inputsave invert items len line localtime luaeval mapcheck matchaddpos matchend max mode nr2char perleval printf pyeval reltime remote_foreground remote_send repeat round screencol searchdecl searchpos setbufvar setline setpos settabvar sha256 simplify sort spellsuggest str2float strdisplaywidth string strridx submatch synID synIDtrans system tabpagebuflist tabpagewinnr taglist tanh tolower tr type undotree values visualmode winbufnr winheight winnr winrestview winwidth writefile
+syn keyword vimFuncName contained	acos and argidx asin assert_fails atan browsedir bufloaded bufwinnr byteidxcomp changenr clearmatches complete_add copy count deepcopy diff_filler escape executable exp extend filewritable findfile fmod foldclosed foldtext function getbufline getcharmod getcmdpos getcurpos getfperm getftype getmatches getqflist gettabvar getwinposy glob2regpat has_key histadd histnr hostname index inputlist inputsecret isdirectory join libcall line2byte log map match matcharg matchlist min mzeval or pow pumvisible range reltimestr remote_peek remove resolve screenattr screenrow searchpair server2client setcharsearch setloclist setqflist settabwinvar shellescape sin soundfold split str2nr strftime strlen strtrans substitute synIDattr synstack systemlist tabpagenr tagfiles tan tempname toupper trunc undofile uniq virtcol wildmenumode wincol winline winrestcmd winsaveview wordcount xor
+syn keyword vimFuncName contained	add append arglistid assert_equal assert_false atan2 bufexists bufname byte2line call char2nr col complete_check cos cscope_connection delete diff_hlID eval exepath expand feedkeys filter float2nr fnameescape foldclosedend foldtextresult garbagecollect getbufvar getcharsearch getcmdtype getcwd getfsize getline getpid getreg gettabwinvar getwinvar globpath haslocaldir histdel hlexists iconv input inputrestore insert islocked keys libcallnr lispindent log10 maparg matchadd matchdelete matchstr mkdir nextnonblank pathshorten prevnonblank py3eval readfile remote_expr remote_read rename reverse screenchar search searchpairpos serverlist setcmdpos setmatches setreg setwinvar shiftwidth sinh spellbadword sqrt strchars stridx strpart strwidth synconcealed 
 
 "--- syntax here and above generated by mkvimvim ---
 " Special Vim Highlighting (not automatic) {{{1
@@ -468,6 +469,11 @@
 syn match	vimGroupRem	contained	"remove="	nextgroup=vimGroupList
 syn cluster vimFuncBodyList add=vimSynType,vimGroupAdd,vimGroupRem
 
+" Syntax: iskeyword {{{2
+syn keyword	vimSynType	contained	iskeyword	skipwhite nextgroup=vimIskList
+syn match	vimIskList	contained	'\S\+'	contains=vimIskSep
+syn match	vimIskSep	contained	','
+
 " Syntax: include {{{2
 syn keyword	vimSynType	contained	include	skipwhite nextgroup=vimGroupList
 syn cluster vimFuncBodyList add=vimSynType
@@ -855,6 +861,7 @@
 hi def link vimHLGroup	vimGroup
 hi def link vimHLMod	PreProc
 hi def link vimInsert	vimString
+hi def link vimIskSep	Delimiter
 hi def link vimKeyCode	vimSpecFile
 hi def link vimKeyword	Statement
 hi def link vimLet	vimCommand
