runtime(vim): Update base-syntax, improve :set highlighting

Commit: 
https://github.com/vim/vim/commit/ddbb6fe2d0344e93436c5602b7a06169f49a9b52
Author: Doug Kearns <dougkea...@gmail.com>
Date:   Wed Jul 24 20:21:22 2024 +0200

    runtime(vim): Update base-syntax, improve :set highlighting
    
    - Match bang, "all" and "termcap" options, and trailing command
      separator "|".
    - Highlight set assignment operators.
    - Match multiline :set and multiline option values.
    - Mention the newer "0o" octal prefix at :help :set=.
    
    closes: #15329
    
    Signed-off-by: Doug Kearns <dougkea...@gmail.com>
    Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 30214014d..52714da2d 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*  For Vim version 9.1.  Last change: 2024 Jul 16
+*options.txt*  For Vim version 9.1.  Last change: 2024 Jul 24
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -76,7 +76,8 @@ achieve special effects.  These options come in three forms:
 :se[t] {option}:{value}
                        Set string or number option to {value}.
                        For numeric options the value can be given in decimal,
-                       hex (preceded with 0x) or octal (preceded with '0').
+                       hex (preceded with 0x) or octal (preceded with '0' or
+                       '0o').
                        The old value can be inserted by typing 'wildchar' (by
                        default this is a <Tab> or CTRL-E if 'compatible' is
                        set). Many string options with fixed syntax and names
diff --git a/runtime/syntax/generator/vim.vim.base 
b/runtime/syntax/generator/vim.vim.base
index 75e451d43..4666d7158 100644
--- a/runtime/syntax/generator/vim.vim.base
+++ b/runtime/syntax/generator/vim.vim.base
@@ -35,7 +35,7 @@ syn match   vimCommand contained      "\<z[-+^.=]\=\>"
 syn keyword vimStdPlugin contained     Arguments Asm Break Cfilter Clear 
Continue DiffOrig Evaluate Finish Gdb Lfilter Man Over Program Run S Source 
Step Stop Termdebug TermdebugCommand TOhtml Until Winbar XMLent XMLns
 
 " vimOptions are caught only when contained in a vimSet {{{2
-" GEN_SYN_VIM: vimOption normal, START_STR='syn keyword vimOption contained', 
END_STR=''
+" GEN_SYN_VIM: vimOption normal, START_STR='syn keyword vimOption contained', 
END_STR='skipwhite nextgroup=vimSetEqual,vimSetMod'
 
 " vimOptions: These are the turn-off setting variants {{{2
 " GEN_SYN_VIM: vimOption turn-off, START_STR='syn keyword vimOption 
contained', END_STR=''
@@ -44,7 +44,7 @@ syn keyword vimStdPlugin contained    Arguments Asm Break 
Cfilter Clear Continue Di
 " GEN_SYN_VIM: vimOption invertible, START_STR='syn keyword vimOption 
contained', END_STR=''
 
 " termcap codes (which can also be set) {{{2
-" GEN_SYN_VIM: vimOption term output code, START_STR='syn keyword vimOption 
contained', END_STR=''
+" GEN_SYN_VIM: vimOption term output code, START_STR='syn keyword vimOption 
contained', END_STR='skipwhite nextgroup=vimSetEqual,vimSetMod'
 " term key codes
 syn keyword vimOption contained        t_F1 t_F2 t_F3 t_F4 t_F5 t_F6 t_F7 t_F8 
t_F9 t_k1 t_K1 t_k2 t_k3 t_K3 t_k4 t_K4 t_k5 t_K5 t_k6 t_K6 t_k7 t_K7 t_k8 t_K8 
t_k9 t_K9 t_KA t_kb t_kB t_KB t_KC t_kd t_kD t_KD t_KE t_KF t_KG t_kh t_KH t_kI 
t_KI t_KJ t_KK t_kl t_KL t_kN t_kP t_kr t_ku
 syn match   vimOption contained        "t_%1"
@@ -505,11 +505,15 @@ syn match vimCmplxRepeat  
'[^a-zA-Z_/\()]q[0-9a-zA-Z"]\>'lc=1
 syn match      vimCmplxRepeat  '@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\>\)'
 
 " Set command and associated set-options (vimOptions) with comment {{{2
