changeset 7477:05cf4cc72a9f

commit https://github.com/vim/vim/commit/fa7353428f705f7a13465a1943dddeede4083023 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jan 3 22:14:44 2016 +0100 Updated runtime files.
author Christian Brabandt <cb@256bit.org>
date Sun, 03 Jan 2016 22:15:05 +0100
parents 023506554cad
children dbfa0f9ab289
files runtime/doc/change.txt runtime/doc/editing.txt runtime/doc/eval.txt runtime/doc/if_tcl.txt runtime/doc/index.txt runtime/doc/options.txt runtime/doc/pattern.txt runtime/doc/tags runtime/doc/todo.txt runtime/doc/version5.txt runtime/syntax/zsh.vim
diffstat 11 files changed, 112 insertions(+), 156 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,4 +1,4 @@
-*change.txt*    For Vim version 7.4.  Last change: 2015 Oct 17
+*change.txt*    For Vim version 7.4.  Last change: 2016 Jan 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -438,8 +438,8 @@ This depends on the 'nrformats' option:
   index.
 
 For decimals a leading negative sign is considered for incrementing/
-decrementing, for octal and hex values, it won't be considered.
-To ignore the sign Visually select the number before using CTRL-A or CTRL-X. 
+decrementing, for binary, octal and hex values, it won't be considered.  To
+ignore the sign Visually select the number before using CTRL-A or CTRL-X. 
 
 For numbers with leading zeros (including all octal and hexadecimal numbers),
 Vim preserves the number of characters in the number when possible.  CTRL-A on
@@ -1007,7 +1007,7 @@ 5. Copying and moving text				*copy-move
 
 :reg[isters] {arg}	Display the contents of the numbered and named
 			registers that are mentioned in {arg}.  For example: >
-				:dis 1a
+				:reg 1a
 <			to display registers '1' and 'a'.  Spaces are allowed
 			in {arg}.  {not in Vi}
 
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -1,4 +1,4 @@
-*editing.txt*   For Vim version 7.4.  Last change: 2015 Aug 25
+*editing.txt*   For Vim version 7.4.  Last change: 2016 Jan 03
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1105,7 +1105,7 @@ 5. Writing and quitting					*write-quit*
 			the last file in the argument list has not been
 			edited.  See |:confirm| and 'confirm'.  {not in Vi}
 
-:q[uit]!		Quit without writing, also when currentl buffer has
+:q[uit]!		Quit without writing, also when the current buffer has
 			changes.  If this is the last window and there is a
 			modified hidden buffer, the current buffer is
 			abandoned and the first changed hidden buffer becomes
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 7.4.  Last change: 2015 Dec 29
+*eval.txt*	For Vim version 7.4.  Last change: 2016 Jan 02
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -68,14 +68,16 @@ the Number.  Examples:
 	Number 0	-->	String "0" ~
 	Number -1	-->	String "-1" ~
 							*octal*
-Conversion from a String to a Number is done by converting the first digits
-to a number.  Hexadecimal "0xf9" and Octal "017" numbers are recognized.  If
-the String doesn't start with digits, the result is zero.  Examples:
+Conversion from a String to a Number is done by converting the first digits to
+a number.  Hexadecimal "0xf9", Octal "017", and Binary "0b10" numbers are
+recognized.  If the String doesn't start with digits, the result is zero.
+Examples:
 	String "456"	-->	Number 456 ~
 	String "6bar"	-->	Number 6 ~
 	String "foo"	-->	Number 0 ~
 	String "0xf1"	-->	Number 241 ~
 	String "0100"	-->	Number 64 ~
+	String "0b101"	-->	Number 5 ~
 	String "-8"	-->	Number -8 ~
 	String "+8"	-->	Number 0 ~
 
@@ -5955,12 +5957,14 @@ str2float( {expr})					*str2float()*
 
 str2nr( {expr} [, {base}])				*str2nr()*
 		Convert string {expr} to a number.
-		{base} is the conversion base, it can be 8, 10 or 16.
+		{base} is the conversion base, it can be 2, 8, 10 or 16.
 		When {base} is omitted base 10 is used.  This also means that
 		a leading zero doesn't cause octal conversion to be used, as
 		with the default String to Number conversion.
 		When {base} is 16 a leading "0x" or "0X" is ignored.  With a
-		different base the result will be zero.
+		different base the result will be zero.  Similarly, when
+		{base} is 8 a leading "0" is ignored, and when {base} is 2 a
+		leading "0b" or "0B" is ignored.
 		Text after the number is silently ignored.
 
 
--- a/runtime/doc/if_tcl.txt
+++ b/runtime/doc/if_tcl.txt
@@ -1,4 +1,4 @@
-*if_tcl.txt*    For Vim version 7.4.  Last change: 2012 Aug 02
+*if_tcl.txt*    For Vim version 7.4.  Last change: 2016 Jan 01
 
 
 		  VIM REFERENCE MANUAL    by Ingo Wilken
