changeset 5555:7818ca6de3d0

Updated runtime files.
author Bram Moolenaar <bram@vim.org>
date Wed, 11 Dec 2013 18:53:29 +0100
parents 1e609e7ca0e2
children b14554844756
files runtime/colors/README.txt runtime/compiler/gcc.vim runtime/doc/autocmd.txt runtime/doc/eval.txt runtime/doc/fold.txt runtime/doc/options.txt runtime/doc/todo.txt runtime/indent/sh.vim runtime/syntax/css.vim runtime/tutor/tutor
diffstat 10 files changed, 131 insertions(+), 95 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/colors/README.txt
+++ b/runtime/colors/README.txt
@@ -36,6 +36,14 @@ Some attributes (e.g., bold) might be se
 removed in your color scheme.  Use something like "gui=NONE" to remove the
 attributes.
 
+In case you want to set 'background' depending on the colorscheme selected,
+this autocmd might be useful:
+     autocmd SourcePre */colors/blue_sky.vim set background=dark
+Replace "blue_sky" with the name of the colorscheme.
+
+In case you want to tweak a colorscheme after it was loaded, check out that
+ColorScheme autocmd event.
+
 To see which highlight group is used where, find the help for
 "highlight-groups" and "group-name".
 
--- a/runtime/compiler/gcc.vim
+++ b/runtime/compiler/gcc.vim
@@ -25,10 +25,10 @@ CompilerSet errorformat=
       \%f:%l:\ %tarning:\ %m,
       \%f:%l:\ %m,
       \\"%f\"\\,\ line\ %l%*\\D%c%*[^\ ]\ %m,
