runtime(vim): Update base-syntax, improve :set highlighting
- Match comments and trailing bar after :set without args.
- Match the <...> form for key code options.
- Remove orphaned vim_ex_python[3x]* dump files (Aliaksei Budavei).
closes: #17397
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/runtime/syntax/generator/vim.vim.base b/runtime/syntax/generator/vim.vim.base
index 7ee8e71..5b3b826 100644
--- a/runtime/syntax/generator/vim.vim.base
+++ b/runtime/syntax/generator/vim.vim.base
@@ -2,7 +2,7 @@
" Language: Vim script
" Maintainer: Hirohito Higashi <h.east.727 ATMARK gmail.com>
" Doug Kearns <dougkearns@gmail.com>
-" Last Change: 2025 May 22
+" Last Change: 2025 May 29
" Former Maintainer: Charles E. Campbell
" DO NOT CHANGE DIRECTLY.
@@ -896,14 +896,14 @@
syn match vimCmplxRepeat '@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\>\)'
" Set command and associated set-options (vimOptions) with comment {{{2
-syn match vimSet "\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skipwhite nextgroup=vimSetBang,vimSetArgs
+syn match vimSet "\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skipwhite nextgroup=vimSetBang,vimCmdSep,vimComment,vimSetArgs
syn region vimSetComment contained start=+"+ skip=+\n\s*\%(\\\||"\\ \)+ end="$" contains=@vimCommentGroup,vimCommentString extend
syn match vimSetCmdSep contained "|" skipwhite nextgroup=@vimCmdList,vimSubst1,vimFunc
syn match vimSetEscape contained "\\\%(\\[|"]\|.\)"
syn match vimSetBarEscape contained "\\|"
syn match vimSetQuoteEscape contained +\\"+
syn region vimSetArgs contained
- \ start="\S"
+ \ start="\l\|<"
\ skip=+\n\s*\%(\\\|["#]\\ \)\|^\s*"\\ +
\ end=+\ze\\\@1<![|"]+
"\ assume this isn't an escaped char with backslash on the previous line
@@ -913,6 +913,8 @@
\ nextgroup=vimSetCmdSep,vimSetComment,vim9Comment
\ contains=@vimContinue,vimErrSetting,vimOption,vimSetAll,vimSetTermcap
\ keepend
+" TODO: restrict this to valid values?
+syn match vimOption contained "<[^>]\+>" contains=vimOption
syn region vimSetEqual contained
\ matchgroup=vimOper
\ start="[=:]\|[-+^]="
diff --git a/runtime/syntax/testdir/dumps/vim_ex_python3_00.dump b/runtime/syntax/testdir/dumps/vim_ex_python3_00.dump
deleted file mode 100644
index a83df79..0000000
--- a/runtime/syntax/testdir/dumps/vim_ex_python3_00.dump
+++ /dev/null
@@ -1,20 +0,0 @@
-| +0#0000e05#a8a8a8255@1>"+0&#ffffff0| |V|i|m| |:|p|y|t|h|o|n|x|,| |:|p|y|x|d|o|,| |:|p|y|x|f|i|l|e| +0#0000000&@40
-| +0#0000e05#a8a8a8255@1|"+0&#ffffff0| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |l|e|t| |g|:|v|i|m|s|y|n|_|e|m|b|e|d| |=| |"+0#e000002&|P|"| +0#0000000&@31
-| +0#0000e05#a8a8a8255@1|"+0&#ffffff0| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |l|e|t| |g|:|v|i|m|s|y|n|_|f|o|l|d|i|n|g| |=| |"+0#e000002&|f|P|"| +0#0000000&@28
-| +0#0000e05#a8a8a8255@1|"+0&#ffffff0| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |s|e|t|l| |f|d|c|=|2| |f|d|l|=|9@1| |f|d|m|=|s|y|n|t|a|x| +0#0000000&@27
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-|-+0#0000e05#a8a8a8255| |p+0#af5f00255#ffffff0|y|t|h|o|n|3| +0#0000000&|<+0#e000e06&@1| |E|O|F| +0#0000000&@58
-||+0#0000e05#a8a8a8255| |p+0#00e0e07#ffffff0|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|3| |s|c|r|i|p|t|"|)+0#0000000&| @49
-||+0#0000e05#a8a8a8255| |E+0#e000e06#ffffff0|O|F| +0#0000000&@69
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|p+0#af5f00255&|y|t|h|o|n|3| +0#0000000&|<+0#e000e06&@1| |t|r|i|m| |E|O|F| +0#0000000&@51
-||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|3| |s|c|r|i|p|t|"|)+0#0000000&| @45
-||+0#0000e05#a8a8a8255| | +0#e000e06#ffffff0@1|E|O|F| +0#0000000&@67
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-|-+0#0000e05#a8a8a8255| |p+0#af5f00255#ffffff0|y|t|h|o|n|3| +0#0000000&|<+0#e000e06&@1| +0#0000000&@62
-||+0#0000e05#a8a8a8255| |p+0#00e0e07#ffffff0|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|3| |s|c|r|i|p|t|"|)+0#0000000&| @49
-||+0#0000e05#a8a8a8255| |.+0#e000e06#ffffff0| +0#0000000&@71
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|p+0#af5f00255&|y|t|h|o|n|3| +0#0000000&|<+0#e000e06&@1| |t|r|i|m| +0#0000000&@55
-||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|3| |s|c|r|i|p|t|"|)+0#0000000&| @45
-@57|1|,|1| @10|T|o|p|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_python3_01.dump b/runtime/syntax/testdir/dumps/vim_ex_python3_01.dump
deleted file mode 100644
index dfb52d4..0000000
--- a/runtime/syntax/testdir/dumps/vim_ex_python3_01.dump
+++ /dev/null
@@ -1,20 +0,0 @@
-|-+0#0000e05#a8a8a8255| |p+0#af5f00255#ffffff0|y|t|h|o|n|3| +0#0000000&|<+0#e000e06&@1| +0#0000000&@62
-||+0#0000e05#a8a8a8255| |p+0#00e0e07#ffffff0|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|3| |s|c|r|i|p|t|"|)+0#0000000&| @49
-||+0#0000e05#a8a8a8255| |.+0#e000e06#ffffff0| +0#0000000&@71
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|p+0#af5f00255&|y|t|h|o|n|3| +0#0000000&|<+0#e000e06&@1| |t|r|i|m| +0#0000000&@55
-||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3>p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|3| |s|c|r|i|p|t|"|)+0#0000000&| @45
-||+0#0000e05#a8a8a8255| | +0#e000e06#ffffff0@1|.| +0#0000000&@69
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-|-+0#0000e05#a8a8a8255| |f+0#af5f00255#ffffff0|u|n|c|t|i|o|n| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@58
-|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|p+0#af5f00255&|y|t|h|o|n|3| +0#0000000&|<+0#e000e06&@1| |t|r|i|m| |E|O|F| +0#0000000&@51
-|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|3| |s|c|r|i|p|t| |i|n| |:|f|u|n|c|"|)+0#0000000&| @36
-|2+0#0000e05#a8a8a8255| | +0#e000e06#ffffff0@1|E|O|F| +0#0000000&@67
-||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|f|u|n|c|t|i|o|n| +0#0000000&||| |c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@48
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-|-+0#0000e05#a8a8a8255| |d+0#af5f00255#ffffff0|e|f| +0#0000000&|B|a|r|(+0#e000e06&|)| +0#0000000&@63
-|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|p+0#af5f00255&|y|t|h|o|n|3| +0#0000000&|<+0#e000e06&@1| |t|r|i|m| |E|O|F| +0#0000000&@51
-|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|3| |s|c|r|i|p|t| |i|n| |:|d|e|f|"|)+0#0000000&| @37
-|2+0#0000e05#a8a8a8255| | +0#e000e06#ffffff0@1|E|O|F| +0#0000000&@67
-||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d@1|e|f| +0#0000000&||| |c+0#af5f00255&|a|l@1| +0#0000000&|B|a|r|(+0#e000e06&|)| +0#0000000&@53
-@57|1|9|,|5| @9|1@1|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_python3_02.dump b/runtime/syntax/testdir/dumps/vim_ex_python3_02.dump
deleted file mode 100644
index 29b34d5..0000000
--- a/runtime/syntax/testdir/dumps/vim_ex_python3_02.dump
+++ /dev/null
@@ -1,20 +0,0 @@
-||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d@1|e|f| +0#0000000&||| |c+0#af5f00255&|a|l@1| +0#0000000&|B|a|r|(+0#e000e06&|)| +0#0000000&@53
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|p+0#af5f00255#ffffff0|y|t|h|o|n|3| +0#0000000&|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|3| |s|t|a|t|e|m|e|n|t|"|)+0#0000000&|;| @37
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@56
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@5|\+0#e000e06&| +0#0000000&|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|3| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|"|)+0#0000000&| @32
-| +0#0000e05#a8a8a8255@1> +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|p+0#af5f00255#ffffff0|y|3|d|o| +0#0000000&|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|3| |s|t|a|t|e|m|e|n|t|"|)+0#0000000&|;| @39
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@56
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@5|\+0#e000e06&| +0#0000000&|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|3| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|"|)+0#0000000&| @32
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|p+0#af5f00255#ffffff0|y|3|f|i|l|e| +0#0000000&|f|o@1|.+0#af5f00255&|p|y| +0#0000000&@58
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|l+0#ffffff16#ff404010|u|a| |<@1| |t|r|i|m| |E|O|F| | +0#0000000#ffffff0@56
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@1|p|r|i|n|t|(|"|L|u|a| |s|c|r|i|p|t|"|)| +0#0000000#ffffff0@51
-| +0#0000e05#a8a8a8255@1|E+0#ffffff16#ff404010|O|F| +0#0000000#ffffff0@69
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|l+0#ffffff16#ff404010|u|a| |p|r|i|n|t|(|"|L|u|a| |s|t|a|t|e|m|e|n|t|"|)| +0#0000000#ffffff0@46
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|"|\| |c|o|m@1|e|n|t| +0#0000000#ffffff0@56
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|\| |p|r|i|n|t|(|"|L|u|a| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|"|)| +0#0000000#ffffff0@36
-@57|3|7|,|0|-|1| @7|2|6|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_python3_03.dump b/runtime/syntax/testdir/dumps/vim_ex_python3_03.dump
deleted file mode 100644
index bd69d5b..0000000
--- a/runtime/syntax/testdir/dumps/vim_ex_python3_03.dump
+++ /dev/null
@@ -1,20 +0,0 @@
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|\| |p|r|i|n|t|(|"|L|u|a| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|"|)| +0#0000000#ffffff0@36
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|l+0#ffffff16#ff404010|u|a|d|o| |p|r|i|n|t|(|"|L|u|a| |s|t|a|t|e|m|e|n|t|"|)| +0#0000000#ffffff0@44
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|"|\| |c|o|m@1|e|n|t| +0#0000000#ffffff0@56
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|\| |p|r|i|n|t|(|"|L|u|a| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|"|)| +0#0000000#ffffff0@36
-| +0#0000e05#a8a8a8255@1> +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|l+0#ffffff16#ff404010|u|a|f|i|l|e| |f|o@1|.|l|u|a| +0#0000000#ffffff0@57
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|m+0#ffffff16#ff404010|z|s|c|h|e|m|e| |<@1| |t|r|i|m| |E|O|F| | +0#0000000#ffffff0@51
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@1|(|d|i|s|p|l|a|y| |"|M|z|S|c|h|e|m|e| |s|c|r|i|p|t|"|)| +0#0000000#ffffff0@43
-| +0#0000e05#a8a8a8255@1|E+0#ffffff16#ff404010|O|F| +0#0000000#ffffff0@69
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|m+0#ffffff16#ff404010|z|s|c|h|e|m|e| |(|d|i|s|p|l|a|y| |"|M|z|S|c|h|e|m|e| |s|t|a|t|e|m|e|n|t|"|)| +0#0000000#ffffff0@33
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|"|\| |c|o|m@1|e|n|t| +0#0000000#ffffff0@56
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|\| |(|d|i|s|p|l|a|y| |"|M|z|S|c|h|e|m|e| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|"|)| +0#0000000#ffffff0@28
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|m+0#ffffff16#ff404010|z|f|i|l|e| |f|o@1|.|r|k|t| +0#0000000#ffffff0@58
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|p+0#ffffff16#ff404010|e|r|l| |<@1| |t|r|i|m| |E|O|F| | +0#0000000#ffffff0@55
-@57|5@1|,|0|-|1| @7|4|2|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_python3_04.dump b/runtime/syntax/testdir/dumps/vim_ex_python3_04.dump
deleted file mode 100644
index bd85be0..0000000
--- a/runtime/syntax/testdir/dumps/vim_ex_python3_04.dump
+++ /dev/null
@@ -1,20 +0,0 @@
-| +0#0000e05#a8a8a8255@1|p+0#ffffff16#ff404010|e|r|l| |<@1| |t|r|i|m| |E|O|F| | +0#0000000#ffffff0@55
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@1|p|r|i|n|t|(|"|P|e|r|l| |s|c|r|i|p|t|\|n|"|)| +0#0000000#ffffff0@48
-| +0#0000e05#a8a8a8255@1|E+0#ffffff16#ff404010|O|F| +0#0000000#ffffff0@69
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|p+0#ffffff16#ff404010|e|r|l| |p|r|i|n|t|(|"|P|e|r|l| |s|t|a|t|e|m|e|n|t|\|n|"|)|;| +0#0000000#ffffff0@41
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5>"|\| |c|o|m@1|e|n|t| +0#0000000#ffffff0@56
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|\| |p|r|i|n|t|(|"|P|e|r|l| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|\|n|"|)| +0#0000000#ffffff0@33
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|p+0#ffffff16#ff404010|e|r|l|d|o| |p|r|i|n|t|(|"|P|e|r|l| |s|t|a|t|e|m|e|n|t|\|n|"|)|;| +0#0000000#ffffff0@39
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|"|\| |c|o|m@1|e|n|t| +0#0000000#ffffff0@56
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|\| |p|r|i|n|t|(|"|P|e|r|l| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|\|n|"|)| +0#0000000#ffffff0@33
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-|-+0#0000e05#a8a8a8255| |p+0#af5f00255#ffffff0|y|t|h|o|n| +0#0000000&|<+0#e000e06&@1| |t|r|i|m| |E|O|F| +0#0000000&@54
-||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n| |s|c|r|i|p|t|"|)+0#0000000&| @48
-||+0#0000e05#a8a8a8255| |E+0#e000e06#ffffff0|O|F| +0#0000000&@69
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|p+0#af5f00255#ffffff0|y|t|h|o|n| +0#0000000&|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n| |s|t|a|t|e|m|e|n|t|"|)+0#0000000&|;| @39
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@56
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@5|\+0#e000e06&| +0#0000000&|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|"|)+0#0000000&| @33
-@57|7|3|,|7| @9|5|7|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_python3_05.dump b/runtime/syntax/testdir/dumps/vim_ex_python3_05.dump
deleted file mode 100644
index 7242a31..0000000
--- a/runtime/syntax/testdir/dumps/vim_ex_python3_05.dump
+++ /dev/null
@@ -1,20 +0,0 @@
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@5|\+0#e000e06&| +0#0000000&|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|"|)+0#0000000&| @33
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|p+0#af5f00255#ffffff0|y|d|o| +0#0000000&|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n| |s|t|a|t|e|m|e|n|t|"|)+0#0000000&|;| @41
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@56
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@5|\+0#e000e06&| +0#0000000&|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|"|)+0#0000000&| @33
-| +0#0000e05#a8a8a8255@1> +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|p+0#af5f00255#ffffff0|y|f|i|l|e| +0#0000000&|f|o@1|.+0#af5f00255&|r+0#0000000&|b| @59
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-|-+0#0000e05#a8a8a8255| |p+0#af5f00255#ffffff0|y|t|h|o|n|x| +0#0000000&|<+0#e000e06&@1| |t|r|i|m| |E|O|F| +0#0000000&@53
-||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|X| |s|c|r|i|p|t|"|)+0#0000000&| @47
-||+0#0000e05#a8a8a8255| |E+0#e000e06#ffffff0|O|F| +0#0000000&@69
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|p+0#af5f00255#ffffff0|y|t|h|o|n|x| +0#0000000&|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|X| |s|t|a|t|e|m|e|n|t|"|)+0#0000000&|;| @37
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@56
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@5|\+0#e000e06&| +0#0000000&|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|X| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|"|)+0#0000000&| @32
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|p+0#af5f00255#ffffff0|y|x|d|o| +0#0000000&|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|X| |s|t|a|t|e|m|e|n|t|"|)+0#0000000&|;| @39
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@56
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@5|\+0#e000e06&| +0#0000000&|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|X| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|"|)+0#0000000&| @32
-@57|9|1|,|0|-|1| @7|7|3|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_python3_06.dump b/runtime/syntax/testdir/dumps/vim_ex_python3_06.dump
deleted file mode 100644
index 32f27e0..0000000
--- a/runtime/syntax/testdir/dumps/vim_ex_python3_06.dump
+++ /dev/null
@@ -1,20 +0,0 @@
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@5|\+0#e000e06&| +0#0000000&|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|X| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|"|)+0#0000000&| @32
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|p+0#af5f00255#ffffff0|y|x|f|i|l|e| +0#0000000&|f|o@1|.+0#af5f00255&|r+0#0000000&|b| @58
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|r+0#ffffff16#ff404010|u|b|y| |<@1| |t|r|i|m| |E|O|F| | +0#0000000#ffffff0@55
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@1>p|u|t|s| |"|R|u|b|y| |s|c|r|i|p|t|"| +0#0000000#ffffff0@52
-| +0#0000e05#a8a8a8255@1|E+0#ffffff16#ff404010|O|F| +0#0000000#ffffff0@69
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|r+0#ffffff16#ff404010|u|b|y| |p|u|t|s| |"|R|u|b|y| |s|t|a|t|e|m|e|n|t|"|;| +0#0000000#ffffff0@45
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|"|\| |c|o|m@1|e|n|t| +0#0000000#ffffff0@56
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|\| |p|u|t|s| |"|R|u|b|y| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|"| +0#0000000#ffffff0@37
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|r+0#ffffff16#ff404010|u|b|y|d|o| |p|u|t|s| |"|R|u|b|y| |s|t|a|t|e|m|e|n|t|"|;| +0#0000000#ffffff0@43
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|"|\| |c|o|m@1|e|n|t| +0#0000000#ffffff0@56
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|\| |p|u|t|s| |"|R|u|b|y| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|"| +0#0000000#ffffff0@37
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|r+0#ffffff16#ff404010|u|b|y|f|i|l|e| |f|o@1|.|r|b| +0#0000000#ffffff0@57
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|t+0#ffffff16#ff404010|c|l| |<@1| |t|r|i|m| |E|O|F| | +0#0000000#ffffff0@56
-@57|1|0|9|,|3| @8|8@1|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_python3_07.dump b/runtime/syntax/testdir/dumps/vim_ex_python3_07.dump
deleted file mode 100644
index dd5076e..0000000
--- a/runtime/syntax/testdir/dumps/vim_ex_python3_07.dump
+++ /dev/null
@@ -1,20 +0,0 @@
-| +0#0000e05#a8a8a8255@1|t+0#ffffff16#ff404010|c|l| |<@1| |t|r|i|m| |E|O|F| | +0#0000000#ffffff0@56
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@1|p|u|t|s| |"|T|C|L| |s|c|r|i|p|t|"| +0#0000000#ffffff0@53
-| +0#0000e05#a8a8a8255@1|E+0#ffffff16#ff404010|O|F| +0#0000000#ffffff0@69
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|t+0#ffffff16#ff404010|c|l| |p|u|t|s| |"|T|C|L| |s|t|a|t|e|m|e|n|t|"|;| +0#0000000#ffffff0@47
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5>"|\| |c|o|m@1|e|n|t| +0#0000000#ffffff0@56
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|\| |p|u|t|s| |"|T|C|L| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|"| +0#0000000#ffffff0@38
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|t+0#ffffff16#ff404010|c|l|d|o| |p|u|t|s| |"|T|C|L| |s|t|a|t|e|m|e|n|t|"|;| +0#0000000#ffffff0@45
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|"|\| |c|o|m@1|e|n|t| +0#0000000#ffffff0@56
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|\| |p|u|t|s| |"|T|C|L| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|"| +0#0000000#ffffff0@38
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|t+0#ffffff16#ff404010|c|l|f|i|l|e| |f|o@1|.|t|c|l| +0#0000000#ffffff0@57
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-|~+0#4040ff13&| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-| +0#0000000&@56|1|2|7|,|7| @8|B|o|t|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_pythonx_00.dump b/runtime/syntax/testdir/dumps/vim_ex_pythonx_00.dump
deleted file mode 100644
index 5c5ae91..0000000
--- a/runtime/syntax/testdir/dumps/vim_ex_pythonx_00.dump
+++ /dev/null
@@ -1,20 +0,0 @@
-| +0#0000e05#a8a8a8255@1>"+0&#ffffff0| |V|i|m| |:|p|y|t|h|o|n|x|,| |:|p|y|x|d|o|,| |:|p|y|x|f|i|l|e| +0#0000000&@40
-| +0#0000e05#a8a8a8255@1|"+0&#ffffff0| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |l|e|t| |g|:|v|i|m|s|y|n|_|e|m|b|e|d| |=| |"+0#e000002&|P|"| +0#0000000&@31
-| +0#0000e05#a8a8a8255@1|"+0&#ffffff0| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |l|e|t| |g|:|v|i|m|s|y|n|_|f|o|l|d|i|n|g| |=| |"+0#e000002&|f|P|"| +0#0000000&@28
-| +0#0000e05#a8a8a8255@1|"+0&#ffffff0| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |s|e|t|l| |f|d|c|=|2| |f|d|l|=|9@1| |f|d|m|=|s|y|n|t|a|x| +0#0000000&@27
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-|-+0#0000e05#a8a8a8255| |p+0#af5f00255#ffffff0|y|t|h|o|n|x| +0#0000000&|<+0#e000e06&@1| |E|O|F| +0#0000000&@58
-||+0#0000e05#a8a8a8255| |p+0#00e0e07#ffffff0|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|X| |s|c|r|i|p|t|"|)+0#0000000&| @49
-||+0#0000e05#a8a8a8255| |E+0#e000e06#ffffff0|O|F| +0#0000000&@69
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|p+0#af5f00255&|y|t|h|o|n|x| +0#0000000&|<+0#e000e06&@1| |t|r|i|m| |E|O|F| +0#0000000&@51
-||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|X| |s|c|r|i|p|t|"|)+0#0000000&| @45
-||+0#0000e05#a8a8a8255| | +0#e000e06#ffffff0@1|E|O|F| +0#0000000&@67
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-|-+0#0000e05#a8a8a8255| |p+0#af5f00255#ffffff0|y|t|h|o|n|x| +0#0000000&|<+0#e000e06&@1| +0#0000000&@62
-||+0#0000e05#a8a8a8255| |p+0#00e0e07#ffffff0|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|X| |s|c|r|i|p|t|"|)+0#0000000&| @49
-||+0#0000e05#a8a8a8255| |.+0#e000e06#ffffff0| +0#0000000&@71
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|p+0#af5f00255&|y|t|h|o|n|x| +0#0000000&|<+0#e000e06&@1| |t|r|i|m| +0#0000000&@55
-||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|X| |s|c|r|i|p|t|"|)+0#0000000&| @45
-@57|1|,|1| @10|T|o|p|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_pythonx_01.dump b/runtime/syntax/testdir/dumps/vim_ex_pythonx_01.dump
deleted file mode 100644
index aaaf631..0000000
--- a/runtime/syntax/testdir/dumps/vim_ex_pythonx_01.dump
+++ /dev/null
@@ -1,20 +0,0 @@
-|-+0#0000e05#a8a8a8255| |p+0#af5f00255#ffffff0|y|t|h|o|n|x| +0#0000000&|<+0#e000e06&@1| +0#0000000&@62
-||+0#0000e05#a8a8a8255| |p+0#00e0e07#ffffff0|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|X| |s|c|r|i|p|t|"|)+0#0000000&| @49
-||+0#0000e05#a8a8a8255| |.+0#e000e06#ffffff0| +0#0000000&@71
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|p+0#af5f00255&|y|t|h|o|n|x| +0#0000000&|<+0#e000e06&@1| |t|r|i|m| +0#0000000&@55
-||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3>p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|X| |s|c|r|i|p|t|"|)+0#0000000&| @45
-||+0#0000e05#a8a8a8255| | +0#e000e06#ffffff0@1|.| +0#0000000&@69
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-|-+0#0000e05#a8a8a8255| |f+0#af5f00255#ffffff0|u|n|c|t|i|o|n| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@58
-|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|p+0#af5f00255&|y|t|h|o|n|x| +0#0000000&|<+0#e000e06&@1| |t|r|i|m| |E|O|F| +0#0000000&@51
-|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|X| |s|c|r|i|p|t| |i|n| |:|f|u|n|c|"|)+0#0000000&| @36
-|2+0#0000e05#a8a8a8255| | +0#e000e06#ffffff0@1|E|O|F| +0#0000000&@67
-||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|f|u|n|c|t|i|o|n| +0#0000000&||| |c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@48
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-|-+0#0000e05#a8a8a8255| |d+0#af5f00255#ffffff0|e|f| +0#0000000&|B|a|r|(+0#e000e06&|)| +0#0000000&@63
-|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|p+0#af5f00255&|y|t|h|o|n|x| +0#0000000&|<+0#e000e06&@1| |t|r|i|m| |E|O|F| +0#0000000&@51
-|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|X| |s|c|r|i|p|t| |i|n| |:|d|e|f|"|)+0#0000000&| @37
-|2+0#0000e05#a8a8a8255| | +0#e000e06#ffffff0@1|E|O|F| +0#0000000&@67
-||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d@1|e|f| +0#0000000&||| |c+0#af5f00255&|a|l@1| +0#0000000&|B|a|r|(+0#e000e06&|)| +0#0000000&@53
-@57|1|9|,|5| @9|1@1|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_pythonx_02.dump b/runtime/syntax/testdir/dumps/vim_ex_pythonx_02.dump
deleted file mode 100644
index e2b10d7..0000000
--- a/runtime/syntax/testdir/dumps/vim_ex_pythonx_02.dump
+++ /dev/null
@@ -1,20 +0,0 @@
-||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d@1|e|f| +0#0000000&||| |c+0#af5f00255&|a|l@1| +0#0000000&|B|a|r|(+0#e000e06&|)| +0#0000000&@53
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|p+0#af5f00255#ffffff0|y|t|h|o|n|x| +0#0000000&|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|X| |s|t|a|t|e|m|e|n|t|"|)+0#0000000&|;| @37
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@56
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@5|\+0#e000e06&| +0#0000000&|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|X| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|"|)+0#0000000&| @32
-| +0#0000e05#a8a8a8255@1> +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|p+0#af5f00255#ffffff0|y|x|d|o| +0#0000000&|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|X| |s|t|a|t|e|m|e|n|t|"|)+0#0000000&|;| @39
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@56
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@5|\+0#e000e06&| +0#0000000&|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|X| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|"|)+0#0000000&| @32
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|p+0#af5f00255#ffffff0|y|x|f|i|l|e| +0#0000000&|f|o@1|.+0#af5f00255&|p|y| +0#0000000&@58
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|l+0#ffffff16#ff404010|u|a| |<@1| |t|r|i|m| |E|O|F| | +0#0000000#ffffff0@56
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@1|p|r|i|n|t|(|"|L|u|a| |s|c|r|i|p|t|"|)| +0#0000000#ffffff0@51
-| +0#0000e05#a8a8a8255@1|E+0#ffffff16#ff404010|O|F| +0#0000000#ffffff0@69
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|l+0#ffffff16#ff404010|u|a| |p|r|i|n|t|(|"|L|u|a| |s|t|a|t|e|m|e|n|t|"|)| +0#0000000#ffffff0@46
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|"|\| |c|o|m@1|e|n|t| +0#0000000#ffffff0@56
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|\| |p|r|i|n|t|(|"|L|u|a| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|"|)| +0#0000000#ffffff0@36
-@57|3|7|,|0|-|1| @7|2|6|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_pythonx_03.dump b/runtime/syntax/testdir/dumps/vim_ex_pythonx_03.dump
deleted file mode 100644
index bd69d5b..0000000
--- a/runtime/syntax/testdir/dumps/vim_ex_pythonx_03.dump
+++ /dev/null
@@ -1,20 +0,0 @@
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|\| |p|r|i|n|t|(|"|L|u|a| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|"|)| +0#0000000#ffffff0@36
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|l+0#ffffff16#ff404010|u|a|d|o| |p|r|i|n|t|(|"|L|u|a| |s|t|a|t|e|m|e|n|t|"|)| +0#0000000#ffffff0@44
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|"|\| |c|o|m@1|e|n|t| +0#0000000#ffffff0@56
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|\| |p|r|i|n|t|(|"|L|u|a| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|"|)| +0#0000000#ffffff0@36
-| +0#0000e05#a8a8a8255@1> +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|l+0#ffffff16#ff404010|u|a|f|i|l|e| |f|o@1|.|l|u|a| +0#0000000#ffffff0@57
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|m+0#ffffff16#ff404010|z|s|c|h|e|m|e| |<@1| |t|r|i|m| |E|O|F| | +0#0000000#ffffff0@51
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@1|(|d|i|s|p|l|a|y| |"|M|z|S|c|h|e|m|e| |s|c|r|i|p|t|"|)| +0#0000000#ffffff0@43
-| +0#0000e05#a8a8a8255@1|E+0#ffffff16#ff404010|O|F| +0#0000000#ffffff0@69
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|m+0#ffffff16#ff404010|z|s|c|h|e|m|e| |(|d|i|s|p|l|a|y| |"|M|z|S|c|h|e|m|e| |s|t|a|t|e|m|e|n|t|"|)| +0#0000000#ffffff0@33
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|"|\| |c|o|m@1|e|n|t| +0#0000000#ffffff0@56
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|\| |(|d|i|s|p|l|a|y| |"|M|z|S|c|h|e|m|e| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|"|)| +0#0000000#ffffff0@28
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|m+0#ffffff16#ff404010|z|f|i|l|e| |f|o@1|.|r|k|t| +0#0000000#ffffff0@58
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|p+0#ffffff16#ff404010|e|r|l| |<@1| |t|r|i|m| |E|O|F| | +0#0000000#ffffff0@55
-@57|5@1|,|0|-|1| @7|4|2|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_pythonx_04.dump b/runtime/syntax/testdir/dumps/vim_ex_pythonx_04.dump
deleted file mode 100644
index bd85be0..0000000
--- a/runtime/syntax/testdir/dumps/vim_ex_pythonx_04.dump
+++ /dev/null
@@ -1,20 +0,0 @@
-| +0#0000e05#a8a8a8255@1|p+0#ffffff16#ff404010|e|r|l| |<@1| |t|r|i|m| |E|O|F| | +0#0000000#ffffff0@55
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@1|p|r|i|n|t|(|"|P|e|r|l| |s|c|r|i|p|t|\|n|"|)| +0#0000000#ffffff0@48
-| +0#0000e05#a8a8a8255@1|E+0#ffffff16#ff404010|O|F| +0#0000000#ffffff0@69
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|p+0#ffffff16#ff404010|e|r|l| |p|r|i|n|t|(|"|P|e|r|l| |s|t|a|t|e|m|e|n|t|\|n|"|)|;| +0#0000000#ffffff0@41
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5>"|\| |c|o|m@1|e|n|t| +0#0000000#ffffff0@56
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|\| |p|r|i|n|t|(|"|P|e|r|l| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|\|n|"|)| +0#0000000#ffffff0@33
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|p+0#ffffff16#ff404010|e|r|l|d|o| |p|r|i|n|t|(|"|P|e|r|l| |s|t|a|t|e|m|e|n|t|\|n|"|)|;| +0#0000000#ffffff0@39
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|"|\| |c|o|m@1|e|n|t| +0#0000000#ffffff0@56
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|\| |p|r|i|n|t|(|"|P|e|r|l| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|\|n|"|)| +0#0000000#ffffff0@33
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-|-+0#0000e05#a8a8a8255| |p+0#af5f00255#ffffff0|y|t|h|o|n| +0#0000000&|<+0#e000e06&@1| |t|r|i|m| |E|O|F| +0#0000000&@54
-||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n| |s|c|r|i|p|t|"|)+0#0000000&| @48
-||+0#0000e05#a8a8a8255| |E+0#e000e06#ffffff0|O|F| +0#0000000&@69
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|p+0#af5f00255#ffffff0|y|t|h|o|n| +0#0000000&|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n| |s|t|a|t|e|m|e|n|t|"|)+0#0000000&|;| @39
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@56
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@5|\+0#e000e06&| +0#0000000&|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|"|)+0#0000000&| @33
-@57|7|3|,|7| @9|5|7|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_pythonx_05.dump b/runtime/syntax/testdir/dumps/vim_ex_pythonx_05.dump
deleted file mode 100644
index bf180f7..0000000
--- a/runtime/syntax/testdir/dumps/vim_ex_pythonx_05.dump
+++ /dev/null
@@ -1,20 +0,0 @@
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@5|\+0#e000e06&| +0#0000000&|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|"|)+0#0000000&| @33
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|p+0#af5f00255#ffffff0|y|d|o| +0#0000000&|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n| |s|t|a|t|e|m|e|n|t|"|)+0#0000000&|;| @41
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@56
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@5|\+0#e000e06&| +0#0000000&|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|"|)+0#0000000&| @33
-| +0#0000e05#a8a8a8255@1> +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|p+0#af5f00255#ffffff0|y|f|i|l|e| +0#0000000&|f|o@1|.+0#af5f00255&|r+0#0000000&|b| @59
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-|-+0#0000e05#a8a8a8255| |p+0#af5f00255#ffffff0|y|t|h|o|n|3| +0#0000000&|<+0#e000e06&@1| |t|r|i|m| |E|O|F| +0#0000000&@53
-||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|3| |s|c|r|i|p|t|"|)+0#0000000&| @47
-||+0#0000e05#a8a8a8255| |E+0#e000e06#ffffff0|O|F| +0#0000000&@69
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|p+0#af5f00255#ffffff0|y|t|h|o|n|3| +0#0000000&|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|3| |s|t|a|t|e|m|e|n|t|"|)+0#0000000&|;| @37
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@56
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@5|\+0#e000e06&| +0#0000000&|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|3| |s|t|a|t|e|m|e|n|t|"|)+0#0000000&| @38
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|p+0#af5f00255#ffffff0|y|3|d|o| +0#0000000&|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|3| |s|t|a|t|e|m|e|n|t|"|)+0#0000000&|;| @39
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@56
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@5|\+0#e000e06&| +0#0000000&|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|3| |s|t|a|t|e|m|e|n|t|"|)+0#0000000&| @38
-@57|9|1|,|0|-|1| @7|7|3|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_pythonx_06.dump b/runtime/syntax/testdir/dumps/vim_ex_pythonx_06.dump
deleted file mode 100644
index 521c2ae..0000000
--- a/runtime/syntax/testdir/dumps/vim_ex_pythonx_06.dump
+++ /dev/null
@@ -1,20 +0,0 @@
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@5|\+0#e000e06&| +0#0000000&|p+0#00e0e07&|r|i|n|t|(+0#0000000&|"+0#e000002&|P|y|t|h|o|n|3| |s|t|a|t|e|m|e|n|t|"|)+0#0000000&| @38
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|p+0#af5f00255#ffffff0|y|3|f|i|l|e| +0#0000000&|f|o@1|.+0#af5f00255&|r+0#0000000&|b| @58
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|r+0#ffffff16#ff404010|u|b|y| |<@1| |t|r|i|m| |E|O|F| | +0#0000000#ffffff0@55
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@1>p|u|t|s| |"|R|u|b|y| |s|c|r|i|p|t|"| +0#0000000#ffffff0@52
-| +0#0000e05#a8a8a8255@1|E+0#ffffff16#ff404010|O|F| +0#0000000#ffffff0@69
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|r+0#ffffff16#ff404010|u|b|y| |p|u|t|s| |"|R|u|b|y| |s|t|a|t|e|m|e|n|t|"|;| +0#0000000#ffffff0@45
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|"|\| |c|o|m@1|e|n|t| +0#0000000#ffffff0@56
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|\| |p|u|t|s| |"|R|u|b|y| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|"| +0#0000000#ffffff0@37
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|r+0#ffffff16#ff404010|u|b|y|d|o| |p|u|t|s| |"|R|u|b|y| |s|t|a|t|e|m|e|n|t|"|;| +0#0000000#ffffff0@43
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|"|\| |c|o|m@1|e|n|t| +0#0000000#ffffff0@56
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|\| |p|u|t|s| |"|R|u|b|y| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|"| +0#0000000#ffffff0@37
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|r+0#ffffff16#ff404010|u|b|y|f|i|l|e| |f|o@1|.|r|b| +0#0000000#ffffff0@57
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|t+0#ffffff16#ff404010|c|l| |<@1| |t|r|i|m| |E|O|F| | +0#0000000#ffffff0@56
-@57|1|0|9|,|3| @8|8@1|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_pythonx_07.dump b/runtime/syntax/testdir/dumps/vim_ex_pythonx_07.dump
deleted file mode 100644
index dd5076e..0000000
--- a/runtime/syntax/testdir/dumps/vim_ex_pythonx_07.dump
+++ /dev/null
@@ -1,20 +0,0 @@
-| +0#0000e05#a8a8a8255@1|t+0#ffffff16#ff404010|c|l| |<@1| |t|r|i|m| |E|O|F| | +0#0000000#ffffff0@56
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@1|p|u|t|s| |"|T|C|L| |s|c|r|i|p|t|"| +0#0000000#ffffff0@53
-| +0#0000e05#a8a8a8255@1|E+0#ffffff16#ff404010|O|F| +0#0000000#ffffff0@69
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|t+0#ffffff16#ff404010|c|l| |p|u|t|s| |"|T|C|L| |s|t|a|t|e|m|e|n|t|"|;| +0#0000000#ffffff0@47
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5>"|\| |c|o|m@1|e|n|t| +0#0000000#ffffff0@56
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|\| |p|u|t|s| |"|T|C|L| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|"| +0#0000000#ffffff0@38
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|t+0#ffffff16#ff404010|c|l|d|o| |p|u|t|s| |"|T|C|L| |s|t|a|t|e|m|e|n|t|"|;| +0#0000000#ffffff0@45
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|"|\| |c|o|m@1|e|n|t| +0#0000000#ffffff0@56
-| +0#0000e05#a8a8a8255@1| +0#ffffff16#ff404010@5|\| |p|u|t|s| |"|T|C|L| |s|t|a|t|e|m|e|n|t| |a|g|a|i|n|"| +0#0000000#ffffff0@38
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|t+0#ffffff16#ff404010|c|l|f|i|l|e| |f|o@1|.|t|c|l| +0#0000000#ffffff0@57
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-|~+0#4040ff13&| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-| +0#0000000&@56|1|2|7|,|7| @8|B|o|t|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_set_00.dump b/runtime/syntax/testdir/dumps/vim_ex_set_00.dump
index 3f0471b..34ffa47 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_set_00.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_set_00.dump
@@ -1,5 +1,6 @@
>"+0#0000e05#ffffff0| |V|i|m| |:|s|e|t| |c|o|m@1|a|n|d| +0#0000000&@56
@75
+@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
@@ -16,5 +17,4 @@
|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
index 90c52e1..f927cda 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_set_01.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_set_01.dump
@@ -1,9 +1,10 @@
-| +0&#ffffff0@74
+|s+0#af5f00255#ffffff0|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
+>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
@@ -16,5 +17,4 @@
@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|2|%|
+@57|1|9|,|1| @9|1@1|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_set_02.dump b/runtime/syntax/testdir/dumps/vim_ex_set_02.dump
index e8ef891..f6e9322 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_set_02.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_set_02.dump
@@ -1,20 +1,20 @@
-|s+0#af5f00255#ffffff0|e|t| +0#0000000&|a+0#e000e06&|l|e|p|h|-+0#af5f00255&|=|9+0#0000000&|6| @61
+|s+0#af5f00255#ffffff0|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
@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&|b+0#e000e06&|a|c|k|s|p|a|c|e|-+0#af5f00255&|=|n+0#0000000&|o|s|t|o|p| @53
+@75
|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
+|s+0#af5f00255&|e|t| +0#0000000&|<+0#e000e06&|t|_|#|4|>|=+0#0000000&|^|[|O|t| @59
+|s+0#af5f00255&|e|t| +0#0000000&|<+0#e000e06&|M|-|b|>|=+0#0000000&|^|[|b| @61
@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|2|9|%|
+|s+0#af5f00255&|e|t| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@61
+|s+0#af5f00255&|e|t| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@58
+|s+0#af5f00255&|e|t|!| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@60
+@57|3|7|,|1| @9|2|7|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_set_03.dump b/runtime/syntax/testdir/dumps/vim_ex_set_03.dump
index cad9c9d..3c3f6b6 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_set_03.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_set_03.dump
@@ -1,9 +1,15 @@
-|"+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
+|s+0#af5f00255#ffffff0|e|t|!| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@60
+|s+0#af5f00255&|e|t|!| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@57
+@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
+> @74
+|"+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|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&|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
@@ -11,10 +17,4 @@
|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|4|6|%|
+@57|5@1|,|0|-|1| @7|4|3|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_set_04.dump b/runtime/syntax/testdir/dumps/vim_ex_set_04.dump
index 101a1e0..ad9fdf8 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_set_04.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_set_04.dump
@@ -1,9 +1,15 @@
-|"+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#ffffff0|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
|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
+|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
@@ -11,10 +17,4 @@
|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|6|2|%|
+@57|7|2|,|1| @9|5|9|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_set_05.dump b/runtime/syntax/testdir/dumps/vim_ex_set_05.dump
index 0992fe4..d544528 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_set_05.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_set_05.dump
@@ -1,9 +1,15 @@
-| +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
+| +0&#ffffff0@74
+@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
@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
+@75
|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
@@ -11,10 +17,4 @@
@75
|"+0#0000e05&| |:|C|o|m|p|i|l|e|r|S|e|t| +0#0000000&@60
@75
-|C+0#af5f00255&|o|m|p|i|l|e|r|S|e|t| +0#0000000&|m+0#e000e06&|a|k|e|p|r|g|=+0#af5f00255&|a+0#0000000&|n|t| @51
-|C+0#af5f00255&|o|m|p|i|l|e|r|S|e|t| +0#0000000&|e+0#e000e06&|r@1|o|r|f|o|r|m|a|t|=+0#af5f00255&|\+0#0000000&| |%|#|[|%|.|%|#|]|\| |%|#|%|f|:+0#e000e06&|%+0#0000000&|l|:+0#e000e06&|%+0#0000000&|v|:+0#e000e06&|%+0#0000000&|*|\@1|d|:+0#e000e06&|%+0#0000000&|*|\@1|d|:+0#e000e06&|\+0#0000000&| |%|t|%|[|%|^|:+0#e000e06&|]+0#0000000&|%|#|:+0#e000e06&|%+0#0000000&|m|,+0#e000e06&
-| +0#0000000&@3|\+0#e000e06&|%+0#0000000&|A|\| |%|#|[|%|.|%|#|]|\| |%|f|:+0#e000e06&|%+0#0000000&|l|:+0#e000e06&|\+0#0000000&| |%|m|,+0#e000e06&|%+0#0000000&|-|Z|\| |%|#|[|%|.|%|#|]|\| |%|p|^|,+0#e000e06&|%+0#0000000&|C|\| |%|#|[|%|.|%|#|]|\| |%|#|%|m| @7
-@75
-@75
-|"+0#0000e05&| |U|n|r|e|p|o|r|t|e|d| |i|s@1|u|e| |(|d|o|u|b|l|e| |b|a|c|k|s|l|a|s|h|)| +0#0000000&@37
-@57|9|0|,|0|-|1| @7|8|0|%|
+@57|9|0|,|7| @9|7|5|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_set_06.dump b/runtime/syntax/testdir/dumps/vim_ex_set_06.dump
index 3179e76..5d944c3 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_set_06.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_set_06.dump
@@ -1,9 +1,15 @@
-|"+0#0000e05#ffffff0| |U|n|r|e|p|o|r|t|e|d| |i|s@1|u|e| |(|d|o|u|b|l|e| |b|a|c|k|s|l|a|s|h|)| +0#0000000&@37
+| +0&#ffffff0@74
+|C+0#af5f00255&|o|m|p|i|l|e|r|S|e|t| +0#0000000&|m+0#e000e06&|a|k|e|p|r|g|=+0#af5f00255&|a+0#0000000&|n|t| @51
+|C+0#af5f00255&|o|m|p|i|l|e|r|S|e|t| +0#0000000&|e+0#e000e06&|r@1|o|r|f|o|r|m|a|t|=+0#af5f00255&|\+0#0000000&| |%|#|[|%|.|%|#|]|\| |%|#|%|f|:+0#e000e06&|%+0#0000000&|l|:+0#e000e06&|%+0#0000000&|v|:+0#e000e06&|%+0#0000000&|*|\@1|d|:+0#e000e06&|%+0#0000000&|*|\@1|d|:+0#e000e06&|\+0#0000000&| |%|t|%|[|%|^|:+0#e000e06&|]+0#0000000&|%|#|:+0#e000e06&|%+0#0000000&|m|,+0#e000e06&
+| +0#0000000&@3|\+0#e000e06&|%+0#0000000&|A|\| |%|#|[|%|.|%|#|]|\| |%|f|:+0#e000e06&|%+0#0000000&|l|:+0#e000e06&|\+0#0000000&| |%|m|,+0#e000e06&|%+0#0000000&|-|Z|\| |%|#|[|%|.|%|#|]|\| |%|p|^|,+0#e000e06&|%+0#0000000&|C|\| |%|#|[|%|.|%|#|]|\| |%|#|%|m| @7
+@75
+> @74
+|"+0#0000e05&| |U|n|r|e|p|o|r|t|e|d| |i|s@1|u|e| |(|d|o|u|b|l|e| |b|a|c|k|s|l|a|s|h|)| +0#0000000&@37
@75
|s+0#af5f00255&|e|t|l|o|c|a|l| +0#0000000&|c+0#e000e06&|o|m|=+0#af5f00255&|s+0#0000000&|1|:+0#e000e06&|/+0#0000000&|*|,+0#e000e06&|m+0#0000000&|b|:+0#e000e06&|*+0#0000000&|,+0#e000e06&|e+0#0000000&|x|:+0#e000e06&|*+0#0000000&|/|,+0#e000e06&|b+0#0000000&|:+0#e000e06&|-+0#0000000&@1|,+0#e000e06&|b+0#0000000&|e|:+0#e000e06&|\+0#0000000&@1| @34
|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@64
|s+0#af5f00255&|e|t|l|o|c|a|l| +0#0000000&|i+0#e000e06&|n|c|l|u|d|e|=+0#af5f00255&|^+0#0000000&|\@1|s|*|\@1|%|(|s|o|\@1|%|[|u|r|c|e|]|\@2|||r|u|\@1|%|[|n|t|i|m|e|]|\@1|)|[|!|\| |]|\| |*|\@1|z|s|[|^|\@1|||]|*
->e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@64
+|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@64
|s+0#af5f00255&|e|t| +0#0000000&|q+0#e000e06&|u|o|t|e@1|s|c|a|p|e|=+0#af5f00255&|\+0#0000000&@1| @56
|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@64
|s+0#af5f00255&|e|t| +0#0000000&|q+0#e000e06&|u|o|t|e@1|s|c|a|p|e|=+0#af5f00255&|\+0#0000000&| @57
@@ -11,10 +17,4 @@
@75
@75
|"+0#0000e05&| |I|s@1|u|e| |#|1|6|9|1|3| |(|v|i|m| |s|y|n|t|a|x|:| |s|e|t| |l|a|n|g|m|a|p| |m|a|y| |h|a|v|e| |w|r|o|n|g| |h|i|g|h|l|i|g|h|t|)| +0#0000000&@9
-@75
-|s+0#af5f00255&|e|t| +0#0000000&|l+0#e000e06&|a|n|g|m|a|p|++0#af5f00255&|=|Ф+0#0000000&|Ы|В|А|П|Р|О|Л|Д|Ж|Э|Ё|;|A|S|D|F|G|H|J|K|L|\@1|:+0#e000e06&|\+0#0000000&@1|"|\@1||| @30
-|s+0#af5f00255&|e|t| +0#0000000&|l+0#e000e06&|a|n|g|m|a|p|++0#af5f00255&|=|Я+0#0000000&|Ч|С|М|И|Т|Ь|Б|Ю|;|Z|X|C|V|B|N|M|<+0#e000e06&|>| +0#0000000&@42
-@75
-|s+0#af5f00255&|e|t| +0#0000000&|l+0#e000e06&|a|n|g|m|a|p|++0#af5f00255&|=|Ф+0#0000000&|Ы|В|А|П|Р|О|Л|Д|Ж|Э|Ё|;|A|S|D|F|G|H|J|K|L|\@1|:+0#e000e06&|\+0#0000000&@1|"|\@1||| @30
-@6|\+0#e000e06&| +0#0000000&|l+0#e000e06&|a|n|g|m|a|p|++0#af5f00255&|=|Я+0#0000000&|Ч|С|М|И|Т|Ь|Б|Ю|;|Z|X|C|V|B|N|M|<+0#e000e06&|>| +0#0000000&@38
-@57|1|0|8|,|1| @8|9|7|%|
+@57|1|0|8|,|0|-|1| @6|9|1|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_set_07.dump b/runtime/syntax/testdir/dumps/vim_ex_set_07.dump
index ef2b99c..b28274e 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_set_07.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_set_07.dump
@@ -1,7 +1,13 @@
-| +0&#ffffff0@5|\+0#e000e06&| +0#0000000&|l+0#e000e06&|a|n|g|m|a|p|++0#af5f00255&|=|Я+0#0000000&|Ч|С|М|И|Т|Ь|Б|Ю|;|Z|X|C|V|B|N|M|<+0#e000e06&|>| +0#0000000&@38
+|"+0#0000e05#ffffff0| |I|s@1|u|e| |#|1|6|9|1|3| |(|v|i|m| |s|y|n|t|a|x|:| |s|e|t| |l|a|n|g|m|a|p| |m|a|y| |h|a|v|e| |w|r|o|n|g| |h|i|g|h|l|i|g|h|t|)| +0#0000000&@9
+@75
+|s+0#af5f00255&|e|t| +0#0000000&|l+0#e000e06&|a|n|g|m|a|p|++0#af5f00255&|=|Ф+0#0000000&|Ы|В|А|П|Р|О|Л|Д|Ж|Э|Ё|;|A|S|D|F|G|H|J|K|L|\@1|:+0#e000e06&|\+0#0000000&@1|"|\@1||| @30
+|s+0#af5f00255&|e|t| +0#0000000&|l+0#e000e06&|a|n|g|m|a|p|++0#af5f00255&|=|Я+0#0000000&|Ч|С|М|И|Т|Ь|Б|Ю|;|Z|X|C|V|B|N|M|<+0#e000e06&|>| +0#0000000&@42
+@75
+>s+0#af5f00255&|e|t| +0#0000000&|l+0#e000e06&|a|n|g|m|a|p|++0#af5f00255&|=|Ф+0#0000000&|Ы|В|А|П|Р|О|Л|Д|Ж|Э|Ё|;|A|S|D|F|G|H|J|K|L|\@1|:+0#e000e06&|\+0#0000000&@1|"|\@1||| @30
+@6|\+0#e000e06&| +0#0000000&|l+0#e000e06&|a|n|g|m|a|p|++0#af5f00255&|=|Я+0#0000000&|Ч|С|М|И|Т|Ь|Б|Ю|;|Z|X|C|V|B|N|M|<+0#e000e06&|>| +0#0000000&@38
@75
|s+0#af5f00255&|e|t| +0#0000000&|l+0#e000e06&|a|n|g|m|a|p|++0#af5f00255&|=|Ф+0#0000000&|Ы|В|А|П|Р|О|Л|Д|Ж|Э|Ё|;|A|S|D|F|G|H|J|K|L|\@1|:+0#e000e06&|\+0#0000000&@1|"|\@1||| |l+0#e000e06&|a|n|g|m|a|p|++0#af5f00255&|=|Я+0#0000000&|Ч|С|М|И|Т|Ь|Б|Ю|;|Z|X|C|V|B|N|M|<+0#e000e06&|>| +0#0000000&@1
-> @74
+@75
|~+0#4040ff13&| @73
|~| @73
|~| @73
@@ -11,10 +17,4 @@
|~| @73
|~| @73
|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-| +0#0000000&@56|1|2|4|,|0|-|1| @6|B|o|t|
+| +0#0000000&@56|1|2|6|,|1| @8|B|o|t|
diff --git a/runtime/syntax/testdir/input/vim_ex_set.vim b/runtime/syntax/testdir/input/vim_ex_set.vim
index e1bfc0f..a27a965 100644
--- a/runtime/syntax/testdir/input/vim_ex_set.vim
+++ b/runtime/syntax/testdir/input/vim_ex_set.vim
@@ -1,5 +1,6 @@
" Vim :set command
+
set
set!
set all
@@ -37,13 +38,18 @@
set ai nosi sw=3 tw=3
-set <t_#4>=^[Ot " FIXME
-set <M-b>=^[b " FIXME
+set <t_#4>=^[Ot
+set <M-b>=^[b
setlocal autoread
setglobal noautoread
set autoread<
+set " comment
+set | echo "Foo"
+set! " comment
+set! | echo "Foo"
+
" :help option-backslash
diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index 0181a90..1ff7d71 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -2,7 +2,7 @@
" Language: Vim script
" Maintainer: Hirohito Higashi <h.east.727 ATMARK gmail.com>
" Doug Kearns <dougkearns@gmail.com>
-" Last Change: 2025 May 22
+" Last Change: 2025 May 29
" Former Maintainer: Charles E. Campbell
" DO NOT CHANGE DIRECTLY.
@@ -951,14 +951,14 @@
syn match vimCmplxRepeat '@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\>\)'
" Set command and associated set-options (vimOptions) with comment {{{2
-syn match vimSet "\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skipwhite nextgroup=vimSetBang,vimSetArgs
+syn match vimSet "\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skipwhite nextgroup=vimSetBang,vimCmdSep,vimComment,vimSetArgs
syn region vimSetComment contained start=+"+ skip=+\n\s*\%(\\\||"\\ \)+ end="$" contains=@vimCommentGroup,vimCommentString extend
syn match vimSetCmdSep contained "|" skipwhite nextgroup=@vimCmdList,vimSubst1,vimFunc
syn match vimSetEscape contained "\\\%(\\[|"]\|.\)"
syn match vimSetBarEscape contained "\\|"
syn match vimSetQuoteEscape contained +\\"+
syn region vimSetArgs contained
- \ start="\S"
+ \ start="\l\|<"
\ skip=+\n\s*\%(\\\|["#]\\ \)\|^\s*"\\ +
\ end=+\ze\\\@1<![|"]+
"\ assume this isn't an escaped char with backslash on the previous line
@@ -968,6 +968,8 @@
\ nextgroup=vimSetCmdSep,vimSetComment,vim9Comment
\ contains=@vimContinue,vimErrSetting,vimOption,vimSetAll,vimSetTermcap
\ keepend
+" TODO: restrict this to valid values?
+syn match vimOption contained "<[^>]\+>" contains=vimOption
syn region vimSetEqual contained
\ matchgroup=vimOper
\ start="[=:]\|[-+^]="