@@ -526,7 +526,7 @@ To use the Tcl interface the Tcl DLL mus
 console window type "path" to see what directories are used.
 
 The name of the DLL must match the Tcl version Vim was compiled with.
-Currently the name is "tcl83.dll".  That is for Tcl 8.3.  To know for sure
+Currently the name is "tcl86.dll".  That is for Tcl 8.6.  To know for sure
 edit "gvim.exe" and search for "tcl\d*.dll\c".
 
 ==============================================================================
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,4 +1,4 @@
-*index.txt*     For Vim version 7.4.  Last change: 2015 Sep 08
+*index.txt*     For Vim version 7.4.  Last change: 2016 Jan 03
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1495,6 +1495,7 @@ tag	      command	      action ~
 |:smap|		:smap		like ":map" but for Select mode
 |:smapclear|	:smapc[lear]	remove all mappings for Select mode
 |:smenu|	:sme[nu]	add menu for Select mode
+|:smile|        :smi[le]	make the user happy
 |:snext|	:sn[ext]	split window and go to next file in the
 				argument list
 |:sniff|	:sni[ff]	send request to sniff
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 7.4.  Last change: 2015 Nov 23
+*options.txt*	For Vim version 7.4.  Last change: 2016 Jan 03
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -4603,7 +4603,7 @@ A jump table for the options with a shor
 			feature}
 	This option allows switching your keyboard into a special language
 	mode.  When you are typing text in Insert mode the characters are
-	inserted directly.  When in command mode the 'langmap' option takes
+	inserted directly.  When in Normal mode the 'langmap' option takes
 	care of translating these special characters to the original meaning
 	of the key.  This means you don't have to change the keyboard mode to
 	be able to execute Normal mode commands.
@@ -5019,8 +5019,11 @@ A jump table for the options with a shor
 			{not in Vi}
 	Maximum amount of memory in Kbyte to use for all buffers together.
 	The maximum usable value is about 2000000 (2 Gbyte).  Use this to work
-	without a limit.  On 64 bit machines higher values might work.  But
-	hey, do you really need more than 2 Gbyte for text editing?
+	without a limit.
+	On 64 bit machines higher values might work.  But hey, do you really
+	need more than 2 Gbyte for text editing?  Keep in mind that text is
+	stored in the swap file, one can edit files > 2 Gbyte anyay.  We do
+	need the memory to store undo info.
 	Also see 'maxmem'.
 
 						*'menuitems'* *'mis'*
@@ -6838,7 +6841,8 @@ A jump table for the options with a shor
 	the two-letter, lower case region name.  You can use more than one
 	region by listing them: "en_us,en_ca" supports both US and Canadian
 	English, but not words specific for Australia, New Zealand or Great
-	Britain.
+	Britain. (Note: currently en_au and en_nz dictionaries are older than
+	en_ca, en_gb and en_us).
 	If the name "cjk" is included East Asian characters are excluded from
 	spell checking.  This is useful when editing text that also has Asian
 	words.
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -1,4 +1,4 @@
-*pattern.txt*   For Vim version 7.4.  Last change: 2015 Dec 26
+*pattern.txt*   For Vim version 7.4.  Last change: 2016 Jan 03
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1102,7 +1102,10 @@ x	A single character, with no special me
 	  plausible pattern for a UNIX filename: "[-./[:alnum:]_~]\+" That is,
 	  a list of at least one character, each of which is either '-', '.',
 	  '/', alphabetic, numeric, '_' or '~'.
