Updated runtime files.

This commit is contained in:
Bram Moolenaar
2015-11-10 21:15:48 +01:00
parent 1c2836e268
commit b4ff518d95
14 changed files with 318 additions and 266 deletions

View File

@ -1,4 +1,4 @@
*diff.txt* For Vim version 7.4. Last change: 2015 Jul 03 *diff.txt* For Vim version 7.4. Last change: 2015 Nov 01
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -182,8 +182,8 @@ hidden buffers. You can use ":hide" to close a window without unloading the
buffer. If you don't want a buffer to remain used for the diff do ":set buffer. If you don't want a buffer to remain used for the diff do ":set
nodiff" before hiding it. nodiff" before hiding it.
*:diffu* *:diffupdate* *:dif* *:diffupdate*
:diffu[pdate][!] Update the diff highlighting and folds. :dif[fupdate][!] Update the diff highlighting and folds.
Vim attempts to keep the differences updated when you make changes to the Vim attempts to keep the differences updated when you make changes to the
text. This mostly takes care of inserted and deleted lines. Changes within a text. This mostly takes care of inserted and deleted lines. Changes within a

View File

@ -1,4 +1,4 @@
*if_pyth.txt* For Vim version 7.4. Last change: 2015 Oct 16 *if_pyth.txt* For Vim version 7.4. Last change: 2015 Nov 10
VIM REFERENCE MANUAL by Paul Moore VIM REFERENCE MANUAL by Paul Moore
@ -693,7 +693,7 @@ The name of the DLL must match the Python version Vim was compiled with.
Currently the name is "python24.dll". That is for Python 2.4. To know for Currently the name is "python24.dll". That is for Python 2.4. To know for
sure edit "gvim.exe" and search for "python\d*.dll\c". sure edit "gvim.exe" and search for "python\d*.dll\c".
On Unix the 'pythondll' or 'python3dll' option can be used to specify the On Unix the 'pythondll' or 'pythonthreedll' option can be used to specify the
Python shared library file instead of DYNAMIC_PYTHON_DLL or Python shared library file instead of DYNAMIC_PYTHON_DLL or
DYNAMIC_PYTHON3_DLL file what were specified at compile time. The version of DYNAMIC_PYTHON3_DLL file what were specified at compile time. The version of
the shared library must match the Python 2.x or Python 3 version Vim was the shared library must match the Python 2.x or Python 3 version Vim was

View File

@ -1,4 +1,4 @@
*options.txt* For Vim version 7.4. Last change: 2015 Nov 01 *options.txt* For Vim version 7.4. Last change: 2015 Nov 10
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -5698,17 +5698,6 @@ A jump table for the options with a short description can be found at |Q_op|.
Insert mode completion. When zero as much space as available is used. Insert mode completion. When zero as much space as available is used.
|ins-completion-menu|. |ins-completion-menu|.
*'pythonthreedll'*
'pythonthreedll' string (default empty)
global
{not in Vi} {only for Unix}
{only available when compiled with the |+python3/dyn|
feature}
Specifies the path of the Python 3 shared library instead of
DYNAMIC_PYTHON3_DLL what was specified at compile time.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'pythondll'* *'pythondll'*
'pythondll' string (default empty) 'pythondll' string (default empty)
global global
@ -5718,6 +5707,17 @@ A jump table for the options with a short description can be found at |Q_op|.
Specifies the path of the Python 2.x shared library instead of Specifies the path of the Python 2.x shared library instead of
DYNAMIC_PYTHON_DLL what was specified at compile time. DYNAMIC_PYTHON_DLL what was specified at compile time.
This option cannot be set from a |modeline| or in the |sandbox|, for This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'pythonthreedll'*
'pythonthreedll' string (default empty)
global
{not in Vi} {only for Unix}
{only available when compiled with the |+python3/dyn|
feature}
Specifies the path of the Python 3 shared library instead of
DYNAMIC_PYTHON3_DLL what was specified at compile time.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons. security reasons.
*'quoteescape'* *'qe'* *'quoteescape'* *'qe'*

View File

@ -1,4 +1,4 @@
*quickref.txt* For Vim version 7.4. Last change: 2015 Jul 21 *quickref.txt* For Vim version 7.4. Last change: 2015 Nov 10
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -777,6 +777,7 @@ Short explanation of each option: *option-list*
'list' show <Tab> and <EOL> 'list' show <Tab> and <EOL>
'listchars' 'lcs' characters for displaying in list mode 'listchars' 'lcs' characters for displaying in list mode
'loadplugins' 'lpl' load plugin scripts when starting up 'loadplugins' 'lpl' load plugin scripts when starting up
'luadll' name of the Lua dynamic library
'macatsui' Mac GUI: use ATSUI text drawing 'macatsui' Mac GUI: use ATSUI text drawing
'magic' changes special characters in search patterns 'magic' changes special characters in search patterns
'makeef' 'mef' name of the errorfile for ":make" 'makeef' 'mef' name of the errorfile for ":make"
@ -816,6 +817,7 @@ Short explanation of each option: *option-list*
'patchexpr' 'pex' expression used to patch a file 'patchexpr' 'pex' expression used to patch a file
'patchmode' 'pm' keep the oldest version of a file 'patchmode' 'pm' keep the oldest version of a file
'path' 'pa' list of directories searched with "gf" et.al. 'path' 'pa' list of directories searched with "gf" et.al.
'perldll' name of the Perl dynamic library
'preserveindent' 'pi' preserve the indent structure when reindenting 'preserveindent' 'pi' preserve the indent structure when reindenting
'previewheight' 'pvh' height of the preview window 'previewheight' 'pvh' height of the preview window
'previewwindow' 'pvw' identifies the preview window 'previewwindow' 'pvw' identifies the preview window
@ -828,6 +830,8 @@ Short explanation of each option: *option-list*
'printmbfont' 'pmbfn' font names to be used for CJK output of :hardcopy 'printmbfont' 'pmbfn' font names to be used for CJK output of :hardcopy
'printoptions' 'popt' controls the format of :hardcopy output 'printoptions' 'popt' controls the format of :hardcopy output
'pumheight' 'ph' maximum height of the popup menu 'pumheight' 'ph' maximum height of the popup menu
'pythondll' name of the Python 2 dynamic library
'pythonthreedll' name of the Python 3 dynamic library
'quoteescape' 'qe' escape characters used in a string 'quoteescape' 'qe' escape characters used in a string
'readonly' 'ro' disallow writing the buffer 'readonly' 'ro' disallow writing the buffer
'redrawtime' 'rdt' timeout for 'hlsearch' and |:match| highlighting 'redrawtime' 'rdt' timeout for 'hlsearch' and |:match| highlighting
@ -840,6 +844,7 @@ Short explanation of each option: *option-list*
'revins' 'ri' inserting characters will work backwards 'revins' 'ri' inserting characters will work backwards
'rightleft' 'rl' window is right-to-left oriented 'rightleft' 'rl' window is right-to-left oriented
'rightleftcmd' 'rlc' commands for which editing works right-to-left 'rightleftcmd' 'rlc' commands for which editing works right-to-left
'rubydll' name of the Ruby dynamic library
'ruler' 'ru' show cursor line and column in the status line 'ruler' 'ru' show cursor line and column in the status line
'rulerformat' 'ruf' custom format for the ruler 'rulerformat' 'ruf' custom format for the ruler
'runtimepath' 'rtp' list of directories used for runtime files 'runtimepath' 'rtp' list of directories used for runtime files

View File

@ -1,4 +1,4 @@
*syntax.txt* For Vim version 7.4. Last change: 2015 Oct 17 *syntax.txt* For Vim version 7.4. Last change: 2015 Nov 05
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -1082,6 +1082,7 @@ Most of things are same as |ft-c-syntax|.
Variable Highlight ~ Variable Highlight ~
cpp_no_cpp11 don't highlight C++11 standard items cpp_no_cpp11 don't highlight C++11 standard items
cpp_no_cpp14 don't highlight C++14 standard items
CSH *csh.vim* *ft-csh-syntax* CSH *csh.vim* *ft-csh-syntax*
@ -4165,7 +4166,7 @@ example, for instance, can be done like this: >
As can be seen here, the \z actually does double duty. In the start pattern, As can be seen here, the \z actually does double duty. In the start pattern,
it marks the "\(\I\i*\)" sub-expression as external; in the end pattern, it it marks the "\(\I\i*\)" sub-expression as external; in the end pattern, it
changes the \1 back-reference into an external reference referring to the changes the \z1 back-reference into an external reference referring to the
first external sub-expression in the start pattern. External references can first external sub-expression in the start pattern. External references can
also be used in skip patterns: > also be used in skip patterns: >
:syn region foo start="start \(\I\i*\)" skip="not end \z1" end="end \z1" :syn region foo start="start \(\I\i*\)" skip="not end \z1" end="end \z1"

View File