-syn region     vimSet          matchgroup=vimCommand 
start="\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skip="\%(\\\)*\.
\@!" end="$" end="|" matchgroup=vimNotation end="<[cC][rR]>" keepend 
contains=vimSetEqual,vimOption,vimErrSetting,@vimComment,vimSetString,vimSetMod
-syn region     vimSetEqual     contained       start="[=:]\|[-+^]=" 
skip="\\\|\\s" end="[|     ]"me=e-1 end="$"        
contains=vimCtrlChar,vimSetSep,vimNotation,vimEnvvar
-syn region     vimSetString    contained       start=+="+hs=s+1        
skip=+\\\|\"+  end=+"+          contains=vimCtrlChar
+syn match      vimSet          "\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" 
skipwhite nextgroup=vimSetBang,vimSetRegion
+syn region     vimSetRegion    contained       start="\S" skip=+\\\|\|\|
\s*\\|
\s*["#]\ + matchgroup=vimCmdSep end="|" end="$" matchgroup=vimNotation 
end="<[cC][rR]>" keepend 
contains=@vimComment,@vimContinue,vimErrSetting,vimOption,vimSetAll,vimSetTermcap
+syn region     vimSetEqual     contained       matchgroup=vimOper 
start="[=:]\|[-+^]=" skip=+\\\|\|\|\\s\|
\s*\\|
\s*["#]\ \|^\s*\\|^\s*["#]\ + matchgroup=vimCmdSep end="|" end="\ze\s" end="$" 
contains=@vimContinue,vimCtrlChar,vimEnvvar,vimNotation,vimSetSep
+syn match      vimSetBang      contained       " \@1<=!" skipwhite 
nextgroup=vimSetAll,vimSetTermcap
+syn keyword    vimSetAll       contained       all nextgroup=vimSetMod
+syn keyword    vimSetTermcap   contained       termcap
+syn region     vimSetString    contained       start=+="+hs=s+1        
skip=+\\\|\"+  end=+"+  contains=vimCtrlChar
 syn match      vimSetSep       contained       "[,:]"
-syn match      vimSetMod       contained       "&vim\=\|[!&?<]\|all&"
+syn match      vimSetMod       contained       " \@1<=\%(&vim\=\|[!&?<]\)"
 
 " Variable Declarations: {{{2
 " =====================
@@ -1228,9 +1232,13 @@ if !exists("skip_vim_syntax_inits")
  hi def link vimSearchDelim    Statement
  hi def link vimSearch vimString
  hi def link vimSep    Delimiter
+ hi def link vimSet    vimCommand
+ hi def link vimSetAll vimOption
+ hi def link vimSetBang        vimBang
  hi def link vimSetMod vimOption
- hi def link vimSetSep Statement
+ hi def link vimSetSep vimSep
  hi def link vimSetString      vimString
+ hi def link vimSetTermcap     vimOption
  hi def link vimShebang        PreProc
  hi def link vimSleep  vimCommand
  hi def link vimSleepArg       Constant
diff --git a/runtime/syntax/testdir/dumps/vim9_comment_03.dump 
b/runtime/syntax/testdir/dumps/vim9_comment_03.dump
index 0e424aba3..8a0fda883 100644
--- a/runtime/syntax/testdir/dumps/vim9_comment_03.dump
+++ b/runtime/syntax/testdir/dumps/vim9_comment_03.dump
@@ -5,7 +5,7 @@
 |#+0#0000e05&| +0#0000000&|I+0#e000e06&|s@1|u|e|:| +0#0000e05&|#|1|3|0|4|7| 
+0#0000000&@59
 > @74
 |i+0#af5f00255&|f| 
+0#0000000&|!+0#af5f00255&|e+0#00e0e07&|x|i|s|t|s|(+0#e000e06&|"+0#e000002&|:|D|i|f@1|O|r|i|g|"|)+0#e000e06&|
 +0#0000000&@51
-@2|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|D|i|f@1|O|r|i|g| 
|v+0#af5f00255&|e|r|t| +0#0000000&|n+0#af5f00255&|e|w| +0#0000000&||| 
|s+0#af5f00255&|e|t| +0#0000000&|b+0#e000e06&|t|=+0#0000000&|n|o|f|i|l|e| 
||+0#af5f00255&| +0#0000000&|r+0#af5f00255&| 
+0#0000000&|++0#af5f00255&@1|e|d|i|t| +0#0000000&|%+0#af5f00255&@1| 
+0#0000000&||| |0+0#e000002&|d+0#0000000&|_| ||| |d+0#af5f00255&|i|f@1|t|h|i|s| 
+0#0000000&
+@2|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|D|i|f@1|O|r|i|g| 
|v+0#af5f00255&|e|r|t| +0#0000000&|n+0#af5f00255&|e|w| +0#0000000&||| 
|s+0#af5f00255&|e|t| 
+0#0000000&|b+0#e000e06&|t|=+0#af5f00255&|n+0#0000000&|o|f|i|l|e| ||| 
|r+0#af5f00255&| +0#0000000&|++0#af5f00255&@1|e|d|i|t| 
+0#0000000&|%+0#af5f00255&@1| +0#0000000&||| |0+0#e000002&|d+0#0000000&|_| ||| 
|d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000&
 @18|\+0#e000e06&| +0#0000000&||| |w+0#af5f00255&|i|n|c|m|d| 
+0#0000000&|p+0#af5f00255&| +0#0000000&||| |d+0#af5f00255&|i|f@1|t|h|i|s| 
+0#0000000&@33
 |e+0#af5f00255&|n|d|i|f| +0#0000000&@69
 @75
diff --git a/runtime/syntax/testdir/dumps/vim_comment_03.dump 
b/runtime/syntax/testdir/dumps/vim_comment_03.dump
index 2d40f6cc9..70c951979 100644
--- a/runtime/syntax/testdir/dumps/vim_comment_03.dump
+++ b/runtime/syntax/testdir/dumps/vim_comment_03.dump
@@ -2,7 +2,7 @@
 |"+0#0000e05&| +0#0000000&|I+0#e000e06&|s@1|u|e|:| +0#0000e05&|#|1|3|0|4|7| 
+0#0000000&@59
 @75
 |i+0#af5f00255&|f| 
+0#0000000&|!+0#af5f00255&|e+0#00e0e07&|x|i|s|t|s|(+0#e000e06&|"+0#e000002&|:|D|i|f@1|O|r|i|g|"|)+0#e000e06&|
 +0#0000000&@51
-@2|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|D|i|f@1|O|r|i|g| 
|v+0#af5f00255&|e|r|t| +0#0000000&|n+0#af5f00255&|e|w| +0#0000000&||| 
|s+0#af5f00255&|e|t| +0#0000000&|b+0#e000e06&|t|=+0#0000000&|n|o|f|i|l|e| 
||+0#af5f00255&| +0#0000000&|r+0#af5f00255&| 
+0#0000000&|++0#af5f00255&@1|e|d|i|t| +0#0000000&|#| ||| 
|0+0#e000002&|d+0#0000000&|_| ||| |d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000&@1
+@2|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|D|i|f@1|O|r|i|g| 
|v+0#af5f00255&|e|r|t| +0#0000000&|n+0#af5f00255&|e|w| +0#0000000&||| 
|s+0#af5f00255&|e|t| 
+0#0000000&|b+0#e000e06&|t|=+0#af5f00255&|n+0#0000000&|o|f|i|l|e| ||| 
|r+0#af5f00255&| +0#0000000&|++0#af5f00255&@1|e|d|i|t| +0#0000000&|#| ||| 
|0+0#e000002&|d+0#0000000&|_| ||| |d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000&@1
 @18>\+0#e000e06&| +0#0000000&||| |w+0#af5f00255&|i|n|c|m|d| 
+0#0000000&|p+0#af5f00255&| +0#0000000&||| |d+0#af5f00255&|i|f@1|t|h|i|s| 
+0#0000000&@33
 |e+0#af5f00255&|n|d|i|f| +0#0000000&@69
 @75
diff --git a/runtime/syntax/testdir/dumps/vim_ex_set_00.dump 
b/runtime/syntax/testdir/dumps/vim_ex_set_00.dump
new file mode 100644
index 000000000..3f0471b62
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim_ex_set_00.dump
@@ -0,0 +1,20 @@
+>"+0#0000e05#ffffff0| |V|i|m| |:|s|e|t| |c|o|m@1|a|n|d| +0#0000000&@56
+@75
+|s+0#af5f00255&|e|t| +0#0000000&@71
+|s+0#af5f00255&|e|t|!| +0#0000000&@70
+|s+0#af5f00255&|e|t| +0#0000000&|a+0#e000e06&|l@1| +0#0000000&@67
+|s+0#af5f00255&|e|t|!| +0#0000000&|a+0#e000e06&|l@1| +0#0000000&@66
+|s+0#af5f00255&|e|t| +0#0000000&|t+0#e000e06&|e|r|m|c|a|p| +0#0000000&@63
+|s+0#af5f00255&|e|t|!| +0#0000000&|t+0#e000e06&|e|r|m|c|a|p| +0#0000000&@62
+@75
+|s+0#af5f00255&|e|t| +0#0000000&|a+0#e000e06&|l|e|p|h|?| +0#0000000&@64
+|s+0#af5f00255&|e|t| +0#0000000&|a+0#e000e06&|l|e|p|h| +0#0000000&@65
+@75
+|s+0#af5f00255&|e|t| +0#0000000&|n+0#e000e06&|o|a|l@1|o|w|r|e|v|i|n|s| 
+0#0000000&@57
+@75
+|s+0#af5f00255&|e|t| +0#0000000&|a+0#e000e06&|l@1|o|w|r|e|v|i|n|s|!| 
+0#0000000&@58
+|s+0#af5f00255&|e|t| +0#0000000&|i+0#e000e06&|n|v|a|l@1|o|w|r|e|v|i|n|s| 
+0#0000000&@56
+@75
+|s+0#af5f00255&|e|t| +0#0000000&|a+0#e000e06&|l|e|p|h|&| +0#0000000&@64
+|s+0#af5f00255&|e|t| +0#0000000&|a+0#e000e06&|l|e|p|h|&|v|i| +0#0000000&@62
+@57|1|,|1| @10|T|o|p| 
diff --git a/runtime/syntax/testdir/dumps/vim_ex_set_01.dump 
b/runtime/syntax/testdir/dumps/vim_ex_set_01.dump
new file mode 100644
index 000000000..012170ecc
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim_ex_set_01.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@74
+|s+0#af5f00255&|e|t| +0#0000000&|a+0#e000e06&|l@1|o|w|r|e|v|i|n|s|!| 
+0#0000000&@58
+|s+0#af5f00255&|e|t| +0#0000000&|i+0#e000e06&|n|v|a|l@1|o|w|r|e|v|i|n|s| 
+0#0000000&@56
+@75
+|s+0#af5f00255&|e|t| +0#0000000&|a+0#e000e06&|l|e|p|h|&| +0#0000000&@64
+>s+0#af5f00255&|e|t| +0#0000000&|a+0#e000e06&|l|e|p|h|&|v|i| +0#0000000&@62
+|s+0#af5f00255&|e|t| +0#0000000&|a+0#e000e06&|l|e|p|h|&|v|i|m| +0#0000000&@61
+@75
+|s+0#af5f00255&|e|t| +0#0000000&|a+0#e000e06&|l@1|&| +0#0000000&@66
+@75
+|s+0#af5f00255&|e|t| 
+0#0000000&|a+0#e000e06&|l|e|p|h|=+0#af5f00255&|1+0#0000000&|2|8| @61
+|s+0#af5f00255&|e|t| 
+0#0000000&|a+0#e000e06&|l|e|p|h|:+0#af5f00255&|1+0#0000000&|2|8| @61
+@75
+|s+0#af5f00255&|e|t| +0#0000000&|a+0#e000e06&|l|e|p|h| 
+0#0000000&|=+0#af5f00255&|1+0#0000000&|2|8| @60
+|s+0#af5f00255&|e|t| +0#0000000&|a+0#e000e06&|l|e|p|h| 
+0#0000000&|:+0#af5f00255&|1+0#0000000&|2|8| @60
+@75
+|s+0#af5f00255&|e|t| 
+0#0000000&|a+0#e000e06&|l|e|p|h|++0#af5f00255&|=|9+0#0000000&|6| @61
+|s+0#af5f00255&|e|t| 
+0#0000000&|a+0#e000e06&|l|e|p|h|^+0#af5f00255&|=|2+0#0000000&| @62
+|s+0#af5f00255&|e|t| 
+0#0000000&|a+0#e000e06&|l|e|p|h|-+0#af5f00255&|=|9+0#0000000&|6| @61
+@57|1|9|,|1| @9|1|7|%| 
diff --git a/runtime/syntax/testdir/dumps/vim_ex_set_02.dump 
b/runtime/syntax/testdir/dumps/vim_ex_set_02.dump
new file mode 100644
index 000000000..d6328d2db
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim_ex_set_02.dump
@@ -0,0 +1,20 @@
+|s+0#af5f00255#ffffff0|e|t| 
+0#0000000&|a+0#e000e06&|l|e|p|h|-+0#af5f00255&|=|9+0#0000000&|6| @61
+@75
+|s+0#af5f00255&|e|t| 
+0#0000000&|b+0#e000e06&|a|c|k|s|p|a|c|e|++0#af5f00255&|=|n+0#0000000&|o|s|t|o|p|
 @53
+|s+0#af5f00255&|e|t| 
+0#0000000&|b+0#e000e06&|a|c|k|s|p|a|c|e|^+0#af5f00255&|=|n+0#0000000&|o|s|t|o|p|
 @53
+|s+0#af5f00255&|e|t| 
+0#0000000&|b+0#e000e06&|a|c|k|s|p|a|c|e|-+0#af5f00255&|=|n+0#0000000&|o|s|t|o|p|
 @53
+> @74
+|s+0#af5f00255&|e|t| +0#0000000&|a+0#e000e06&|i| 
+0#0000000&|n+0#e000e06&|o|s|i| 
+0#0000000&|s+0#e000e06&|w|=+0#af5f00255&|3+0#0000000&| 
|t+0#e000e06&|w|=+0#af5f00255&|3+0#0000000&| @53
+@75
+|s+0#af5f00255&|e|t| +0#0000000&|<|t+0#e000e06&|_|#|4|>+0#0000000&|=|^|[|O|t| 
|"+0#0000e05&| |F+0#0000001#ffff4012|I|X|M|E| +0#0000000#ffffff0@51
+|s+0#af5f00255&|e|t| +0#0000000&|<|M|-|b|>|=|^|[|b| @2|"+0#0000e05&| 
|F+0#0000001#ffff4012|I|X|M|E| +0#0000000#ffffff0@51
+@75
+|s+0#af5f00255&|e|t|l|o|c|a|l| +0#0000000&|a+0#e000e06&|u|t|o|r|e|a|d| 
+0#0000000&@57
+|s+0#af5f00255&|e|t|g|l|o|b|a|l| +0#0000000&|n+0#e000e06&|o|a|u|t|o|r|e|a|d| 
+0#0000000&@54
+|s+0#af5f00255&|e|t| +0#0000000&|a+0#e000e06&|u|t|o|r|e|a|d|<| +0#0000000&@61
+@75
+@75
+|"+0#0000e05&| |:|h|e|l|p| |o|p|t|i|o|n|-|b|a|c|k|s|l|a|s|h| +0#0000000&@50
+@75
+|"+0#0000e05&| |W|h|e|n| |s|e|t@1|i|n|g| |o|p|t|i|o|n|s| |u|s|i|n|g| 
|||:|l|e|t||| |a|n|d| |||l|i|t|e|r|a|l|-|s|t|r|i|n|g|||,| |y|o|u| |n|e@1|d| 
|t|o| |u|s|@+0#4040ff13&@2
+| +0#0000000&@56|3|7|,|0|-|1| @7|4|1|%| 
diff --git a/runtime/syntax/testdir/dumps/vim_ex_set_03.dump 
b/runtime/syntax/testdir/dumps/vim_ex_set_03.dump
new file mode 100644
index 000000000..fb013bc99
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim_ex_set_03.dump
@@ -0,0 +1,20 @@
+|"+0#0000e05#ffffff0| |W|h|e|n| |s|e|t@1|i|n|g| |o|p|t|i|o|n|s| |u|s|i|n|g| 
|||:|l|e|t||| |a|n|d| |||l|i|t|e|r|a|l|-|s|t|r|i|n|g|||,| |y|o|u| |n|e@1|d| 
|t|o| |u|s|e| |o
+|n|e| +0#0000000&@72
+|"+0#0000e05&| |f|e|w|e|r| |l|a|y|e|r| |o|f| |b|a|c|k|s|l|a|s|h|.| |A| |f|e|w| 
|e|x|a|m|p|l|e|s|:| +0#0000000&@31
+|s+0#af5f00255&|e|t| 
+0#0000000&|m+0#e000e06&|a|k|e|p|r|g|=+0#af5f00255&|m+0#0000000&|a|k|e|\| 
|f|i|l|e| @5|"+0#0000e05&| |r|e|s|u|l|t|s| |i|n| |"+0#e000002&|m|a|k|e| 
|f|i|l|e|"| +0#0000000&@22
+|l+0#af5f00255&|e|t| 
+0#0000000&|&+0#00e0e07&|m|a|k|e|p|r|g|=+0#af5f00255&|'+0#e000002&|m|a|k|e| 
|f|i|l|e|'| +0#0000000&@3|"+0#0000e05&| |(|s|a|m|e| |a|s| |a|b|o|v|e|)| 
+0#0000000&@29
+>s+0#af5f00255&|e|t| 
+0#0000000&|m+0#e000e06&|a|k|e|p|r|g|=+0#af5f00255&|m+0#0000000&|a|k|e|\@2| 
|f|i|l|e| @3|"+0#0000e05&| |r|e|s|u|l|t|s| |i|n| |"+0#e000002&|m|a|k|e|\| 
|f|i|l|e|"| +0#0000000&@21
+|s+0#af5f00255&|e|t| 
+0#0000000&|t+0#e000e06&|a|g|s|=+0#af5f00255&|t+0#0000000&|a|g|s|\| 
|/|u|s|r|/|t|a|g|s| @3|"+0#0000e05&| |r|e|s|u|l|t|s| |i|n| 
|"+0#e000002&|t|a|g|s|"| +0#0000e05&|a|n|d| |"+0#e000002&|/|u|s|r|/|t|a|g|s|"| 
+0#0000000&@11
+|s+0#af5f00255&|e|t| 
+0#0000000&|t+0#e000e06&|a|g|s|=+0#af5f00255&|t+0#0000000&|a|g|s|\@2| |f|i|l|e| 
@6|"+0#0000e05&| |r|e|s|u|l|t|s| |i|n| |"+0#e000002&|t|a|g|s| |f|i|l|e|"| 
+0#0000000&@22
+|l+0#af5f00255&|e|t| 
+0#0000000&|&+0#00e0e07&|t|a|g|s|=+0#af5f00255&|'+0#e000002&|t|a|g|s|\| 
|f|i|l|e|'| +0#0000000&@5|"+0#0000e05&| |(|s|a|m|e| |a|s| |a|b|o|v|e|)| 
+0#0000000&@29
+@75
+|s+0#af5f00255&|e|t| 
+0#0000000&|m+0#e000e06&|a|k|e|p|r|g|=+0#af5f00255&|m+0#0000000&|a|k|e|,+0#e000e06&|f+0#0000000&|i|l|e|
 @6|"+0#0000e05&| |r|e|s|u|l|t|s| |i|n| |"+0#e000002&|m|a|k|e|,|f|i|l|e|"| 
+0#0000000&@22
+|s+0#af5f00255&|e|t| 
+0#0000000&|m+0#e000e06&|a|k|e|p|r|g|=+0#af5f00255&|m+0#0000000&|a|k|e|\@1|,+0#e000e06&|f+0#0000000&|i|l|e|
 @4|"+0#0000e05&| |r|e|s|u|l|t|s| |i|n| |"+0#e000002&|m|a|k|e|\|,|f|i|l|e|"| 
+0#0000000&@21
+|s+0#af5f00255&|e|t| 
+0#0000000&|t+0#e000e06&|a|g|s|=+0#af5f00255&|t+0#0000000&|a|g|s|,+0#e000e06&|f+0#0000000&|i|l|e|
 @9|"+0#0000e05&| |r|e|s|u|l|t|s| |i|n| |"+0#e000002&|t|a|g|s|"| 
+0#0000e05&|a|n|d| |"+0#e000002&|f|i|l|e|"| +0#0000000&@16
+|s+0#af5f00255&|e|t| 
+0#0000000&|t+0#e000e06&|a|g|s|=+0#af5f00255&|t+0#0000000&|a|g|s|\@1|,+0#e000e06&|f+0#0000000&|i|l|e|
 @7|"+0#0000e05&| |r|e|s|u|l|t|s| |i|n| |"+0#e000002&|t|a|g|s|,|f|i|l|e|"| 
+0#0000000&@22
+|l+0#af5f00255&|e|t| 
+0#0000000&|&+0#00e0e07&|t|a|g|s|=+0#af5f00255&|'+0#e000002&|t|a|g|s|\|,|f|i|l|e|'|
 +0#0000000&@5|"+0#0000e05&| |(|s|a|m|e| |a|s| |a|b|o|v|e|)| +0#0000000&@29
+@75
+|"+0#0000e05&| |T|h|i|s| |e|x|a|m|p|l|e| |s|e|t|s| |t|h|e| 
|'|t|i|t|l|e|s|t|r|i|n|g|'| |o|p|t|i|o|n| |t|o| 
|"+0#e000002&|h|i|||t|h|e|r|e|"|:+0#0000e05&| +0#0000000&@15
+|s+0#af5f00255&|e|t| 
+0#0000000&|t+0#e000e06&|i|t|l|e|s|t|r|i|n|g|=+0#af5f00255&|h+0#0000000&|i|\|||t|h|e|r|e|
 @49
+|"+0#0000e05&| |T|h|i|s| |s|e|t|s| |t|h|e| |'|t|i|t|l|e|s|t|r|i|n|g|'| 
|o|p|t|i|o|n| |t|o| |"+0#e000002&|h|i|"| +0#0000e05&|a|n|d| 
|'|i|c|o|n|s|t|r|i|n|g|'| |t|o| |"+0#e000002&|t|h|e|r|e|"|:+0#0000e05&| 
+0#0000000&@1
+@57|5|4|,|1| @9|6|5|%| 
diff --git a/runtime/syntax/testdir/dumps/vim_ex_set_04.dump 
b/runtime/syntax/testdir/dumps/vim_ex_set_04.dump
new file mode 100644
index 000000000..6280f6af4
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim_ex_set_04.dump
@@ -0,0 +1,20 @@
+|"+0#0000e05#ffffff0| |T|h|i|s| |s|e|t|s| |t|h|e| |'|t|i|t|l|e|s|t|r|i|n|g|'| 
|o|p|t|i|o|n| |t|o| |"+0#e000002&|h|i|"| +0#0000e05&|a|n|d| 
|'|i|c|o|n|s|t|r|i|n|g|'| |t|o| |"+0#e000002&|t|h|e|r|e|"|:+0#0000e05&| 
+0#0000000&@1
+|s+0#af5f00255&|e|t| 
+0#0000000&|t+0#e000e06&|i|t|l|e|s|t|r|i|n|g|=+0#af5f00255&|h+0#0000000&|i|||s+0#af5f00255&|e|t|
 
+0#0000000&|i+0#e000e06&|c|o|n|s|t|r|i|n|g|=+0#af5f00255&|t+0#0000000&|h|e|r|e| 
@35
+@75
+|s+0#af5f00255&|e|t| 
+0#0000000&|d+0#e000e06&|i|r|=+0#af5f00255&|\+0#0000000&@1|m|a|c|h|i|n|e|\|p|a|t|h|
 @5|"+0#0000e05&| |r|e|s|u|l|t|s| |i|n| 
|"+0#e000002&|\@1|m|a|c|h|i|n|e|\|p|a|t|h|"| +0#0000000&@17
+|s+0#af5f00255&|e|t| 
+0#0000000&|d+0#e000e06&|i|r|=+0#af5f00255&|\+0#0000000&@3|m|a|c|h|i|n|e|\@1|p|a|t|h|
 @2|"+0#0000e05&| |r|e|s|u|l|t|s| |i|n| 
|"+0#e000002&|\@1|m|a|c|h|i|n|e|\|p|a|t|h|"| +0#0000000&@17
+>s+0#af5f00255&|e|t| 
+0#0000000&|d+0#e000e06&|i|r|=+0#af5f00255&|\+0#0000000&@1|p|a|t|h|\@1|f|i|l|e| 
@7|"+0#0000e05&| |r|e|s|u|l|t|s| |i|n| |"+0#e000002&|\@1|p|a|t|h|\|f|i|l|e|"| 
+0#0000e05&|(|w|r|o|n|g|!|)| +0#0000000&@11
+@75
+@75
+|"+0#0000e05&| |:|h|e|l|p| |:|s|e|t|_|e|n|v| +0#0000000&@58
+@75
+|s+0#af5f00255&|e|t| 
+0#0000000&|t+0#e000e06&|e|r|m|=+0#af5f00255&|$+0#e000e06&|T|E|R|M|.+0#0000000&|n|e|w|
 @56
+|s+0#af5f00255&|e|t| 
+0#0000000&|p+0#e000e06&|a|t|h|=+0#af5f00255&|/+0#0000000&|u|s|r|/|$+0#e000e06&|I|N|C|L|U|D|E|,|$|H|O|M|E|/+0#0000000&|i|n|c|l|u|d|e|,+0#e000e06&|.+0#0000000&|
 @36
+@75
+@75
+|"+0#0000e05&| |M|u|l|t|i|l|i|n|e| |:|s|e|t| |a|n|d| |o|p|t|i|o|n| 
|v|a|l|u|e|s| +0#0000000&@40
+@75
+|s+0#af5f00255&|e|t| 
+0#0000000&|p+0#e000e06&|a|t|h|=+0#af5f00255&|a+0#0000000&|b|c|,+0#e000e06&|d+0#0000000&|e|f|,+0#e000e06&|g+0#0000000&|h|i|
 @54
+@6|"+0#0000e05&|\| |d|e|f| |i|s| |t|h|e| |'|d|e|f|i|n|e|'| |o|p|t|i|o|n| 
+0#0000000&@39
+@6|\+0#e000e06&| 
+0#0000000&|d+0#e000e06&|e|f|=+0#af5f00255&|a+0#0000000&|b|c|,+0#e000e06&|d+0#0000000&|e|f|,+0#e000e06&|g+0#0000000&|h|i|
 @51
+@57|7|2|,|1| @9|8|9|%| 
diff --git a/runtime/syntax/testdir/dumps/vim_ex_set_05.dump 
b/runtime/syntax/testdir/dumps/vim_ex_set_05.dump
new file mode 100644
index 000000000..3f675294e
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim_ex_set_05.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@5|\+0#e000e06&| 
+0#0000000&|d+0#e000e06&|e|f|=+0#af5f00255&|a+0#0000000&|b|c|,+0#e000e06&|d+0#0000000&|e|f|,+0#e000e06&|g+0#0000000&|h|i|
 @51
+@75
+|s+0#af5f00255&|e|t| 
+0#0000000&|p+0#e000e06&|a|t|h|=+0#af5f00255&|a+0#0000000&|b|c|,+0#e000e06&| 
+0#0000000&@61
+@6|"+0#0000e05&|\| |d|e|f| |i|s| |a| |'|p|a|t|h|'| |d|i|r|e|c|t|o|r|y| 
|v|a|l|u|e| +0#0000000&@34
+@6|\+0#e000e06&|d+0#0000000&|e|f|,+0#e000e06&|g+0#0000000&|h|i| @60
+> @74
+|s+0#af5f00255&|e|t| +0#0000000&|p+0#e000e06&|a|t|h|=+0#af5f00255&| 
+0#0000000&@65
+@6|"+0#0000e05&|\| |d|e|f| |i|s| |a| |'|p|a|t|h|'| |d|i|r|e|c|t|o|r|y| 
|v|a|l|u|e| +0#0000000&@34
+@6|\+0#e000e06&|a+0#0000000&|b|c|,+0#e000e06&|d+0#0000000&|e|f| @60
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|9|0|,|0|-|1| @7|B|o|t| 
diff --git a/runtime/syntax/testdir/input/vim_ex_set.vim 
b/runtime/syntax/testdir/input/vim_ex_set.vim
new file mode 100644
index 000000000..00e53a0d3
--- /dev/null
+++ b/runtime/syntax/testdir/input/vim_ex_set.vim
@@ -0,0 +1,93 @@
+" Vim :set command
+
+set
+set!
+set all
+set! all
+set termcap
+set! termcap
+
+set aleph?
+set aleph
+
+set noallowrevins
+
+set allowrevins!
+set invallowrevins
+
+set aleph&
+set aleph&vi
+set aleph&vim
+
+set all&
+
+set aleph=128
+set aleph:128
+
+set aleph =128
+set aleph :128
+
+set aleph+=96
+set aleph^=2
+set aleph-=96
+
+set backspace+=nostop
+set backspace^=nostop
+set backspace-=nostop
+
+set ai nosi sw=3 tw=3
+
+set <t_#4>=^[Ot " FIXME
+set <M-b>=^[b   " FIXME
+
+setlocal autoread
+setglobal noautoread
+set autoread<
+
+
+" :help option-backslash
+
+" When setting options using |:let| and |literal-string|, you need to use one
+" fewer layer of backslash. A few examples:
+set makeprg=make\ file     " results in "make file"
+let &makeprg='make file'    " (same as above)
+set makeprg=make\\ file    " results in "make\ file"
+set tags=tags\ /usr/tags    " results in "tags" and "/usr/tags"
+set tags=tags\\ file       " results in "tags file"
+let &tags='tags\ file'     " (same as above)
+
+set makeprg=make,file      " results in "make,file"
+set makeprg=make\,file     " results in "make\,file"
+set tags=tags,file         " results in "tags" and "file"
+set tags=tags\,file        " results in "tags,file"
+let &tags='tags\,file'     " (same as above)
+
+" This example sets the 'titlestring' option to "hi|there":
+set titlestring=hi\|there
+" This sets the 'titlestring' option to "hi" and 'iconstring' to "there":
+set titlestring=hi|set iconstring=there
+
+set dir=\machine\path      " results in "\machine\path"
+set dir=\\machine\path   " results in "\machine\path"
+set dir=\path\file         " results in "\path ile" (wrong!)
+
+
+" :help :set_env
+
+set term=$TERM.new
+set path=/usr/$INCLUDE,$HOME/include,.
+
+
+" Multiline :set and option values
+
+set path=abc,def,ghi
+      "\ def is the 'define' option
+      \ def=abc,def,ghi
+ 
+set path=abc,
+      "\ def is a 'path' directory value
+      \def,ghi
+
+set path=
+      "\ def is a 'path' directory value
+       bc,def
diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index 1be549895..8492463f5 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -3,7 +3,7 @@
 " Maintainer:     Hirohito Higashi <h.east.727 ATMARK gmail.com>
 "         Doug Kearns <dougkea...@gmail.com>
 " URL:    https://github.com/vim-jp/syntax-vim-ex
-" Last Change:    2024 Jul 18
+" Last Change:    2024 Jul 23
 " Former Maintainer: Charles E. Campbell
 
 " DO NOT CHANGE DIRECTLY.
@@ -41,15 +41,15 @@ syn match   vimCommand contained    "\<z[-+^.=]\=\>"
 syn keyword vimStdPlugin contained     Arguments Asm Break Cfilter Clear 
Continue DiffOrig Evaluate Finish Gdb Lfilter Man Over Program Run S Source 
Step Stop Termdebug TermdebugCommand TOhtml Until Winbar XMLent XMLns
 
 " vimOptions are caught only when contained in a vimSet {{{2
-" GEN_SYN_VIM: vimOption normal, START_STR='syn keyword vimOption contained', 
END_STR=''
-syn keyword vimOption contained al aleph ari allowrevins ambw ambiwidth arab 
arabic arshape arabicshape acd autochdir ai autoindent ar autoread asd 
autoshelldir aw autowrite awa autowriteall bg background bs backspace bk backup 
bkc backupcopy bdir backupdir bex backupext bsk backupskip bdlay balloondelay 
beval ballooneval bevalterm balloonevalterm bexpr balloonexpr bo belloff bin 
binary bomb brk breakat bri breakindent briopt breakindentopt bsdir browsedir 
bh bufhidden bl buflisted bt buftype cmp casemap cdh cdhome cd cdpath cedit ccv 
charconvert cin cindent cink cinkeys cino cinoptions cinsd cinscopedecls cinw 
cinwords cb clipboard ch cmdheight cwh cmdwinheight cc colorcolumn co columns 
com comments cms commentstring cp compatible cpt complete cfu completefunc
-syn keyword vimOption contained cot completeopt cpp completepopup csl 
completeslash cocu concealcursor cole conceallevel cf confirm ci copyindent cpo 
cpoptions cm cryptmethod cspc cscopepathcomp csprg cscopeprg csqf 
cscopequickfix csre cscoperelative cst cscopetag csto cscopetagorder csverb 
cscopeverbose crb cursorbind cuc cursorcolumn cul cursorline culopt 
cursorlineopt debug def define deco delcombine dict dictionary diff dex 
diffexpr dip diffopt dg digraph dir directory dy display ead eadirection ed 
edcompatible emo emoji enc encoding eof endoffile eol endofline ea equalalways 
ep equalprg eb errorbells ef errorfile efm errorformat ek esckeys ei 
eventignore et expandtab ex exrc fenc fileencoding fencs fileencodings ff 
fileformat ffs fileformats fic fileignorecase
-syn keyword vimOption contained ft filetype fcs fillchars fixeol fixendofline 
fcl foldclose fdc foldcolumn fen foldenable fde foldexpr fdi foldignore fdl 
foldlevel fdls foldlevelstart fmr foldmarker fdm foldmethod fml foldminlines 
fdn foldnestmax fdo foldopen fdt foldtext fex formatexpr flp formatlistpat fo 
formatoptions fp formatprg fs fsync gd gdefault gfm grepformat gp grepprg gcr 
guicursor gfn guifont gfs guifontset gfw guifontwide ghr guiheadroom gli 
guiligatures go guioptions guipty gtl guitablabel gtt guitabtooltip hf helpfile 
hh helpheight hlg helplang hid hidden hl highlight hi history hk hkmap hkp 
hkmapp hls hlsearch icon iconstring ic ignorecase imaf imactivatefunc imak 
imactivatekey imc imcmdline imd imdisable imi iminsert ims imsearch imsf 
imstatusfunc
-syn keyword vimOption contained imst imstyle inc include inex includeexpr is 
incsearch inde indentexpr indk indentkeys inf infercase im insertmode isf 
isfname isi isident isk iskeyword isp isprint js joinspaces jop jumpoptions key 
kmp keymap km keymodel kpc keyprotocol kp keywordprg lmap langmap lm langmenu 
lnr langnoremap lrm langremap ls laststatus lz lazyredraw lbr linebreak lines 
lsp linespace lisp lop lispoptions lw lispwords list lcs listchars lpl 
loadplugins luadll magic mef makeef menc makeencoding mp makeprg mps matchpairs 
mat matchtime mco maxcombine mfd maxfuncdepth mmd maxmapdepth mm maxmem mmp 
maxmempattern mmt maxmemtot mis menuitems msm mkspellmem ml modeline mle 
modelineexpr mls modelines ma modifiable mod modified more mouse mousef 
mousefocus
-syn keyword vimOption contained mh mousehide mousem mousemodel mousemev 
mousemoveevent mouses mouseshape mouset mousetime mzq mzquantum mzschemedll 
mzschemegcdll nf nrformats nu number nuw numberwidth ofu omnifunc odev 
opendevice opfunc operatorfunc pp packpath para paragraphs paste pt pastetoggle 
pex patchexpr pm patchmode pa path perldll pi preserveindent pvh previewheight 
pvp previewpopup pvw previewwindow pdev printdevice penc printencoding pexpr 
printexpr pfn printfont pheader printheader pmbcs printmbcharset pmbfn 
printmbfont popt printoptions prompt ph pumheight pw pumwidth pythondll 
pythonhome pythonthreedll pythonthreehome pyx pyxversion qftf quickfixtextfunc 
qe quoteescape ro readonly rdt redrawtime re regexpengine rnu relativenumber 
remap rop renderoptions
-syn keyword vimOption contained report rs restorescreen ri revins rl rightleft 
rlc rightleftcmd rubydll ru ruler ruf rulerformat rtp runtimepath scr scroll 
scb scrollbind scf scrollfocus sj scrolljump so scrolloff sbo scrollopt sect 
sections secure sel selection slm selectmode ssop sessionoptions sh shell shcf 
shellcmdflag sp shellpipe shq shellquote srr shellredir ssl shellslash stmp 
shelltemp st shelltype sxe shellxescape sxq shellxquote sr shiftround sw 
shiftwidth shm shortmess sn shortname sbr showbreak sc showcmd sloc showcmdloc 
sft showfulltag sm showmatch smd showmode stal showtabline ss sidescroll siso 
sidescrolloff scl signcolumn scs smartcase si smartindent sta smarttab sms 
smoothscroll sts softtabstop spell spc spellcapcheck spf spellfile spl spelllang
-syn keyword vimOption contained spo spelloptions sps spellsuggest sb 
splitbelow spk splitkeep spr splitright sol startofline stl statusline su 
suffixes sua suffixesadd swf swapfile sws swapsync swb switchbuf smc synmaxcol 
syn syntax tcl tabclose tal tabline tpm tabpagemax ts tabstop tbs tagbsearch tc 
tagcase tfu tagfunc tl taglength tr tagrelative tag tags tgst tagstack tcldll 
term tbidi termbidi tenc termencoding tgc termguicolors twk termwinkey twsl 
termwinscroll tws termwinsize twt termwintype terse ta textauto tx textmode tw 
textwidth tsr thesaurus tsrfu thesaurusfunc top tildeop to timeout tm 
timeoutlen title titlelen titleold titlestring tb toolbar tbis toolbariconsize 
ttimeout ttm ttimeoutlen tbi ttybuiltin tf ttyfast ttym ttymouse tsl ttyscroll 
tty ttytype
-syn keyword vimOption contained udir undodir udf undofile ul undolevels ur 
undoreload uc updatecount ut updatetime vsts varsofttabstop vts vartabstop vbs 
verbose vfile verbosefile vdir viewdir vop viewoptions vi viminfo vif 
viminfofile ve virtualedit vb visualbell warn wiv weirdinvert ww whichwrap wc 
wildchar wcm wildcharm wig wildignore wic wildignorecase wmnu wildmenu wim 
wildmode wop wildoptions wak winaltkeys wcr wincolor wi window wfb winfixbuf 
wfh winfixheight wfw winfixwidth wh winheight wmh winminheight wmw winminwidth 
winptydll wiw winwidth wrap wm wrapmargin ws wrapscan write wa writeany wb 
writebackup wd writedelay xtermcodes
+" GEN_SYN_VIM: vimOption normal, START_STR='syn keyword vimOption contained', 
END_STR='skipwhite nextgroup=vimSetEqual,vimSetMod'
+syn keyword vimOption contained al aleph ari allowrevins ambw ambiwidth arab 
arabic arshape arabicshape acd autochdir ai autoindent ar autoread asd 
autoshelldir aw autowrite awa autowriteall bg background bs backspace bk backup 
bkc backupcopy bdir backupdir bex backupext bsk backupskip bdlay balloondelay 
beval ballooneval bevalterm balloonevalterm bexpr balloonexpr bo belloff bin 
binary bomb brk breakat bri breakindent briopt breakindentopt bsdir browsedir 
bh bufhidden bl buflisted bt buftype cmp casemap cdh cdhome cd cdpath cedit ccv 
charconvert cin cindent cink cinkeys cino cinoptions cinsd cinscopedecls cinw 
cinwords cb clipboard ch cmdheight cwh cmdwinheight cc colorcolumn co columns 
com comments cms commentstring cp compatible cpt complete cfu completefunc 
skipwhite nextgroup=vimSetEqual,vimSetMod
+syn keyword vimOption contained cot completeopt cpp completepopup csl 
completeslash cocu concealcursor cole conceallevel cf confirm ci copyindent cpo 
cpoptions cm cryptmethod cspc cscopepathcomp csprg cscopeprg csqf 
cscopequickfix csre cscoperelative cst cscopetag csto cscopetagorder csverb 
cscopeverbose crb cursorbind cuc cursorcolumn cul cursorline culopt 
cursorlineopt debug def define deco delcombine dict dictionary diff dex 
diffexpr dip diffopt dg digraph dir directory dy display ead eadirection ed 
edcompatible emo emoji enc encoding eof endoffile eol endofline ea equalalways 
ep equalprg eb errorbells ef errorfile efm errorformat ek esckeys ei 
eventignore et expandtab ex exrc fenc fileencoding fencs fileencodings ff 
fileformat ffs fileformats fic fileignorecase skipwhite 
nextgroup=vimSetEqual,vimSetMod
+syn keyword vimOption contained ft filetype fcs fillchars fixeol fixendofline 
fcl foldclose fdc foldcolumn fen foldenable fde foldexpr fdi foldignore fdl 
foldlevel fdls foldlevelstart fmr foldmarker fdm foldmethod fml foldminlines 
fdn foldnestmax fdo foldopen fdt foldtext fex formatexpr flp formatlistpat fo 
formatoptions fp formatprg fs fsync gd gdefault gfm grepformat gp grepprg gcr 
guicursor gfn guifont gfs guifontset gfw guifontwide ghr guiheadroom gli 
guiligatures go guioptions guipty gtl guitablabel gtt guitabtooltip hf helpfile 
hh helpheight hlg helplang hid hidden hl highlight hi history hk hkmap hkp 
hkmapp hls hlsearch icon iconstring ic ignorecase imaf imactivatefunc imak 
imactivatekey imc imcmdline imd imdisable imi iminsert ims imsearch imsf 
imstatusfunc skipwhite nextgroup=vimSetEqual,vimSetMod
+syn keyword vimOption contained imst imstyle inc include inex includeexpr is 
incsearch inde indentexpr indk indentkeys inf infercase im insertmode isf 
isfname isi isident isk iskeyword isp isprint js joinspaces jop jumpoptions key 
kmp keymap km keymodel kpc keyprotocol kp keywordprg lmap langmap lm langmenu 
lnr langnoremap lrm langremap ls laststatus lz lazyredraw lbr linebreak lines 
lsp linespace lisp lop lispoptions lw lispwords list lcs listchars lpl 
loadplugins luadll magic mef makeef menc makeencoding mp makeprg mps matchpairs 
mat matchtime mco maxcombine mfd maxfuncdepth mmd maxmapdepth mm maxmem mmp 
maxmempattern mmt maxmemtot mis menuitems msm mkspellmem ml modeline mle 
modelineexpr mls modelines ma modifiable mod modified more mouse mousef 
mousefocus skipwhite nextgroup=vimSetEqual,vimSetMod
+syn keyword vimOption contained mh mousehide mousem mousemodel mousemev 
mousemoveevent mouses mouseshape mouset mousetime mzq mzquantum mzschemedll 
mzschemegcdll nf nrformats nu number nuw numberwidth ofu omnifunc odev 
opendevice opfunc operatorfunc pp packpath para paragraphs paste pt pastetoggle 
pex patchexpr pm patchmode pa path perldll pi preserveindent pvh previewheight 
pvp previewpopup pvw previewwindow pdev printdevice penc printencoding pexpr 
printexpr pfn printfont pheader printheader pmbcs printmbcharset pmbfn 
printmbfont popt printoptions prompt ph pumheight pw pumwidth pythondll 
pythonhome pythonthreedll pythonthreehome pyx pyxversion qftf quickfixtextfunc 
qe quoteescape ro readonly rdt redrawtime re regexpengine rnu relativenumber 
remap rop renderoptions skipwhite nextgroup=vimSetEqual,vimSetMod
+syn keyword vimOption contained report rs restorescreen ri revins rl rightleft 
rlc rightleftcmd rubydll ru ruler ruf rulerformat rtp runtimepath scr scroll 
scb scrollbind scf scrollfocus sj scrolljump so scrolloff sbo scrollopt sect 
sections secure sel selection slm selectmode ssop sessionoptions sh shell shcf 
shellcmdflag sp shellpipe shq shellquote srr shellredir ssl shellslash stmp 
shelltemp st shelltype sxe shellxescape sxq shellxquote sr shiftround sw 
shiftwidth shm shortmess sn shortname sbr showbreak sc showcmd sloc showcmdloc 
sft showfulltag sm showmatch smd showmode stal showtabline ss sidescroll siso 
sidescrolloff scl signcolumn scs smartcase si smartindent sta smarttab sms 
smoothscroll sts softtabstop spell spc spellcapcheck spf spellfile spl 
spelllang skipwhite nextgroup=vimSetEqual,vimSetMod
+syn keyword vimOption contained spo spelloptions sps spellsuggest sb 
splitbelow spk splitkeep spr splitright sol startofline stl statusline su 
suffixes sua suffixesadd swf swapfile sws swapsync swb switchbuf smc synmaxcol 
syn syntax tcl tabclose tal tabline tpm tabpagemax ts tabstop tbs tagbsearch tc 
tagcase tfu tagfunc tl taglength tr tagrelative tag tags tgst tagstack tcldll 
term tbidi termbidi tenc termencoding tgc termguicolors twk termwinkey twsl 
termwinscroll tws termwinsize twt termwintype terse ta textauto tx textmode tw 
textwidth tsr thesaurus tsrfu thesaurusfunc top tildeop to timeout tm 
timeoutlen title titlelen titleold titlestring tb toolbar tbis toolbariconsize 
ttimeout ttm ttimeoutlen tbi ttybuiltin tf ttyfast ttym ttymouse tsl ttyscroll 
tty ttytype skipwhite nextgroup=vimSetEqual,vimSetMod
+syn keyword vimOption contained udir undodir udf undofile ul undolevels ur 
undoreload uc updatecount ut updatetime vsts varsofttabstop vts vartabstop vbs 
verbose vfile verbosefile vdir viewdir vop viewoptions vi viminfo vif 
viminfofile ve virtualedit vb visualbell warn wiv weirdinvert ww whichwrap wc 
wildchar wcm wildcharm wig wildignore wic wildignorecase wmnu wildmenu wim 
wildmode wop wildoptions wak winaltkeys wcr wincolor wi window wfb winfixbuf 
wfh winfixheight wfw winfixwidth wh winheight wmh winminheight wmw winminwidth 
winptydll wiw winwidth wrap wm wrapmargin ws wrapscan write wa writeany wb 
writebackup wd writedelay xtermcodes skipwhite nextgroup=vimSetEqual,vimSetMod
 
 " vimOptions: These are the turn-off setting variants {{{2
 " GEN_SYN_VIM: vimOption turn-off, START_STR='syn keyword vimOption 
contained', END_STR=''
@@ -66,8 +66,8 @@ syn keyword vimOption contained invprompt invro invreadonly 
invrnu invrelativenu
 syn keyword vimOption contained invtf invttyfast invudf invundofile invvb 
invvisualbell invwarn invwiv invweirdinvert invwic invwildignorecase invwmnu 
invwildmenu invwfb invwinfixbuf invwfh invwinfixheight invwfw invwinfixwidth 
invwrap invws invwrapscan invwrite invwa invwriteany invwb invwritebackup 
invxtermcodes
 
 " termcap codes (which can also be set) {{{2
-" GEN_SYN_VIM: vimOption term output code, START_STR='syn keyword vimOption 
contained', END_STR=''
-syn keyword vimOption contained t_AB t_AF t_AU t_AL t_al t_bc t_BE t_BD t_cd 
t_ce t_Ce t_CF t_cl t_cm t_Co t_CS t_Cs t_cs t_CV t_da t_db t_DL t_dl t_ds t_Ds 
t_EC t_EI t_fs t_fd t_fe t_GP t_IE t_IS t_ke t_ks t_le t_mb t_md t_me t_mr t_ms 
t_nd t_op t_RF t_RB t_RC t_RI t_Ri t_RK t_RS t_RT t_RV t_Sb t_SC t_se t_Sf t_SH 
t_SI t_Si t_so t_SR t_sr t_ST t_Te t_te t_TE t_ti t_TI t_Ts t_ts t_u7 t_ue t_us 
t_Us t_ut t_vb t_ve t_vi t_VS t_vs t_WP t_WS t_XM t_xn t_xs t_ZH t_ZR t_8f t_8b 
t_8u t_xo
+" GEN_SYN_VIM: vimOption term output code, START_STR='syn keyword vimOption 
contained', END_STR='skipwhite nextgroup=vimSetEqual,vimSetMod'
+syn keyword vimOption contained t_AB t_AF t_AU t_AL t_al t_bc t_BE t_BD t_cd 
t_ce t_Ce t_CF t_cl t_cm t_Co t_CS t_Cs t_cs t_CV t_da t_db t_DL t_dl t_ds t_Ds 
t_EC t_EI t_fs t_fd t_fe t_GP t_IE t_IS t_ke t_ks t_le t_mb t_md t_me t_mr t_ms 
t_nd t_op t_RF t_RB t_RC t_RI t_Ri t_RK t_RS t_RT t_RV t_Sb t_SC t_se t_Sf t_SH 
t_SI t_Si t_so t_SR t_sr t_ST t_Te t_te t_TE t_ti t_TI t_Ts t_ts t_u7 t_ue t_us 
t_Us t_ut t_vb t_ve t_vi t_VS t_vs t_WP t_WS t_XM t_xn t_xs t_ZH t_ZR t_8f t_8b 
t_8u t_xo skipwhite nextgroup=vimSetEqual,vimSetMod
 " term key codes
 syn keyword vimOption contained        t_F1 t_F2 t_F3 t_F4 t_F5 t_F6 t_F7 t_F8 
t_F9 t_k1 t_K1 t_k2 t_k3 t_K3 t_k4 t_K4 t_k5 t_K5 t_k6 t_K6 t_k7 t_K7 t_k8 t_K8 
t_k9 t_K9 t_KA t_kb t_kB t_KB t_KC t_kd t_kD t_KD t_KE t_KF t_KG t_kh t_KH t_kI 
t_KI t_KJ t_KK t_kl t_KL t_kN t_kP t_kr t_ku
 syn match   vimOption contained        "t_%1"
@@ -544,11 +544,15 @@ syn match vimCmplxRepeat  
'[^a-zA-Z_/\()]q[0-9a-zA-Z"]\>'lc=1
 syn match      vimCmplxRepeat  '@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\>\)'
 
 " Set command and associated set-options (vimOptions) with comment {{{2
-syn region     vimSet          matchgroup=vimCommand 
start="\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skip="\%(\\\)*\.
\@!" end="$" end="|" matchgroup=vimNotation end="<[cC][rR]>" keepend 
contains=vimSetEqual,vimOption,vimErrSetting,@vimComment,vimSetString,vimSetMod
-syn region     vimSetEqual     contained       start="[=:]\|[-+^]=" 
skip="\\\|\\s" end="[|     ]"me=e-1 end="$"        
contains=vimCtrlChar,vimSetSep,vimNotation,vimEnvvar
-syn region     vimSetString    contained       start=+="+hs=s+1        
skip=+\\\|\"+  end=+"+          contains=vimCtrlChar
+syn match      vimSet          "\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" 
skipwhite nextgroup=vimSetBang,vimSetRegion
+syn region     vimSetRegion    contained       start="\S" skip=+\\\|\|\|
\s*\\|
\s*["#]\ + matchgroup=vimCmdSep end="|" end="$" matchgroup=vimNotation 
end="<[cC][rR]>" keepend 
contains=@vimComment,@vimContinue,vimErrSetting,vimOption,vimSetAll,vimSetTermcap
+syn region     vimSetEqual     contained       matchgroup=vimOper 
start="[=:]\|[-+^]=" skip=+\\\|\|\|\\s\|
\s*\\|
\s*["#]\ \|^\s*\\|^\s*["#]\ + matchgroup=vimCmdSep end="|" end="\ze\s" end="$" 
contains=@vimContinue,vimCtrlChar,vimEnvvar,vimNotation,vimSetSep
+syn match      vimSetBang      contained       " \@1<=!" skipwhite 
nextgroup=vimSetAll,vimSetTermcap
+syn keyword    vimSetAll       contained       all nextgroup=vimSetMod
+syn keyword    vimSetTermcap   contained       termcap
+syn region     vimSetString    contained       start=+="+hs=s+1        
skip=+\\\|\"+  end=+"+  contains=vimCtrlChar
 syn match      vimSetSep       contained       "[,:]"
-syn match      vimSetMod       contained       "&vim\=\|[!&?<]\|all&"
+syn match      vimSetMod       contained       " \@1<=\%(&vim\=\|[!&?<]\)"
 
 " Variable Declarations: {{{2
 " =====================
@@ -1273,9 +1277,13 @@ if !exists("skip_vim_syntax_inits")
  hi def link vimSearchDelim    Statement
  hi def link vimSearch vimString
  hi def link vimSep    Delimiter
+ hi def link vimSet    vimCommand
+ hi def link vimSetAll vimOption
+ hi def link vimSetBang        vimBang
  hi def link vimSetMod vimOption
- hi def link vimSetSep Statement
+ hi def link vimSetSep vimSep
  hi def link vimSetString      vimString
+ hi def link vimSetTermcap     vimOption
  hi def link vimShebang        PreProc
  hi def link vimSleep  vimCommand
  hi def link vimSleepArg       Constant

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/E1sWgkX-008Frn-Qo%40256bit.org.

Raspunde prin e-mail lui