-	  These items only work for 8-bit characters.
+	  These items only work for 8-bit characters, except [:lower:] and
+	  [:upper:] also work for multi-byte characters when using the new
+	  regexp engine.  In the future these items may work for multi-byte
+	  characters.
 							*/[[=* *[==]*
 	- An equivalence class.  This means that characters are matched that
 	  have almost the same meaning, e.g., when ignoring accents.  This
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -7459,7 +7459,6 @@ optwin	options.txt	/*optwin*
 or()	eval.txt	/*or()*
 oracle	ft_sql.txt	/*oracle*
 os2	os_os2.txt	/*os2*
-os2ansi	os_os2.txt	/*os2ansi*
 os390	os_390.txt	/*os390*
 os_390.txt	os_390.txt	/*os_390.txt*
 os_amiga.txt	os_amiga.txt	/*os_amiga.txt*
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.4.  Last change: 2015 Dec 29
+*todo.txt*      For Vim version 7.4.  Last change: 2016 Jan 03
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -76,30 +76,10 @@ Regexp problems:
   matches the empty string. (Dominique Pelle, 2015 Oct 2, Nov 24)
 - Search for \\~ causes error E874.
 
-Poor mans runtime file updater:
-- Generate a content file of all included runtime files:
-    $VIMRUNTIME/CONTENTS
-  With lines:
-        runtime/syntax/ada.vim hexchecksum  hexchecksum-with-CR-LF
-	runtime/syntax/old.vim DELETED
-- Use a command to trigger a script:
-	:RuntimeUpdate
-  Gets the new contents file from
-    https://raw.githubusercontent.com/vim/vim/master/runtime/CONTENTS
-  Goes over each line, compares the checksum and gets the file if it differs.
-- Include a minimal required Vim version?
-- For an installation, use "sudo" after getting all the files, only copy them.
-   need a temp directory tree.
-- For Windows generate a .bat file with "runas" (see StackOverflow).
-- Include a wget.exe or curl.exe in the distribution?
-- Also update vim.exe and gvim.exe this way?
-
-English spell file has an encoding error in the affix file.
-(Dominique Pelle, 2015 Oct 15)
-Perhaps use the files from here:
-https://github.com/marcoagpinto/aoo-mozilla-en-dict
-Hint for new URL: Christian Brabandt, 2015 Oct 15.
-But that file looks old.
+Need better instructions about how to install all interfaces and how to build
+Vim with them.
+For Ruby: https://github.com/ruby/ruby/tree/trunk/win32
+Or use Ken Takata's hack.
 
 Still using freed memory after using setloclist(). (lcd, 2014 Jul 23)
 More info Jul 24.  Not clear why.
@@ -116,86 +96,35 @@ Should use /usr/local/share/applications
 Or use $XDG_DATA_DIRS.
 Also need to run update-desktop-database (Kuriyama Kazunobu, 2015 Nov 4)
 
-Patch to test shadow. James McCoy, 2015 Dec 7, #520
-
-Patch to support strawberry Perl. (Ken Takata, 2015 Dec 21)
-
-Change the travis config to also run autoconf on the huge build.
-(James McCoy, 2015 Dec 4)
-
 Access to uninitialized memory in match_backref() regexp_nda.c:4882
 (Dominique Pelle, 2015 Nov 6)
 
-Patch to fix test_listchars for MingW. (Christian Brabandt, 2015 Nov 29)
-
-Patch to not set the python home if $PYTHONHOME is set. (Kazuki Sakamoto,
-2015 Nov 24)
-
-Patch to add tests for what 7.3.192 fixed. (Elias Diem, 2015 Dec 22)
-
-Patch to use local value of 'errorformat' in :cexpr. (Christian Brabandt,
-2015 Oct 16)  Only do this for :lexpr ?
-
 ":cd C:\Windows\System32\drivers\etc*" does not work, even though the
 directory exists. (Sergio Gallelli, 2013 Dec 29)
 
-Patch to make fnamemodify() work better with Cygwin. (Wily Wampa == Jacob
-Niehus, 2015 Nov 28, issue 505) 
-
-Patch to fix mc_FullName() on root directory. (Milly, 2015 Nov 24, Issue 501)
-
-Patch to make matchparen restore curswant properly. (Christian Brabandt, 2015
-Nov 26)
-
-Test 17 does not clean up the directory it creates. (Michael Soyka, 2015 Nov
-28)
-
-Patch to add binary support for nrformat. (Jason Schulz, 2015 Dec 28)
-
-Patch to make assert_false() error message look better. (Watiko, 2015 Dec 14)
-
 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.
 Perhaps we can use "window <restore> {cmd}"?
 
-Patch to estimate available memory on MS-Windows. (Mike Williams, 2015 Dec 18)
-Last version that day.
-
 Illegal memory access, requires ASAN to see. (Dominique Pelle, 2015 Jul 28)
 
-Patch for testing 'backspace'.  Also changes behavior of ":set bs=0", do we
-want that? (Hirohito Higashi, 2015 Dec 17)
-New patch Dec 26.
-
-Patch to adjust an Ex range only if it's about line numbers. (Christian
-Brabandt, 2015 Dec 13)
-
 Gvim: when both Tab and CTRL-I are mapped, use CTRL-I not for Tab.
 
 Unexpected delay when using CTRL-O u.  It's not timeoutlen.
 (Gary Johnson, 2015 Aug 28)
 
-Patch for tee on Windows. (Yasuhiro Matsumoto, 2015 Nov 30)
-Update Dec 1.
-
-Patch to use 256 color setup for all terminals that have 256 colors or more.
-#504. (rdebath, 2015 Dec 1)
-
 Instead of separately uploading patches to the ftp site, can we get them from
 github?  This URL works:
    https://github.com/vim/vim/compare/v7.4.920%5E...v7.4.920.diff
+Diff for version.c contains more context, can't skip a patch.
 >
 Can src/GvimExt/Make_cyg.mak be removed?
 Same for src/xxd/Make_cyg.mak
 
-":q!" should reset modified flag for current buffer, if another buffer is
-modified no need to abandon it again.
-Patch from Yasuhiro Matsumoto, 2014 Nov 21.
-Update from Hirohito Higashi, 2014 Nov 21.
-With test, Nov 23.  Update 2015 Dec 15.
-
-Updated Fortran files. (Ajit Thakkar, 2015 Nov 30, second one)
+When t_Co is changed from termresponse, the OptionSet autocmmand event isn't
+triggered.  Use the code from the end of set_num_option() in
+set_color_count().
 
 Python: ":py raw_input('prompt')" doesn't work. (Manu Hack)
 
@@ -209,7 +138,7 @@ Patch to recognize string slice for vari
 (Hirohito Higashi, 2015 Nov 24)
 
 Patch to add debug backtrace. (Alberto Fanjul, 2015 Sep 27)
-Update Dec 2.
+Update 2016 Jan 2.  Issue #433
 
 MS-Windows: When editing a file with a leading space, writing it uses the
 wrong name. (Aram, 2014 Nov 7)  Vim 7.4.
@@ -237,11 +166,6 @@ Can we cache the syntax attributes, so t
 
 Patch to add window and tab arguments to getcwd(). (Thinca, 2015 Nov 15)
 
-Patch to check PYTHONHOME first. #500
-
-Patch to build with Python using MSYS2. (Yasuhiro Matsumoto, 2015 Nov 26)
-Updated Nov 29.
-
 Build with Python on Mac does not always use the right library.
 (Kazunobu Kuriyama, 2015 Mar 28)
 
@@ -324,7 +248,14 @@ Patch for matchit plugin related to mult
 
 Patch for multi-byte characters in langmap and applying a mapping on them.
 (Christian Brabandt, 2015 Jun 12, update July 25)
-Is this the right solution?
+Is this the right solution?  Need to cleanup langmap behavior:
+- in vgetorpeek() apply langmap to the typeahead buffer and put the result in
+  a copy-buffer, only when langmap is appropriate for the current mode. Then
+  check for mapping and let gotchars() work on the copy-buffer.
+- Remove LANGMAP_ADJUST() in other parts of the code.  Make sure the mode is
+  covered by the above change.
+So that replaying the register doesn't use keymap/langmap and still does the
+same thing.  Remarks on issue 543.
 
 Patch to add grepfile(). (Scott Prager, 2015 May 26)
 Work in progress.
@@ -716,6 +647,18 @@ optional. (2013 Jul 12)
 
 Dialog is too big on Linux too. (David Fishburn, 2013 Sep 2)
 
+Improve the installer for MS-Windows.  There are a few alternatives:
+- Installer from Cream (Steve Hall).
+- Modern UI 2.0 for the Nsis installer. (Guopeng Wen)
+    https://github.com/gpwen/vim-installer-mui2
+-  make it possible to do a silent install, see
+    http://nsis.sourceforge.net/Docs/Chapter4.html#4.12
+    Version from Guopeng Wen does this.
+- MSI installer: https://github.com/petrkle/vim-msi/
+- The one on Issue 279.
+Problem: they all work slightly different (e.g. don't install vimrun.exe).
+How to test that it works well for all Vim users?
+
 Patch to check whether a buffer is quickfix or a location list.
 (Yasuhiro Matsumoto, 2014 Dec 9)
 
@@ -809,14 +752,6 @@ MS-Windows resizing problems:
   causes the window to move unnecessarily. (William E. Skeith III, 2012 Jan
   12) Patch: 2012 Jan 13  Needs more work (2012 Feb 2)
 
-Patch to use Modern UI 2.0 for the Nsis installer. (Guopeng Wen, 2010 Jul 30)
-Latest version: 2011 May 18 
-8   Windows install with NSIS: make it possible to do a silent install, see
-    http://nsis.sourceforge.net/Docs/Chapter4.html#4.12
-    Version from Guopeng Wen that does this (2010 Dec 27)
-Alternative: MSI installer: https://github.com/petrkle/vim-msi/
-Or the one on Issue 279
-
 'iminsert' global value set when using ":setlocal iminsert"? (Wu, 2012 Jun 23)
 
 Patch to append regexp to tag commands to make it possible to select one out
@@ -936,9 +871,9 @@ Sep 17)  Asked for feedback from others.
 Win32: Cannot cd into a directory that starts with a space. (Andy Wokula, 2012
 Jan 19)
 
-Need to escape $HOME on Windows?  (ZyX, 2011 Jul 21, discussion 2013 Jul 4)
-Can't simply use a backslash, \$HOME has a different meaning already.
-Would be possible to use $$HOME where $HOME is to be used.
+Need to escape $HOME on Windows for fnameescape()?  (ZyX, 2011 Jul 21,
+discussion 2013 Jul 4) Can't simply use a backslash, \$HOME has a different
+meaning already.  Would be possible to use $$HOME where $HOME is to be used.
 
 "2" in 'formatoptions' not working in comments. (Christian Corneliussen, 2011
 Oct 26)
--- a/runtime/doc/version5.txt
+++ b/runtime/doc/version5.txt
@@ -1,4 +1,4 @@
-*version5.txt*  For Vim version 7.4.  Last change: 2012 Aug 08
+*version5.txt*  For Vim version 7.4.  Last change: 2016 Jan 03
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -848,7 +848,7 @@ putting a backslash before it.  |+cmd|
 
 After recovery, BufReadPost autocommands are applied.  |:recover|
 
-Added color support for "os2ansi", OS/2 console. (Slootman) |os2ansi|
+Added color support for "os2ansi", OS/2 console. (Slootman)
 
 Allow "%:p:h" when % is empty.  |:_%|
 
--- a/runtime/syntax/zsh.vim
+++ b/runtime/syntax/zsh.vim
@@ -2,7 +2,7 @@
 " Language:             Zsh shell script
 " Maintainer:           Christian Brabandt <cb@256bit.org>
 " Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
-" Latest Revision:      2015-05-29
+" Latest Revision:      2015-12-25
 " License:              Vim (see :h license)
 " Repository:		https://github.com/chrisbra/vim-zsh
 
@@ -125,20 +125,29 @@ syn keyword zshCommands         alias au
                                 \ zsocket zstyle ztcp
 
 " Options, generated by: echo ${(j:\n:)options[(I)*]} | sort
+" Create a list of option names from zsh source dir:
+"     #!/bin/zsh
+"    topdir=/path/to/zsh-xxx
+"    grep '^pindex([A-Za-z_]*)$' $topdir/Src/Doc/Zsh/optionsyo |
+"    while read opt
+"    do
+"        echo ${${(L)opt#pindex\(}%\)}
+"    done
+
 syn case ignore
 syn keyword zshOptions          aliases allexport all_export alwayslastprompt
-                                \ always_lastprompt alwaystoend always_to_end
-                                \ appendhistory append_history autocd autocontinue
+                                \ always_last_prompt always_lastprompt alwaystoend always_to_end appendcreate
+                                \ append_create appendhistory append_history autocd auto_cd autocontinue
                                 \ auto_continue autolist auto_list
                                 \ automenu auto_menu autonamedirs auto_name_dirs
                                 \ autoparamkeys auto_param_keys autoparamslash
                                 \ auto_param_slash autopushd auto_pushd autoremoveslash
-                                \ auto_remove_slash autoresume auto_resume badpattern
+                                \ auto_remove_slash autoresume auto_resume badpattern bad_pattern
                                 \ banghist bang_hist bareglobqual bare_glob_qual
                                 \ bashautolist bash_auto_list bashrematch bash_rematch
-                                \ beep bgnice braceccl brace_ccl braceexpand brace_expand
+                                \ beep bgnice bg_nice braceccl brace_ccl braceexpand brace_expand
                                 \ bsdecho bsd_echo caseglob case_glob casematch case_match
-                                \ cbases cdablevars cd_able_vars chasedots chase_dots
+                                \ cbases c_bases cdablevars cdable_vars cd_able_vars chasedots chase_dots
                                 \ chaselinks chase_links checkjobs check_jobs
                                 \ clobber combiningchars combining_chars completealiases
                                 \ complete_aliases completeinword complete_in_word
@@ -146,17 +155,17 @@ syn keyword zshOptions          aliases 
                                 \ correctall correct_all cprecedences c_precedences
                                 \ cshjunkiehistory csh_junkie_history cshjunkieloops
                                 \ csh_junkie_loops cshjunkiequotes csh_junkie_quotes
-                                \ cshnullcmd csh_null_cmd cshnullglob csh_null_glob
+                                \ csh_nullcmd csh_null_cmd cshnullcmd csh_null_cmd cshnullglob csh_null_glob
                                 \ debugbeforecmd debug_before_cmd dotglob dot_glob dvorak
                                 \ emacs equals errexit err_exit errreturn err_return evallineno
                                 \ eval_lineno exec extendedglob extended_glob extendedhistory
                                 \ extended_history flowcontrol flow_control forcefloat
-                                \ force_float functionargzero function_arg_zero glob globalexport
+                                \ force_float functionargzero function_argzero function_arg_zero glob globalexport
                                 \ global_export globalrcs global_rcs globassign glob_assign
                                 \ globcomplete glob_complete globdots glob_dots glob_subst
-                                \ globsubst hashall hash_all hashcmds hash_cmds hashdirs
-                                \ hash_dirs hashexecutablesonly hash_executables_only hashlistall
-                                \ hash_list_all histallowclobber hist_allow_clobber histappend
+                                \ globsubst globstarshort glob_star_short hashall hash_all hashcmds
+                                \ hash_cmds hashdirs hash_dirs hashexecutablesonly hash_executables_only
+                                \ hashlistall hash_list_all histallowclobber hist_allow_clobber histappend
                                 \ hist_append histbeep hist_beep hist_expand hist_expire_dups_first
                                 \ histexpand histexpiredupsfirst histfcntllock hist_fcntl_lock
                                 \ histfindnodups hist_find_no_dups histignorealldups
@@ -184,7 +193,7 @@ syn keyword zshOptions          aliases 
                                 \ numeric_glob_sort octalzeroes octal_zeroes onecmd one_cmd
                                 \ overstrike over_strike pathdirs path_dirs pathscript
                                 \ path_script physical pipefail pipe_fail posixaliases
-                                \ posix_aliases posixargzero posix_arg_zero posixbuiltins 
+                                \ posix_aliases posixargzero posix_arg_zero posix_argzero posixbuiltins 
                                 \ posix_builtins posixcd posix_cd posixidentifiers posix_identifiers
                                 \ posixjobs posix_jobs posixstrings posix_strings posixtraps
                                 \ posix_traps printeightbit print_eight_bit printexitvalue
@@ -192,8 +201,8 @@ syn keyword zshOptions          aliases 
                                 \ prompt_cr promptpercent prompt_percent promptsp prompt_sp
                                 \ promptsubst prompt_subst promptvars prompt_vars pushdignoredups
                                 \ pushd_ignore_dups pushdminus pushd_minus pushdsilent pushd_silent
-                                \ pushdtohome pushd_to_home rcexpandparam rc_expandparam rcquotes
-                                \ rc_quotes rcs recexact rec_exact rematchpcre re_match_pcre
+                                \ pushdtohome pushd_to_home rcexpandparam rc_expandparam rc_expand_param rcquotes
+                                \ rc_quotes rcs recexact rec_exact rematchpcre re_match_pcre rematch_pcre
                                 \ restricted rmstarsilent rm_star_silent rmstarwait rm_star_wait
                                 \ sharehistory share_history shfileexpansion sh_file_expansion
                                 \ shglob sh_glob shinstdin shin_stdin shnullcmd sh_nullcmd
@@ -201,22 +210,22 @@ syn keyword zshOptions          aliases 
                                 \ sh_word_split singlecommand single_command singlelinezle single_line_zle
                                 \ sourcetrace source_trace stdin sunkeyboardhack sun_keyboard_hack
                                 \ trackall track_all transientrprompt transient_rprompt
-                                \ trapsasync trapasync typesetsilent type_set_silent unset verbose vi
+                                \ trapsasync traps_async typesetsilent type_set_silent typeset_silent unset verbose vi
                                 \ warncreateglobal warn_create_global xtrace zle
 
 syn keyword zshOptions          noaliases no_aliases noallexport no_allexport noall_export no_all_export noalwayslastprompt no_alwayslastprompt
-                                \ noalways_lastprompt no_always_lastprompt noalwaystoend no_alwaystoend noalways_to_end no_always_to_end
-                                \ noappendhistory no_appendhistory noappend_history no_append_history noautocd no_autocd noautocontinue no_autocontinue
-                                \ noauto_continue no_auto_continue noautolist no_autolist noauto_list no_auto_list
-                                \ noautomenu no_automenu noauto_menu no_auto_menu noautonamedirs no_autonamedirs noauto_name_dirs no_auto_name_dirs
-                                \ noautoparamkeys no_autoparamkeys noauto_param_keys no_auto_param_keys noautoparamslash no_autoparamslash
+                                \ noalways_lastprompt no_always_lastprompt no_always_last_prompt noalwaystoend no_alwaystoend noalways_to_end no_always_to_end
+                                \ noappendcreate no_appendcreate no_append_create noappendhistory no_appendhistory noappend_history no_append_history noautocd
+                                \ no_autocd no_auto_cd noautocontinue no_autocontinue noauto_continue no_auto_continue noautolist no_autolist noauto_list
+                                \ no_auto_list noautomenu no_automenu noauto_menu no_auto_menu noautonamedirs no_autonamedirs noauto_name_dirs
+                                \ no_auto_name_dirs noautoparamkeys no_autoparamkeys noauto_param_keys no_auto_param_keys noautoparamslash no_autoparamslash
                                 \ noauto_param_slash no_auto_param_slash noautopushd no_autopushd noauto_pushd no_auto_pushd noautoremoveslash no_autoremoveslash
-                                \ noauto_remove_slash no_auto_remove_slash noautoresume no_autoresume noauto_resume no_auto_resume nobadpattern no_badpattern
+                                \ noauto_remove_slash no_auto_remove_slash noautoresume no_autoresume noauto_resume no_auto_resume nobadpattern no_badpattern no_bad_pattern
                                 \ nobanghist no_banghist nobang_hist no_bang_hist nobareglobqual no_bareglobqual nobare_glob_qual no_bare_glob_qual
                                 \ nobashautolist no_bashautolist nobash_auto_list no_bash_auto_list nobashrematch no_bashrematch nobash_rematch no_bash_rematch
-                                \ nobeep no_beep nobgnice no_bgnice nobraceccl no_braceccl nobrace_ccl no_brace_ccl nobraceexpand no_braceexpand nobrace_expand no_brace_expand
+                                \ nobeep no_beep nobgnice no_bgnice no_bg_nice nobraceccl no_braceccl nobrace_ccl no_brace_ccl nobraceexpand no_braceexpand nobrace_expand no_brace_expand
                                 \ nobsdecho no_bsdecho nobsd_echo no_bsd_echo nocaseglob no_caseglob nocase_glob no_case_glob nocasematch no_casematch nocase_match no_case_match
-                                \ nocbases no_cbases nocdablevars no_cdablevars nocd_able_vars no_cd_able_vars nochasedots no_chasedots nochase_dots no_chase_dots
+                                \ nocbases no_cbases no_c_bases nocdablevars no_cdablevars no_cdable_vars nocd_able_vars no_cd_able_vars nochasedots no_chasedots nochase_dots no_chase_dots
                                 \ nochaselinks no_chaselinks nochase_links no_chase_links nocheckjobs no_checkjobs nocheck_jobs no_check_jobs
                                 \ noclobber no_clobber nocombiningchars no_combiningchars nocombining_chars no_combining_chars nocompletealiases no_completealiases
                                 \ nocomplete_aliases no_complete_aliases nocompleteinword no_completeinword nocomplete_in_word no_complete_in_word
@@ -224,14 +233,15 @@ syn keyword zshOptions          noaliase
                                 \ nocorrectall no_correctall nocorrect_all no_correct_all nocprecedences no_cprecedences noc_precedences no_c_precedences
                                 \ nocshjunkiehistory no_cshjunkiehistory nocsh_junkie_history no_csh_junkie_history nocshjunkieloops no_cshjunkieloops
                                 \ nocsh_junkie_loops no_csh_junkie_loops nocshjunkiequotes no_cshjunkiequotes nocsh_junkie_quotes no_csh_junkie_quotes
-                                \ nocshnullcmd no_cshnullcmd nocsh_null_cmd no_csh_null_cmd nocshnullglob no_cshnullglob nocsh_null_glob no_csh_null_glob
+                                \ nocshnullcmd no_cshnullcmd no_csh_nullcmd nocsh_null_cmd no_csh_null_cmd nocshnullglob no_cshnullglob nocsh_null_glob no_csh_null_glob
                                 \ nodebugbeforecmd no_debugbeforecmd nodebug_before_cmd no_debug_before_cmd nodotglob no_dotglob nodot_glob no_dot_glob nodvorak no_dvorak
                                 \ noemacs no_emacs noequals no_equals noerrexit no_errexit noerr_exit no_err_exit noerrreturn no_errreturn noerr_return no_err_return noevallineno no_evallineno
                                 \ noeval_lineno no_eval_lineno noexec no_exec noextendedglob no_extendedglob noextended_glob no_extended_glob noextendedhistory no_extendedhistory
                                 \ noextended_history no_extended_history noflowcontrol no_flowcontrol noflow_control no_flow_control noforcefloat no_forcefloat
-                                \ noforce_float no_force_float nofunctionargzero no_functionargzero nofunction_arg_zero no_function_arg_zero noglob no_glob noglobalexport no_globalexport
+                                \ noforce_float no_force_float nofunctionargzero no_functionargzero nofunction_arg_zero no_function_argzero no_function_arg_zero noglob no_glob noglobalexport no_globalexport
                                 \ noglobal_export no_global_export noglobalrcs no_globalrcs noglobal_rcs no_global_rcs noglobassign no_globassign noglob_assign no_glob_assign
-                                \ noglobcomplete no_globcomplete noglob_complete no_glob_complete noglobdots no_globdots noglob_dots no_glob_dots noglob_subst no_glob_subst
+                                \ noglobcomplete no_globcomplete noglob_complete no_glob_complete noglobdots no_globdots noglob_dots no_glob_dots
+                                \ noglobstarshort no_glob_star_short noglob_subst no_glob_subst
                                 \ noglobsubst no_globsubst nohashall no_hashall nohash_all no_hash_all nohashcmds no_hashcmds nohash_cmds no_hash_cmds nohashdirs no_hashdirs
                                 \ nohash_dirs no_hash_dirs nohashexecutablesonly no_hashexecutablesonly nohash_executables_only no_hash_executables_only nohashlistall no_hashlistall
                                 \ nohash_list_all no_hash_list_all nohistallowclobber no_histallowclobber nohist_allow_clobber no_hist_allow_clobber nohistappend no_histappend
@@ -262,7 +272,7 @@ syn keyword zshOptions          noaliase
                                 \ nonumeric_glob_sort no_numeric_glob_sort nooctalzeroes no_octalzeroes nooctal_zeroes no_octal_zeroes noonecmd no_onecmd noone_cmd no_one_cmd
                                 \ nooverstrike no_overstrike noover_strike no_over_strike nopathdirs no_pathdirs nopath_dirs no_path_dirs nopathscript no_pathscript
                                 \ nopath_script no_path_script nophysical no_physical nopipefail no_pipefail nopipe_fail no_pipe_fail noposixaliases no_posixaliases
-                                \ noposix_aliases no_posix_aliases noposixargzero no_posixargzero noposix_arg_zero no_posix_arg_zero noposixbuiltins no_posixbuiltins 
+                                \ noposix_aliases no_posix_aliases noposixargzero no_posixargzero no_posix_argzero noposix_arg_zero no_posix_arg_zero noposixbuiltins no_posixbuiltins 
                                 \ noposix_builtins no_posix_builtins noposixcd no_posixcd noposix_cd no_posix_cd noposixidentifiers no_posixidentifiers noposix_identifiers no_posix_identifiers
                                 \ noposixjobs no_posixjobs noposix_jobs no_posix_jobs noposixstrings no_posixstrings noposix_strings no_posix_strings noposixtraps no_posixtraps
                                 \ noposix_traps no_posix_traps noprinteightbit no_printeightbit noprint_eight_bit no_print_eight_bit noprintexitvalue no_printexitvalue
@@ -270,8 +280,8 @@ syn keyword zshOptions          noaliase
                                 \ noprompt_cr no_prompt_cr nopromptpercent no_promptpercent noprompt_percent no_prompt_percent nopromptsp no_promptsp noprompt_sp no_prompt_sp
                                 \ nopromptsubst no_promptsubst noprompt_subst no_prompt_subst nopromptvars no_promptvars noprompt_vars no_prompt_vars nopushdignoredups no_pushdignoredups
                                 \ nopushd_ignore_dups no_pushd_ignore_dups nopushdminus no_pushdminus nopushd_minus no_pushd_minus nopushdsilent no_pushdsilent nopushd_silent no_pushd_silent
-                                \ nopushdtohome no_pushdtohome nopushd_to_home no_pushd_to_home norcexpandparam no_rcexpandparam norc_expandparam no_rc_expandparam norcquotes no_rcquotes
-                                \ norc_quotes no_rc_quotes norcs no_rcs norecexact no_recexact norec_exact no_rec_exact norematchpcre no_rematchpcre nore_match_pcre no_re_match_pcre
+                                \ nopushdtohome no_pushdtohome nopushd_to_home no_pushd_to_home norcexpandparam no_rcexpandparam norc_expandparam no_rc_expandparam no_rc_expand_param norcquotes no_rcquotes
+                                \ norc_quotes no_rc_quotes norcs no_rcs norecexact no_recexact norec_exact no_rec_exact norematchpcre no_rematchpcre nore_match_pcre no_re_match_pcre no_rematch_pcre
                                 \ norestricted no_restricted normstarsilent no_rmstarsilent norm_star_silent no_rm_star_silent normstarwait no_rmstarwait norm_star_wait no_rm_star_wait
                                 \ nosharehistory no_sharehistory noshare_history no_share_history noshfileexpansion no_shfileexpansion nosh_file_expansion no_sh_file_expansion
                                 \ noshglob no_shglob nosh_glob no_sh_glob noshinstdin no_shinstdin noshin_stdin no_shin_stdin noshnullcmd no_shnullcmd nosh_nullcmd no_sh_nullcmd
@@ -279,11 +289,11 @@ syn keyword zshOptions          noaliase
                                 \ nosh_word_split no_sh_word_split nosinglecommand no_singlecommand nosingle_command no_single_command nosinglelinezle no_singlelinezle nosingle_line_zle no_single_line_zle
                                 \ nosourcetrace no_sourcetrace nosource_trace no_source_trace nostdin no_stdin nosunkeyboardhack no_sunkeyboardhack nosun_keyboard_hack no_sun_keyboard_hack
                                 \ notrackall no_trackall notrack_all no_track_all notransientrprompt no_transientrprompt notransient_rprompt no_transient_rprompt
-                                \ notrapsasync no_trapsasync notrapasync no_trapasync notypesetsilent no_typesetsilent notype_set_silent no_type_set_silent nounset no_unset noverbose no_verbose novi no_vi
-                                \ nowarncreateglobal no_warncreateglobal nowarn_create_global no_warn_create_global noxtrace no_xtrace nozle no_zle
+                                \ notrapsasync no_trapsasync notrapasync no_trapasync no_traps_async notypesetsilent no_typesetsilent notype_set_silent no_type_set_silent no_typeset_silent \nounset no_unset
+                                \ noverbose no_verbose novi no_vi nowarncreateglobal no_warncreateglobal nowarn_create_global no_warn_create_global noxtrace no_xtrace nozle no_zle
 syn case match
 
-syn keyword zshTypes            float integer local typeset declare
+syn keyword zshTypes            float integer local typeset declare private
 
 " XXX: this may be too much
 " syn match   zshSwitches         '\s\zs--\=[a-zA-Z0-9-]\+'
@@ -303,7 +313,7 @@ syn region  zshMathSubst        matchgro
                                 \ start='\$((' skip='\\)'
                                 \ matchgroup=zshSubstDelim end='))'
                                 \ contains=zshParentheses,@zshSubst,zshNumber,
-                                \ @zshDerefs,zshString
+                                \ @zshDerefs,zshString keepend
 syn region  zshBrackets         contained transparent start='{' skip='\\}'
                                 \ end='}'
 syn region  zshSubst            matchgroup=zshSubstDelim start='\${' skip='\\}'