-      \%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',
-      \%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f',
-      \%D%*\\a:\ Entering\ directory\ `%f',
-      \%X%*\\a:\ Leaving\ directory\ `%f',
+      \%D%*\\a[%*\\d]:\ Entering\ directory\ [`']%f',
+      \%X%*\\a[%*\\d]:\ Leaving\ directory\ [`']%f',
+      \%D%*\\a:\ Entering\ directory\ [`']%f',
+      \%X%*\\a:\ Leaving\ directory\ [`']%f',
       \%DMaking\ %*\\a\ in\ %f
 
 if exists('g:compiler_gcc_ignore_unmatched_lines')
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 7.4.  Last change: 2013 Aug 04
+*autocmd.txt*   For Vim version 7.4.  Last change: 2013 Dec 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -304,6 +304,9 @@ Name			triggered by ~
 |InsertCharPre|		when a character was typed in Insert mode, before
 			inserting it
 
+|TextChanged|		after a change was made to the text in Normal mode
+|TextChangedI|		after a change was made to the text in Insert mode
+
 |ColorScheme|		after loading a color scheme
 
 |RemoteReply|		a reply from a server Vim was received
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 7.4.  Last change: 2013 Nov 08
+*eval.txt*	For Vim version 7.4.  Last change: 2013 Dec 08
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -3200,7 +3200,7 @@ getchar([expr])						*getchar()*
 		If [expr] is 1, only check if a character is available, it is
 			not consumed.  Return zero if no character available.
 
-		Without {expr} and when {expr} is 0 a whole character or
+		Without [expr] and when [expr] is 0 a whole character or
 		special key is returned.  If it is an 8-bit character, the
 		result is a number.  Use nr2char() to convert it to a String.
 		Otherwise a String is returned with the encoded character.
@@ -3210,7 +3210,7 @@ getchar([expr])						*getchar()*
 		String when a modifier (shift, control, alt) was used that is
 		not included in the character.
 
-		When {expr} is 1 only the first byte is returned.  For a
+		When [expr] is 1 only the first byte is returned.  For a
 		one-byte character it is the character itself as a number.
 		Use nr2char() to convert it to a String.
 
@@ -4134,6 +4134,8 @@ maparg({name}[, {mode} [, {abbr} [, {dic
 				     (|mapmode-ic|)
 		  "sid"	     The script local ID, used for <sid> mappings
 			     (|<SID>|).
+		  "nowait"   Do not wait for other, longer mappings.
+			     (|:map-<nowait>|).
 
 		The mappings local to the current buffer are checked first,
 		then the global mappings.
@@ -4447,6 +4449,9 @@ getpos({expr})	Get the position for {exp
 		it is the offset in screen columns from the start of the
 		character.  E.g., a position within a <Tab> or after the last
 		character.
+		Note that for '< and '> Visual mode matters: when it is "V"
+		(visual line mode) the column of '< is zero and the column of
+		'> is a large number.
 		This can be used to save and restore the cursor position: >
 			let save_cursor = getpos(".")
 			MoveTheCursorAround
@@ -5270,6 +5275,10 @@ setpos({expr}, {list})
 		character.  E.g., a position within a <Tab> or after the last
 		character.
 
+		Note that for '< and '> changing the line number may result in
+		the marks to be effectively be swapped, so that '< is always
+		before '>.
+
 		Returns 0 when the position could be set, -1 otherwise.
 		An error message is given if {expr} is invalid.
 
--- a/runtime/doc/fold.txt
+++ b/runtime/doc/fold.txt
@@ -1,4 +1,4 @@
-*fold.txt*      For Vim version 7.4.  Last change: 2010 May 13
+*fold.txt*      For Vim version 7.4.  Last change: 2013 Dec 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -285,9 +285,10 @@ zF		Create a fold for [count] lines.  Wo
 							*zd* *E351*
 zd		Delete one fold at the cursor.  When the cursor is on a folded
 		line, that fold is deleted.  Nested folds are moved one level
-		up.  In Visual mode all folds (partially) in the selected area
-		are deleted.  Careful: This easily deletes more folds than you
-		expect and there is no undo.
+		up.  In Visual mode one level of all folds (partially) in the
+		selected area are deleted.
+		Careful: This easily deletes more folds than you expect and
+		there is no undo for manual folding.
 		This only works when 'foldmethod' is "manual" or "marker".
 		Also see |fold-delete-marker|.
 
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 7.4.  Last change: 2013 Nov 12
+*options.txt*	For Vim version 7.4.  Last change: 2013 Dec 04
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -987,7 +987,7 @@ A jump table for the options with a shor
 
 						*'backupdir'* *'bdir'*
 'backupdir' 'bdir'	string	(default for Amiga: ".,t:",
-				 for MS-DOS and Win32: ".,c:/tmp,c:/temp"
+				 for MS-DOS and Win32: ".,$TEMP,c:/tmp,c:/temp"
 				 for Unix: ".,~/tmp,~/")
 			global
 			{not in Vi}
@@ -2477,7 +2477,7 @@ A jump table for the options with a shor
 
 						*'directory'* *'dir'*
 'directory' 'dir'	string	(default for Amiga: ".,t:",
-				 for MS-DOS and Win32: ".,c:\tmp,c:\temp"
+				 for MS-DOS and Win32: ".,$TEMP,c:\tmp,c:\temp"
 				 for Unix: ".,~/tmp,/var/tmp,/tmp")
 			global
 	List of directory names for the swap file, separated with commas.
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.4.  Last change: 2013 Nov 26
+*todo.txt*      For Vim version 7.4.  Last change: 2013 Dec 11
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -34,35 +34,22 @@ not be repeated below, unless there is e
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-NFA regexp doesn't count tab matches correctly. (Urtica Dioica / gaultheria
-Shallon, 2013 Nov 18)
-
-After patch 7.4.100 there is still a difference between NFA and old engine.
-25 a's with pattern \v^(aa+)\1+$  (Urtica Dioica, 2013 Nov 21)
-Also: 9 a's with pattern  \v^(a{-2,})\1+$ (Nov 23)
-
-Error for incomplete help argument. (John Beckett, 2013 Sep 12)
-
-Tutor: adjust text to start the tutor. (Jakson Alves de Aquino, 2013 Nov 19)
-
-Should win_redr_custom() not be allowed to use recursively?
-(Yasuhiro Matsumoto, 2013 Aug 15)
-
-NFA engine combining character mismatch. (glts, 2013 Aug 27)
-Remark Dominique, Aug 27
-
-Patch to fix building with Ruby on Cygwin. (Steve Hall, 2013 Nov 21)
-
-Patch to fix that in Python vim.eval errors are not caught by try/catch.
-(ZyX, 2013 Nov 26)
+Regexp problems:
+- NFA regexp doesn't count tab matches correctly. (Urtica Dioica / gaultheria
+  Shallon, 2013 Nov 18)
+- After patch 7.4.100 there is still a difference between NFA and old engine.
+  25 a's with pattern \v^(aa+)\1+$  (Urtica Dioica, 2013 Nov 21) Also: 9 a's
+  with pattern  \v^(a{-2,})\1+$ (Nov 23)
+- NFA engine combining character mismatch. (glts, 2013 Aug 27)
+  Remark from Dominique, Aug 27
+- Issue 164: freeze on regexp search.
+- NFA problem with non-greedy match and branches. (Ingo Karkat, 2013 Nov 29)
 
 Problem that a previous silent ":throw" causes a following try/catch not to
 work. (ZyX, 2013 Sep 28)
 
 Problem using ":try" inside ":execute". (ZyX, 2013 Sep 15)
 
-Issue 164: freeze on regexp search.
-
 Update for Clojure ftplugin. (Sung Pae).  Await discussion about formatting in
 ftplugins.
 
@@ -72,18 +59,17 @@ Patch to support slices in Python vim.Li
 
 Patch to support iterator on Python vim.options. (ZyX, 2013 Nov 2)
 
-Patch to fix that "zG" leaves temp files around. (Ken Takata, 2013 Nov 22)
-
 Patch to make Dictionary.update() work without arguments.
 (ZyX, 2013 Oct 19)
 
-Bug caused by patch 7.3.1288?  Issue 183.
-
 Patch for Cobol ftplugin. (ZyX, 2013 Oct 20)
 Await response from maintainer.
 
 Include systemverilog file?  Two votes yes.
 
+Patch to add :S modifier for excaping the current file name.
+(ZyX, 2013 Nov 30)  Update Dec 5.
+
 Problem with 'spellsuggest' file, only works for some words.
 (Cesar Romani, 2013 Aug 20)  Depends on file name? (Aug 24)
 Additional remark by glts: the suggested words are marked bad?
@@ -104,32 +90,27 @@ instead. (Samuel Ferencik, 2013 Sep 28)
 
 Series of patches for NL vs NUL handling. (ZyX, 2013 Nov 3, Nov 9)
 
+Patch to add v:completed_item. (Shougo Matsu, 2013 Nov 29).
+
 Perl: support for Activestate perl 5.18: Issue 170.
 
 Several syntax file match "^\s*" which may get underlined if that's in the
 highlight group.  Add a "\zs" after it?
 
+Patch to fix temp directories for Windows, so that it works without tweaking.
+Issue 28.
+
 Go through more coverity reports.
 
 Include Haiku port? (Adrien Destugues, Siarzhuk Zharski, 2013 Oct 24)
 
 Updated spec ftplugin. (Matěj Cepl, 2013 Oct 16)
 
-Patch to make ColorScheme autocommand match with the colorscheme name instead
-of the buffer name. (Christian Brabandt, 2013 Sep 25)
-
 Patch to right-align signs. (James Kolb (email james), 2013 Sep 23)
 
 With "$" in 'cpoptions' the popup menu isn't fully drawn. (Matti Niemenmaa,
 2013 Sep 5)
 
-"gUgn" cannot be repeated, while "dgn" can. (Dimitar Dimitrov)
-Patch by Christian Brabandt (2013 Aug 12)
-Also notes by Christian Wellenbrock, Nov 13, response from Christian Nov 14.
-
-Several Win32 functions are not using Unicode.
-Patches to fix this. (Ken Takata, 2013 Aug 9)
-
 Patch to add item in 'listchars' to repeat first character. (Nathaniel Braun,
 pragm, 2013 Oct 13)
 
@@ -147,6 +128,7 @@ Patch by Thomas Tuegel, also for GTK, 20
 
 Python: Extended funcrefs: use func_T* structure in place of char_u* function
 names. (ZyX, 2013 Jul 15, update Sep 22, 24, 28)
+Also fixes Bug: E685 error for func_unref(). (ZyX, 2010 Aug 5)
 
 Patch to add funcref to Lua.  (Luis Carvalho, 2013 Sep 4)
 With tests: Sep 5.
@@ -156,14 +138,14 @@ Patch to fix that on suckless Terminal m
 
 Discussion about canonicalization of Hebrew. (Ron Aaron, 2011 April 10)
 
-Patch to make external commands work with multi-byte characters on Win32 when
-'encoding' differs from the active codepage. (Yasuhiro Matsumoto, 2013 Aug 5)
-
 Checking runtime scripts: Thilo Six, 2012 Jun 6.
 
 Fold can't be opened after ":move". (Ein Brown)
 Patch from Christian Brabandt doesn't fix it completely.
 
+Patch from Christian Brabandt to preserve upper case marks when wiping out a
+buffer. (2013 Dec 9)
+
 Patch for drag&drop reordering of GUI tab pages reordering.
 (Ken Takata, 2013 Nov 22, second one, also by Masamichi Abe)
 
@@ -200,6 +182,12 @@ Or should we add a more general mechanis
 Problem caused by patch 7.3.638: window->open does not update window
 correctly. Issue 91.
 
+Patch to add {lhs} to :mapclear: clear all maps starting with {lhs}.
+(Christian Brabandt, 2013 Dec 9)
+
+The garbage collector may use too much stack.  Make set_ref_in_item()
+iterative instead of recursive.   Test program by Marc Weber (2013 Dec 10)
+
 Exception caused by argument of return is not caught by try/catch.
 (David Barnett, 2013 Nov 19)
 
@@ -277,6 +265,9 @@ cursor. (Daniel Thau, 2013 Nov 20)
 
 patch to add "combine" flag to  syntax commands. (so8res, 2012 Dec 6)
 
+Bug caused by patch 7.3.1288?  Issue 183.
+I can't reproduce it.
+
 Syntax update problem in one buffer opened in two windows, bottom window is
 not correctly updated. (Paul Harris, 2012 Feb 27)
 
@@ -402,6 +393,8 @@ 24)
 
 Patch for input method status. (Hirohito Higashi, 2012 Apr 18)
 
+Update Vim app icon (for Gnome). (Jakub Steiner, 2013 Dec 6)
+
 Patch to use .png icons for the toolbar on MS-Windows. (Martin Gieseking, 2013
 Apr 18)
 
@@ -420,8 +413,6 @@ And one for gui_x11.txt.
 finddir() has the same problem.  (Yukihiro Nakadaira, 2012 Jan 10)
 Requires a rewrite of the file_file_in_path code.
 
-Problem with l: dictionary being locked in a function. (ZyX, 2011 Jul 21)
-
 Should use has("browsefilter") in ftplugins.  Requires patch 7.3.593.
 
 Update for vim2html.pl. (Tyru, 2013 Feb 22)
@@ -503,8 +494,6 @@ When using a Vim server, a # in the path
 Setting $HOME on MS-Windows is not very well documented.  Suggestion by Ben
 Fritz (2011 Oct 27).
 
-Bug: E685 error for func_unref(). (ZyX, 2010 Aug 5)
-
 Bug: Windows 7 64 bit system freezes  when 'clipboard' set to "unnamed" and
 doing ":g/test/d".  Putting every delete on the clipboard? (Robert Chan, 2011
 Jun 17)
--- a/runtime/indent/sh.vim
+++ b/runtime/indent/sh.vim
@@ -1,7 +1,8 @@
 " Vim indent file
 " Language:         Shell Script
-" Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2010-01-06
+" Maintainer:       Peter Aronoff <telemachus@arpinum.org>
+" Original Author:  Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2013-11-28
 
 if exists("b:did_indent")
   finish
@@ -77,6 +78,8 @@ function! GetShIndent()
   let line = getline(v:lnum)
   if line =~ '^\s*\%(then\|do\|else\|elif\|fi\|done\)\>' || line =~ '^\s*}'
     let ind -= s:indent_value('default')
+  elseif line =~ '^\s*esac\>' && s:is_case_empty(getline(v:lnum - 1))
+    let ind -= s:indent_value('default')
   elseif line =~ '^\s*esac\>'
     let ind -= (s:is_case_label(pine, lnum) && s:is_case_ended(pine) ?
              \ 0 : s:indent_value('case-statements')) +
@@ -154,5 +157,13 @@ function! s:is_case_ended(line)
   return s:is_case_break(a:line) || a:line =~ ';[;&]\s*\%(#.*\)\=$'
 endfunction
 
+function! s:is_case_empty(line)
+  if a:line =~ '^\s*$' || a:line =~ '^\s*#'
+    return s:is_case_empty(getline(v:lnum - 1))
+  else
+    return a:line =~ '^\s*case\>'
+  endif
+endfunction
+
 let &cpo = s:cpo_save
 unlet s:cpo_save
--- a/runtime/syntax/css.vim
+++ b/runtime/syntax/css.vim
@@ -6,7 +6,7 @@
 "               Nikolai Weibull (Add CSS2 support)
 " Maintainer:   Jules Wang      <w.jq0722@gmail.com>
 " URL:          https://github.com/JulesWang/css.vim
-" Last Change:  2013 Sep 24
+" Last Change:  2013 Nov.27
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -58,7 +58,8 @@ syn match cssSelectorOp2 "[~|^$*]\?=" co
 syn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ
 
 " .class and #id
-syn match cssClassName "\.[A-Za-z][A-Za-z0-9_-]\+"
+syn match cssClassName "\.[A-Za-z][A-Za-z0-9_-]\+" contains=cssClassNameDot
+syn match cssClassNameDot contained '\.'
 
 try
 syn match cssIdentifier "#[A-Za-zÀ-ÿ_@][A-Za-zÀ-ÿ0-9_@-]*"
@@ -74,13 +75,14 @@ syn match cssValueAngle contained "[-+]\
 syn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)" contains=cssUnitDecorators
 syn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)" contains=cssUnitDecorators
 
+
+syn match cssIncludeKeyword /@\(-[a-z]+-\)\=\(media\|keyframes\|import\|charset\|namespace\|page\)/ contained
 " @media
-syn match cssMedia "@media\>"  nextgroup=cssMediaQuery,cssMediaBlock skipwhite skipnl
-syn match cssMediaQuery /\(only\|not\)\=\s*[a-z]*\(\s\|,\)\@=\(\(\s\+and\)\=\s\+(.\{-})\)*/ contained skipwhite skipnl contains=cssMediaProp,cssValueLength,cssMediaKeyword,cssValueInteger,cssMediaAttr,cssVendor,cssMediaType nextgroup=cssMediaBlock,cssMediaComma
+syn region cssInclude start=/@media\>/ end=/\ze{/ skipwhite skipnl contains=cssMediaProp,cssValueLength,cssMediaKeyword,cssValueInteger,cssMediaAttr,cssVendor,cssMediaType,cssIncludeKeyword,cssMediaComma,cssComment nextgroup=cssMediaBlock
 syn keyword cssMediaType contained screen print aural braille embossed handheld projection tty tv speech all contained skipwhite skipnl
 syn keyword cssMediaKeyword only not and contained
 syn region cssMediaBlock transparent matchgroup=cssBraces start='{' end='}' contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssTagName,cssClassName,cssIdentifier,cssPseudoClass,cssSelectorOp,cssSelectorOp2,cssAttributeSelector fold
-syn match cssMediaComma "," nextgroup=cssMediaQuery skipwhite skipnl contained
+syn match cssMediaComma "," skipwhite skipnl contained
 
 " Reference: http://www.w3.org/TR/css3-mediaqueries/
 syn keyword cssMediaProp contained width height orientation scan grid
@@ -91,21 +93,25 @@ syn match cssMediaProp contained /\(\(ma
 syn keyword cssMediaAttr contained portrait landscape progressive interlace
 
 " @page
-syn match cssPage "@page\>"  nextgroup=cssPagePseudo,cssDefinition  skipwhite skipnl
-syn match cssPagePseudo /:\(left\|right\|first\|\)/ nextgroup=cssDefinition contained skipwhite skipnl
-syn match cssPageHeaderProp /@\(\(top\|left\|right\|bottom\)-\(left\|center\|right\|middle\|bottom\)\)\(-corner\)\=/ contained
-syn keyword cssPageProp content size contained
+" http://www.w3.org/TR/css3-page/
+syn match cssPage "@page\>[^{]*{\@=" contains=cssPagePseudo,cssIncludeKeyword nextgroup=cssPageWrap transparent skipwhite skipnl
+syn match cssPagePseudo /:\(left\|right\|first\|blank\)/ contained skipwhite skipnl
+syn region cssPageWrap contained transparent matchgroup=cssBraces start="{" end="}" contains=cssPageMargin,cssPageProp,cssAttrRegion,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssHacks
+syn match cssPageMargin /@\(\(top\|left\|right\|bottom\)-\(left\|center\|right\|middle\|bottom\)\)\(-corner\)\=/ contained nextgroup=cssDefinition skipwhite skipnl
+syn keyword cssPageProp contained content size
+" http://www.w3.org/TR/CSS2/page.html#break-inside
+syn keyword cssPageProp contained orphans widows
 
 " @keyframe
-syn match cssKeyFrame "@\(-[a-z]*-\)\=keyframes\>\(\s*\<\S*\>\)\="  nextgroup=cssKeyFrameBlock contains=cssVendor skipwhite skipnl
-syn region cssKeyFrameBlock contained transparent matchgroup=cssBraces start="{" end="}" contains=cssKeyFrameSelector,cssDefinition
-syn match cssKeyFrameSelector /\(\d*%\|from\|to\)\=/  contained skipwhite skipnl
+" http://www.w3.org/TR/css3-animations/#keyframes
+syn match cssKeyFrame "@\(-[a-z]+-\)\=keyframes\>[^{]*{\@=" nextgroup=cssKeyFrameWrap contains=cssVendor,cssIncludeKeyword skipwhite skipnl transparent
+syn region cssKeyFrameWrap contained transparent matchgroup=cssBraces start="{" end="}" contains=cssKeyFrameSelector
+syn match cssKeyFrameSelector /\(\d*%\|from\|to\)\=/  contained skipwhite skipnl nextgroup=cssDefinition
 
 " @import
-syn region cssInclude start=/@import\>/ end=/\ze;/ contains=cssComment,cssURL,cssUnicodeEscape,cssMediaQuery,cssStringQ,cssStringQQ,cssIncludeKeyword
-syn region cssInclude start=/@charset\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssIncludeKeyword
-syn region cssInclude start=/@namespace\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssIncludeKeyword
-syn match cssIncludeKeyword /\(@import\|@charset\|@namespace\)/ contained
+syn region cssInclude start=/@import\>/    end=/\ze;/ transparent contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssIncludeKeyword,cssURL,cssMediaProp,cssValueLength,cssMediaKeyword,cssValueInteger,cssMediaAttr,cssVendor,cssMediaType
+syn region cssInclude start=/@charset\>/   end=/\ze;/ transparent contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssIncludeKeyword
+syn region cssInclude start=/@namespace\>/ end=/\ze;/ transparent contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssIncludeKeyword
 
 " @font-face
 " http://www.w3.org/TR/css3-fonts/#at-font-face-rule
@@ -179,7 +185,7 @@ syn keyword cssCommonAttr contained top 
 "------------------------------------------------
 " CSS Animations
 " http://www.w3.org/TR/css3-animations/
-syn match cssAnimationProp contained "\<animation\(-\(delay\|direction\|duration\|fill-mode\|name\|play-state\|timing-function\)\)\=\>"
+syn match cssAnimationProp contained "\<animation\(-\(delay\|direction\|duration\|fill-mode\|name\|play-state\|timing-function\|iteration-count\)\)\=\>"
 
 " animation-direction attributes
 syn keyword cssAnimationAttr contained alternate reverse
@@ -215,7 +221,7 @@ syn match cssBorderProp contained "\<box
 syn match cssBorderProp contained "\<box-shadow\>"
 
 " border-image attributes
-syn keyword cssBorderAttr contained stretch repeat round space fill
+syn keyword cssBorderAttr contained stretch round space fill
 
 " border-style attributes
 syn keyword cssBorderAttr contained dotted dashed solid double groove ridge inset outset
@@ -230,7 +236,7 @@ syn keyword cssBorderAttr contained clon
 syn match cssBoxProp contained "\<padding\(-\(top\|right\|bottom\|left\)\)\=\>"
 syn match cssBoxProp contained "\<margin\(-\(top\|right\|bottom\|left\)\)\=\>"
 syn match cssBoxProp contained "\<overflow\(-\(x\|y\|style\)\)\=\>"
-syn match cssBoxProp contained "\<rotation\(-point\)=\>"
+syn match cssBoxProp contained "\<rotation\(-point\)\=\>"
 syn keyword cssBoxAttr contained visible hidden scroll auto
 syn match cssBoxAttr contained "\<no-\(display\|content\)\>"
 
@@ -289,13 +295,26 @@ syn keyword cssFontAttr contained bold b
 syn match cssFontProp contained "\<font-smooth\>"
 syn match cssFontAttr contained "\<\(subpixel-\)\=\antialiased\>"
 
+
+" CSS Multi-column Layout Module
+" http://www.w3.org/TR/css3-multicol/
+syn match cssMultiColumnProp contained "\<break-\(after\|before\|inside\)\>"
+syn match cssMultiColumnProp contained "\<column-\(count\|fill\|gap\|rule\(-\(color\|style\|width\)\)\=\|span\|width\)\>"
+syn keyword cssMultiColumnProp contained columns
+syn keyword cssMultiColumnAttr contained balance medium
+syn keyword cssMultiColumnAttr contained always avoid left right page column
+syn match cssMultiColumnAttr contained "\<avoid-\(page\|column\)\>"
+
+" http://www.w3.org/TR/css3-break/#page-break
+syn match cssMultiColumnProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>"
+
+" TODO find following items in w3c docs.
 syn keyword cssGeneratedContentProp contained quotes crop
 syn match cssGeneratedContentProp contained "\<counter-\(reset\|increment\)\>"
 syn match cssGeneratedContentProp contained "\<move-to\>"
 syn match cssGeneratedContentProp contained "\<page-policy\>"
 syn match cssGeneratedContentAttr contained "\<\(no-\)\=\(open\|close\)-quote\>"
 
-
 syn match cssGridProp contained "\<grid-\(columns\|rows\)\>"
 
 syn match cssHyerlinkProp contained "\<target\(-\(name\|new\|position\)\)\=\>"
@@ -307,8 +326,6 @@ syn match cssListAttr contained "\<\(dec
 syn keyword cssListAttr contained disc circle square hebrew armenian georgian
 syn keyword cssListAttr contained inside outside
 
-syn match cssMultiColumnProp contained "\<column\(-\(\break-\(after\|before\)\|count\|gap\|rule\(-\(color\|style\|width\)\)\=\)\|span\|width\)\=\>"
-
 syn keyword cssPositioningProp contained bottom clear clip display float left
 syn keyword cssPositioningProp contained position right top visibility
 syn match cssPositioningProp contained "\<z-index\>"
@@ -319,8 +336,6 @@ syn match cssPositioningAttr contained "
 syn match cssPositioningAttr contained "\<inline\(-\(block\|box\|table\)\)\=\>"
 syn keyword cssPositioningAttr contained static relative absolute fixed
 
-syn match cssPrintProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>"
-syn keyword cssPrintProp contained orphans widows
 syn keyword cssPrintAttr contained landscape portrait crop cross always avoid
 
 syn match cssTableProp contained "\<\(caption-side\|table-layout\|border-collapse\|border-spacing\|empty-cells\)\>"
@@ -394,7 +409,7 @@ syn keyword cssUIAttr contained both hor
 syn match cssUIProp contained "\<text-overflow\>"
 syn keyword cssUIAttr contained clip ellipsis
 
-" Already highlighted Props:  font content
+" Already highlighted Props: font content
 "------------------------------------------------
 " Webkit/iOS specific attributes
 syn match cssUIAttr contained '\(preserve-3d\)'
@@ -456,8 +471,8 @@ syn match cssPseudoClassId contained  "\
 syn region cssComment start="/\*" end="\*/" contains=@Spell fold
 
 syn match cssUnicodeEscape "\\\x\{1,6}\s\?"
-syn match cssSpecialCharQQ +\\"+ contained
-syn match cssSpecialCharQ +\\'+ contained
+syn match cssSpecialCharQQ +\\\\\|\\"+ contained
+syn match cssSpecialCharQ +\\\\\|\\'+ contained
 syn region cssStringQQ start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cssUnicodeEscape,cssSpecialCharQQ
 syn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ
 
@@ -478,11 +493,11 @@ syntax match cssNoise contained /\(:\|;\
 
 " Attr Enhance
 " Some keywords are both Prop and Attr, so we have to handle them
-syn region cssAttrRegion start=/:/ end=/;/ contained keepend contains=css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssTransitionHackProp,cssAttrComma,cssNoise
+syn region cssAttrRegion start=/:/ end=/;/ contained keepend contains=css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise
 
 " Hack for transition
 " The 'transition' Prop has Props after ':'.
-syn region cssAttrRegion start=/transition\s*:/ end=/;/ contained keepend contains=css.*Prop,css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssTransitionHackProp,cssAttrComma,cssNoise
+syn region cssAttrRegion start=/transition\s*:/ end=/;/ contained keepend contains=css.*Prop,css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise
 
 
 if main_syntax == "css"
@@ -593,7 +608,6 @@ if version >= 508 || !exists("did_css_sy
   HiLink cssBraces Function
   HiLink cssBraceError Error
   HiLink cssError Error
-  HiLink cssInclude Include
   HiLink cssUnicodeEscape Special
   HiLink cssStringQQ String
   HiLink cssStringQ String
@@ -606,7 +620,7 @@ if version >= 508 || !exists("did_css_sy
   HiLink cssMediaAttr cssAttr
   HiLink cssPage atKeyword
   HiLink cssPagePseudo PreProc
-  HiLink cssPageHeaderProp PreProc
+  HiLink cssPageMargin atKeyword
   HiLink cssPageProp cssProp
   HiLink cssKeyFrame atKeyword
   HiLink cssKeyFrameSelector Constant
@@ -616,6 +630,7 @@ if version >= 508 || !exists("did_css_sy
   HiLink cssFontDescriptorAttr cssAttr
   HiLink cssUnicodeRange Constant
   HiLink cssClassName Function
+  HiLink cssClassNameDot Function
   HiLink cssProp StorageClass
   HiLink cssAttr Constant
   HiLink cssUnitDecorators Number
--- a/runtime/tutor/tutor
+++ b/runtime/tutor/tutor
@@ -55,8 +55,8 @@ NOTE: The cursor keys should also work. 
   2. Type:	:q! <ENTER>.
      This exits the editor, DISCARDING any changes you have made.
 
-  3. When you see the shell prompt, type the command that got you into this
-     tutor.  That would be:	vimtutor <ENTER>
+  3. Get back here by executing the command that got you into this tutor. That
+     might be:  vimtutor <ENTER>
 
   4. If you have these steps memorized and are confident, execute steps
      1 through 3 to exit and re-enter the editor.