@ -415,6 +415,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'lpl' options.txt /*'lpl'* 'lpl' options.txt /*'lpl'*
'ls' options.txt /*'ls'* 'ls' options.txt /*'ls'*
'lsp' options.txt /*'lsp'* 'lsp' options.txt /*'lsp'*
'luadll' options.txt /*'luadll'*
'lw' options.txt /*'lw'* 'lw' options.txt /*'lw'*
'lz' options.txt /*'lz'* 'lz' options.txt /*'lz'*
'ma' options.txt /*'ma'* 'ma' options.txt /*'ma'*
@ -499,6 +500,8 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'nobk' options.txt /*'nobk'* 'nobk' options.txt /*'nobk'*
'nobl' options.txt /*'nobl'* 'nobl' options.txt /*'nobl'*
'nobomb' options.txt /*'nobomb'* 'nobomb' options.txt /*'nobomb'*
'nobreakindent' options.txt /*'nobreakindent'*
'nobri' options.txt /*'nobri'*
'nobuflisted' options.txt /*'nobuflisted'* 'nobuflisted' options.txt /*'nobuflisted'*
'nocf' options.txt /*'nocf'* 'nocf' options.txt /*'nocf'*
'noci' options.txt /*'noci'* 'noci' options.txt /*'noci'*
@ -549,6 +552,8 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'nofk' options.txt /*'nofk'* 'nofk' options.txt /*'nofk'*
'nofkmap' options.txt /*'nofkmap'* 'nofkmap' options.txt /*'nofkmap'*
'nofoldenable' options.txt /*'nofoldenable'* 'nofoldenable' options.txt /*'nofoldenable'*
'nofs' options.txt /*'nofs'*
'nofsync' options.txt /*'nofsync'*
'nogd' options.txt /*'nogd'* 'nogd' options.txt /*'nogd'*
'nogdefault' options.txt /*'nogdefault'* 'nogdefault' options.txt /*'nogdefault'*
'noguipty' options.txt /*'noguipty'* 'noguipty' options.txt /*'noguipty'*
@ -575,11 +580,13 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'nois' options.txt /*'nois'* 'nois' options.txt /*'nois'*
'nojoinspaces' options.txt /*'nojoinspaces'* 'nojoinspaces' options.txt /*'nojoinspaces'*
'nojs' options.txt /*'nojs'* 'nojs' options.txt /*'nojs'*
'nolangnoremap' options.txt /*'nolangnoremap'*
'nolazyredraw' options.txt /*'nolazyredraw'* 'nolazyredraw' options.txt /*'nolazyredraw'*
'nolbr' options.txt /*'nolbr'* 'nolbr' options.txt /*'nolbr'*
'nolinebreak' options.txt /*'nolinebreak'* 'nolinebreak' options.txt /*'nolinebreak'*
'nolisp' options.txt /*'nolisp'* 'nolisp' options.txt /*'nolisp'*
'nolist' options.txt /*'nolist'* 'nolist' options.txt /*'nolist'*
'nolnr' options.txt /*'nolnr'*
'noloadplugins' options.txt /*'noloadplugins'* 'noloadplugins' options.txt /*'noloadplugins'*
'nolpl' options.txt /*'nolpl'* 'nolpl' options.txt /*'nolpl'*
'nolz' options.txt /*'nolz'* 'nolz' options.txt /*'nolz'*
@ -727,6 +734,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'path' options.txt /*'path'* 'path' options.txt /*'path'*
'pdev' options.txt /*'pdev'* 'pdev' options.txt /*'pdev'*
'penc' options.txt /*'penc'* 'penc' options.txt /*'penc'*
'perldll' options.txt /*'perldll'*
'pex' options.txt /*'pex'* 'pex' options.txt /*'pex'*
'pexpr' options.txt /*'pexpr'* 'pexpr' options.txt /*'pexpr'*
'pfn' options.txt /*'pfn'* 'pfn' options.txt /*'pfn'*
@ -753,6 +761,8 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'pumheight' options.txt /*'pumheight'* 'pumheight' options.txt /*'pumheight'*
'pvh' options.txt /*'pvh'* 'pvh' options.txt /*'pvh'*
'pvw' options.txt /*'pvw'* 'pvw' options.txt /*'pvw'*
'pythondll' options.txt /*'pythondll'*
'pythonthreedll' options.txt /*'pythonthreedll'*
'qe' options.txt /*'qe'* 'qe' options.txt /*'qe'*
'quote motion.txt /*'quote* 'quote motion.txt /*'quote*
'quoteescape' options.txt /*'quoteescape'* 'quoteescape' options.txt /*'quoteescape'*
@ -779,6 +789,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'rs' options.txt /*'rs'* 'rs' options.txt /*'rs'*
'rtp' options.txt /*'rtp'* 'rtp' options.txt /*'rtp'*
'ru' options.txt /*'ru'* 'ru' options.txt /*'ru'*
'rubydll' options.txt /*'rubydll'*
'ruf' options.txt /*'ruf'* 'ruf' options.txt /*'ruf'*
'ruler' options.txt /*'ruler'* 'ruler' options.txt /*'ruler'*
'rulerformat' options.txt /*'rulerformat'* 'rulerformat' options.txt /*'rulerformat'*
@ -2132,6 +2143,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:delm motion.txt /*:delm* :delm motion.txt /*:delm*
:delmarks motion.txt /*:delmarks* :delmarks motion.txt /*:delmarks*
:di change.txt /*:di* :di change.txt /*:di*
:dif diff.txt /*:dif*
:diffg diff.txt /*:diffg* :diffg diff.txt /*:diffg*
:diffget diff.txt /*:diffget* :diffget diff.txt /*:diffget*
:diffo diff.txt /*:diffo* :diffo diff.txt /*:diffo*
@ -2144,7 +2156,6 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:diffsplit diff.txt /*:diffsplit* :diffsplit diff.txt /*:diffsplit*
:difft diff.txt /*:difft* :difft diff.txt /*:difft*
:diffthis diff.txt /*:diffthis* :diffthis diff.txt /*:diffthis*
:diffu diff.txt /*:diffu*
:diffupdate diff.txt /*:diffupdate* :diffupdate diff.txt /*:diffupdate*
:dig digraph.txt /*:dig* :dig digraph.txt /*:dig*
:digraphs digraph.txt /*:digraphs* :digraphs digraph.txt /*:digraphs*
@ -6867,6 +6878,7 @@ lua if_lua.txt /*lua*
lua-buffer if_lua.txt /*lua-buffer* lua-buffer if_lua.txt /*lua-buffer*
lua-commands if_lua.txt /*lua-commands* lua-commands if_lua.txt /*lua-commands*
lua-dict if_lua.txt /*lua-dict* lua-dict if_lua.txt /*lua-dict*
lua-dynamic if_lua.txt /*lua-dynamic*
lua-eval if_lua.txt /*lua-eval* lua-eval if_lua.txt /*lua-eval*
lua-funcref if_lua.txt /*lua-funcref* lua-funcref if_lua.txt /*lua-funcref*
lua-list if_lua.txt /*lua-list* lua-list if_lua.txt /*lua-list*

View File

@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.4. Last change: 2015 Oct 31 *todo.txt* For Vim version 7.4. Last change: 2015 Nov 10
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -35,6 +35,8 @@ not be repeated below, unless there is extra information.
-------------------- Known bugs and current work ----------------------- -------------------- Known bugs and current work -----------------------
Regexp problems: Regexp problems:
- Instructions for reproducing issue #465 (crash in nfa_regtry):
https://github.com/mgedmin/vim-bug-465
- The regexp engines are not reentrant, causing havoc when interrupted by a - The regexp engines are not reentrant, causing havoc when interrupted by a
remote expression or something else. Move global variables onto the stack remote expression or something else. Move global variables onto the stack
or into an allocated struct. or into an allocated struct.
@ -75,6 +77,12 @@ Regexp problems:
- The pattern "\1" with the old engine gives E65, with the new engine it - The pattern "\1" with the old engine gives E65, with the new engine it
matches the empty string. (Dominique Pelle, 2015 Oct 2) matches the empty string. (Dominique Pelle, 2015 Oct 2)
runtime/optwin.vim missing options:
rubydll
pythondll
perldll
luadll
Still using freed memory after using setloclist(). (lcd, 2014 Jul 23) Still using freed memory after using setloclist(). (lcd, 2014 Jul 23)
More info Jul 24. Not clear why. More info Jul 24. Not clear why.
@ -83,6 +91,20 @@ work. (ZyX, 2013 Sep 28)
Problem using ":try" inside ":execute". (ZyX, 2013 Sep 15) Problem using ":try" inside ":execute". (ZyX, 2013 Sep 15)
When running out of memory, lalloc() invokes the garbage collector.
May cause freeing used memory. Just remove that call?
Or add flag to avoid it when undesired.
Installation of .desktop files does not work everywhere.
It's now fixed, but the target directory probably isn't right.
Add configure check?
Should use /usr/local/share/applications or /usr/share/applications.
Or use $XDG_DATA_DIRS.
Also need to run update-desktop-database (Kuriyama Kazunobu, 2015 Nov 4)
Access to uninitialized memory in match_backref() regexp_nda.c:4882
(Dominique Pelle, 2015 Nov 6)
Netrw update. (Charles 2015 Oct 23) Netrw update. (Charles 2015 Oct 23)
Patch to use local value of 'errorformat' in :cexpr. (Christian Brabandt, Patch to use local value of 'errorformat' in :cexpr. (Christian Brabandt,
@ -96,8 +118,6 @@ directory exists. (Sergio Gallelli, 2013 Dec 29)
Updated syntax files. (Charles Campbell, 2015 Oct 19) Updated syntax files. (Charles Campbell, 2015 Oct 19)
Patch to include .desktop files in the distribution. PR #455.
Better changelog syntax file. (Martin Florian, 2015 Oct 25) Better changelog syntax file. (Martin Florian, 2015 Oct 25)
Better readline syntax file. (Raphael Bazaud, 2015 Oct 25) Better readline syntax file. (Raphael Bazaud, 2015 Oct 25)
@ -112,19 +132,10 @@ changes the window layout and the current window. Make a variant that saves
and restores. Use in the matchparen plugin. and restores. Use in the matchparen plugin.
Perhaps we can use ":silent window"? Perhaps we can use ":silent window"?
Patch for documentation mistakes. (Hirohito Higashi, 2015 Oct 22)
Illegal memory access, requires ASAN to see. (Dominique Pelle, 2015 Jul 28) Illegal memory access, requires ASAN to see. (Dominique Pelle, 2015 Jul 28)
Gvim: when both Tab and CTRL-I are mapped, use CTRL-I not for Tab. Gvim: when both Tab and CTRL-I are mapped, use CTRL-I not for Tab.
Patch for yaml indent, #458.
Patch for Python to add isatty, readable, etc. (PR #464)
Patch to add options for specifying dll names. (Kazuki Sakamoto, 2015 Oct 16)
PR #452 Check if it's secure (can't set from modeline).
Unexpected delay when using CTRL-O u. It's not timeoutlen. Unexpected delay when using CTRL-O u. It's not timeoutlen.
(Gary Johnson, 2015 Aug 28) (Gary Johnson, 2015 Aug 28)
@ -133,9 +144,23 @@ Same for src/xxd/Make_cyg.mak
Python: ":py raw_input('prompt')" doesn't work. (Manu Hack) Python: ":py raw_input('prompt')" doesn't work. (Manu Hack)
Patch to fix memory leak. (Dominique Pelle, 2015 Nov 4)
Using uninitialized memory. (Dominique Pelle, 2015 Nov 4)
Patch to recognize string slice for variable followed by colon.
(Hirohito Higashi, 2015 Nov 3)
Patch to support hangul input with utf-8.
Patch to support UTF-8 for Hangul. (Shawn Y.H. Kim, 2011 May 1)
Needs more work. Pinged 2012 Jan 4.
Patch to add debug backtrace. (Alberto Fanjul, 2015 Sep 27) Patch to add debug backtrace. (Alberto Fanjul, 2015 Sep 27)
Asked for :frame command. Asked for :frame command.
vt52 terminal codes are not correct. Patch from Random, 2015 Nov 5.
MS-Windows: When editing a file with a leading space, writing it uses the MS-Windows: When editing a file with a leading space, writing it uses the
wrong name. (Aram, 2014 Nov 7) Vim 7.4. wrong name. (Aram, 2014 Nov 7) Vim 7.4.
@ -143,7 +168,7 @@ Can't recognize the $ProgramFiles(x86) environment variable. Recognize it
specifically? First try with the parens, then without. specifically? First try with the parens, then without.
Patch to add 'tagcase' option, whether to ignore case for tags. Patch to add 'tagcase' option, whether to ignore case for tags.
(Gary Johnson, 2015 Oct 17) (Gary Johnson, 2015 Nov 6)
Patch to fix "." after CTRL-A in Visual block mode. (Ozaki Kiichi, 2015 Oct Patch to fix "." after CTRL-A in Visual block mode. (Ozaki Kiichi, 2015 Oct
24) 24)
@ -196,6 +221,8 @@ Example in editing.txt uses $HOME with the expectating that it ends in a
slash. For me it does, but perhaps not for everybody. Add a function that slash. For me it does, but perhaps not for everybody. Add a function that
inserts a slash when needed? pathconcat(dir, path) (Thilo Six, 2015 Aug 12) inserts a slash when needed? pathconcat(dir, path) (Thilo Six, 2015 Aug 12)
Patch to load TCL dynamically. (Ken Takata, 2015 Nov 10)
ml_updatechunk() is slow when retrying for another encoding. (John Little, ml_updatechunk() is slow when retrying for another encoding. (John Little,
2014 Sep 11) 2014 Sep 11)
@ -222,9 +249,6 @@ Is this right?
Patch to have CTRL-A and CTRL-X update the '[ and '] marks. Patch to have CTRL-A and CTRL-X update the '[ and '] marks.
(Yukihiro Nakadaira, 2015 Aug 23) (Yukihiro Nakadaira, 2015 Aug 23)
On MS-Windows viminfo file is always given the hidden attribute? (raulnac,
2015 Oct 30)
Patch to make getregtype() return the right size for non-linux systems. Patch to make getregtype() return the right size for non-linux systems.
(Yasuhiro Matsumoto, 2014 Jul 8) (Yasuhiro Matsumoto, 2014 Jul 8)
Breaks test_eval. Inefficient, can we only compute y_width when needed? Breaks test_eval. Inefficient, can we only compute y_width when needed?
@ -409,8 +433,6 @@ from?
Problem with upwards search on Windows (works OK on Linux). (Brett Stahlman, Problem with upwards search on Windows (works OK on Linux). (Brett Stahlman,
2014 Jun 8) 2014 Jun 8)
Patch to load TCL dynamically. (Ken Takata, 2014 Sep 20)
Include a plugin manager with Vim? Neobundle seems to be the best currently. Include a plugin manager with Vim? Neobundle seems to be the best currently.
Long message about this from ZyX, 2014 Mar 23. And following replies. 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 Also see http://vim-wiki.mawercer.de/wiki/topic/vim%20plugin%20managment.html
@ -803,9 +825,6 @@ Only for MS-Windows. No documentation. Do we want this?
Patch to support cursor shape in Cygwin console. (Ben bgold, 2011 Dec 27) Patch to support cursor shape in Cygwin console. (Ben bgold, 2011 Dec 27)
Patch to support UTF-8 for Hangul. (Shawn Y.H. Kim, 2011 May 1)
Needs more work. Pinged 2012 Jan 4.
Issue 64: when 'incsearch' is on can't paste LF on command line. Issue 64: when 'incsearch' is on can't paste LF on command line.
On MS-Windows a temp dir with a & init causes system() to fail. (Ben Fritz, On MS-Windows a temp dir with a & init causes system() to fail. (Ben Fritz,

View File

@ -1,4 +1,4 @@
*vi_diff.txt* For Vim version 7.4. Last change: 2013 Aug 22 *vi_diff.txt* For Vim version 7.4. Last change: 2015 Nov 01
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar

View File

@ -1,7 +1,7 @@
" Vim indent file " Vim indent file
" Language: YAML " Language: YAML
" Maintainer: Nikolai Pavlov <zyx.vim@gmail.com> " Maintainer: Nikolai Pavlov <zyx.vim@gmail.com>
" Last Change: 2015 Sep 25 " Last Change: 2015 Nov 01
" Only load this indent file when no other was loaded. " Only load this indent file when no other was loaded.
if exists('b:did_indent') if exists('b:did_indent')
@ -14,7 +14,7 @@ set cpo&vim
let b:did_indent = 1 let b:did_indent = 1
setlocal indentexpr=GetYAMLIndent(v:lnum) setlocal indentexpr=GetYAMLIndent(v:lnum)
setlocal indentkeys=!^F,o,O,0#,0},0],<:>,- setlocal indentkeys=!^F,o,O,0#,0},0],<:>,0-
setlocal nosmartindent setlocal nosmartindent
let b:undo_indent = 'setlocal indentexpr< indentkeys< smartindent<' let b:undo_indent = 'setlocal indentexpr< indentkeys< smartindent<'

View File

@ -2,7 +2,7 @@
" Language: C++ " Language: C++
" Current Maintainer: vim-jp (https://github.com/vim-jp/vim-cpp) " Current Maintainer: vim-jp (https://github.com/vim-jp/vim-cpp)
" Previous Maintainer: Ken Shan <ccshan@post.harvard.edu> " Previous Maintainer: Ken Shan <ccshan@post.harvard.edu>
" Last Change: 2015 May 04 " Last Change: 2015 Nov 10
" For version 5.x: Clear all syntax items " For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded " For version 6.x: Quit when a syntax file was already loaded
@ -23,7 +23,8 @@ endif
" C++ extensions " C++ extensions
syn keyword cppStatement new delete this friend using syn keyword cppStatement new delete this friend using
syn keyword cppAccess public protected private syn keyword cppAccess public protected private
syn keyword cppType inline virtual explicit export bool wchar_t syn keyword cppModifier inline virtual explicit export
syn keyword cppType bool wchar_t
syn keyword cppExceptions throw try catch syn keyword cppExceptions throw try catch
syn keyword cppOperator operator typeid syn keyword cppOperator operator typeid
syn keyword cppOperator and bitor or xor compl bitand and_eq or_eq xor_eq not not_eq syn keyword cppOperator and bitor or xor compl bitand and_eq or_eq xor_eq not not_eq
@ -36,7 +37,8 @@ syn keyword cppConstant __cplusplus
" C++ 11 extensions " C++ 11 extensions
if !exists("cpp_no_cpp11") if !exists("cpp_no_cpp11")
syn keyword cppType override final syn keyword cppModifier override final
syn keyword cppType nullptr_t
syn keyword cppExceptions noexcept syn keyword cppExceptions noexcept
syn keyword cppStorageClass constexpr decltype thread_local syn keyword cppStorageClass constexpr decltype thread_local
syn keyword cppConstant nullptr syn keyword cppConstant nullptr
@ -49,6 +51,11 @@ if !exists("cpp_no_cpp11")
syn region cppRawString matchgroup=cppRawStringDelimiter start=+\%(u8\|[uLU]\)\=R"\z([[:alnum:]_{}[\]#<>%:;.?*\+\-/\^&|~!=,"']\{,16}\)(+ end=+)\z1"+ contains=@Spell syn region cppRawString matchgroup=cppRawStringDelimiter start=+\%(u8\|[uLU]\)\=R"\z([[:alnum:]_{}[\]#<>%:;.?*\+\-/\^&|~!=,"']\{,16}\)(+ end=+)\z1"+ contains=@Spell
endif endif
" C++ 14 extensions
if !exists("cpp_no_cpp14")
syn match cppNumber display "\<0b[01]\+\(u\=l\{0,2}\|ll\=u\)\>"
endif
" The minimum and maximum operators in GNU C++ " The minimum and maximum operators in GNU C++
syn match cppMinMax "[<>]?" syn match cppMinMax "[<>]?"
@ -65,6 +72,7 @@ if version >= 508 || !exists("did_cpp_syntax_inits")
HiLink cppExceptions Exception HiLink cppExceptions Exception
HiLink cppOperator Operator HiLink cppOperator Operator
HiLink cppStatement Statement HiLink cppStatement Statement
HiLink cppModifier Type
HiLink cppType Type HiLink cppType Type
HiLink cppStorageClass StorageClass HiLink cppStorageClass StorageClass
HiLink cppStructure Structure HiLink cppStructure Structure

View File

@ -1,13 +1,17 @@
" Vim syntax file " Vim syntax file
" Language: Remind " Language: Remind
" Maintainer: Davide Alberani <alberanid@libero.it> " Maintainer: Davide Alberani <da@erlug.linux.it>
" Last Change: 18 Sep 2009 " Last Change: 02 Nov 2015
" Version: 0.5 " Version: 0.7
" URL: http://erlug.linux.it/~da/vim/syntax/remind.vim " URL: http://ismito.it/vim/syntax/remind.vim
" "
" remind is a sophisticated reminder service " Remind is a sophisticated calendar and alarm program.
" you can download remind from: " You can download remind from:
" http://www.roaringpenguin.com/penguin/open_source_remind.php " https://www.roaringpenguin.com/products/remind
"
" Changelog
" version 0.7: updated email and link
" version 0.6: added THROUGH keyword (courtesy of Ben Orchard)
if version < 600 if version < 600
syntax clear syntax clear
@ -19,7 +23,7 @@ endif
syn case ignore syn case ignore
syn keyword remindCommands REM OMIT SET FSET UNSET syn keyword remindCommands REM OMIT SET FSET UNSET
syn keyword remindExpiry UNTIL FROM SCANFROM SCAN WARN SCHED syn keyword remindExpiry UNTIL FROM SCANFROM SCAN WARN SCHED THROUGH
syn keyword remindTag PRIORITY TAG syn keyword remindTag PRIORITY TAG
syn keyword remindTimed AT DURATION syn keyword remindTimed AT DURATION
syn keyword remindMove ONCE SKIP BEFORE AFTER syn keyword remindMove ONCE SKIP BEFORE AFTER

View File

@ -2,11 +2,11 @@
" Language: shell (sh) Korn shell (ksh) bash (sh) " Language: shell (sh) Korn shell (ksh) bash (sh)
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz> " Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int> " Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int>
" Last Change: Oct 09, 2015 " Last Change: Oct 21, 2015
" Version: 139 " Version: 141
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH " URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH
" For options and settings, please use: :help ft-sh-syntax " For options and settings, please use: :help ft-sh-syntax
" This file includes many ideas from ?ric Brunet (eric.brunet@ens.fr) " This file includes many ideas from Eric Brunet (eric.brunet@ens.fr)
" For version 5.x: Clear all syntax items {{{1 " For version 5.x: Clear all syntax items {{{1
" For version 6.x: Quit when a syntax file was already loaded " For version 6.x: Quit when a syntax file was already loaded
@ -16,17 +16,6 @@ elseif exists("b:current_syntax")
finish finish
endif endif
" AFAICT "." should be considered part of the iskeyword for ksh. Using iskeywords
" in syntax is dicey, so the following code permits the user to prevent/override
" g:sh_isk set to a string : specify iskeyword.
" g:sh_noisk exists : don't change iskeyword
" g:sh_noisk does not exist : (default) append "." to iskeyword for kornshell
if exists("g:sh_isk") && type(g:sh_isk) == 1 " user specifying iskeyword
exe "setl isk=".g:sh_isk
elseif !exists("g:sh_noisk") && exists("b:is_kornshell") " append '.' to iskeyword
setl isk+=.
endif
" trying to answer the question: which shell is /bin/sh, really? " trying to answer the question: which shell is /bin/sh, really?
" If the user has not specified any of g:is_kornshell, g:is_bash, g:is_posix, g:is_sh, then guess. " If the user has not specified any of g:is_kornshell, g:is_bash, g:is_posix, g:is_sh, then guess.
if !exists("g:is_kornshell") && !exists("g:is_bash") && !exists("g:is_posix") && !exists("g:is_sh") if !exists("g:is_kornshell") && !exists("g:is_bash") && !exists("g:is_posix") && !exists("g:is_sh")
@ -73,6 +62,7 @@ if !exists("b:is_kornshell") && !exists("b:is_bash")
endif endif
" set up default g:sh_fold_enabled {{{1 " set up default g:sh_fold_enabled {{{1
" ================================
if !exists("g:sh_fold_enabled") if !exists("g:sh_fold_enabled")
let g:sh_fold_enabled= 0 let g:sh_fold_enabled= 0
elseif g:sh_fold_enabled != 0 && !has("folding") elseif g:sh_fold_enabled != 0 && !has("folding")
@ -95,6 +85,24 @@ if g:sh_fold_enabled && &fdm == "manual"
setl fdm=syntax setl fdm=syntax
endif endif
" Set up folding commands for shell {{{1
" =================================
if s:sh_fold_functions
com! -nargs=* ShFoldFunctions <args> fold
else
com! -nargs=* ShFoldFunctions <args>
endif
if s:sh_fold_heredoc
com! -nargs=* ShFoldHereDoc <args> fold
else
com! -nargs=* ShFoldHereDoc <args>
endif
if s:sh_fold_ifdofor
com! -nargs=* ShFoldIfDoFor <args> fold
else
com! -nargs=* ShFoldIfDoFor <args>
endif
" sh syntax is case sensitive {{{1 " sh syntax is case sensitive {{{1
syn case match syn case match
@ -126,9 +134,10 @@ syn cluster shHereList contains=shBeginHere,shHerePayload
syn cluster shHereListDQ contains=shBeginHere,@shDblQuoteList,shHerePayload syn cluster shHereListDQ contains=shBeginHere,@shDblQuoteList,shHerePayload
syn cluster shIdList contains=shCommandSub,shWrapLineOperator,shSetOption,shDeref,shDerefSimple,shRedir,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shCtrlSeq,shStringSpecial,shAtExpr syn cluster shIdList contains=shCommandSub,shWrapLineOperator,shSetOption,shDeref,shDerefSimple,shRedir,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shCtrlSeq,shStringSpecial,shAtExpr
syn cluster shIfList contains=@shLoopList,shDblBrace,shDblParen,shFunctionKey,shFunctionOne,shFunctionTwo syn cluster shIfList contains=@shLoopList,shDblBrace,shDblParen,shFunctionKey,shFunctionOne,shFunctionTwo
syn cluster shLoopList contains=@shCaseList,@shErrorList,shCaseEsac,shConditional,shDblBrace,shExpr,shFor,shForPP,shIf,shOption,shSet,shTest,shTestOpr syn cluster shLoopList contains=@shCaseList,@shErrorList,shCaseEsac,shConditional,shDblBrace,shExpr,shFor,shForPP,shIf,shOption,shSet,shTest,shTestOpr,shTouch
syn cluster shSubShList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shIf,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq,shOperator syn cluster shSubShList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shIf,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq,shOperator
syn cluster shTestList contains=shCharClass,shCommandSub,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shExDoubleQuote,shExpr,shExSingleQuote,shNumber,shOperator,shSingleQuote,shTest,shTestOpr syn cluster shTestList contains=shCharClass,shCommandSub,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shExDoubleQuote,shExpr,shExSingleQuote,shNumber,shOperator,shSingleQuote,shTest,shTestOpr
" Echo: {{{1 " Echo: {{{1
" ==== " ====
" This one is needed INSIDE a CommandSub, so that `echo bla` be correct " This one is needed INSIDE a CommandSub, so that `echo bla` be correct
@ -145,6 +154,11 @@ if exists("b:is_kornshell") || exists("b:is_bash")
syn match shStatement "\<alias\>" syn match shStatement "\<alias\>"
syn region shAlias matchgroup=shStatement start="\<alias\>\s\+\(\h[-._[:alnum:]]\+\)\@=" skip="\\$" end="\>\|`" syn region shAlias matchgroup=shStatement start="\<alias\>\s\+\(\h[-._[:alnum:]]\+\)\@=" skip="\\$" end="\>\|`"
syn region shAlias matchgroup=shStatement start="\<alias\>\s\+\(\h[-._[:alnum:]]\+=\)\@=" skip="\\$" end="=" syn region shAlias matchgroup=shStatement start="\<alias\>\s\+\(\h[-._[:alnum:]]\+=\)\@=" skip="\\$" end="="
" Touch: {{{1
" =====
syn match shTouch '\<touch\>[^;#]*' skipwhite nextgroup=shTouchList contains=shTouchCmd
syn match shTouchCmd '\<touch\>' contained
endif endif
" Error Codes: {{{1 " Error Codes: {{{1
@ -193,15 +207,16 @@ syn region shSubSh transparent matchgroup=shSubShRegion start="[^(]\zs(" end=")"
"======= "=======
syn region shExpr matchgroup=shRange start="\[" skip=+\\\\\|\\$\|\[+ end="\]" contains=@shTestList,shSpecial syn region shExpr matchgroup=shRange start="\[" skip=+\\\\\|\\$\|\[+ end="\]" contains=@shTestList,shSpecial
syn region shTest transparent matchgroup=shStatement start="\<test\s" skip=+\\\\\|\\$+ matchgroup=NONE end="[;&|]"me=e-1 end="$" contains=@shExprList1 syn region shTest transparent matchgroup=shStatement start="\<test\s" skip=+\\\\\|\\$+ matchgroup=NONE end="[;&|]"me=e-1 end="$" contains=@shExprList1
syn region shNoQuote start='\S' skip='\%(\\\\\)*\\.' end='\ze\s' contained
syn match shTestOpr contained '[^-+/%]\zs=' skipwhite nextgroup=shTestDoubleQuote,shTestSingleQuote,shTestPattern syn match shTestOpr contained '[^-+/%]\zs=' skipwhite nextgroup=shTestDoubleQuote,shTestSingleQuote,shTestPattern
syn match shTestOpr contained "<=\|>=\|!=\|==\|-.\>\|-\(nt\|ot\|ef\|eq\|ne\|lt\|le\|gt\|ge\)\>\|[!<>]" syn match shTestOpr contained "<=\|>=\|!=\|==\|=\~\|-.\>\|-\(nt\|ot\|ef\|eq\|ne\|lt\|le\|gt\|ge\)\>\|[!<>]"
syn match shTestPattern contained '\w\+' syn match shTestPattern contained '\w\+'
syn region shTestDoubleQuote contained start='\%(\%(\\\\\)*\\\)\@<!"' skip=+\\\\\|\\"+ end='"' syn region shTestDoubleQuote contained start='\%(\%(\\\\\)*\\\)\@<!"' skip=+\\\\\|\\"+ end='"'
syn match shTestSingleQuote contained '\\.' syn match shTestSingleQuote contained '\\.'
syn match shTestSingleQuote contained "'[^']*'" syn match shTestSingleQuote contained "'[^']*'"
if exists("b:is_kornshell") || exists("b:is_bash") if exists("b:is_kornshell") || exists("b:is_bash")
syn region shDblBrace matchgroup=Delimiter start="\[\[" skip=+\\\\\|\\$+ end="\]\]" contains=@shTestList,shComment syn region shDblBrace matchgroup=Delimiter start="\[\[" skip=+\%(\\\\\)*\\$+ end="\]\]" contains=@shTestList,shNoQuote,shComment
syn region shDblParen matchgroup=Delimiter start="((" skip=+\\\\\|\\$+ end="))" contains=@shTestList,shComment syn region shDblParen matchgroup=Delimiter start="((" skip=+\%(\\\\\)*\\$+ end="))" contains=@shTestList,shComment
endif endif
" Character Class In Range: {{{1 " Character Class In Range: {{{1
@ -210,17 +225,11 @@ syn match shCharClass contained "\[:\(backspace\|escape\|return\|xdigit\|alnum
" Loops: do, if, while, until {{{1 " Loops: do, if, while, until {{{1
" ====== " ======
if s:sh_fold_ifdofor ShFoldIfDoFor syn region shDo transparent matchgroup=shConditional start="\<do\>" matchgroup=shConditional end="\<done\>" contains=@shLoopList
syn region shDo fold transparent matchgroup=shConditional start="\<do\>" matchgroup=shConditional end="\<done\>" contains=@shLoopList ShFoldIfDoFor syn region shIf transparent matchgroup=shConditional start="\<if\_s" matchgroup=shConditional skip=+-fi\>+ end="\<;\_s*then\>" end="\<fi\>" contains=@shIfList
syn region shIf fold transparent matchgroup=shConditional start="\<if\_s" matchgroup=shConditional skip=+-fi\>+ end="\<;\_s*then\>" end="\<fi\>" contains=@shIfList ShFoldIfDoFor syn region shFor matchgroup=shLoop start="\<for\ze\_s\s*\%(((\)\@!" end="\<in\>" end="\<do\>"me=e-2 contains=@shLoopList,shDblParen skipwhite nextgroup=shCurlyIn
syn region shFor fold matchgroup=shLoop start="\<for\ze\_s\s*\%(((\)\@!" end="\<in\_s" end="\<do\>"me=e-2 contains=@shLoopList,shDblParen skipwhite nextgroup=shCurlyIn ShFoldIfDoFor syn region shForPP matchgroup=shLoop start='\<for\>\_s*((' end='))' contains=shTestOpr
syn region shForPP fold matchgroup=shLoop start='\<for\>\_s*((' end='))' contains=shTestOpr
else
syn region shDo transparent matchgroup=shConditional start="\<do\>" matchgroup=shConditional end="\<done\>" contains=@shLoopList
syn region shIf transparent matchgroup=shConditional start="\<if\_s" matchgroup=shConditional skip=+-fi\>+ end="\<;\_s*then\>" end="\<fi\>" contains=@shIfList
syn region shFor matchgroup=shLoop start="\<for\ze\_s\s*\%(((\)\@!" end="\<in\>" end="\<do\>"me=e-2 contains=@shLoopList,shDblParen skipwhite nextgroup=shCurlyIn
syn region shForPP matchgroup=shLoop start='\<for\>\_s*((' end='))' contains=shTestOpr
endif
if exists("b:is_kornshell") || exists("b:is_bash") if exists("b:is_kornshell") || exists("b:is_bash")
syn cluster shCaseList add=shRepeat syn cluster shCaseList add=shRepeat
syn cluster shFunctionList add=shRepeat syn cluster shFunctionList add=shRepeat
@ -238,13 +247,9 @@ syn match shComma contained ","
" ==== " ====
syn match shCaseBar contained skipwhite "\(^\|[^\\]\)\(\\\\\)*\zs|" nextgroup=shCase,shCaseStart,shCaseBar,shComment,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote syn match shCaseBar contained skipwhite "\(^\|[^\\]\)\(\\\\\)*\zs|" nextgroup=shCase,shCaseStart,shCaseBar,shComment,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote
syn match shCaseStart contained skipwhite skipnl "(" nextgroup=shCase,shCaseBar syn match shCaseStart contained skipwhite skipnl "(" nextgroup=shCase,shCaseBar
if s:sh_fold_ifdofor ShFoldIfDoFor syn region shCase contained skipwhite skipnl matchgroup=shSnglCase start="\%(\\.\|[^#$()'" \t]\)\{-}\zs)" end=";;" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
syn region shCase fold contained skipwhite skipnl matchgroup=shSnglCase start="\%(\\.\|[^#$()'" \t]\)\{-}\zs)" end=";;" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment ShFoldIfDoFor syn region shCaseEsac matchgroup=shConditional start="\<case\>" end="\<esac\>" contains=@shCaseEsacList
syn region shCaseEsac fold matchgroup=shConditional start="\<case\>" end="\<esac\>" contains=@shCaseEsacList
else
syn region shCase contained skipwhite skipnl matchgroup=shSnglCase start="\%(\\.\|[^#$()'" \t]\)\{-}\zs)" end=";;" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
syn region shCaseEsac matchgroup=shConditional start="\<case\>" end="\<esac\>" contains=@shCaseEsacList
endif
syn keyword shCaseIn contained skipwhite skipnl in nextgroup=shCase,shCaseStart,shCaseBar,shComment,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote syn keyword shCaseIn contained skipwhite skipnl in nextgroup=shCase,shCaseStart,shCaseBar,shComment,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote
if exists("b:is_bash") if exists("b:is_bash")
syn region shCaseExSingleQuote matchgroup=shQuote start=+\$'+ skip=+\\\\\|\\.+ end=+'+ contains=shStringSpecial,shSpecial skipwhite skipnl nextgroup=shCaseBar contained syn region shCaseExSingleQuote matchgroup=shQuote start=+\$'+ skip=+\\\\\|\\.+ end=+'+ contains=shStringSpecial,shSpecial skipwhite skipnl nextgroup=shCaseBar contained
@ -286,7 +291,7 @@ if exists("b:is_bash")
syn cluster shCommandSubList add=bashSpecialVariables,bashStatement syn cluster shCommandSubList add=bashSpecialVariables,bashStatement
syn cluster shCaseList add=bashAdminStatement,bashStatement syn cluster shCaseList add=bashAdminStatement,bashStatement
syn keyword bashSpecialVariables contained auto_resume BASH BASH_ALIASES BASH_ALIASES BASH_ARGC BASH_ARGC BASH_ARGV BASH_ARGV BASH_CMDS BASH_CMDS BASH_COMMAND BASH_COMMAND BASH_ENV BASH_EXECUTION_STRING BASH_EXECUTION_STRING BASH_LINENO BASH_LINENO BASHOPTS BASHOPTS BASHPID BASHPID BASH_REMATCH BASH_REMATCH BASH_SOURCE BASH_SOURCE BASH_SUBSHELL BASH_SUBSHELL BASH_VERSINFO BASH_VERSION BASH_XTRACEFD BASH_XTRACEFD CDPATH COLUMNS COLUMNS COMP_CWORD COMP_CWORD COMP_KEY COMP_KEY COMP_LINE COMP_LINE COMP_POINT COMP_POINT COMPREPLY COMPREPLY COMP_TYPE COMP_TYPE COMP_WORDBREAKS COMP_WORDBREAKS COMP_WORDS COMP_WORDS COPROC COPROC DIRSTACK EMACS EMACS ENV ENV EUID FCEDIT FIGNORE FUNCNAME FUNCNAME FUNCNEST FUNCNEST GLOBIGNORE GROUPS histchars HISTCMD HISTCONTROL HISTFILE HISTFILESIZE HISTIGNORE HISTSIZE HISTTIMEFORMAT HISTTIMEFORMAT HOME HOSTFILE HOSTNAME HOSTTYPE IFS IGNOREEOF INPUTRC LANG LC_ALL LC_COLLATE LC_CTYPE LC_CTYPE LC_MESSAGES LC_NUMERIC LC_NUMERIC LINENO LINES LINES MACHTYPE MAIL MAILCHECK MAILPATH MAPFILE MAPFILE OLDPWD OPTARG OPTERR OPTIND OSTYPE PATH PIPESTATUS POSIXLY_CORRECT POSIXLY_CORRECT PPID PROMPT_COMMAND PS1 PS2 PS3 PS4 PWD RANDOM READLINE_LINE READLINE_LINE READLINE_POINT READLINE_POINT REPLY SECONDS SHELL SHELL SHELLOPTS SHLVL TIMEFORMAT TIMEOUT TMPDIR TMPDIR UID syn keyword bashSpecialVariables contained auto_resume BASH BASH_ALIASES BASH_ALIASES BASH_ARGC BASH_ARGC BASH_ARGV BASH_ARGV BASH_CMDS BASH_CMDS BASH_COMMAND BASH_COMMAND BASH_ENV BASH_EXECUTION_STRING BASH_EXECUTION_STRING BASH_LINENO BASH_LINENO BASHOPTS BASHOPTS BASHPID BASHPID BASH_REMATCH BASH_REMATCH BASH_SOURCE BASH_SOURCE BASH_SUBSHELL BASH_SUBSHELL BASH_VERSINFO BASH_VERSION BASH_XTRACEFD BASH_XTRACEFD CDPATH COLUMNS COLUMNS COMP_CWORD COMP_CWORD COMP_KEY COMP_KEY COMP_LINE COMP_LINE COMP_POINT COMP_POINT COMPREPLY COMPREPLY COMP_TYPE COMP_TYPE COMP_WORDBREAKS COMP_WORDBREAKS COMP_WORDS COMP_WORDS COPROC COPROC DIRSTACK EMACS EMACS ENV ENV EUID FCEDIT FIGNORE FUNCNAME FUNCNAME FUNCNEST FUNCNEST GLOBIGNORE GROUPS histchars HISTCMD HISTCONTROL HISTFILE HISTFILESIZE HISTIGNORE HISTSIZE HISTTIMEFORMAT HISTTIMEFORMAT HOME HOSTFILE HOSTNAME HOSTTYPE IFS IGNOREEOF INPUTRC LANG LC_ALL LC_COLLATE LC_CTYPE LC_CTYPE LC_MESSAGES LC_NUMERIC LC_NUMERIC LINENO LINES LINES MACHTYPE MAIL MAILCHECK MAILPATH MAPFILE MAPFILE OLDPWD OPTARG OPTERR OPTIND OSTYPE PATH PIPESTATUS POSIXLY_CORRECT POSIXLY_CORRECT PPID PROMPT_COMMAND PS1 PS2 PS3 PS4 PWD RANDOM READLINE_LINE READLINE_LINE READLINE_POINT READLINE_POINT REPLY SECONDS SHELL SHELL SHELLOPTS SHLVL TIMEFORMAT TIMEOUT TMPDIR TMPDIR UID
syn keyword bashStatement chmod clear complete du egrep expr fgrep find gnufind gnugrep grep less ls mkdir mv rm rmdir rpm sed sleep sort strip tail touch syn keyword bashStatement chmod clear complete du egrep expr fgrep find gnufind gnugrep grep less ls mkdir mv rm rmdir rpm sed sleep sort strip tail
syn keyword bashAdminStatement daemon killall killproc nice reload restart start status stop syn keyword bashAdminStatement daemon killall killproc nice reload restart start status stop
syn keyword bashStatement command compgen syn keyword bashStatement command compgen
endif endif
@ -295,7 +300,7 @@ if exists("b:is_kornshell")
syn cluster shCommandSubList add=kshSpecialVariables,kshStatement syn cluster shCommandSubList add=kshSpecialVariables,kshStatement
syn cluster shCaseList add=kshStatement syn cluster shCaseList add=kshStatement
syn keyword kshSpecialVariables contained CDPATH COLUMNS EDITOR ENV ERRNO FCEDIT FPATH HISTFILE HISTSIZE HOME IFS LINENO LINES MAIL MAILCHECK MAILPATH OLDPWD OPTARG OPTIND PATH PPID PS1 PS2 PS3 PS4 PWD RANDOM REPLY SECONDS SHELL TMOUT VISUAL syn keyword kshSpecialVariables contained CDPATH COLUMNS EDITOR ENV ERRNO FCEDIT FPATH HISTFILE HISTSIZE HOME IFS LINENO LINES MAIL MAILCHECK MAILPATH OLDPWD OPTARG OPTIND PATH PPID PS1 PS2 PS3 PS4 PWD RANDOM REPLY SECONDS SHELL TMOUT VISUAL
syn keyword kshStatement cat chmod clear cp du egrep expr fgrep find grep killall less ls mkdir mv nice printenv rm rmdir sed sort strip stty tail touch tput syn keyword kshStatement cat chmod clear cp du egrep expr fgrep find grep killall less ls mkdir mv nice printenv rm rmdir sed sort strip stty tail tput
syn keyword kshStatement command setgroups setsenv syn keyword kshStatement command setgroups setsenv
endif endif
@ -323,7 +328,6 @@ syn region shSingleQuote matchgroup=shQuote start=+'+ end=+'+ contains=@Spell
syn region shDoubleQuote matchgroup=shQuote start=+\%(\%(\\\\\)*\\\)\@<!"+ skip=+\\"+ end=+"+ contains=@shDblQuoteList,shStringSpecial,@Spell syn region shDoubleQuote matchgroup=shQuote start=+\%(\%(\\\\\)*\\\)\@<!"+ skip=+\\"+ end=+"+ contains=@shDblQuoteList,shStringSpecial,@Spell
syn match shStringSpecial "[^[:print:] \t]" contained syn match shStringSpecial "[^[:print:] \t]" contained
syn match shStringSpecial "\%(\\\\\)*\\[\\"'`$()#]" syn match shStringSpecial "\%(\\\\\)*\\[\\"'`$()#]"
" COMBAK: why is ,shComment on next line???
syn match shSpecial "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]" syn match shSpecial "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]"
syn match shSpecial "^\%(\\\\\)*\\[\\"'`$()#]" syn match shSpecial "^\%(\\\\\)*\\[\\"'`$()#]"
syn match shMoreSpecial "\%(\\\\\)*\\[\\"'`$()#]" nextgroup=shMoreSpecial contained syn match shMoreSpecial "\%(\\\\\)*\\[\\"'`$()#]" nextgroup=shMoreSpecial contained
@ -347,35 +351,22 @@ if version < 600
syn region shHereDoc matchgroup=shHereDoc05 start="<<\s*\**\.\**" matchgroup=shHereDoc05 end="^\.$" contains=@shDblQuoteList syn region shHereDoc matchgroup=shHereDoc05 start="<<\s*\**\.\**" matchgroup=shHereDoc05 end="^\.$" contains=@shDblQuoteList
syn region shHereDoc matchgroup=shHereDoc06 start="<<-\s*\**\.\**" matchgroup=shHereDoc06 end="^\s*\.$" contains=@shDblQuoteList syn region shHereDoc matchgroup=shHereDoc06 start="<<-\s*\**\.\**" matchgroup=shHereDoc06 end="^\s*\.$" contains=@shDblQuoteList
elseif s:sh_fold_heredoc
syn region shHereDoc matchgroup=shHereDoc07 fold start="<<\s*\z([^ \t|]*\)" matchgroup=shHereDoc07 end="^\z1\s*$" contains=@shDblQuoteList
syn region shHereDoc matchgroup=shHereDoc08 fold start="<<\s*\"\z([^ \t|]*\)\"" matchgroup=shHereDoc08 end="^\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc09 fold start="<<\s*'\z([^ \t|]*\)'" matchgroup=shHereDoc09 end="^\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc10 fold start="<<-\s*\z([^ \t|]*\)" matchgroup=shHereDoc10 end="^\s*\z1\s*$" contains=@shDblQuoteList
syn region shHereDoc matchgroup=shHereDoc11 fold start="<<-\s*\"\z([^ \t|]*\)\"" matchgroup=shHereDoc11 end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc12 fold start="<<-\s*'\z([^ \t|]*\)'" matchgroup=shHereDoc12 end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc13 fold start="<<\s*\\\_$\_s*\z([^ \t|]*\)" matchgroup=shHereDoc13 end="^\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc14 fold start="<<\s*\\\_$\_s*\"\z([^ \t|]*\)\"" matchgroup=shHereDoc14 end="^\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc15 fold start="<<-\s*\\\_$\_s*'\z([^ \t|]*\)'" matchgroup=shHereDoc15 end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc16 fold start="<<-\s*\\\_$\_s*\z([^ \t|]*\)" matchgroup=shHereDoc16 end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc17 fold start="<<-\s*\\\_$\_s*\"\z([^ \t|]*\)\"" matchgroup=shHereDoc17 end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc18 fold start="<<\s*\\\_$\_s*'\z([^ \t|]*\)'" matchgroup=shHereDoc18 end="^\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc19 fold start="<<\\\z([^ \t|]*\)" matchgroup=shHereDoc19 end="^\z1\s*$"
else else
syn region shHereDoc matchgroup=shHereDoc20 start="<<\s*\\\=\z([^ \t|]*\)" matchgroup=shHereDoc20 end="^\z1\s*$" contains=@shDblQuoteList ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc07 start="<<\s*\\\=\z([^ \t|]\+\)" matchgroup=shHereDoc07 end="^\z1\s*$" contains=@shDblQuoteList
syn region shHereDoc matchgroup=shHereDoc21 start="<<\s*\"\z([^ \t|]*\)\"" matchgroup=shHereDoc21 end="^\z1\s*$" ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc08 start="<<\s*\"\z([^ \t|]\+\)\"" matchgroup=shHereDoc08 end="^\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc22 start="<<-\s*\z([^ \t|]*\)" matchgroup=shHereDoc22 end="^\s*\z1\s*$" contains=@shDblQuoteList ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc09 start="<<-\s*\z([^ \t|]\+\)" matchgroup=shHereDoc09 end="^\s*\z1\s*$" contains=@shDblQuoteList
syn region shHereDoc matchgroup=shHereDoc23 start="<<-\s*'\z([^ \t|]*\)'" matchgroup=shHereDoc23 end="^\s*\z1\s*$" ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc10 start="<<-\s*'\z([^ \t|]\+\)'" matchgroup=shHereDoc10 end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc24 start="<<\s*'\z([^ \t|]*\)'" matchgroup=shHereDoc24 end="^\z1\s*$" ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc11 start="<<\s*'\z([^ \t|]\+\)'" matchgroup=shHereDoc11 end="^\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc25 start="<<-\s*\"\z([^ \t|]*\)\"" matchgroup=shHereDoc25 end="^\s*\z1\s*$" ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc12 start="<<-\s*\"\z([^ \t|]\+\)\"" matchgroup=shHereDoc12 end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc26 start="<<\s*\\\_$\_s*\z([^ \t|]*\)" matchgroup=shHereDoc26 end="^\z1\s*$" ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc13 start="<<\s*\\\_$\_s*\z([^ \t|]\+\)" matchgroup=shHereDoc13 end="^\z1\s*$" contains=@shDblQuoteList
syn region shHereDoc matchgroup=shHereDoc27 start="<<-\s*\\\_$\_s*\z([^ \t|]*\)" matchgroup=shHereDoc27 end="^\s*\z1\s*$" ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc14 start="<<\s*\\\_$\_s*'\z([^ \t|]\+\)'" matchgroup=shHereDoc14 end="^\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc28 start="<<-\s*\\\_$\_s*'\z([^ \t|]*\)'" matchgroup=shHereDoc28 end="^\s*\z1\s*$" ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc15 start="<<\s*\\\_$\_s*\"\z([^ \t|]\+\)\"" matchgroup=shHereDoc15 end="^\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc29 start="<<\s*\\\_$\_s*'\z([^ \t|]*\)'" matchgroup=shHereDoc29 end="^\z1\s*$" ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc16 start="<<-\s*\\\_$\_s*\z([^ \t|]\+\)" matchgroup=shHereDoc16 end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc30 start="<<\s*\\\_$\_s*\"\z([^ \t|]*\)\"" matchgroup=shHereDoc30 end="^\z1\s*$" ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc17 start="<<-\s*\\\_$\_s*\\\z([^ \t|]\+\)" matchgroup=shHereDoc17 end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc31 start="<<-\s*\\\_$\_s*\"\z([^ \t|]*\)\"" matchgroup=shHereDoc31 end="^\s*\z1\s*$" ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc18 start="<<-\s*\\\_$\_s*'\z([^ \t|]\+\)'" matchgroup=shHereDoc18 end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc32 start="<<\\\z([^ \t|]*\)" matchgroup=shHereDoc32 end="^\z1\s*$" ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc19 start="<<-\s*\\\_$\_s*\"\z([^ \t|]\+\)\"" matchgroup=shHereDoc19 end="^\s*\z1\s*$"
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc20 start="<<\\\z([^ \t|]\+\)" matchgroup=shHereDoc20 end="^\z1\s*$"
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc21 start="<<-\s*\\\z([^ \t|]\+\)" matchgroup=shHereDoc21 end="^\s*\z1\s*$"
endif endif
" Here Strings: {{{1 " Here Strings: {{{1
@ -407,38 +398,24 @@ if !exists("g:is_posix")
endif endif
if exists("b:is_bash") if exists("b:is_bash")
if s:sh_fold_functions ShFoldFunctions syn region shFunctionOne matchgroup=shFunction start="^\s*\h[-a-zA-Z_0-9]*\s*()\_s*{" end="}" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
syn region shFunctionOne fold matchgroup=shFunction start="^\s*\h[-a-zA-Z_0-9]*\s*()\_s*{" end="}" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment ShFoldFunctions syn region shFunctionTwo matchgroup=shFunction start="\<[^d][^o]\&\h[-a-zA-Z_0-9]*\s*\%(()\)\=\_s*{" end="}" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
syn region shFunctionTwo fold matchgroup=shFunction start="\<[^d][^o]\&\h[-a-zA-Z_0-9]*\s*\%(()\)\=\_s*{" end="}" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment ShFoldFunctions syn region shFunctionThree matchgroup=shFunction start="^\s*\h[-a-zA-Z_0-9]*\s*()\_s*(" end=")" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
syn region shFunctionThree fold matchgroup=shFunction start="^\s*\h[-a-zA-Z_0-9]*\s*()\_s*(" end=")" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment ShFoldFunctions syn region shFunctionFour matchgroup=shFunction start="\<[^d][^o]\&\h[-a-zA-Z_0-9]*\s*\%(()\)\=\_s*)" end=")" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
syn region shFunctionFour fold matchgroup=shFunction start="\<[^d][^o]\&\h[-a-zA-Z_0-9]*\s*\%(()\)\=\_s*)" end=")" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
else
syn region shFunctionOne matchgroup=shFunction start="^\s*\h[-a-zA-Z_0-9]*\s*()\_s*{" end="}" contains=@shFunctionList
syn region shFunctionTwo matchgroup=shFunction start="\<[^d][^o]\&\h[-a-zA-Z_0-9]*\s*\%(()\)\=\_s*{" end="}" contains=shFunctionKey,@shFunctionList contained
syn region shFunctionThree matchgroup=shFunction start="^\s*\h[-a-zA-Z_0-9]*\s*()\_s*(" end=")" contains=@shFunctionList
syn region shFunctionFour matchgroup=shFunction start="\<[^d][^o]\&\h[-a-zA-Z_0-9]*\s*\%(()\)\=\_s*(" end=")" contains=shFunctionKey,@shFunctionList contained
endif
else else
if s:sh_fold_functions ShFoldFunctions syn region shFunctionOne matchgroup=shFunction start="^\s*\h\w*\s*()\_s*{" end="}" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
syn region shFunctionOne fold matchgroup=shFunction start="^\s*\h\w*\s*()\_s*{" end="}" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment ShFoldFunctions syn region shFunctionTwo matchgroup=shFunction start="\<[^d][^o]\&\h\w*\s*\%(()\)\=\_s*{" end="}" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
syn region shFunctionTwo fold matchgroup=shFunction start="\<[^d][^o]\&\h\w*\s*\%(()\)\=\_s*{" end="}" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment ShFoldFunctions syn region shFunctionThree matchgroup=shFunction start="^\s*\h\w*\s*()\_s*(" end=")" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
syn region shFunctionThree fold matchgroup=shFunction start="^\s*\h\w*\s*()\_s*(" end=")" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment ShFoldFunctions syn region shFunctionFour matchgroup=shFunction start="\<[^d][^o]\&\h\w*\s*\%(()\)\=\_s*(" end=")" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
syn region shFunctionFour fold matchgroup=shFunction start="\<[^d][^o]\&\h\w*\s*\%(()\)\=\_s*(" end=")" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
else
syn region shFunctionOne matchgroup=shFunction start="^\s*\h\w*\s*()\_s*{" end="}" contains=@shFunctionList
syn region shFunctionTwo matchgroup=shFunction start="\<[^d][^o]\&\h\w*\s*\%(()\)\=\_s*{" end="}" contains=shFunctionKey,@shFunctionList contained
syn region shFunctionThree matchgroup=shFunction start="^\s*\h\w*\s*()\_s*(" end=")" contains=@shFunctionList
syn region shFunctionFour matchgroup=shFunction start="\<[^d][^o]\&\h\w*\s*\%(()\)\=\_s*(" end=")" contains=shFunctionKey,@shFunctionList contained
endif
endif endif
" Parameter Dereferencing: {{{1 " Parameter Dereferencing: {{{1
" ======================== " ========================
syn match shDerefSimple "\$\%(\k\+\|\d\)"
syn region shDeref matchgroup=PreProc start="\${" end="}" contains=@shDerefList,shDerefVarArray
if !exists("g:sh_no_error") if !exists("g:sh_no_error")
syn match shDerefWordError "[^}$[]" contained syn match shDerefWordError "[^}$[]" contained
endif endif
syn match shDerefSimple "\$\k\+\|\d"
syn region shDeref matchgroup=PreProc start="\${" end="}" contains=@shDerefList,shDerefVarArray
syn match shDerefSimple "\$[-#*@!?]" syn match shDerefSimple "\$[-#*@!?]"
syn match shDerefSimple "\$\$" syn match shDerefSimple "\$\$"
if exists("b:is_bash") || exists("b:is_kornshell") if exists("b:is_bash") || exists("b:is_kornshell")
@ -446,16 +423,28 @@ if exists("b:is_bash") || exists("b:is_kornshell")
syn region shDeref matchgroup=PreProc start="\${\$\$" end="}" contains=@shDerefList syn region shDeref matchgroup=PreProc start="\${\$\$" end="}" contains=@shDerefList
endif endif
" ksh: ${!var[*]} array index list syntax: {{{1
" ========================================
if exists("b:is_kornshell")
syn region shDeref matchgroup=PreProc start="\${!" end="}" contains=@shDerefVarArray
endif
" bash: ${!prefix*} and ${#parameter}: {{{1 " bash: ${!prefix*} and ${#parameter}: {{{1
" ==================================== " ====================================
if exists("b:is_bash") if exists("b:is_bash")
syn region shDeref matchgroup=PreProc start="\${!" end="\*\=}" contains=@shDerefList,shDerefOp syn region shDeref matchgroup=PreProc start="\${!" end="\*\=}" contains=@shDerefList,shDerefOp
syn match shDerefVar contained "{\@<=!\k\+" nextgroup=@shDerefVarList syn match shDerefVar contained "{\@<=!\k\+" nextgroup=@shDerefVarList
endif endif
if exists("b:is_kornshell")
syn match shDerefVar contained "{\@<=!\k[[:alnum:]_.]*" nextgroup=@shDerefVarList
endif
syn match shDerefSpecial contained "{\@<=[-*@?0]" nextgroup=shDerefOp,shDerefOpError syn match shDerefSpecial contained "{\@<=[-*@?0]" nextgroup=shDerefOp,shDerefOpError
syn match shDerefSpecial contained "\({[#!]\)\@<=[[:alnum:]*@_]\+" nextgroup=@shDerefVarList,shDerefOp syn match shDerefSpecial contained "\({[#!]\)\@<=[[:alnum:]*@_]\+" nextgroup=@shDerefVarList,shDerefOp
syn match shDerefVar contained "{\@<=\k\+" nextgroup=@shDerefVarList syn match shDerefVar contained "{\@<=\k\+" nextgroup=@shDerefVarList
if exists("b:is_kornshell")
syn match shDerefVar contained "{\@<=\k[[:alnum:]_.]*" nextgroup=@shDerefVarList
endif
" sh ksh bash : ${var[... ]...} array reference: {{{1 " sh ksh bash : ${var[... ]...} array reference: {{{1
syn region shDerefVarArray contained matchgroup=shDeref start="\[" end="]" contains=@shCommandSubList nextgroup=shDerefOp,shDerefOpError syn region shDerefVarArray contained matchgroup=shDeref start="\[" end="]" contains=@shCommandSubList nextgroup=shDerefOp,shDerefOpError
@ -594,6 +583,7 @@ hi def link shHereDoc shString
hi def link shHerePayload shHereDoc hi def link shHerePayload shHereDoc
hi def link shLoop shStatement hi def link shLoop shStatement
hi def link shMoreSpecial shSpecial hi def link shMoreSpecial shSpecial
hi def link shNoQuote shDoubleQuote
hi def link shOption shCommandSub hi def link shOption shCommandSub
hi def link shPattern shString hi def link shPattern shString
hi def link shParen shArithmetic hi def link shParen shArithmetic
@ -611,6 +601,7 @@ hi def link shTestOpr shConditional
hi def link shTestPattern shString hi def link shTestPattern shString
hi def link shTestDoubleQuote shString hi def link shTestDoubleQuote shString
hi def link shTestSingleQuote shString hi def link shTestSingleQuote shString
hi def link shTouchCmd shStatement
hi def link shVariable shSetList hi def link shVariable shSetList
hi def link shWrapLineOperator shOperator hi def link shWrapLineOperator shOperator
@ -688,17 +679,12 @@ hi def link shHereDoc18 shRedir
hi def link shHereDoc19 shRedir hi def link shHereDoc19 shRedir
hi def link shHereDoc20 shRedir hi def link shHereDoc20 shRedir
hi def link shHereDoc21 shRedir hi def link shHereDoc21 shRedir
hi def link shHereDoc22 shRedir
hi def link shHereDoc23 shRedir " Delete shell folding commands {{{1
hi def link shHereDoc24 shRedir " =============================
hi def link shHereDoc25 shRedir delc ShFoldFunctions
hi def link shHereDoc26 shRedir delc ShFoldHereDoc
hi def link shHereDoc27 shRedir delc ShFoldIfDoFor
hi def link shHereDoc28 shRedir
hi def link shHereDoc29 shRedir
hi def link shHereDoc30 shRedir
hi def link shHereDoc31 shRedir
hi def link shHereDoc32 shRedir
" Set Current Syntax: {{{1 " Set Current Syntax: {{{1
" =================== " ===================

View File

@ -1,8 +1,8 @@
" Vim syntax file " Vim syntax file
" Language: TeX " Language: TeX
" Maintainer: Charles E. Campbell <NdrchipO@ScampbellPfamily.AbizM> " Maintainer: Charles E. Campbell <NdrchipO@ScampbellPfamily.AbizM>
" Last Change: Oct 19, 2015 " Last Change: Oct 20, 2015
" Version: 89 " Version: 90
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TEX " URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TEX
" "
" Notes: {{{1 " Notes: {{{1
@ -62,11 +62,6 @@ if version >= 508 || !exists("did_tex_syntax_inits")
command -nargs=+ HiLink hi def link <args> command -nargs=+ HiLink hi def link <args>
endif endif
endif endif
if exists("g:tex_no_error") && g:tex_no_error
let s:tex_no_error= 1
else
let s:tex_no_error= 0
endif
" by default, enable all region-based highlighting " by default, enable all region-based highlighting
let s:tex_fast= "bcmMprsSvV" let s:tex_fast= "bcmMprsSvV"
@ -78,8 +73,6 @@ if exists("g:tex_fast")
else else
let s:tex_fast= g:tex_fast let s:tex_fast= g:tex_fast
endif endif
else
let s:tex_fast= "bcmMprsSvV"
endif endif
" let user determine which classes of concealment will be supported " let user determine which classes of concealment will be supported
@ -114,15 +107,17 @@ endif
" handle folding {{{1 " handle folding {{{1
if !exists("g:tex_fold_enabled") if !exists("g:tex_fold_enabled")
let g:tex_fold_enabled= 0 let s:tex_fold_enabled= 0
elseif g:tex_fold_enabled && !has("folding") elseif g:tex_fold_enabled && !has("folding")
let g:tex_fold_enabled= 0 let s:tex_fold_enabled= 0
echomsg "Ignoring g:tex_fold_enabled=".g:tex_fold_enabled."; need to re-compile vim for +fold support" echomsg "Ignoring g:tex_fold_enabled=".g:tex_fold_enabled."; need to re-compile vim for +fold support"
else
let s:tex_fold_enabled= 1
endif endif
if g:tex_fold_enabled && &fdm == "manual" if s:tex_fold_enabled && &fdm == "manual"
setl fdm=syntax setl fdm=syntax
endif endif
if g:tex_fold_enabled && has("folding") if s:tex_fold_enabled && has("folding")
com! -nargs=* TexFold <args> fold com! -nargs=* TexFold <args> fold
else else
com! -nargs=* TexFold <args> com! -nargs=* TexFold <args>
@ -140,41 +135,53 @@ endif
if b:tex_stylish if b:tex_stylish
setlocal isk+=@-@ setlocal isk+=@-@
endif endif
if exists("g:tex_nospell") && g:tex_nospell && !exists("g:tex_comment_nospell") if exists("g:tex_no_error") && g:tex_no_error
let g:tex_comment_nospell= 1 let s:tex_no_error= 1
else
let s:tex_no_error= 0
endif
if exists("g:tex_comment_nospell") && g:tex_comment_nospell
let s:tex_comment_nospell= 1
else
let s:tex_comment_nospell= 0
endif
if exists("g:tex_nospell") && g:tex_nospell
let s:tex_nospell = 1
else
let s:tex_nospell = 0
endif endif
" Clusters: {{{1 " Clusters: {{{1
" -------- " --------
syn cluster texCmdGroup contains=texCmdBody,texComment,texDefParm,texDelimiter,texDocType,texInput,texLength,texLigature,texMathDelim,texMathOper,texNewCmd,texNewEnv,texRefZone,texSection,texBeginEnd,texBeginEndName,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle syn cluster texCmdGroup contains=texCmdBody,texComment,texDefParm,texDelimiter,texDocType,texInput,texLength,texLigature,texMathDelim,texMathOper,texNewCmd,texNewEnv,texRefZone,texSection,texBeginEnd,texBeginEndName,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle
if !s:tex_no_error if !s:tex_no_error
syn cluster texCmdGroup add=texMathError syn cluster texCmdGroup add=texMathError
endif endif
syn cluster texEnvGroup contains=texMatcher,texMathDelim,texSpecialChar,texStatement syn cluster texEnvGroup contains=texMatcher,texMathDelim,texSpecialChar,texStatement
syn cluster texFoldGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMatcher,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texBeginEnd,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract,texBoldStyle,texItalStyle,texNoSpell syn cluster texFoldGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMatcher,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texBeginEnd,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract,texBoldStyle,texItalStyle,texNoSpell
syn cluster texBoldGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMatcher,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texBeginEnd,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract,texBoldStyle,texBoldItalStyle,texNoSpell syn cluster texBoldGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMatcher,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texBeginEnd,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract,texBoldStyle,texBoldItalStyle,texNoSpell
syn cluster texItalGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMatcher,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texBeginEnd,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract,texItalStyle,texItalBoldStyle,texNoSpell syn cluster texItalGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMatcher,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texBeginEnd,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract,texItalStyle,texItalBoldStyle,texNoSpell
if !exists("g:tex_nospell") || !g:tex_nospell if !s:tex_nospell
syn cluster texMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,@Spell syn cluster texMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,@Spell
syn cluster texStyleGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texStyleStatement,@Spell,texStyleMatcher syn cluster texStyleGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texStyleStatement,@Spell,texStyleMatcher
else else
syn cluster texMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption syn cluster texMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption
syn cluster texStyleGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texStyleStatement,texStyleMatcher syn cluster texStyleGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texStyleStatement,texStyleMatcher
endif endif
syn cluster texPreambleMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTitle,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texMathZoneZ syn cluster texPreambleMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTitle,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texMathZoneZ
syn cluster texRefGroup contains=texMatcher,texComment,texDelimiter syn cluster texRefGroup contains=texMatcher,texComment,texDelimiter
if !exists("g:tex_no_math") if !exists("g:tex_no_math")
syn cluster texPreambleMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTitle,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texMathZoneZ syn cluster texPreambleMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTitle,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texMathZoneZ
syn cluster texMathZones contains=texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ syn cluster texMathZones contains=texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ
syn cluster texMatchGroup add=@texMathZones syn cluster texMatchGroup add=@texMathZones
syn cluster texMathDelimGroup contains=texMathDelimBad,texMathDelimKey,texMathDelimSet1,texMathDelimSet2 syn cluster texMathDelimGroup contains=texMathDelimBad,texMathDelimKey,texMathDelimSet1,texMathDelimSet2
syn cluster texMathMatchGroup contains=@texMathZones,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMathDelim,texMathMatcher,texMathOper,texNewCmd,texNewEnv,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone syn cluster texMathMatchGroup contains=@texMathZones,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMathDelim,texMathMatcher,texMathOper,texNewCmd,texNewEnv,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone
syn cluster texMathZoneGroup contains=texComment,texDelimiter,texLength,texMathDelim,texMathMatcher,texMathOper,texMathSymbol,texMathText,texRefZone,texSpecialChar,texStatement,texTypeSize,texTypeStyle syn cluster texMathZoneGroup contains=texComment,texDelimiter,texLength,texMathDelim,texMathMatcher,texMathOper,texMathSymbol,texMathText,texRefZone,texSpecialChar,texStatement,texTypeSize,texTypeStyle
if !s:tex_no_error if !s:tex_no_error
syn cluster texMathMatchGroup add=texMathError syn cluster texMathMatchGroup add=texMathError
syn cluster texMathZoneGroup add=texMathError syn cluster texMathZoneGroup add=texMathError
endif endif
syn cluster texMathZoneGroup add=@NoSpell syn cluster texMathZoneGroup add=@NoSpell
" following used in the \part \chapter \section \subsection \subsubsection " following used in the \part \chapter \section \subsection \subsubsection
" \paragraph \subparagraph \author \title highlighting " \paragraph \subparagraph \author \title highlighting
syn cluster texDocGroup contains=texPartZone,@texPartGroup syn cluster texDocGroup contains=texPartZone,@texPartGroup
@ -185,24 +192,24 @@ syn cluster texPreambleMatchGroup contains=texAccent,texBadMath,texComment,texDe
syn cluster texSubSubSectionGroup contains=texParaZone syn cluster texSubSubSectionGroup contains=texParaZone
syn cluster texParaGroup contains=texSubParaZone syn cluster texParaGroup contains=texSubParaZone
if has("conceal") && &enc == 'utf-8' if has("conceal") && &enc == 'utf-8'
syn cluster texMathZoneGroup add=texGreek,texSuperscript,texSubscript,texMathSymbol syn cluster texMathZoneGroup add=texGreek,texSuperscript,texSubscript,texMathSymbol
syn cluster texMathMatchGroup add=texGreek,texSuperscript,texSubscript,texMathSymbol syn cluster texMathMatchGroup add=texGreek,texSuperscript,texSubscript,texMathSymbol
endif endif
endif endif
" Try to flag {} and () mismatches: {{{1 " Try to flag {} and () mismatches: {{{1
if s:tex_fast =~ 'm' if s:tex_fast =~ 'm'
if !s:tex_no_error if !s:tex_no_error
syn region texMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" contains=@texMatchGroup,texError syn region texMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" transparent contains=@texMatchGroup,texError
syn region texMatcher matchgroup=Delimiter start="\[" end="]" contains=@texMatchGroup,texError,@NoSpell syn region texMatcher matchgroup=Delimiter start="\[" end="]" transparent contains=@texMatchGroup,texError,@NoSpell
else else
syn region texMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" contains=@texMatchGroup syn region texMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" transparent contains=@texMatchGroup
syn region texMatcher matchgroup=Delimiter start="\[" end="]" contains=@texMatchGroup syn region texMatcher matchgroup=Delimiter start="\[" end="]" transparent contains=@texMatchGroup
endif endif
if !exists("g:tex_nospell") || !g:tex_nospell if !s:tex_nospell
syn region texParen start="(" end=")" contains=@texMatchGroup,@Spell syn region texParen start="(" end=")" transparent contains=@texMatchGroup,@Spell
else else
syn region texParen start="(" end=")" contains=@texMatchGroup syn region texParen start="(" end=")" transparent contains=@texMatchGroup
endif endif
endif endif
if !s:tex_no_error if !s:tex_no_error
@ -213,7 +220,7 @@ if s:tex_fast =~ 'M'
if !s:tex_no_error if !s:tex_no_error
syn match texMathError "}" contained syn match texMathError "}" contained
endif endif
syn region texMathMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\}" end="}" end="%stopzone\>" contained contains=@texMathMatchGroup syn region texMathMatcher matchgroup=Delimiter start="{" skip="\%(\\\\\)*\\}" end="}" end="%stopzone\>" contained contains=@texMathMatchGroup
endif endif
endif endif
@ -232,7 +239,6 @@ endif
" TeX/LaTeX delimiters: {{{1 " TeX/LaTeX delimiters: {{{1
syn match texDelimiter "&" syn match texDelimiter "&"
syn match texDelimiter "\\\\" syn match texDelimiter "\\\\"
" syn match texDelimiter "[{}]"
" Tex/Latex Options: {{{1 " Tex/Latex Options: {{{1
syn match texOption "[^\\]\zs#\d\+\|^#\d\+" syn match texOption "[^\\]\zs#\d\+\|^#\d\+"
@ -253,7 +259,7 @@ syn match texLigature "\\\([ijolL]\|ae\|oe\|ss\|AA\|AE\|OE\)$"
" \begin{}/\end{} section markers: {{{1 " \begin{}/\end{} section markers: {{{1
syn match texBeginEnd "\\begin\>\|\\end\>" nextgroup=texBeginEndName syn match texBeginEnd "\\begin\>\|\\end\>" nextgroup=texBeginEndName
if s:tex_fast =~ 'm' if s:tex_fast =~ 'm'
syn region texBeginEndName matchgroup=Delimiter start="{" end="}" contained nextgroup=texBeginEndModifier contains=texComment syn region texBeginEndName matchgroup=Delimiter start="{" end="}" contained nextgroup=texBeginEndModifier contains=texComment
syn region texBeginEndModifier matchgroup=Delimiter start="\[" end="]" contained contains=texComment,@NoSpell syn region texBeginEndModifier matchgroup=Delimiter start="\[" end="]" contained contains=texComment,@NoSpell
endif endif
@ -264,7 +270,7 @@ if s:tex_fast =~ 'm'
endif endif
" Preamble syntax-based folding support: {{{1 " Preamble syntax-based folding support: {{{1
if g:tex_fold_enabled && has("folding") if s:tex_fold_enabled && has("folding")
syn region texPreamble transparent fold start='\zs\\documentclass\>' end='\ze\\begin{document}' contains=texStyle,@texPreambleMatchGroup syn region texPreamble transparent fold start='\zs\\documentclass\>' end='\ze\\begin{document}' contains=texStyle,@texPreambleMatchGroup
endif endif
@ -342,28 +348,28 @@ syn match texSpaceCodeChar "`\\\=.\(\^.\)\==\(\d\|\"\x\{1,6}\|`.\)" contained
" Sections, subsections, etc: {{{1 " Sections, subsections, etc: {{{1
if s:tex_fast =~ 'p' if s:tex_fast =~ 'p'
if !exists("g:tex_nospell") || !g:tex_nospell if !s:tex_nospell
TexFold syn region texDocZone matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' contains=@texFoldGroup,@texDocGroup,@Spell TexFold syn region texDocZone matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' contains=@texFoldGroup,@texDocGroup,@Spell
TexFold syn region texPartZone matchgroup=texSection start='\\part\>' end='\ze\s*\\\%(part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texPartGroup,@Spell TexFold syn region texPartZone matchgroup=texSection start='\\part\>' end='\ze\s*\\\%(part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texPartGroup,@Spell
TexFold syn region texChapterZone matchgroup=texSection start='\\chapter\>' end='\ze\s*\\\%(chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texChapterGroup,@Spell TexFold syn region texChapterZone matchgroup=texSection start='\\chapter\>' end='\ze\s*\\\%(chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texChapterGroup,@Spell
TexFold syn region texSectionZone matchgroup=texSection start='\\section\>' end='\ze\s*\\\%(section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSectionGroup,@Spell TexFold syn region texSectionZone matchgroup=texSection start='\\section\>' end='\ze\s*\\\%(section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSectionGroup,@Spell
TexFold syn region texSubSectionZone matchgroup=texSection start='\\subsection\>' end='\ze\s*\\\%(\%(sub\)\=section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSectionGroup,@Spell TexFold syn region texSubSectionZone matchgroup=texSection start='\\subsection\>' end='\ze\s*\\\%(\%(sub\)\=section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSectionGroup,@Spell
TexFold syn region texSubSubSectionZone matchgroup=texSection start='\\subsubsection\>' end='\ze\s*\\\%(\%(sub\)\{,2}section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSubSectionGroup,@Spell TexFold syn region texSubSubSectionZone matchgroup=texSection start='\\subsubsection\>' end='\ze\s*\\\%(\%(sub\)\{,2}section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSubSectionGroup,@Spell
TexFold syn region texParaZone matchgroup=texSection start='\\paragraph\>' end='\ze\s*\\\%(paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texParaGroup,@Spell TexFold syn region texParaZone matchgroup=texSection start='\\paragraph\>' end='\ze\s*\\\%(paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texParaGroup,@Spell
TexFold syn region texSubParaZone matchgroup=texSection start='\\subparagraph\>' end='\ze\s*\\\%(\%(sub\)\=paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@Spell TexFold syn region texSubParaZone matchgroup=texSection start='\\subparagraph\>' end='\ze\s*\\\%(\%(sub\)\=paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@Spell
TexFold syn region texTitle matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}' contains=@texFoldGroup,@Spell TexFold syn region texTitle matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}' contains=@texFoldGroup,@Spell
TexFold syn region texAbstract matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}' contains=@texFoldGroup,@Spell TexFold syn region texAbstract matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}' contains=@texFoldGroup,@Spell
else else
TexFold syn region texDocZone matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' contains=@texFoldGroup,@texDocGroup TexFold syn region texDocZone matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' contains=@texFoldGroup,@texDocGroup
TexFold syn region texPartZone matchgroup=texSection start='\\part\>' end='\ze\s*\\\%(part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texPartGroup TexFold syn region texPartZone matchgroup=texSection start='\\part\>' end='\ze\s*\\\%(part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texPartGroup
TexFold syn region texChapterZone matchgroup=texSection start='\\chapter\>' end='\ze\s*\\\%(chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texChapterGroup TexFold syn region texChapterZone matchgroup=texSection start='\\chapter\>' end='\ze\s*\\\%(chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texChapterGroup
TexFold syn region texSectionZone matchgroup=texSection start='\\section\>' end='\ze\s*\\\%(section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSectionGroup TexFold syn region texSectionZone matchgroup=texSection start='\\section\>' end='\ze\s*\\\%(section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSectionGroup
TexFold syn region texSubSectionZone matchgroup=texSection start='\\subsection\>' end='\ze\s*\\\%(\%(sub\)\=section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSectionGroup TexFold syn region texSubSectionZone matchgroup=texSection start='\\subsection\>' end='\ze\s*\\\%(\%(sub\)\=section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSectionGroup
TexFold syn region texSubSubSectionZone matchgroup=texSection start='\\subsubsection\>' end='\ze\s*\\\%(\%(sub\)\{,2}section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSubSectionGroup TexFold syn region texSubSubSectionZone matchgroup=texSection start='\\subsubsection\>' end='\ze\s*\\\%(\%(sub\)\{,2}section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSubSectionGroup
TexFold syn region texParaZone matchgroup=texSection start='\\paragraph\>' end='\ze\s*\\\%(paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texParaGroup TexFold syn region texParaZone matchgroup=texSection start='\\paragraph\>' end='\ze\s*\\\%(paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texParaGroup
TexFold syn region texSubParaZone matchgroup=texSection start='\\subparagraph\>' end='\ze\s*\\\%(\%(sub\)\=paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup TexFold syn region texSubParaZone matchgroup=texSection start='\\subparagraph\>' end='\ze\s*\\\%(\%(sub\)\=paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup
TexFold syn region texTitle matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}' contains=@texFoldGroup TexFold syn region texTitle matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}' contains=@texFoldGroup
TexFold syn region texAbstract matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}' contains=@texFoldGroup TexFold syn region texAbstract matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}' contains=@texFoldGroup
endif endif
endif endif
@ -400,7 +406,7 @@ if !exists("g:tex_no_math")
fun! TexNewMathZone(sfx,mathzone,starform) fun! TexNewMathZone(sfx,mathzone,starform)
let grpname = "texMathZone".a:sfx let grpname = "texMathZone".a:sfx
let syncname = "texSyncMathZone".a:sfx let syncname = "texSyncMathZone".a:sfx
if g:tex_fold_enabled if s:tex_fold_enabled
let foldcmd= " fold" let foldcmd= " fold"
else else
let foldcmd= "" let foldcmd= ""
@ -449,7 +455,7 @@ if !exists("g:tex_no_math")
else else
syn region texMathZoneV matchgroup=Delimiter start="\\(" matchgroup=Delimiter end="\\)\|%stopzone\>" keepend contains=@texMathZoneGroup syn region texMathZoneV matchgroup=Delimiter start="\\(" matchgroup=Delimiter end="\\)\|%stopzone\>" keepend contains=@texMathZoneGroup
syn region texMathZoneW matchgroup=Delimiter start="\\\[" matchgroup=Delimiter end="\\]\|%stopzone\>" keepend contains=@texMathZoneGroup syn region texMathZoneW matchgroup=Delimiter start="\\\[" matchgroup=Delimiter end="\\]\|%stopzone\>" keepend contains=@texMathZoneGroup
syn region texMathZoneX matchgroup=Delimiter start="\$" skip="\\\\\|\\\$" matchgroup=Delimiter end="\$" end="%stopzone\>" contains=@texMathZoneGroup syn region texMathZoneX matchgroup=Delimiter start="\$" skip="\%(\\\\\)*\\\$" matchgroup=Delimiter end="\$" end="%stopzone\>" contains=@texMathZoneGroup
syn region texMathZoneY matchgroup=Delimiter start="\$\$" matchgroup=Delimiter end="\$\$" end="%stopzone\>" keepend contains=@texMathZoneGroup syn region texMathZoneY matchgroup=Delimiter start="\$\$" matchgroup=Delimiter end="\$\$" end="%stopzone\>" keepend contains=@texMathZoneGroup
endif endif
syn region texMathZoneZ matchgroup=texStatement start="\\ensuremath\s*{" matchgroup=texStatement end="}" end="%stopzone\>" contains=@texMathZoneGroup syn region texMathZoneZ matchgroup=texStatement start="\\ensuremath\s*{" matchgroup=texStatement end="}" end="%stopzone\>" contains=@texMathZoneGroup
@ -544,7 +550,7 @@ endif
" Comments: {{{1 " Comments: {{{1
" Normal TeX LaTeX : %.... " Normal TeX LaTeX : %....
" Documented TeX Format: ^^A... -and- leading %s (only) " Documented TeX Format: ^^A... -and- leading %s (only)
if !exists("g:tex_comment_nospell") || !g:tex_comment_nospell if !s:tex_comment_nospell
syn cluster texCommentGroup contains=texTodo,@Spell syn cluster texCommentGroup contains=texTodo,@Spell
else else
syn cluster texCommentGroup contains=texTodo,@NoSpell syn cluster texCommentGroup contains=texTodo,@NoSpell
@ -556,18 +562,18 @@ if s:extfname == "dtx"
syn match texComment "\^\^A.*$" contains=@texCommentGroup syn match texComment "\^\^A.*$" contains=@texCommentGroup
syn match texComment "^%\+" contains=@texCommentGroup syn match texComment "^%\+" contains=@texCommentGroup
else else
if g:tex_fold_enabled if s:tex_fold_enabled
" allows syntax-folding of 2 or more contiguous comment lines " allows syntax-folding of 2 or more contiguous comment lines
" single-line comments are not folded " single-line comments are not folded
syn match texComment "%.*$" contains=@texCommentGroup syn match texComment "%.*$" contains=@texCommentGroup
if s:tex_fast =~ 'c' if s:tex_fast =~ 'c'
TexFold syn region texComment start="^\zs\s*%.*\_s*%" skip="^\s*%" end='^\ze\s*[^%]' TexFold syn region texComment start="^\zs\s*%.*\_s*%" skip="^\s*%" end='^\ze\s*[^%]' contains=@texCommentGroup
TexFold syn region texNoSpell contained matchgroup=texComment start="%\s*nospell\s*{" end="%\s*nospell\s*}" contains=@texFoldGroup,@NoSpell TexFold syn region texNoSpell contained matchgroup=texComment start="%\s*nospell\s*{" end="%\s*nospell\s*}" contains=@texFoldGroup,@NoSpell
endif endif
else else
syn match texComment "%.*$" contains=@texCommentGroup syn match texComment "%.*$" contains=@texCommentGroup
if s:tex_fast =~ 'c' if s:tex_fast =~ 'c'
syn region texNoSpell contained matchgroup=texComment start="%\s*nospell\s*{" end="%\s*nospell\s*}" contains=@texFoldGroup,@NoSpell syn region texNoSpell contained matchgroup=texComment start="%\s*nospell\s*{" end="%\s*nospell\s*}" contains=@texFoldGroup,@NoSpell
endif endif
endif endif
endif endif

View File

@ -2,7 +2,7 @@
" Language: Vim 7.4 script " Language: Vim 7.4 script
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz> " Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: October 19, 2015 " Last Change: October 19, 2015
" Version: 7.4-35 " Version: 7.4-36
" Automatically generated keyword lists: {{{1 " Automatically generated keyword lists: {{{1
" Quit when a syntax file was already loaded {{{2 " Quit when a syntax file was already loaded {{{2
@ -157,7 +157,7 @@ syn match vimNumber "\<0[xX]\x\+"
syn match vimNumber "\%(^\|[^a-zA-Z]\)\zs#\x\{6}" syn match vimNumber "\%(^\|[^a-zA-Z]\)\zs#\x\{6}"
" All vimCommands are contained by vimIsCommands. {{{2 " All vimCommands are contained by vimIsCommands. {{{2
syn match vimCmdSep "[:|]\+" skipwhite nextgroup=vimAddress,vimAutoCmd,vimCommand,vimExtCmd,vimFilter,vimLet,vimMap,vimMark,vimSet,vimSyntax,vimUserCmd syn match vimCmdSep "[:|]\+" skipwhite nextgroup=vimAddress,vimAutoCmd,vimIsCommand,vimExtCmd,vimFilter,vimLet,vimMap,vimMark,vimSet,vimSyntax,vimUserCmd
syn match vimIsCommand "\<\h\w*\>" contains=vimCommand syn match vimIsCommand "\<\h\w*\>" contains=vimCommand
syn match vimVar contained "\<\h[a-zA-Z0-9#_]*\>" syn match vimVar contained "\<\h[a-zA-Z0-9#_]*\>"
syn match vimVar "\<[bwglsav]:\h[a-zA-Z0-9#_]*\>" syn match vimVar "\<[bwglsav]:\h[a-zA-Z0-9#_]*\>"
@ -190,8 +190,12 @@ syn keyword vimFTOption contained detect indent off on plugin
" Augroup : vimAugroupError removed because long augroups caused sync'ing problems. {{{2 " Augroup : vimAugroupError removed because long augroups caused sync'ing problems. {{{2
" ======= : Trade-off: Increasing synclines with slower editing vs augroup END error checking. " ======= : Trade-off: Increasing synclines with slower editing vs augroup END error checking.
syn cluster vimAugroupList contains=vimAugroup,vimIsCommand,vimCommand,vimUserCmd,vimExecute,vimNotFunc,vimFuncName,vimFunction,vimFunctionError,vimLineComment,vimMap,vimSpecFile,vimOper,vimNumber,vimOperParen,vimComment,vimString,vimSubst,vimMark,vimRegister,vimAddress,vimFilter,vimCmplxRepeat,vimComment,vimLet,vimSet,vimAutoCmd,vimRegion,vimSynLine,vimNotation,vimCtrlChar,vimFuncVar,vimContinue syn cluster vimAugroupList contains=vimAugroup,vimIsCommand,vimCommand,vimUserCmd,vimExecute,vimNotFunc,vimFuncName,vimFunction,vimFunctionError,vimLineComment,vimMap,vimSpecFile,vimOper,vimNumber,vimOperParen,vimComment,vimString,vimSubst,vimMark,vimRegister,vimAddress,vimFilter,vimCmplxRepeat,vimComment,vimLet,vimSet,vimAutoCmd,vimRegion,vimSynLine,vimNotation,vimCtrlChar,vimFuncVar,vimContinue
VimFolda syn region vimAugroup matchgroup=vimStatement start="\<aug\%[roup]\ze\s\+\%([eE][nN][dD]\>\)\@3<!\h\w*" matchgroup=vimStatement end="\<aug\%[roup]\>\s\+[eE][nN][dD]\>" contains=vimAutoCmd,@vimAugroupList if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'a'
syn match vimAugroup "aug\%[roup]!" contains=vimAugroupKey syn region vimAugroup fold matchgroup=vimAugroupKey start="\<aug\%[roup]\>\ze\s\+\K\k*" end="\<aug\%[roup]\>\ze\s\+[eE][nN][dD]\>" contains=vimAutoCmd,@vimAugroupList
else
syn region vimAugroup matchgroup=vimAugroupKey start="\<aug\%[roup]\>\ze\s\+\K\k*" end="\<aug\%[roup]\>\ze\s\+[eE][nN][dD]\>" contains=vimAutoCmd,@vimAugroupList
endif
syn match vimAugroup "aug\%[roup]!" contains=vimAugroupKey
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_noaugrouperror") if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_noaugrouperror")
syn match vimAugroupError "\<aug\%[roup]\>\s\+[eE][nN][dD]\>" syn match vimAugroupError "\<aug\%[roup]\>\s\+[eE][nN][dD]\>"
endif endif
@ -199,12 +203,11 @@ syn keyword vimAugroupKey contained aug[roup]
" Operators: {{{2 " Operators: {{{2
" ========= " =========
" COMBAK: vimOperParen used to have "oneline"
syn cluster vimOperGroup contains=vimEnvvar,vimFunc,vimFuncVar,vimOper,vimOperParen,vimNumber,vimString,vimRegister,vimContinue syn cluster vimOperGroup contains=vimEnvvar,vimFunc,vimFuncVar,vimOper,vimOperParen,vimNumber,vimString,vimRegister,vimContinue
syn match vimOper "\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}" skipwhite nextgroup=vimString,vimSpecFile syn match vimOper "\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}" skipwhite nextgroup=vimString,vimSpecFile
syn match vimOper "||\|&&\|[-+.]" skipwhite nextgroup=vimString,vimSpecFile syn match vimOper "||\|&&\|[-+.]" skipwhite nextgroup=vimString,vimSpecFile
syn region vimOperParen matchgroup=vimParenSep start="(" end=")" contains=@vimOperGroup syn region vimOperParen matchgroup=vimParenSep start="(" end=")" contains=@vimOperGroup
syn region vimOperParen matchgroup=vimSep start="{" end="}" contains=@vimOperGroup nextgroup=vimVar,vimFuncVar syn region vimOperParen matchgroup=vimSep start="{" end="}" contains=@vimOperGroup nextgroup=vimVar,vimFuncVar
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_noopererror") if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_noopererror")
syn match vimOperError ")" syn match vimOperError ")"
endif endif
@ -212,11 +215,15 @@ endif
" Functions : Tag is provided for those who wish to highlight tagged functions {{{2 " Functions : Tag is provided for those who wish to highlight tagged functions {{{2
" ========= " =========
syn cluster vimFuncList contains=vimCommand,vimFunctionError,vimFuncKey,Tag,vimFuncSID syn cluster vimFuncList contains=vimCommand,vimFunctionError,vimFuncKey,Tag,vimFuncSID
syn cluster vimFuncBodyList contains=vimAbb,vimAddress,vimAugroupKey,vimAutoCmd,vimCmplxRepeat,vimComment,vimComment,vimContinue,vimCtrlChar,vimEcho,vimEchoHL,vimExecute,vimIf,vimIsCommand,vimFBVar,vimFunc,vimFunction,vimFuncVar,vimHighlight,vimIsCommand,vimLet,vimLineComment,vimMap,vimMark,vimNorm,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegion,vimRegister,vimSearch,vimSet,vimSpecFile,vimString,vimSubst,vimSynLine,vimUnmap,vimUserCommand syn cluster vimFuncBodyList contains=vimAbb,vimAddress,vimAugroupKey,vimAutoCmd,vimCmplxRepeat,vimComment,vimComment,vimContinue,vimCtrlChar,vimEcho,vimEchoHL,vimExecute,vimIf,vimIsCommand,vimFBVar,vimFunc,vimFunction,vimFuncVar,vimGlobal,vimHighlight,vimIsCommand,vimLet,vimLineComment,vimMap,vimMark,vimNorm,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegion,vimRegister,vimSet,vimSpecFile,vimString,vimSubst,vimSynLine,vimUnmap,vimUserCommand
syn match vimFunction "\<fu\%[nction]!\=\s\+\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)*\ze\s*(" contains=@vimFuncList nextgroup=vimFuncBody syn match vimFunction "\<fu\%[nction]!\=\s\+\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)*\ze\s*(" contains=@vimFuncList nextgroup=vimFuncBody
VimFoldf syn region vimFuncBody contained start="\ze(" matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)" contains=@vimFuncBodyList if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'f'
syn match vimFuncVar contained "a:\(\h\w*\|\d\+\)" syn region vimFuncBody contained fold start="\ze\s*(" matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)" contains=@vimFuncBodyList
else
syn region vimFuncBody contained start="\ze\s*(" matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)" contains=@vimFuncBodyList
endif
syn match vimFuncVar contained "a:\(\K\k*\|\d\+\)"
syn match vimFuncSID contained "\c<sid>\|\<s:" syn match vimFuncSID contained "\c<sid>\|\<s:"
syn keyword vimFuncKey contained fu[nction] syn keyword vimFuncKey contained fu[nction]
syn match vimFuncBlank contained "\s\+" syn match vimFuncBlank contained "\s\+"
@ -237,14 +244,16 @@ syn match vimSpecFileMod "\(:[phtre]\)\+" contained
" ======================= " =======================
syn cluster vimUserCmdList contains=vimAddress,vimSyntax,vimHighlight,vimAutoCmd,vimCmplxRepeat,vimComment,vimCtrlChar,vimEscapeBrace,vimFilter,vimFunc,vimFuncName,vimFunction,vimFunctionError,vimIsCommand,vimMark,vimNotation,vimNumber,vimOper,vimRegion,vimRegister,vimLet,vimSet,vimSetEqual,vimSetString,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange,vimSynLine syn cluster vimUserCmdList contains=vimAddress,vimSyntax,vimHighlight,vimAutoCmd,vimCmplxRepeat,vimComment,vimCtrlChar,vimEscapeBrace,vimFilter,vimFunc,vimFuncName,vimFunction,vimFunctionError,vimIsCommand,vimMark,vimNotation,vimNumber,vimOper,vimRegion,vimRegister,vimLet,vimSet,vimSetEqual,vimSetString,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange,vimSynLine
syn keyword vimUserCommand contained com[mand] syn keyword vimUserCommand contained com[mand]
syn match vimUserCmd "\<com\%[mand]!\=\>.*$" contains=vimUserAttrb,vimUserCommand,@vimUserCmdList syn match vimUserCmd "\<com\%[mand]!\=\>.*$" contains=vimUserAttrb,vimUserAttrbError,vimUserCommand,@vimUserCmdList
syn match vimUserAttrb contained "-n\%[args]=[01*?+]" contains=vimUserAttrbKey,vimOper syn match vimUserAttrbError contained "-\a\+\ze\s"
syn match vimUserAttrb contained "-com\%[plete]=" contains=vimUserAttrbKey,vimOper nextgroup=vimUserAttrbCmplt,vimUserCmdError syn match vimUserAttrb contained "-nargs=[01*?+]" contains=vimUserAttrbKey,vimOper
syn match vimUserAttrb contained "-ra\%[nge]\(=%\|=\d\+\)\=" contains=vimNumber,vimOper,vimUserAttrbKey syn match vimUserAttrb contained "-complete=" contains=vimUserAttrbKey,vimOper nextgroup=vimUserAttrbCmplt,vimUserCmdError
syn match vimUserAttrb contained "-cou\%[nt]=\d\+" contains=vimNumber,vimOper,vimUserAttrbKey syn match vimUserAttrb contained "-range\(=%\|=\d\+\)\=" contains=vimNumber,vimOper,vimUserAttrbKey
syn match vimUserAttrb contained "-bang\=\>" contains=vimOper,vimUserAttrbKey syn match vimUserAttrb contained "-count\(=\d\+\)\=" contains=vimNumber,vimOper,vimUserAttrbKey
syn match vimUserAttrb contained "-bar\>" contains=vimOper,vimUserAttrbKey syn match vimUserAttrb contained "-bang\>" contains=vimOper,vimUserAttrbKey
syn match vimUserAttrb contained "-re\%[gister]\>" contains=vimOper,vimUserAttrbKey syn match vimUserAttrb contained "-bar\>" contains=vimOper,vimUserAttrbKey
syn match vimUserAttrb contained "-buffer\>" contains=vimOper,vimUserAttrbKey
syn match vimUserAttrb contained "-register\>" contains=vimOper,vimUserAttrbKey
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_nousercmderror") if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_nousercmderror")
syn match vimUserCmdError contained "\S\+\>" syn match vimUserCmdError contained "\S\+\>"
endif endif
@ -318,7 +327,7 @@ syn match vimMark "\<norm\%[al]\s\zs'[a-zA-Z0-9]" nextgroup=vimOper,vimMarkNumbe
syn match vimMarkNumber "[-+]\d\+" nextgroup=vimSubst contained contains=vimOper syn match vimMarkNumber "[-+]\d\+" nextgroup=vimSubst contained contains=vimOper
syn match vimPlainMark contained "'[a-zA-Z0-9]" syn match vimPlainMark contained "'[a-zA-Z0-9]"
syn match vimRegister '[^,;[{]\zs"[a-zA-Z0-9.%#:_\-/]\ze[^a-zA-Z_":0-9]' syn match vimRegister '[^,;[{: \t]\zs"[a-zA-Z0-9.%#:_\-/]\ze[^a-zA-Z_":0-9]'
syn match vimRegister '\<norm\s\+\zs"[a-zA-Z0-9]' syn match vimRegister '\<norm\s\+\zs"[a-zA-Z0-9]'
syn match vimRegister '\<normal\s\+\zs"[a-zA-Z0-9]' syn match vimRegister '\<normal\s\+\zs"[a-zA-Z0-9]'
syn match vimRegister '@"' syn match vimRegister '@"'
@ -338,7 +347,7 @@ syn match vimCmplxRepeat '@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\>\)'
syn region vimSet matchgroup=vimCommand start="\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skip="\%(\\\\\)*\\." end="$" matchgroup=vimNotation end="<[cC][rR]>" keepend oneline contains=vimSetEqual,vimOption,vimErrSetting,vimComment,vimSetString,vimSetMod syn region vimSet matchgroup=vimCommand start="\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skip="\%(\\\\\)*\\." end="$" matchgroup=vimNotation end="<[cC][rR]>" keepend oneline contains=vimSetEqual,vimOption,vimErrSetting,vimComment,vimSetString,vimSetMod
syn region vimSetEqual contained start="[=:]\|[-+^]=" skip="\\\\\|\\\s" end="[| \t]\|$"me=e-1 contains=vimCtrlChar,vimSetSep,vimNotation,vimEnvvar oneline syn region vimSetEqual contained start="[=:]\|[-+^]=" skip="\\\\\|\\\s" end="[| \t]\|$"me=e-1 contains=vimCtrlChar,vimSetSep,vimNotation,vimEnvvar oneline
syn region vimSetString contained start=+="+hs=s+1 skip=+\\\\\|\\"+ end=+"+ contains=vimCtrlChar syn region vimSetString contained start=+="+hs=s+1 skip=+\\\\\|\\"+ end=+"+ contains=vimCtrlChar
syn match vimSetSep contained "[,:]" syn match vimSetSep contained "[,:]" skipwhite nextgroup=vimCommand
syn match vimSetMod contained "&vim\=\|[!&?<]\|all&" syn match vimSetMod contained "&vim\=\|[!&?<]\|all&"
" Let {{{2 " Let {{{2
@ -373,11 +382,11 @@ syn keyword vimMap mapc[lear] smapc[lear]
syn keyword vimUnmap cu[nmap] iu[nmap] lu[nmap] nun[map] ou[nmap] sunm[ap] unm[ap] unm[ap] vu[nmap] xu[nmap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs syn keyword vimUnmap cu[nmap] iu[nmap] lu[nmap] nun[map] ou[nmap] sunm[ap] unm[ap] unm[ap] vu[nmap] xu[nmap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs
syn match vimMapLhs contained "\S\+" contains=vimNotation,vimCtrlChar skipwhite nextgroup=vimMapRhs syn match vimMapLhs contained "\S\+" contains=vimNotation,vimCtrlChar skipwhite nextgroup=vimMapRhs
syn match vimMapBang contained "!" skipwhite nextgroup=vimMapMod,vimMapLhs syn match vimMapBang contained "!" skipwhite nextgroup=vimMapMod,vimMapLhs
syn match vimMapMod contained "\c<\(buffer\|expr\|\(local\)\=leader\|plug\|script\|sid\|unique\|silent\)\+>" contains=vimMapModKey,vimMapModErr skipwhite nextgroup=vimMapMod,vimMapLhs syn match vimMapMod contained "\c<\(buffer\|expr\|\(local\)\=leader\|nowait\|plug\|script\|sid\|unique\|silent\)\+>" contains=vimMapModKey,vimMapModErr skipwhite nextgroup=vimMapMod,vimMapLhs
syn match vimMapRhs contained ".*" contains=vimNotation,vimCtrlChar skipnl nextgroup=vimMapRhsExtend syn match vimMapRhs contained ".*" contains=vimNotation,vimCtrlChar skipnl nextgroup=vimMapRhsExtend
syn match vimMapRhsExtend contained "^\s*\\.*$" contains=vimNotation,vimCtrlChar,vimContinue skipnl nextgroup=vimMapRhsExtend syn match vimMapRhsExtend contained "^\s*\\.*$" contains=vimContinue
syn case ignore syn case ignore
syn keyword vimMapModKey contained buffer expr leader localleader plug script sid silent unique syn keyword vimMapModKey contained buffer expr leader localleader nowait plug script sid silent unique
syn case match syn case match
" Menus {{{2 " Menus {{{2
@ -597,12 +606,12 @@ syn region vimGlobal matchgroup=Statement start='\<v\%[global]!\=/' skip='\\.' e
" Allows users to specify the type of embedded script highlighting " Allows users to specify the type of embedded script highlighting
" they want: (perl/python/ruby/tcl support) " they want: (perl/python/ruby/tcl support)
" g:vimsyn_embed == 0 : don't embed any scripts " g:vimsyn_embed == 0 : don't embed any scripts
" g:vimsyn_embed ~= 'l' : embed lua (but only if vim supports it) " g:vimsyn_embed =~ 'l' : embed lua (but only if vim supports it)
" g:vimsyn_embed ~= 'm' : embed mzscheme (but only if vim supports it) " g:vimsyn_embed =~ 'm' : embed mzscheme (but only if vim supports it)
" g:vimsyn_embed ~= 'p' : embed perl (but only if vim supports it) " g:vimsyn_embed =~ 'p' : embed perl (but only if vim supports it)
" g:vimsyn_embed ~= 'P' : embed python (but only if vim supports it) " g:vimsyn_embed =~ 'P' : embed python (but only if vim supports it)
" g:vimsyn_embed ~= 'r' : embed ruby (but only if vim supports it) " g:vimsyn_embed =~ 'r' : embed ruby (but only if vim supports it)
" g:vimsyn_embed ~= 't' : embed tcl (but only if vim supports it) " g:vimsyn_embed =~ 't' : embed tcl (but only if vim supports it)
if !exists("g:vimsyn_embed") if !exists("g:vimsyn_embed")
let g:vimsyn_embed= "lmpPr" let g:vimsyn_embed= "lmpPr"
endif endif
@ -688,6 +697,8 @@ if g:vimsyn_embed =~ 'P' && (has("python") || has("python3")) && filereadable(s:
exe "syn include @vimPythonScript ".s:pythonpath exe "syn include @vimPythonScript ".s:pythonpath
VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPythonScript VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPythonScript
VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*$+ end=+\.$+ contains=@vimPythonScript VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*$+ end=+\.$+ contains=@vimPythonScript
VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+Py\%[thon]2or3\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPythonScript
VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+Py\%[thon]2or3\=\s*<<\s*$+ end=+\.$+ contains=@vimPythonScript
syn cluster vimFuncBodyList add=vimPythonRegion syn cluster vimFuncBodyList add=vimPythonRegion
else else
syn region vimEmbedError start=+py\%[thon]3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ syn region vimEmbedError start=+py\%[thon]3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+
@ -770,7 +781,6 @@ syn sync match vimAugroupSyncA groupthere NONE "\<aug\%[roup]\>\s\+[eE][nN][dD]"
" Highlighting Settings {{{2 " Highlighting Settings {{{2
" ==================== " ====================
if !exists("g:vimsyn_noerror") if !exists("g:vimsyn_noerror")
hi def link vimBehaveError vimError hi def link vimBehaveError vimError
hi def link vimCollClassErr vimError hi def link vimCollClassErr vimError
@ -925,6 +935,7 @@ hi def link vimUserAttrbCmpltFunc Special
hi def link vimUserAttrbCmplt vimSpecial hi def link vimUserAttrbCmplt vimSpecial
hi def link vimUserAttrbKey vimOption hi def link vimUserAttrbKey vimOption
hi def link vimUserAttrb vimSpecial hi def link vimUserAttrb vimSpecial
hi def link vimUserAttrbError Error
hi def link vimUserCmdError Error hi def link vimUserCmdError Error
hi def link vimUserCommand vimCommand hi def link vimUserCommand vimCommand
hi def link vimUserFunc Normal hi def link vimUserFunc Normal