runtime(vim): Update base-syntax file, improve class, enum and interface highlighting
- Enable folding of class, enum and interface declarations.
- Highlight constructor names with the Function highlight group, like
other special methods.
- Mark function definitions using special method names as errors.
- Highlight :type arguments.
fixes: #14393#issuecomment-2042796198.
closes: #13810
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/runtime/syntax/generator/gen_syntax_vim.vim b/runtime/syntax/generator/gen_syntax_vim.vim
index 222c891..7626f49 100644
--- a/runtime/syntax/generator/gen_syntax_vim.vim
+++ b/runtime/syntax/generator/gen_syntax_vim.vim
@@ -1,7 +1,7 @@
" Vim syntax file generator
" Language: Vim script
" Maintainer: Hirohito Higashi (h_east)
-" Last Change: 2024 Sep 14
+" Last Change: 2024 Oct 04
let s:keepcpo= &cpo
set cpo&vim
@@ -285,6 +285,7 @@
behave
call
catch
+ class
def
delcommand
doautoall
@@ -297,13 +298,19 @@
echon
echowindow
elseif
+ endclass
enddef
+ endenum
endfunction
+ endinterface
+ enum
execute
+ export
final
for
function
if
+ interface
insert
let
loadkeymap
@@ -314,6 +321,7 @@
new
normal
popup
+ public
return
set
setglobal
@@ -321,9 +329,12 @@
sleep
smagic
snomagic
+ static
substitute
syntax
+ this
throw
+ type
unlet
unmap
var
diff --git a/runtime/syntax/generator/vim.vim.base b/runtime/syntax/generator/vim.vim.base
index 5afcedc..9088af1 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: 2024 Sep 16
+" Last Change: 2024 Oct 05
" Former Maintainer: Charles E. Campbell
" DO NOT CHANGE DIRECTLY.
@@ -81,12 +81,22 @@
com! -nargs=* Vim9 execute <q-args> s:vim9script ? "" : "contained"
com! -nargs=* VimL execute <q-args> s:vim9script ? "contained" : ""
-if exists("g:vimsyn_folding") && g:vimsyn_folding =~# '[afhHlmpPrt]'
+if exists("g:vimsyn_folding") && g:vimsyn_folding =~# '[acefhiHlmpPrt]'
if g:vimsyn_folding =~# 'a'
com! -nargs=* VimFolda <args> fold
else
com! -nargs=* VimFolda <args>
endif
+ if g:vimsyn_folding =~# 'c'
+ com! -nargs=* VimFoldc <args> fold
+ else
+ com! -nargs=* VimFoldc <args>
+ endif
+ if g:vimsyn_folding =~# 'e'
+ com! -nargs=* VimFolde <args> fold
+ else
+ com! -nargs=* VimFolde <args>
+ endif
if g:vimsyn_folding =~# 'f'
com! -nargs=* VimFoldf <args> fold
else
@@ -102,6 +112,11 @@
else
com! -nargs=* VimFoldH <args>
endif
+ if g:vimsyn_folding =~# 'i'
+ com! -nargs=* VimFoldi <args> fold
+ else
+ com! -nargs=* VimFoldi <args>
+ endif
if g:vimsyn_folding =~# 'l'
com! -nargs=* VimFoldl <args> fold
else
@@ -134,7 +149,10 @@
endif
else
com! -nargs=* VimFolda <args>
+ com! -nargs=* VimFoldc <args>
+ com! -nargs=* VimFolde <args>
com! -nargs=* VimFoldf <args>
+ com! -nargs=* VimFoldi <args>
com! -nargs=* VimFoldh <args>
com! -nargs=* VimFoldH <args>
com! -nargs=* VimFoldl <args>
@@ -184,8 +202,8 @@
syn case match
" All vimCommands are contained by vimIsCommand. {{{2
-syn cluster vimCmdList contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimCall,vimCatch,vimConst,vimDef,vimDelcommand,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimFuncFold,vimGlobal,vimHighlight,vimLet,vimLoadkeymap,vimMap,vimMark,vimMatch,vimNotFunc,vimNorm,vimSet,vimSleep,vimSyntax,vimThrow,vimUnlet,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate,@vim9CmdList
-syn cluster vim9CmdList contains=vim9Const,vim9Final,vim9For,vim9Var
+syn cluster vimCmdList contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimCall,vimCatch,vimConst,vimDef,vimDefFold,vimDelcommand,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimFuncFold,vimGlobal,vimHighlight,vimLet,vimLoadkeymap,vimMap,vimMark,vimMatch,vimNotFunc,vimNorm,vimSet,vimSleep,vimSyntax,vimThrow,vimUnlet,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate,@vim9CmdList
+syn cluster vim9CmdList contains=vim9Class,vim9Const,vim9Enum,vim9Export,vim9Final,vim9For,vim9Interface,vim9Type,vim9Var
syn match vimCmdSep "[:|]\+" skipwhite nextgroup=@vimCmdList,vimSubst1
syn match vimIsCommand "\<\%(\h\w*\|[23]mat\%[ch]\)\>" contains=vimCommand
syn match vimBang contained "!"
@@ -227,6 +245,12 @@
syn keyword vimCatch cat[ch] skipwhite nextgroup=vimCatchPattern
syn region vimCatchPattern contained matchgroup=Delimiter start="\z([!#$%&'()*+,-./:;<=>?@[\]^_`{}~]\)" skip="\\\\\|\\\z1" end="\z1" contains=@vimSubstList oneline
+" Export {{{2
+" ======
+if s:vim9script
+ syn keyword vim9Export export skipwhite nextgroup=vim9Abstract,vim9ClassBody,vim9Const,vim9Def,vim9EnumBody,vim9Final,vim9InterfaceBody,vim9Type,vim9Var
+endif
+
" Filetypes {{{2
" =========
syn match vimFiletype "\<filet\%[ype]\(\s\+\I\i*\)*" skipwhite contains=vimFTCmd,vimFTOption,vimFTError
@@ -271,7 +295,7 @@
syn cluster vimFuncList contains=vimFuncBang,vimFunctionError,vimFuncKey,vimFuncSID,Tag
syn cluster vimDefList contains=vimFuncBang,vimFunctionError,vimDefKey,vimFuncSID,Tag
-syn cluster vimFuncBodyCommon contains=@vimCmdList,vimCmplxRepeat,vimContinue,vimCtrlChar,vimDef,vimEnvvar,vimFBVar,vimFunc,vimFunction,vimLetHereDoc,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegister,vimSearch,vimSpecFile,vimString,vimSubst,vimFuncFold
+syn cluster vimFuncBodyCommon contains=@vimCmdList,vimCmplxRepeat,vimContinue,vimCtrlChar,vimDef,vimEnvvar,vimFBVar,vimFunc,vimFunction,vimLetHereDoc,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegister,vimSearch,vimSpecFile,vimString,vimSubst,vimFuncFold,vimDefFold
syn cluster vimFuncBodyList contains=@vimFuncBodyCommon,vimComment,vimLineComment,vimFuncVar,vimInsert,vimConst,vimLet
syn cluster vimDefBodyList contains=@vimFuncBodyCommon,vim9Comment,vim9LineComment,vim9Const,vim9Final,vim9Var,vim9Null,vim9Boolean,vim9For
@@ -280,8 +304,7 @@
syn match vimDef "\<def\>" skipwhite nextgroup=vimCmdSep,vimComment,vimFuncPattern contains=vimDefKey
syn match vimFunction "\<fu\%[nction]\>!\=\s*\%(<[sS][iI][dD]>\|[sg]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)\+" contains=@vimFuncList skipwhite nextgroup=vimFuncParams
-syn match vimDef "\<def\s\+new\%(\i\|{.\{-1,}}\)\+" contains=@vimDefList nextgroup=vimDefParams
-syn match vimDef "\<def\>!\=\s*\%(<[sS][iI][dD]>\|[sg]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)\+" contains=@vimDefList,vimMethodName nextgroup=vimDefParams
+syn match vimDef "\<def\>!\=\s*\%(<[sS][iI][dD]>\|[sg]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)\+" contains=@vimDefList nextgroup=vimDefParams
syn match vimFuncComment contained +".*+ skipwhite skipempty nextgroup=vimFuncBody,vimEndfunction
syn match vimDefComment contained "#.*" skipwhite skipempty nextgroup=vimDefBody,vimEnddef
@@ -291,7 +314,6 @@
syn match vimFuncSID contained "\<[sg]:"
syn keyword vimFuncKey contained fu[nction]
syn keyword vimDefKey contained def
-syn keyword vimMethodName contained empty len string
syn region vimFuncParams contained matchgroup=Delimiter start="(" skip=+\n\s*\\\|\n\s*"\\ + end=")" skipwhite skipempty nextgroup=vimFuncBody,vimFuncComment,vimEndfunction,vimFuncMod,vim9CommentError contains=vimFuncParam,@vimContinue
syn region vimDefParams contained matchgroup=Delimiter start="(" end=")" skipwhite skipempty nextgroup=vimDefBody,vimDefComment,vimEnddef,vimReturnType,vimCommentError contains=vimDefParam,vim9Comment,vimFuncParamEquals
@@ -308,9 +330,8 @@
syn match vimEnddef "\<enddef\>" skipwhite nextgroup=vimCmdSep,vim9Comment,vimCommentError
if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'f'
- syn region vimFuncFold start="\<fu\%[nction]\>!\=\s*\%(<[sS][iI][dD]>\|[sg]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)\+\s*(" end="\<endf\%[unction]\>" contains=vimFunction fold keepend extend transparent
- syn region vimFuncFold start="\<def\>!\=\s*\%(<[sS][iI][dD]>\|[sg]:\)\=\%(\i\|[#.]\)\+(" end="\<enddef\>" contains=vimDef fold keepend extend transparent
- syn region vimFuncFold start="\<def\s\+new\i\+(" end="\<enddef\>" contains=vimDef fold keepend extend transparent
+ syn region vimFuncFold start="\<fu\%[nction]\>!\=\s*\%(<[sS][iI][dD]>\|[sg]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)\+\s*(" end="\<endf\%[unction]\>" contains=vimFunction fold keepend extend transparent
+ syn region vimDefFold start="\<def\>!\=\s*\%(<[sS][iI][dD]>\|[sg]:\)\=\%(\i\|[#.]\)\+(" end="\<enddef\>" contains=vimDef fold keepend extend transparent
endif
syn match vimFuncVar contained "a:\%(\K\k*\|\d\+\)\>"
@@ -331,6 +352,100 @@
syn cluster vimType contains=vimType,vimCompoundType,vimUserType
+" Classes, Enums And Interfaces: {{{2
+" =============================
+
+if s:vim9script
+ " Methods {{{3
+ syn match vim9MethodDef contained "\<def\>" skipwhite nextgroup=vim9MethodDefName
+ syn match vim9MethodDefName contained "\<\h\w*\>" nextgroup=vim9MethodDefParams contains=@vim9MethodName
+ syn region vim9MethodDefParams contained
+ \ matchgroup=Delimiter start="(" end=")"
+ \ skipwhite skipnl nextgroup=vim9MethodDefBody,vimDefComment,vimEnddef,vim9MethodDefReturnType,vimCommentError
+ \ contains=vimDefParam,vim9Comment,vimFuncParamEquals
+ syn region vim9MethodDefReturnType contained
+ \ start=":\s" end="$" matchgroup=vim9Comment end="\ze[#"]"
+ \ skipwhite skipnl nextgroup=vim9MethodDefBody,vimDefComment,vimCommentError
+ \ contains=vimTypeSep
+ \ transparent
+ syn region vim9MethodDefBody contained
+ \ start="^.\=" matchgroup=vimCommand end="\<enddef\>"
+ \ skipwhite nextgroup=vimCmdSep,vim9Comment,vimCommentError
+ \ contains=@vim9MethodDefBodyList
+
+ syn cluster vim9MethodDefBodyList contains=@vimDefBodyList,vim9This,vim9Super
+
+ if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimfunctionerror")
+ syn match vim9MethodNameError contained "\<[a-z0-9]\i\>"
+ endif
+ syn match vim9MethodName contained "\<new\i*\>"
+ syn keyword vim9MethodName contained empty len string
+
+ syn cluster vim9MethodName contains=vim9MethodName,vim9MethodNameError
+
+ if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'f'
+ syn region vim9MethodDefFold contained start="\%(^\s*\%(:\=static\s\+\)\=\)\@16<=:\=def\s\+\h\i*(" end="^\s*:\=enddef\>" contains=vim9MethodDef fold keepend extend transparent
+ syn region vim9MethodDefFold contained start="^\s*:\=def\s\+new\i*(" end="^\s*:\=enddef\>" contains=vim9MethodDef fold keepend extend transparent
+ endif
+
+ syn cluster vim9MethodDef contains=vim9MethodDef,vim9MethodDefFold
+
+ " Classes {{{3
+ syn cluster vim9ClassBodyList contains=vim9Abstract,vim9Class,vim9Comment,vim9LineComment,@vim9Continue,@vimExprList,vim9Extends,vim9Implements,@vim9MethodDef,vim9Public,vim9Static,vim9Const,vim9Final,vim9This,vim9Super,vim9Var
+
+ syn match vim9Class contained "\<class\>" skipwhite nextgroup=vim9ClassName
+ syn match vim9ClassName contained "\<\u\w*\>" skipwhite skipnl nextgroup=vim9Extends,vim9Implements
+ syn match vim9SuperClass contained "\<\u\w*\>" skipwhite skipnl nextgroup=vim9Implements
+ syn match vim9ImplementedInterface contained "\<\u\w*\>" skipwhite skipnl nextgroup=vim9InterfaceListComma,vim9Extends
+ syn match vim9InterfaceListComma contained "," skipwhite skipnl nextgroup=vim9ImplementedInterface
+ syn keyword vim9Abstract abstract skipwhite skipnl nextgroup=vim9ClassBody,vim9AbstractDef
+ syn keyword vim9Extends contained extends skipwhite skipnl nextgroup=vim9SuperClass
+ syn keyword vim9Implements contained implements skipwhite skipnl nextgroup=vim9ImplementedInterface
+ syn keyword vim9Public contained public
+ syn keyword vim9Static contained static
+ syn keyword vim9This contained this
+ syn keyword vim9Super contained super
+
+ VimFoldc syn region vim9ClassBody start="\<class\>" matchgroup=vimCommand end="\<endclass\>" contains=@vim9ClassBodyList transparent
+
+ " Enums {{{3
+ syn cluster vim9EnumBodyList contains=vim9Comment,vim9LineComment,@vim9Continue,vim9Enum,vim9Implements,@vim9MethodDef,vim9Const,vim9Final,vim9Var
+
+ syn match vim9Enum contained "\<enum\>" skipwhite nextgroup=vim9EnumName
+ syn match vim9EnumName contained "\<\u\w*\>" skipwhite skipnl nextgroup=vim9Implements
+
+ VimFolde syn region vim9EnumBody start="\<enum\>" matchgroup=vimCommand end="\<endenum\>" contains=@vim9EnumBodyList transparent
+
+ " Interfaces {{{3
+ " TODO: limit to decl only - no init values
+ syn cluster vim9InterfaceBodyList contains=vim9Comment,vim9LineComment,@vim9Continue,vim9Extends,vim9Interface,vim9AbstractDef,vim9Var
+
+ syn match vim9Interface contained "\<interface\>" skipwhite nextgroup=vim9InterfaceName
+ syn match vim9InterfaceName contained "\<\u\w*\>" skipwhite skipnl nextgroup=vim9Extends
+
+ syn keyword vim9AbstractDef contained def skipwhite nextgroup=vim9AbstractDefName
+ syn match vim9AbstractDefName contained "\<\h\w*\>" skipwhite nextgroup=vim9AbstractDefParams contains=@vim9MethodName
+ syn region vim9AbstractDefParams contained
+ \ matchgroup=Delimiter start="(" end=")"
+ \ skipwhite skipnl nextgroup=vimDefComment,vim9AbstractDefReturnType,vimCommentError
+ \ contains=vimDefParam,vim9Comment,vimFuncParamEquals
+ syn region vim9AbstractDefReturnType contained
+ \ start=":\s" end="$" matchgroup=vim9Comment end="\ze[#"]"
+ \ skipwhite skipnl nextgroup=vimDefComment,vimCommentError
+ \ contains=vimTypeSep
+ \ transparent
+
+ VimFoldi syn region vim9InterfaceBody start="\<interface\>" matchgroup=vimCommand end="\<endinterface\>" contains=@vim9InterfaceBodyList transparent
+
+ " type {{{3
+ syn match vim9Type "\<ty\%[pe]\>" skipwhite nextgroup=vim9TypeAlias,vim9TypeAliasError
+ syn match vim9TypeAlias contained "\<\u\w*\>" skipwhite nextgroup=vim9TypeEquals
+ syn match vim9TypeEquals contained "=" skipwhite nextgroup=@vimType
+ if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_notypealiaserror")
+ syn match vim9TypeAliasError contained "\<\U\w*"
+ endif
+endif
+
" Keymaps: {{{2
" =======
@@ -547,7 +662,7 @@
Vim9 syn keyword vim9Final final skipwhite nextgroup=vim9Variable,vim9VariableList
Vim9 syn keyword vim9Var var skipwhite nextgroup=vim9Variable,vim9VariableList
-syn match vim9Variable contained "\<\h\w*\>" skipwhite nextgroup=vimTypeSep,vimLetHereDoc
+syn match vim9Variable contained "\<\h\w*\>" skipwhite nextgroup=vimTypeSep,vimLetHereDoc,vimOper
syn region vim9VariableList contained start="\[" end="]" contains=vim9Variable,@vimContinue
" For: {{{2
@@ -668,7 +783,7 @@
" (following Gautam Iyer's suggestion)
" ==========================
syn match vimFunc "\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%(\w\+\.\)*\I[a-zA-Z0-9_.]*\)\ze\s*(" contains=vimFuncEcho,vimFuncName,vimUserFunc,vimExecute
-syn match vimUserFunc contained "\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%(\w\+\.\)*\I[a-zA-Z0-9_.]*\)\|\<\u[a-zA-Z0-9.]*\>\|\<if\>" contains=vimNotation,vimMethodName
+syn match vimUserFunc contained "\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%(\w\+\.\)*\I[a-zA-Z0-9_.]*\)\|\<\u[a-zA-Z0-9.]*\>\|\<if\>" contains=vimNotation,vim9MethodName
syn keyword vimFuncEcho contained ec ech echo
syn match vimMap "\<map\%(\s\+(\)\@=" skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs
@@ -679,10 +794,7 @@
" Errors And Warnings: {{{2
" ====================
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimfunctionerror")
- " TODO: The new-prefix exception should only apply to constructor definitions.
- " TODO: The |builtin-object-methods| exception should only apply to method
- " definitions.
- syn match vimFunctionError "\s\zs\%(empty\|len\|new\|string\)\@![a-z0-9]\i\{-}\ze\s*(" contained contains=vimFuncKey,vimFuncBlank
+ syn match vimFunctionError "\s\zs[a-z0-9]\i\{-}\ze\s*(" contained contains=vimFuncKey,vimFuncBlank
syn match vimFunctionError "\s\zs\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\d\i\{-}\ze\s*(" contained contains=vimFuncKey,vimFuncBlank
syn match vimElseIfErr "\<else\s\+if\>"
syn match vimBufnrWarn /\<bufnr\s*(\s*["']\.['"]\s*)/
@@ -888,7 +1000,10 @@
syn match vimContinue "^\s*\zs\\"
syn match vimContinueComment '^\s*\zs["#]\\ .*'
-syn cluster vimContinue contains=vimContinue,vimContinueComment
+syn match vim9ContinueComment "^\s*\zs#\\ .*"
+syn cluster vimContinue contains=vimContinue,vimContinueComment
+syn cluster vim9Continue contains=vimContinue,vim9ContinueComment
+
syn region vimString start="^\s*\\\z(['"]\)" skip='\\\\\|\\\z1' end="\z1" oneline keepend contains=@vimStringGroup,vimContinue
syn match vimCommentTitleLeader '"\s\+'ms=s+1 contained
syn match vim9CommentTitleLeader '#\s\+'ms=s+1 contained
@@ -1143,6 +1258,8 @@
hi def link vimSynCaseError vimError
hi def link vimSynFoldMethodError vimError
hi def link vimBufnrWarn vimWarn
+
+ hi def link vim9TypeAliasError vimError
endif
hi def link vimAbb vimCommand
@@ -1252,7 +1369,7 @@
hi def link vimMenuPriority Number
hi def link vimMenuStatus Special
hi def link vimMenutranslateComment vimComment
- hi def link vimMethodName vimFuncName
+ hi def link vim9MethodName vimFuncName
hi def link vimMtchComment vimComment
hi def link vimNorm vimCommand
hi def link vimNotation Special
@@ -1346,19 +1463,36 @@
hi def link vimVar Identifier
hi def link vimWarn WarningMsg
+ hi def link vim9Abstract vimCommand
hi def link vim9Boolean Boolean
+ hi def link vim9Class vimCommand
hi def link vim9Comment Comment
hi def link vim9CommentError vimError
hi def link vim9CommentTitle PreProc
hi def link vim9Const vimCommand
+ hi def link vim9ContinueComment vimContinueComment
+ hi def link vim9Enum vimCommand
+ hi def link vim9Export vimCommand
+ hi def link vim9Extends Keyword
hi def link vim9Final vimCommand
hi def link vim9For vimCommand
+ hi def link vim9Implements Keyword
+ hi def link vim9AbstractDef vimCommand
+ hi def link vim9Interface vimCommand
hi def link vim9LineComment vimComment
+ hi def link vim9MethodDef vimCommand
+ hi def link vim9MethodNameError vimFunctionError
hi def link vim9Null Constant
- hi def link vim9Var vimCommand
+ hi def link vim9Public vimCommand
+ hi def link vim9Static vimCommand
+ hi def link vim9Super Identifier
+ hi def link vim9This Identifier
+ hi def link vim9Type vimCommand
+ hi def link vim9TypeEquals vimOper
hi def link vim9Variable vimVar
- hi def link vim9Vim9Script vimCommand
+ hi def link vim9Var vimCommand
hi def link vim9Vim9ScriptArg Special
+ hi def link vim9Vim9Script vimCommand
endif
" Current Syntax Variable: {{{2
@@ -1369,9 +1503,12 @@
delc Vim9
delc VimL
delc VimFolda
+delc VimFoldc
+delc VimFolde
delc VimFoldf
delc VimFoldh
delc VimFoldH
+delc VimFoldi
delc VimFoldl
delc VimFoldm
delc VimFoldp
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_class_fold_00.dump b/runtime/syntax/testdir/dumps/vim9_ex_class_fold_00.dump
new file mode 100644
index 0000000..6d431a6
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim9_ex_class_fold_00.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1>v+0#af5f00255#ffffff0|i|m|9|s|c|r|i|p|t| +0#0000000&@62
+| +0#0000e05#a8a8a8255@1|#+0&#ffffff0| |V|i|m|9| |:|c|l|a|s@1| |c|o|m@1|a|n|d| +0#0000000&@51
+| +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| |=| |'|c|f|'| +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@1|i+0#af5f00255#ffffff0|n|t|e|r|f|a|c|e| +0#0000000&|I|n|t|e|r|f|a|c|e|1| @52
+| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|n|d|i|n|t|e|r|f|a|c|e| +0#0000000&@60
+| +0#0000e05#a8a8a8255@1|i+0#af5f00255#ffffff0|n|t|e|r|f|a|c|e| +0#0000000&|I|n|t|e|r|f|a|c|e|2| @52
+| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|n|d|i|n|t|e|r|f|a|c|e| +0#0000000&@60
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| |c+0#af5f00255#ffffff0|l|a|s@1| +0#0000000&|C|l|a|s@1|1| @60
+||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|c|l|a|s@1| +0#0000000&@64
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|x|p|o|r|t| +0#0000000&|c+0#af5f00255&|l|a|s@1| +0#0000000&|C|l|a|s@1|2| @53
+||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|c|l|a|s@1| +0#0000000&@64
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| |a+0#af5f00255#ffffff0|b|s|t|r|a|c|t| +0#0000000&|c+0#af5f00255&|l|a|s@1| +0#0000000&|C|l|a|s@1|3| @51
+||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|c|l|a|s@1| +0#0000000&@64
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+@57|1|,|1| @10|T|o|p|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_class_fold_01.dump b/runtime/syntax/testdir/dumps/vim9_ex_class_fold_01.dump
new file mode 100644
index 0000000..7dd62c8
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim9_ex_class_fold_01.dump
@@ -0,0 +1,20 @@
+|-+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|x|p|o|r|t| +0#0000000&|c+0#af5f00255&|l|a|s@1| +0#0000000&|C|l|a|s@1|2| @53
+||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|c|l|a|s@1| +0#0000000&@64
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| |a+0#af5f00255#ffffff0|b|s|t|r|a|c|t| +0#0000000&|c+0#af5f00255&|l|a|s@1| +0#0000000&|C|l|a|s@1|3| @51
+||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|c|l|a|s@1| +0#0000000&@64
+| +0#0000e05#a8a8a8255@1> +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|x|p|o|r|t| +0#0000000&|a+0#af5f00255&|b|s|t|r|a|c|t| +0#0000000&|c+0#af5f00255&|l|a|s@1| +0#0000000&|C|l|a|s@1|4| @44
+||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|c|l|a|s@1| +0#0000000&@64
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| |c+0#af5f00255#ffffff0|l|a|s@1| +0#0000000&|C|l|a|s@1|5| |e+0#af5f00255&|x|t|e|n|d|s| +0#0000000&|C|l|a|s@1|1| @45
+||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|c|l|a|s@1| +0#0000000&@64
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|x|p|o|r|t| +0#0000000&|c+0#af5f00255&|l|a|s@1| +0#0000000&|C|l|a|s@1|6| |e+0#af5f00255&|x|t|e|n|d|s| +0#0000000&|C|l|a|s@1|1| @38
+||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|c|l|a|s@1| +0#0000000&@64
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| |c+0#af5f00255#ffffff0|l|a|s@1| +0#0000000&|C|l|a|s@1|7| |i+0#af5f00255&|m|p|l|e|m|e|n|t|s| +0#0000000&|I|n|t|e|r|f|a|c|e|1|,| |I|n|t|e|r|f|a|c|e|2| @26
+||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|c|l|a|s@1| +0#0000000&@64
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|x|p|o|r|t| +0#0000000&|c+0#af5f00255&|l|a|s@1| +0#0000000&|C|l|a|s@1|8| |i+0#af5f00255&|m|p|l|e|m|e|n|t|s| +0#0000000&|I|n|t|e|r|f|a|c|e|1|,| |I|n|t|e|r|f|a|c|e|2| @19
+@57|1|9|,|0|-|1| @7|2|5|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_class_fold_02.dump b/runtime/syntax/testdir/dumps/vim9_ex_class_fold_02.dump
new file mode 100644
index 0000000..0c4b0c2
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim9_ex_class_fold_02.dump
@@ -0,0 +1,20 @@
+|-+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|x|p|o|r|t| +0#0000000&|c+0#af5f00255&|l|a|s@1| +0#0000000&|C|l|a|s@1|8| |i+0#af5f00255&|m|p|l|e|m|e|n|t|s| +0#0000000&|I|n|t|e|r|f|a|c|e|1|,| |I|n|t|e|r|f|a|c|e|2| @19
+||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|c|l|a|s@1| +0#0000000&@64
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| |c+0#af5f00255#ffffff0|l|a|s@1| +0#0000000&|C|l|a|s@1|9| @60
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|d+0#af5f00255&|e|f| +0#0000000&|n+0#00e0e07&|e|w|(+0#e000e06&|)| +0#0000000&@61
+|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1>e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|d+0#af5f00255&|e|f| +0#0000000&|M|e|t|h|o|d|1|(+0#e000e06&|)|:+0#0000000&| |v+0#00e0003&|o|i|d| +0#0000000&@51
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|N|e|s|t|e|d|1|(+0#e000e06&|)|:+0#0000000&| |v+0#00e0003&|o|i|d| +0#0000000&@49
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@5|d+0#af5f00255&|e|f| +0#0000000&|N|e|s|t|e|d|2|(+0#e000e06&|)|:+0#0000000&| |v+0#00e0003&|o|i|d| +0#0000000&@47
+|4+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@5|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@60
+|3+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
+|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|d+0#af5f00255&|e|f| +0#0000000&|_|M|e|t|h|o|d|2|(+0#e000e06&|)|:+0#0000000&| |v+0#00e0003&|o|i|d| +0#0000000&@50
+|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|s+0#af5f00255&|t|a|t|i|c| +0#0000000&|d+0#af5f00255&|e|f| +0#0000000&|M|e|t|h|o|d|3|(+0#e000e06&|)|:+0#0000000&| |v+0#00e0003&|o|i|d| +0#0000000&@44
+|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
+||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|c|l|a|s@1| +0#0000000&@64
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| |a+0#af5f00255#ffffff0|b|s|t|r|a|c|t| +0#0000000&|c+0#af5f00255&|l|a|s@1| +0#0000000&|C|l|a|s@1|1|0| @50
+@57|3|7|,|3| @9|6|0|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_class_fold_03.dump b/runtime/syntax/testdir/dumps/vim9_ex_class_fold_03.dump
new file mode 100644
index 0000000..7b7b8ea
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim9_ex_class_fold_03.dump
@@ -0,0 +1,20 @@
+|-+0#0000e05#a8a8a8255| |a+0#af5f00255#ffffff0|b|s|t|r|a|c|t| +0#0000000&|c+0#af5f00255&|l|a|s@1| +0#0000000&|C|l|a|s@1|1|0| @50
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|a+0#af5f00255&|b|s|t|r|a|c|t| +0#0000000&|d+0#af5f00255&|e|f| +0#0000000&|M|e|t|h|o|d|1|(+0#e000e06&|)|:+0#0000000&| |v+0#00e0003&|o|i|d| +0#0000000&@42
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|a+0#af5f00255&|b|s|t|r|a|c|t| +0#0000000&|d+0#af5f00255&|e|f| +0#0000000&|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|)|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&@41
+||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|c|l|a|s@1| +0#0000000&@64
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1> +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1|#+0&#ffffff0| +0#0000000&|I+0#e000e06&|s@1|u|e|:| +0#0000e05&|#|1|4|3|9|3| +0#0000000&@57
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1|i+0#af5f00255#ffffff0|n|t|e|r|f|a|c|e| +0#0000000&|T|e|s|t|a|b|l|e| @54
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|S|e|t|U|p|(+0#e000e06&|)| +0#0000000&@57
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|T|e|a|r|D|o|w|n|(+0#e000e06&|)| +0#0000000&@54
+| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|n|d|i|n|t|e|r|f|a|c|e| +0#0000000&@60
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| |a+0#af5f00255#ffffff0|b|s|t|r|a|c|t| +0#0000000&|c+0#af5f00255&|l|a|s@1| +0#0000000&|T|e|s|t|T|e|m|p|l|a|t|e| |i+0#af5f00255&|m|p|l|e|m|e|n|t|s| +0#0000000&|T|e|s|t|a|b|l|e| @25
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|a|i|l|e|d|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@50
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|v+0#af5f00255&|a|r| +0#0000000&|p+0#00e0e07&|a|s@1|e|d|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@50
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@72
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|a+0#af5f00255&|b|s|t|r|a|c|t| +0#0000000&|d+0#af5f00255&|e|f| +0#0000000&|S|e|t|U|p|(+0#e000e06&|)| +0#0000000&@48
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|a+0#af5f00255&|b|s|t|r|a|c|t| +0#0000000&|d+0#af5f00255&|e|f| +0#0000000&|T|e|a|r|D|o|w|n|(+0#e000e06&|)| +0#0000000&@45
+@57|5@1|,|0|-|1| @7|9|6|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_class_fold_04.dump b/runtime/syntax/testdir/dumps/vim9_ex_class_fold_04.dump
new file mode 100644
index 0000000..dbda81a
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim9_ex_class_fold_04.dump
@@ -0,0 +1,20 @@
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|a+0#af5f00255&|b|s|t|r|a|c|t| +0#0000000&|d+0#af5f00255&|e|f| +0#0000000&|T|e|a|r|D|o|w|n|(+0#e000e06&|)| +0#0000000&@45
+||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|c|l|a|s@1| +0#0000000&@64
+| +0#0000e05#a8a8a8255@1> +0#0000000#ffffff0@72
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|7|0|,|0|-|1| @7|B|o|t|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_05.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_05.dump
index f8e1f28..c83c3ef 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_05.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_05.dump
@@ -8,7 +8,6 @@
|:|c+0#af5f00255&|h|e|c|k|t|i|m|e| +0#0000000&@64
|:|c+0#af5f00255&|h|i|s|t|o|r|y| +0#0000000&@65
|:|c+0#af5f00255&|l|a|s@1| +0#0000000&@68
-|:|c+0#af5f00255&|l|a|s@1| +0#0000000&@68
|:|c+0#af5f00255&|l|a|s|t| +0#0000000&@68
|:|c+0#af5f00255&|l|e|a|r|j|u|m|p|s| +0#0000000&@63
|:|c+0#af5f00255&|l|i|s|t| +0#0000000&@68
@@ -17,4 +16,5 @@
|:|c+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@64
|:|c+0#af5f00255&|m|e|n|u| +0#0000000&@68
|:|c+0#af5f00255&|n|e|w|e|r| +0#0000000&@67
+|:|c+0#af5f00255&|n|e|x|t| +0#0000000&@68
@57|9|1|,|1| @10|7|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_06.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_06.dump
index 6e027fa..cdf873d 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_06.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_06.dump
@@ -1,10 +1,9 @@
-|:+0&#ffffff0|c+0#af5f00255&|n|e|w|e|r| +0#0000000&@67
-|:|c+0#af5f00255&|n|e|x|t| +0#0000000&@68
+|:+0&#ffffff0|c+0#af5f00255&|n|e|x|t| +0#0000000&@68
|:|c+0#af5f00255&|N|e|x|t| +0#0000000&@68
|:|c+0#af5f00255&|n|f|i|l|e| +0#0000000&@67
|:|c+0#af5f00255&|N|f|i|l|e| +0#0000000&@67
->:|c+0#af5f00255&|n|o|r|e|a|b@1|r|e|v| +0#0000000&@62
-|:|c+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@65
+|:|c+0#af5f00255&|n|o|r|e|a|b@1|r|e|v| +0#0000000&@62
+>:|c+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@65
|:|c+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@64
|:|c+0#af5f00255&|o|l|d|e|r| +0#0000000&@67
|:|c+0#af5f00255&|o|l|o|r|s|c|h|e|m|e| +0#0000000&@62
@@ -17,4 +16,5 @@
|:|c+0#af5f00255&|o|p|e|n| +0#0000000&@68
|:|c+0#af5f00255&|o|p|y| +0#0000000&@69
|:|c+0#af5f00255&|p|f|i|l|e| +0#0000000&@67
+|:|c+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@64
@57|1|0|9|,|1| @9|8|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_07.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_07.dump
index f608f04..f30aa13 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_07.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_07.dump
@@ -1,10 +1,9 @@
-|:+0&#ffffff0|c+0#af5f00255&|p|f|i|l|e| +0#0000000&@67
-|:|c+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@64
+|:+0&#ffffff0|c+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@64
|:|c+0#af5f00255&|q|u|i|t| +0#0000000&@68
|:|c+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@66
|:|c+0#af5f00255&|s|c|o|p|e| +0#0000000&@67
->:|c+0#af5f00255&|s|t|a|g| +0#0000000&@68
-|:|c+0#af5f00255&|u|n|a|b@1|r|e|v| +0#0000000&@64
+|:|c+0#af5f00255&|s|t|a|g| +0#0000000&@68
+>:|c+0#af5f00255&|u|n|a|b@1|r|e|v| +0#0000000&@64
|:|c+0#af5f00255&|u|n|m|a|p| +0#0000000&@67
|:|c+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@66
|:|c+0#af5f00255&|w|i|n|d|o|w| +0#0000000&@66
@@ -17,4 +16,5 @@
|:|d+0#af5f00255&|e|l|c|o|m@1|a|n|d| +0#0000000&@63
|:|d+0#af5f00255&|e|l|e|t|e| +0#0000000&@67
|:|d+0#af5f00255&|e|l|f|u|n|c|t|i|o|n| +0#0000000&@62
+|:|d+0#af5f00255&|e|l|m|a|r|k|s| +0#0000000&@65
@57|1|2|7|,|1| @8|1|0|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_08.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_08.dump
index f1bf864..7928739 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_08.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_08.dump
@@ -1,10 +1,9 @@
-|:+0&#ffffff0|d+0#af5f00255&|e|l|f|u|n|c|t|i|o|n| +0#0000000&@62
-|:|d+0#af5f00255&|e|l|m|a|r|k|s| +0#0000000&@65
+|:+0&#ffffff0|d+0#af5f00255&|e|l|m|a|r|k|s| +0#0000000&@65
|:|d+0#af5f00255&|i|f@1|g|e|t| +0#0000000&@66
|:|d+0#af5f00255&|i|f@1|o|f@1| +0#0000000&@66
|:|d+0#af5f00255&|i|f@1|p|a|t|c|h| +0#0000000&@64
->:|d+0#af5f00255&|i|f@1|p|u|t| +0#0000000&@66
-|:|d+0#af5f00255&|i|f@1|s|p|l|i|t| +0#0000000&@64
+|:|d+0#af5f00255&|i|f@1|p|u|t| +0#0000000&@66
+>:|d+0#af5f00255&|i|f@1|s|p|l|i|t| +0#0000000&@64
|:|d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000&@65
|:|d+0#af5f00255&|i|f@1|u|p|d|a|t|e| +0#0000000&@63
|:|d+0#af5f00255&|i|g|r|a|p|h|s| +0#0000000&@65
@@ -17,4 +16,5 @@
|:|d+0#af5f00255&|o|a|u|t|o|a|l@1| +0#0000000&@64
|:|d+0#af5f00255&|o|a|u|t|o|c|m|d| +0#0000000&@64
|:|d+0#af5f00255&|p| +0#0000000&@71
+|:|d+0#af5f00255&|r|o|p| +0#0000000&@69
@57|1|4|5|,|1| @8|1@1|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_09.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_09.dump
index b2ede40..74d3c74 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_09.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_09.dump
@@ -1,10 +1,9 @@
-|:+0&#ffffff0|d+0#af5f00255&|p| +0#0000000&@71
-|:|d+0#af5f00255&|r|o|p| +0#0000000&@69
+|:+0&#ffffff0|d+0#af5f00255&|r|o|p| +0#0000000&@69
|:|d+0#af5f00255&|s|e|a|r|c|h| +0#0000000&@66
|:|d+0#af5f00255&|s|p|l|i|t| +0#0000000&@67
|:|e+0#af5f00255&|a|r|l|i|e|r| +0#0000000&@66
->:|e+0#af5f00255&|c|h|o| +0#0000000&@69
-|:|e+0#af5f00255&|c|h|o|c|o|n|s|o|l|e| +0#0000000&@62
+|:|e+0#af5f00255&|c|h|o| +0#0000000&@69
+>:|e+0#af5f00255&|c|h|o|c|o|n|s|o|l|e| +0#0000000&@62
|:|e+0#af5f00255&|c|h|o|e|r@1| +0#0000000&@66
|:|e+0#af5f00255&|c|h|o|h|l| +0#0000000&@67
|:|e+0#af5f00255&|c|h|o|m|s|g| +0#0000000&@66
@@ -14,7 +13,8 @@
|:|e+0#af5f00255&|l|s|e| +0#0000000&@69
|:|e+0#af5f00255&|l|s|e|i|f| +0#0000000&@67
|:|e+0#af5f00255&|m|e|n|u| +0#0000000&@68
-|:|e+0#af5f00255&|n|d|c|l|a|s@1| +0#0000000&@65
-|:|e+0#af5f00255&|n|d|c|l|a|s@1| +0#0000000&@65
+|:|e|n|d|c|l|a|s@1| @65
|:|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@67
+|:|e|n|d|e|n|u|m| @66
+|:|e+0#af5f00255&|n|d|f|o|r| +0#0000000&@67
@57|1|6|3|,|1| @8|1|3|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_10.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_10.dump
index adebc5c..60c06ae 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_10.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_10.dump
@@ -1,11 +1,9 @@
-|:+0&#ffffff0|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@67
-|:|e+0#af5f00255&|n|d|e|n|u|m| +0#0000000&@66
-|:|e+0#af5f00255&|n|d|f|o|r| +0#0000000&@67
+|:+0&#ffffff0|e+0#af5f00255&|n|d|f|o|r| +0#0000000&@67
|:|e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@62
|:|e+0#af5f00255&|n|d|i|f| +0#0000000&@68
->:|e+0#af5f00255&|n|d|i|n|t|e|r|f|a|c|e| +0#0000000&@61
+|:|e|n|d|i|n|t|e|r|f|a|c|e| @61
|:|e+0#af5f00255&|n|d|t|r|y| +0#0000000&@67
-|:|e+0#af5f00255&|n|d|w|h|i|l|e| +0#0000000&@65
+>:|e+0#af5f00255&|n|d|w|h|i|l|e| +0#0000000&@65
|:|e+0#af5f00255&|n|e|w| +0#0000000&@69
|:|e+0#af5f00255&|n|u|m| +0#0000000&@69
|:|e+0#af5f00255&|v|a|l| +0#0000000&@69
@@ -17,4 +15,6 @@
|:|e+0#af5f00255&|x|u|s|a|g|e| +0#0000000&@66
|:|f+0#af5f00255&|i|l|e| +0#0000000&@69
|:|f+0#af5f00255&|i|l|e|s| +0#0000000&@68
+|:|f+0#af5f00255&|i|l|e|t|y|p|e| +0#0000000&@65
+|:|f+0#af5f00255&|i|l|t|e|r| +0#0000000&@67
@57|1|8|1|,|1| @8|1|4|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_11.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_11.dump
index 5664d9f..8558f35 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_11.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_11.dump
@@ -1,11 +1,9 @@
-|:+0&#ffffff0|f+0#af5f00255&|i|l|e|s| +0#0000000&@68
-|:|f+0#af5f00255&|i|l|e|t|y|p|e| +0#0000000&@65
-|:|f+0#af5f00255&|i|l|t|e|r| +0#0000000&@67
+|:+0&#ffffff0|f+0#af5f00255&|i|l|t|e|r| +0#0000000&@67
|:|f+0#af5f00255&|i|n|a|l| +0#0000000&@68
|:|f+0#af5f00255&|i|n|a|l@1|y| +0#0000000&@66
->:|f+0#af5f00255&|i|n|d| +0#0000000&@69
+|:|f+0#af5f00255&|i|n|d| +0#0000000&@69
|:|f+0#af5f00255&|i|n|i|s|h| +0#0000000&@67
-|:|f+0#af5f00255&|i|r|s|t| +0#0000000&@68
+>:|f+0#af5f00255&|i|r|s|t| +0#0000000&@68
|:|f+0#af5f00255&|i|x|d|e|l| +0#0000000&@67
|:|f+0#af5f00255&|o|l|d| +0#0000000&@69
|:|f+0#af5f00255&|o|l|d|c|l|o|s|e| +0#0000000&@64
@@ -17,4 +15,6 @@
|:|g+0#af5f00255&|l|o|b|a|l|/|.+0#0000000&@2|/+0#af5f00255&| +0#0000000&@62
|:|g+0#af5f00255&|o|t|o| +0#0000000&@69
|:|g+0#af5f00255&|r|e|p| +0#0000000&@69
+|:|g+0#af5f00255&|r|e|p|a|d@1| +0#0000000&@66
+|:|g+0#af5f00255&|u|i| +0#0000000&@70
@57|1|9@1|,|1| @8|1|6|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_12.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_12.dump
index c6a778d..6591e82 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_12.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_12.dump
@@ -1,11 +1,9 @@
-|:+0&#ffffff0|g+0#af5f00255&|r|e|p| +0#0000000&@69
-|:|g+0#af5f00255&|r|e|p|a|d@1| +0#0000000&@66
-|:|g+0#af5f00255&|u|i| +0#0000000&@70
+|:+0&#ffffff0|g+0#af5f00255&|u|i| +0#0000000&@70
|:|g+0#af5f00255&|v|i|m| +0#0000000&@69
|:|h+0#af5f00255&|a|r|d|c|o|p|y| +0#0000000&@65
->:|h+0#af5f00255&|e|l|p| +0#0000000&@69
+|:|h+0#af5f00255&|e|l|p| +0#0000000&@69
|:|h+0#af5f00255&|e|l|p|c|l|o|s|e| +0#0000000&@64
-|:|h+0#af5f00255&|e|l|p|f|i|n|d| +0#0000000&@65
+>:|h+0#af5f00255&|e|l|p|f|i|n|d| +0#0000000&@65
|:|h+0#af5f00255&|e|l|p|g|r|e|p| +0#0000000&@65
|:|h+0#af5f00255&|e|l|p|t|a|g|s| +0#0000000&@65
|:|h+0#af5f00255&|i|d|e| +0#0000000&@69
@@ -17,4 +15,6 @@
|:|i+0#af5f00255&|f| +0#0000000&@71
|:|i+0#af5f00255&|j|u|m|p| +0#0000000&@68
|:|i+0#af5f00255&|l|i|s|t| +0#0000000&@68
+|:|i+0#af5f00255&|m|a|p| +0#0000000&@69
+|:|i+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@64
@57|2|1|7|,|1| @8|1|7|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_13.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_13.dump
index 273be39..d2662eb 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_13.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_13.dump
@@ -1,11 +1,9 @@
-|:+0&#ffffff0|i+0#af5f00255&|l|i|s|t| +0#0000000&@68
-|:|i+0#af5f00255&|m|a|p| +0#0000000&@69
-|:|i+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@64
+|:+0&#ffffff0|i+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@64
|:|i+0#af5f00255&|m|e|n|u| +0#0000000&@68
|:|i+0#af5f00255&|m|p|o|r|t| +0#0000000&@67
->:|i+0#af5f00255&|n|o|r|e|a|b@1|r|e|v| +0#0000000&@62
+|:|i+0#af5f00255&|n|o|r|e|a|b@1|r|e|v| +0#0000000&@62
|:|i+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@65
-|:|i+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@64
+>:|i+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@64
|:|i+0#af5f00255&|n|t|e|r|f|a|c|e| +0#0000000&@64
|:|i+0#af5f00255&|n|t|r|o| +0#0000000&@68
|:|i+0#af5f00255&|s|e|a|r|c|h| +0#0000000&@66
@@ -17,4 +15,6 @@
|:|j+0#af5f00255&|u|m|p|s| +0#0000000&@68
|:|k+0#af5f00255&| +0#0000000&@72
|:|k+0#af5f00255&|e@1|p|a|l|t| +0#0000000&@66
-@57|2|3|5|,|1| @8|1|8|%|
+|:|k+0#af5f00255&|e@1|p|j|u|m|p|s| +0#0000000&@64
+|:|k+0#af5f00255&|e@1|p|m|a|r|k|s| +0#0000000&@64
+@57|2|3|5|,|1| @8|1|9|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_14.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_14.dump
index 22125b7..f9d0efa 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_14.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_14.dump
@@ -1,11 +1,9 @@
-|:+0&#ffffff0|k+0#af5f00255&|e@1|p|a|l|t| +0#0000000&@66
-|:|k+0#af5f00255&|e@1|p|j|u|m|p|s| +0#0000000&@64
-|:|k+0#af5f00255&|e@1|p|m|a|r|k|s| +0#0000000&@64
+|:+0&#ffffff0|k+0#af5f00255&|e@1|p|m|a|r|k|s| +0#0000000&@64
|:|k+0#af5f00255&|e@1|p@1|a|t@1|e|r|n|s| +0#0000000&@61
|:|l+0#af5f00255&|a|b|o|v|e| +0#0000000&@67
->:|l+0#af5f00255&|a|d@1|b|u|f@1|e|r| +0#0000000&@63
+|:|l+0#af5f00255&|a|d@1|b|u|f@1|e|r| +0#0000000&@63
|:|l+0#af5f00255&|a|d@1|e|x|p|r| +0#0000000&@65
-|:|l+0#af5f00255&|a|d@1|f|i|l|e| +0#0000000&@65
+>:|l+0#af5f00255&|a|d@1|f|i|l|e| +0#0000000&@65
|:|l+0#af5f00255&|a|f|t|e|r| +0#0000000&@67
|:|l+0#af5f00255&|a|n|g|u|a|g|e| +0#0000000&@65
|:|l+0#af5f00255&|a|s|t| +0#0000000&@69
@@ -17,4 +15,6 @@
|:|l+0#af5f00255&|c|d| +0#0000000&@70
|:|l+0#af5f00255&|c|h|d|i|r| +0#0000000&@67
|:|l+0#af5f00255&|c|l|o|s|e| +0#0000000&@67
+|:|l+0#af5f00255&|c|s|c|o|p|e| +0#0000000&@66
+|:|l+0#af5f00255&|d|o| +0#0000000&@70
@57|2|5|3|,|1| @8|2|0|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_15.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_15.dump
index bf6bb90..282a36e 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_15.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_15.dump
@@ -1,11 +1,9 @@
-|:+0&#ffffff0|l+0#af5f00255&|c|l|o|s|e| +0#0000000&@67
-|:|l+0#af5f00255&|c|s|c|o|p|e| +0#0000000&@66
-|:|l+0#af5f00255&|d|o| +0#0000000&@70
+|:+0&#ffffff0|l+0#af5f00255&|d|o| +0#0000000&@70
|:|l+0#af5f00255&|e|f|t| +0#0000000&@69
|:|l+0#af5f00255&|e|f|t|a|b|o|v|e| +0#0000000&@64
->:|l+0#af5f00255&|e|g|a|c|y| +0#0000000&@67
+|:|l+0#af5f00255&|e|g|a|c|y| +0#0000000&@67
|:|l+0#af5f00255&|e|x|p|r| +0#0000000&@68
-|:|l+0#af5f00255&|f|d|o| +0#0000000&@69
+>:|l+0#af5f00255&|f|d|o| +0#0000000&@69
|:|l+0#af5f00255&|f|i|l|e| +0#0000000&@68
|:|l+0#af5f00255&|f|i|r|s|t| +0#0000000&@67
|:|l+0#af5f00255&|g|e|t|b|u|f@1|e|r| +0#0000000&@63
@@ -17,4 +15,6 @@
|:|l+0#af5f00255&|h|i|s|t|o|r|y| +0#0000000&@65
|:|l+0#af5f00255&|i|s|t| +0#0000000&@69
|:|l+0#af5f00255&@1| +0#0000000&@71
-@57|2|7|1|,|1| @8|2|1|%|
+|:|l+0#af5f00255&@1|a|s|t| +0#0000000&@68
+|:|l+0#af5f00255&@1|i|s|t| +0#0000000&@68
+@57|2|7|1|,|1| @8|2@1|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_16.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_16.dump
index 39040dc..ce616b4 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_16.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_16.dump
@@ -1,11 +1,9 @@
-|:+0&#ffffff0|l+0#af5f00255&@1| +0#0000000&@71
-|:|l+0#af5f00255&@1|a|s|t| +0#0000000&@68
-|:|l+0#af5f00255&@1|i|s|t| +0#0000000&@68
+|:+0&#ffffff0|l+0#af5f00255&@1|i|s|t| +0#0000000&@68
|:|l+0#af5f00255&|m|a|k|e| +0#0000000&@68
|:|l+0#af5f00255&|m|a|p| +0#0000000&@69
->:|l+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@64
+|:|l+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@64
|:|l+0#af5f00255&|n|e|w|e|r| +0#0000000&@67
-|:|l+0#af5f00255&|n|e|x|t| +0#0000000&@68
+>:|l+0#af5f00255&|n|e|x|t| +0#0000000&@68
|:|l+0#af5f00255&|N|e|x|t| +0#0000000&@68
|:|l+0#af5f00255&|n|f|i|l|e| +0#0000000&@67
|:|l+0#af5f00255&|N|f|i|l|e| +0#0000000&@67
@@ -17,4 +15,6 @@
|:|l+0#af5f00255&|o|l|d|e|r| +0#0000000&@67
|:|l+0#af5f00255&|o|p|e|n| +0#0000000&@68
|:|l+0#af5f00255&|p|f|i|l|e| +0#0000000&@67
+|:|l+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@64
+|:|l+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@66
@57|2|8|9|,|1| @8|2|3|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_17.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_17.dump
index 0caa855..2f590bf 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_17.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_17.dump
@@ -1,11 +1,9 @@
-|:+0&#ffffff0|l+0#af5f00255&|p|f|i|l|e| +0#0000000&@67
-|:|l+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@64
-|:|l+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@66
+|:+0&#ffffff0|l+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@66
|:|l+0#af5f00255&|s| +0#0000000&@71
|:|l+0#af5f00255&|t|a|g| +0#0000000&@69
->:|l+0#af5f00255&|u|a| +0#0000000&@70
+|:|l+0#af5f00255&|u|a| +0#0000000&@70
|:|l+0#af5f00255&|u|a|d|o| +0#0000000&@68
-|:|l+0#af5f00255&|u|a|f|i|l|e| +0#0000000&@66
+>:|l+0#af5f00255&|u|a|f|i|l|e| +0#0000000&@66
|:|l+0#af5f00255&|u|n|m|a|p| +0#0000000&@67
|:|l+0#af5f00255&|v|i|m|g|r|e|p| +0#0000000&@65
|:|l+0#af5f00255&|v|i|m|g|r|e|p|a|d@1| +0#0000000&@62
@@ -17,4 +15,6 @@
|:|m+0#af5f00255&|a|r|k|s| +0#0000000&@68
|:|m+0#af5f00255&|a|t|c|h| +0#0000000&@68
|:|m+0#af5f00255&|e|n|u| +0#0000000&@69
-@57|3|0|7|,|1| @8|2|4|%|
+|:|m+0#af5f00255&|e|n|u|t|r|a|n|s|l|a|t|e| +0#0000000&@60
+|:|m+0#af5f00255&|e|s@1|a|g|e|s| +0#0000000&@65
+@57|3|0|7|,|1| @8|2|5|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_18.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_18.dump
index cd568a5..3903029 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_18.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_18.dump
@@ -1,11 +1,9 @@
-|:+0&#ffffff0|m+0#af5f00255&|e|n|u| +0#0000000&@69
-|:|m+0#af5f00255&|e|n|u|t|r|a|n|s|l|a|t|e| +0#0000000&@60
-|:|m+0#af5f00255&|e|s@1|a|g|e|s| +0#0000000&@65
+|:+0&#ffffff0|m+0#af5f00255&|e|s@1|a|g|e|s| +0#0000000&@65
|:|m+0#af5f00255&|k|e|x|r|c| +0#0000000&@67
|:|m+0#af5f00255&|k|s|e|s@1|i|o|n| +0#0000000&@64
->:|m+0#af5f00255&|k|s|p|e|l@1| +0#0000000&@66
+|:|m+0#af5f00255&|k|s|p|e|l@1| +0#0000000&@66
|:|m+0#af5f00255&|k|v|i|e|w| +0#0000000&@67
-|:|m+0#af5f00255&|k|v|i|m|r|c| +0#0000000&@66
+>:|m+0#af5f00255&|k|v|i|m|r|c| +0#0000000&@66
|:|m+0#af5f00255&|o|v|e| +0#0000000&@69
|:|m+0#af5f00255&|z|f|i|l|e| +0#0000000&@67
|:|m+0#af5f00255&|z|s|c|h|e|m|e| +0#0000000&@65
@@ -17,4 +15,6 @@
|:|n+0#af5f00255&|m|a|p| +0#0000000&@69
|:|n+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@64
|:|n+0#af5f00255&|m|e|n|u| +0#0000000&@68
+|:|n+0#af5f00255&@1|o|r|e|m|a|p| +0#0000000&@65
+|:|n+0#af5f00255&@1|o|r|e|m|e|n|u| +0#0000000&@64
@57|3|2|5|,|1| @8|2|6|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_19.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_19.dump
index d0d4e5d..a487372 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_19.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_19.dump
@@ -1,11 +1,9 @@
-|:+0&#ffffff0|n+0#af5f00255&|m|e|n|u| +0#0000000&@68
-|:|n+0#af5f00255&@1|o|r|e|m|a|p| +0#0000000&@65
-|:|n+0#af5f00255&@1|o|r|e|m|e|n|u| +0#0000000&@64
+|:+0&#ffffff0|n+0#af5f00255&@1|o|r|e|m|e|n|u| +0#0000000&@64
|:|n+0#af5f00255&|o|a|u|t|o|c|m|d| +0#0000000&@64
|:|n+0#af5f00255&|o|h|l|s|e|a|r|c|h| +0#0000000&@63
->:|n+0#af5f00255&|o|r|e|a|b@1|r|e|v| +0#0000000&@63
+|:|n+0#af5f00255&|o|r|e|a|b@1|r|e|v| +0#0000000&@63
|:|n+0#af5f00255&|o|r|e|m|a|p| +0#0000000&@66
-|:|n+0#af5f00255&|o|r|e|m|e|n|u| +0#0000000&@65
+>:|n+0#af5f00255&|o|r|e|m|e|n|u| +0#0000000&@65
|:|n+0#af5f00255&|o|r|m|a|l| +0#0000000&@67
|:|n+0#af5f00255&|o|s|w|a|p|f|i|l|e| +0#0000000&@63
|:|n+0#af5f00255&|u|m|b|e|r| +0#0000000&@67
@@ -17,4 +15,6 @@
|:|o+0#af5f00255&|m|e|n|u| +0#0000000&@68
|:|o+0#af5f00255&|n|l|y| +0#0000000&@69
|:|o+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@65
-@57|3|4|3|,|1| @8|2|7|%|
+|:|o+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@64
+|:|o+0#af5f00255&|p|t|i|o|n|s| +0#0000000&@66
+@57|3|4|3|,|1| @8|2|8|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_20.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_20.dump
index 387c0b4..5693881 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_20.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_20.dump
@@ -1,11 +1,9 @@
-|:+0&#ffffff0|o+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@65
-|:|o+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@64
-|:|o+0#af5f00255&|p|t|i|o|n|s| +0#0000000&@66
+|:+0&#ffffff0|o+0#af5f00255&|p|t|i|o|n|s| +0#0000000&@66
|:|o+0#af5f00255&|u|n|m|a|p| +0#0000000&@67
|:|o+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@66
->:|o+0#af5f00255&|w|n|s|y|n|t|a|x| +0#0000000&@64
+|:|o+0#af5f00255&|w|n|s|y|n|t|a|x| +0#0000000&@64
|:|p+0#af5f00255&|a|c|k|a|d@1| +0#0000000&@66
-|:|p+0#af5f00255&|a|c|k|l|o|a|d|a|l@1| +0#0000000&@62
+>:|p+0#af5f00255&|a|c|k|l|o|a|d|a|l@1| +0#0000000&@62
|:|p+0#af5f00255&|c|l|o|s|e| +0#0000000&@67
|:|p+0#af5f00255&|e|d|i|t| +0#0000000&@68
|:|p+0#af5f00255&|e|r|l| +0#0000000&@69
@@ -17,4 +15,6 @@
|:|p+0#af5f00255&|r|e|v|i|o|u|s| +0#0000000&@65
|:|p+0#af5f00255&|r|i|n|t| +0#0000000&@68
|:|p+0#af5f00255&|r|o|f|d|e|l| +0#0000000&@66
+|:|p+0#af5f00255&|r|o|f|i|l|e| +0#0000000&@66
+|:|p+0#af5f00255&|r|o|m|p|t|f|i|n|d| +0#0000000&@63
@57|3|6|1|,|1| @8|2|9|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_21.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_21.dump
index b79a1e6..7bbd93c 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_21.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_21.dump
@@ -1,20 +1,20 @@
-|:+0&#ffffff0|p+0#af5f00255&|r|o|f|d|e|l| +0#0000000&@66
-|:|p+0#af5f00255&|r|o|f|i|l|e| +0#0000000&@66
-|:|p+0#af5f00255&|r|o|m|p|t|f|i|n|d| +0#0000000&@63
+|:+0&#ffffff0|p+0#af5f00255&|r|o|m|p|t|f|i|n|d| +0#0000000&@63
|:|p+0#af5f00255&|r|o|m|p|t|r|e|p|l| +0#0000000&@63
|:|p+0#af5f00255&|s|e|a|r|c|h| +0#0000000&@66
->:|p+0#af5f00255&|t|a|g| +0#0000000&@69
+|:|p+0#af5f00255&|t|a|g| +0#0000000&@69
|:|p+0#af5f00255&|t|f|i|r|s|t| +0#0000000&@66
-|:|p+0#af5f00255&|t|j|u|m|p| +0#0000000&@67
+>:|p+0#af5f00255&|t|j|u|m|p| +0#0000000&@67
|:|p+0#af5f00255&|t|l|a|s|t| +0#0000000&@67
|:|p+0#af5f00255&|t|n|e|x|t| +0#0000000&@67
|:|p+0#af5f00255&|t|N|e|x|t| +0#0000000&@67
|:|p+0#af5f00255&|t|p|r|e|v|i|o|u|s| +0#0000000&@63
|:|p+0#af5f00255&|t|r|e|w|i|n|d| +0#0000000&@65
|:|p+0#af5f00255&|t|s|e|l|e|c|t| +0#0000000&@65
-|:|p+0#af5f00255&|u|b|l|i|c| +0#0000000&@67
-|:|p+0#af5f00255&|u|b|l|i|c| +0#0000000&@67
|:|p+0#af5f00255&|u|t| +0#0000000&@70
|:|p+0#af5f00255&|w|d| +0#0000000&@70
|:|p+0#af5f00255&|y|3| +0#0000000&@70
-@57|3|7|9|,|1| @8|3|0|%|
+|:|p+0#af5f00255&|y|3|d|o| +0#0000000&@68
+|:|p+0#af5f00255&|y|3|f|i|l|e| +0#0000000&@66
+|:|p+0#af5f00255&|y|d|o| +0#0000000&@69
+|:|p+0#af5f00255&|y|f|i|l|e| +0#0000000&@67
+@57|3|7|9|,|1| @8|3|1|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_22.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_22.dump
index b6248da..977ac03 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_22.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_22.dump
@@ -1,13 +1,9 @@
-|:+0&#ffffff0|p+0#af5f00255&|y|3| +0#0000000&@70
-|:|p+0#af5f00255&|y|3|d|o| +0#0000000&@68
-|:|p+0#af5f00255&|y|3|f|i|l|e| +0#0000000&@66
-|:|p+0#af5f00255&|y|d|o| +0#0000000&@69
-|:|p+0#af5f00255&|y|f|i|l|e| +0#0000000&@67
->:|p+0#af5f00255&|y|t|h|o|n| +0#0000000&@67
+|:+0&#ffffff0|p+0#af5f00255&|y|f|i|l|e| +0#0000000&@67
+|:|p+0#af5f00255&|y|t|h|o|n| +0#0000000&@67
|:|p+0#af5f00255&|y|t|h|o|n|3| +0#0000000&@66
|:|p+0#af5f00255&|y|t|h|o|n|x| +0#0000000&@66
|:|p+0#af5f00255&|y|x| +0#0000000&@70
-|:|p+0#af5f00255&|y|x|d|o| +0#0000000&@68
+>:|p+0#af5f00255&|y|x|d|o| +0#0000000&@68
|:|p+0#af5f00255&|y|x|f|i|l|e| +0#0000000&@66
|:|q+0#af5f00255&|a|l@1| +0#0000000&@69
|:|q+0#af5f00255&|u|i|t| +0#0000000&@69
@@ -17,4 +13,8 @@
|:|r+0#af5f00255&|e|d|i|r| +0#0000000&@68
|:|r+0#af5f00255&|e|d|o| +0#0000000&@69
|:|r+0#af5f00255&|e|d|r|a|w| +0#0000000&@67
+|:|r+0#af5f00255&|e|d|r|a|w|s|t|a|t|u|s| +0#0000000&@61
+|:|r+0#af5f00255&|e|d|r|a|w|t|a|b|l|i|n|e| +0#0000000&@60
+|:|r+0#af5f00255&|e|g|i|s|t|e|r|s| +0#0000000&@64
+|:|r+0#af5f00255&|e|s|i|z|e| +0#0000000&@67
@57|3|9|7|,|1| @8|3|2|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_23.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_23.dump
index 039284c..cd36228 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_23.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_23.dump
@@ -1,13 +1,9 @@
-|:+0&#ffffff0|r+0#af5f00255&|e|d|r|a|w| +0#0000000&@67
-|:|r+0#af5f00255&|e|d|r|a|w|s|t|a|t|u|s| +0#0000000&@61
-|:|r+0#af5f00255&|e|d|r|a|w|t|a|b|l|i|n|e| +0#0000000&@60
-|:|r+0#af5f00255&|e|g|i|s|t|e|r|s| +0#0000000&@64
-|:|r+0#af5f00255&|e|s|i|z|e| +0#0000000&@67
->:|r+0#af5f00255&|e|t|a|b| +0#0000000&@68
+|:+0&#ffffff0|r+0#af5f00255&|e|s|i|z|e| +0#0000000&@67
+|:|r+0#af5f00255&|e|t|a|b| +0#0000000&@68
|:|r+0#af5f00255&|e|t|u|r|n| +0#0000000&@67
|:|r+0#af5f00255&|e|w|i|n|d| +0#0000000&@67
|:|r+0#af5f00255&|i|g|h|t| +0#0000000&@68
-|:|r+0#af5f00255&|i|g|h|t|b|e|l|o|w| +0#0000000&@63
+>:|r+0#af5f00255&|i|g|h|t|b|e|l|o|w| +0#0000000&@63
|:|r+0#af5f00255&|u|b|y| +0#0000000&@69
|:|r+0#af5f00255&|u|b|y|d|o| +0#0000000&@67
|:|r+0#af5f00255&|u|b|y|f|i|l|e| +0#0000000&@65
@@ -17,4 +13,8 @@
|:|s+0#af5f00255&|a|l@1| +0#0000000&@69
|:|s+0#af5f00255&|a|n|d|b|o|x| +0#0000000&@66
|:|s+0#af5f00255&|a|r|g|u|m|e|n|t| +0#0000000&@64
-@57|4|1|5|,|1| @8|3@1|%|
+|:|s+0#af5f00255&|a|v|e|a|s| +0#0000000&@67
+|:|s+0#af5f00255&|b|a|l@1| +0#0000000&@68
+|:|s+0#af5f00255&|b|f|i|r|s|t| +0#0000000&@66
+|:|s+0#af5f00255&|b|l|a|s|t| +0#0000000&@67
+@57|4|1|5|,|1| @8|3|4|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_24.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_24.dump
index 0995e43..3b4dca7 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_24.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_24.dump
@@ -1,13 +1,9 @@
-|:+0&#ffffff0|s+0#af5f00255&|a|r|g|u|m|e|n|t| +0#0000000&@64
-|:|s+0#af5f00255&|a|v|e|a|s| +0#0000000&@67
-|:|s+0#af5f00255&|b|a|l@1| +0#0000000&@68
-|:|s+0#af5f00255&|b|f|i|r|s|t| +0#0000000&@66
-|:|s+0#af5f00255&|b|l|a|s|t| +0#0000000&@67
->:|s+0#af5f00255&|b|m|o|d|i|f|i|e|d| +0#0000000&@63
+|:+0&#ffffff0|s+0#af5f00255&|b|l|a|s|t| +0#0000000&@67
+|:|s+0#af5f00255&|b|m|o|d|i|f|i|e|d| +0#0000000&@63
|:|s+0#af5f00255&|b|n|e|x|t| +0#0000000&@67
|:|s+0#af5f00255&|b|N|e|x|t| +0#0000000&@67
|:|s+0#af5f00255&|b|p|r|e|v|i|o|u|s| +0#0000000&@63
-|:|s+0#af5f00255&|b|r|e|w|i|n|d| +0#0000000&@65
+>:|s+0#af5f00255&|b|r|e|w|i|n|d| +0#0000000&@65
|:|s+0#af5f00255&|b|u|f@1|e|r| +0#0000000&@66
|:|s+0#af5f00255&|c|r|i|p|t|e|n|c|o|d|i|n|g| +0#0000000&@59
|:|s+0#af5f00255&|c|r|i|p|t|n|a|m|e|s| +0#0000000&@62
@@ -17,4 +13,8 @@
|:|s+0#af5f00255&|e|t|f|i|l|e|t|y|p|e| +0#0000000&@62
|:|s+0#af5f00255&|e|t|g|l|o|b|a|l| +0#0000000&@64
|:|s+0#af5f00255&|e|t|l|o|c|a|l| +0#0000000&@65
+|:|s+0#af5f00255&|f|i|n|d| +0#0000000&@68
+|:|s+0#af5f00255&|f|i|r|s|t| +0#0000000&@67
+|:|s+0#af5f00255&|h|e|l@1| +0#0000000&@68
+|:|s+0#af5f00255&|i|g|n| +0#0000000&@69
@57|4|3@1|,|1| @8|3|5|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_25.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_25.dump
index cb1c9d2..192b487 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_25.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_25.dump
@@ -1,13 +1,9 @@
-|:+0&#ffffff0|s+0#af5f00255&|e|t|l|o|c|a|l| +0#0000000&@65
-|:|s+0#af5f00255&|f|i|n|d| +0#0000000&@68
-|:|s+0#af5f00255&|f|i|r|s|t| +0#0000000&@67
-|:|s+0#af5f00255&|h|e|l@1| +0#0000000&@68
-|:|s+0#af5f00255&|i|g|n| +0#0000000&@69
->:|s+0#af5f00255&|i|l|e|n|t| +0#0000000&@67
+|:+0&#ffffff0|s+0#af5f00255&|i|g|n| +0#0000000&@69
+|:|s+0#af5f00255&|i|l|e|n|t| +0#0000000&@67
|:|s+0#af5f00255&|i|m|a|l|t| +0#0000000&@67
|:|s+0#af5f00255&|l|a|s|t| +0#0000000&@68
|:|s+0#af5f00255&|l|e@1|p| +0#0000000&@68
-|:|s+0#af5f00255&|l|e@1|p|!| +0#0000000&@67
+>:|s+0#af5f00255&|l|e@1|p|!| +0#0000000&@67
|:|s+0#af5f00255&|m|a|g|i|c| +0#0000000&@67
|:|s+0#af5f00255&|m|a|p| +0#0000000&@69
|:|s+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@64
@@ -17,4 +13,8 @@
|:|s+0#af5f00255&|N|e|x|t| +0#0000000&@68
|:|s+0#af5f00255&|n|o|m|a|g|i|c| +0#0000000&@65
|:|s+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@65
-@57|4|5|1|,|1| @8|3|6|%|
+|:|s+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@64
+|:|s+0#af5f00255&|o|r|t| +0#0000000&@69
+|:|s+0#af5f00255&|o|u|r|c|e| +0#0000000&@67
+|:|s+0#af5f00255&|p|e|l@1|d|u|m|p| +0#0000000&@64
+@57|4|5|1|,|1| @8|3|7|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_26.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_26.dump
index 3d40709..6b4c7fb 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_26.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_26.dump
@@ -1,13 +1,9 @@
-|:+0&#ffffff0|s+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@65
-|:|s+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@64
-|:|s+0#af5f00255&|o|r|t| +0#0000000&@69
-|:|s+0#af5f00255&|o|u|r|c|e| +0#0000000&@67
-|:|s+0#af5f00255&|p|e|l@1|d|u|m|p| +0#0000000&@64
->:|s+0#af5f00255&|p|e|l@1|g|o@1|d| +0#0000000&@64
+|:+0&#ffffff0|s+0#af5f00255&|p|e|l@1|d|u|m|p| +0#0000000&@64
+|:|s+0#af5f00255&|p|e|l@1|g|o@1|d| +0#0000000&@64
|:|s+0#af5f00255&|p|e|l@1|i|n|f|o| +0#0000000&@64
|:|s+0#af5f00255&|p|e|l@1|r|a|r|e| +0#0000000&@64
|:|s+0#af5f00255&|p|e|l@1|r|e|p|a|l@1| +0#0000000&@62
-|:|s+0#af5f00255&|p|e|l@1|u|n|d|o| +0#0000000&@64
+>:|s+0#af5f00255&|p|e|l@1|u|n|d|o| +0#0000000&@64
|:|s+0#af5f00255&|p|e|l@1|w|r|o|n|g| +0#0000000&@63
|:|s+0#af5f00255&|p|l|i|t| +0#0000000&@68
|:|s+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@64
@@ -16,5 +12,9 @@
|:|s+0#af5f00255&|t|a|r|t|g|r|e|p|l|a|c|e| +0#0000000&@60
|:|s+0#af5f00255&|t|a|r|t|i|n|s|e|r|t| +0#0000000&@62
|:|s+0#af5f00255&|t|a|r|t|r|e|p|l|a|c|e| +0#0000000&@61
-|:|s+0#af5f00255&|t|a|t|i|c| +0#0000000&@67
+|:|s+0#af5f00255&|t|j|u|m|p| +0#0000000&@67
+|:|s+0#af5f00255&|t|o|p| +0#0000000&@69
+|:|s+0#af5f00255&|t|o|p|i|n|s|e|r|t| +0#0000000&@63
+|:|s+0#af5f00255&|t|s|e|l|e|c|t| +0#0000000&@65
+|:|s+0#af5f00255&|u|b|s|t|i|t|u|t|e| +0#0000000&@63
@57|4|6|9|,|1| @8|3|8|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_27.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_27.dump
index 42e8ed3..1337a4a 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_27.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_27.dump
@@ -1,15 +1,9 @@
-|:+0&#ffffff0|s+0#af5f00255&|t|a|t|i|c| +0#0000000&@67
-|:|s+0#af5f00255&|t|a|t|i|c| +0#0000000&@67
-|:|s+0#af5f00255&|t|j|u|m|p| +0#0000000&@67
-|:|s+0#af5f00255&|t|o|p| +0#0000000&@69
-|:|s+0#af5f00255&|t|o|p|i|n|s|e|r|t| +0#0000000&@63
->:|s+0#af5f00255&|t|s|e|l|e|c|t| +0#0000000&@65
-|:|s+0#af5f00255&|u|b|s|t|i|t|u|t|e| +0#0000000&@63
+|:+0&#ffffff0|s+0#af5f00255&|u|b|s|t|i|t|u|t|e| +0#0000000&@63
|:|s+0#af5f00255&|u|n|h|i|d|e| +0#0000000&@66
|:|s+0#af5f00255&|u|n|m|a|p| +0#0000000&@67
|:|s+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@66
|:|s+0#af5f00255&|u|s|p|e|n|d| +0#0000000&@66
-|:|s+0#af5f00255&|v|i|e|w| +0#0000000&@68
+>:|s+0#af5f00255&|v|i|e|w| +0#0000000&@68
|:|s+0#af5f00255&|w|a|p|n|a|m|e| +0#0000000&@65
|:|s+0#af5f00255&|y|n|c|b|i|n|d| +0#0000000&@65
|:|s+0#af5f00255&|y|n|t|a|x| +0#0000000&@67
@@ -17,4 +11,10 @@
|:|t+0#af5f00255&|a|b| +0#0000000&@70
|:|t+0#af5f00255&|a|b|c|l|o|s|e| +0#0000000&@65
|:|t+0#af5f00255&|a|b|d|o| +0#0000000&@68
-@57|4|8|7|,|1| @8|3|9|%|
+|:|t+0#af5f00255&|a|b|e|d|i|t| +0#0000000&@66
+|:|t+0#af5f00255&|a|b|f|i|n|d| +0#0000000&@66
+|:|t+0#af5f00255&|a|b|f|i|r|s|t| +0#0000000&@65
+|:|t+0#af5f00255&|a|b|l|a|s|t| +0#0000000&@66
+|:|t+0#af5f00255&|a|b|m|o|v|e| +0#0000000&@66
+|:|t+0#af5f00255&|a|b|n|e|w| +0#0000000&@67
+@57|4|8|7|,|1| @8|4|0|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_28.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_28.dump
index d501862..b7c33f1 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_28.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_28.dump
@@ -1,15 +1,9 @@
-|:+0&#ffffff0|t+0#af5f00255&|a|b|d|o| +0#0000000&@68
-|:|t+0#af5f00255&|a|b|e|d|i|t| +0#0000000&@66
-|:|t+0#af5f00255&|a|b|f|i|n|d| +0#0000000&@66
-|:|t+0#af5f00255&|a|b|f|i|r|s|t| +0#0000000&@65
-|:|t+0#af5f00255&|a|b|l|a|s|t| +0#0000000&@66
->:|t+0#af5f00255&|a|b|m|o|v|e| +0#0000000&@66
-|:|t+0#af5f00255&|a|b|n|e|w| +0#0000000&@67
+|:+0&#ffffff0|t+0#af5f00255&|a|b|n|e|w| +0#0000000&@67
|:|t+0#af5f00255&|a|b|n|e|x|t| +0#0000000&@66
|:|t+0#af5f00255&|a|b|N|e|x|t| +0#0000000&@66
|:|t+0#af5f00255&|a|b|o|n|l|y| +0#0000000&@66
|:|t+0#af5f00255&|a|b|p|r|e|v|i|o|u|s| +0#0000000&@62
-|:|t+0#af5f00255&|a|b|r|e|w|i|n|d| +0#0000000&@64
+>:|t+0#af5f00255&|a|b|r|e|w|i|n|d| +0#0000000&@64
|:|t+0#af5f00255&|a|b|s| +0#0000000&@69
|:|t+0#af5f00255&|a|g| +0#0000000&@70
|:|t+0#af5f00255&|a|g|s| +0#0000000&@69
@@ -17,4 +11,10 @@
|:|t+0#af5f00255&|c|h|d|i|r| +0#0000000&@67
|:|t+0#af5f00255&|c|l| +0#0000000&@70
|:|t+0#af5f00255&|c|l|d|o| +0#0000000&@68
+|:|t+0#af5f00255&|c|l|f|i|l|e| +0#0000000&@66
+|:|t+0#af5f00255&|e|a|r|o|f@1| +0#0000000&@66
+|:|t+0#af5f00255&|e|r|m|i|n|a|l| +0#0000000&@65
+|:|t+0#af5f00255&|f|i|r|s|t| +0#0000000&@67
+|:|t+0#af5f00255&|h|r|o|w| +0#0000000&@68
+|:|t+0#af5f00255&|j|u|m|p| +0#0000000&@68
@57|5|0|5|,|1| @8|4|1|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_29.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_29.dump
index a4fe905..52e78d2 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_29.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_29.dump
@@ -1,15 +1,9 @@
-|:+0&#ffffff0|t+0#af5f00255&|c|l|d|o| +0#0000000&@68
-|:|t+0#af5f00255&|c|l|f|i|l|e| +0#0000000&@66
-|:|t+0#af5f00255&|e|a|r|o|f@1| +0#0000000&@66
-|:|t+0#af5f00255&|e|r|m|i|n|a|l| +0#0000000&@65
-|:|t+0#af5f00255&|f|i|r|s|t| +0#0000000&@67
->:|t+0#af5f00255&|h|r|o|w| +0#0000000&@68
-|:|t+0#af5f00255&|j|u|m|p| +0#0000000&@68
+|:+0&#ffffff0|t+0#af5f00255&|j|u|m|p| +0#0000000&@68
|:|t+0#af5f00255&|l|a|s|t| +0#0000000&@68
|:|t+0#af5f00255&|l|m|e|n|u| +0#0000000&@67
|:|t+0#af5f00255&|l|n|o|r|e|m|e|n|u| +0#0000000&@63
|:|t+0#af5f00255&|l|u|n|m|e|n|u| +0#0000000&@65
-|:|t+0#af5f00255&|m|a|p| +0#0000000&@69
+>:|t+0#af5f00255&|m|a|p| +0#0000000&@69
|:|t+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@64
|:|t+0#af5f00255&|m|e|n|u| +0#0000000&@68
|:|t+0#af5f00255&|n|e|x|t| +0#0000000&@68
@@ -17,4 +11,10 @@
|:|t+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@65
|:|t+0#af5f00255&|o|p|l|e|f|t| +0#0000000&@66
|:|t+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@64
-@57|5|2|3|,|1| @8|4|2|%|
+|:|t+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@66
+|:|t+0#af5f00255&|r|y| +0#0000000&@70
+|:|t+0#af5f00255&|s|e|l|e|c|t| +0#0000000&@66
+|:|t+0#af5f00255&|u|n|m|a|p| +0#0000000&@67
+|:|t+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@66
+|:|t+0#af5f00255&|y|p|e| +0#0000000&@69
+@57|5|2|3|,|1| @8|4|3|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_30.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_30.dump
index 1d8015a..ed402b0 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_30.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_30.dump
@@ -1,15 +1,9 @@
-|:+0&#ffffff0|t+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@64
-|:|t+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@66
-|:|t+0#af5f00255&|r|y| +0#0000000&@70
-|:|t+0#af5f00255&|s|e|l|e|c|t| +0#0000000&@66
-|:|t+0#af5f00255&|u|n|m|a|p| +0#0000000&@67
->:|t+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@66
-|:|t+0#af5f00255&|y|p|e| +0#0000000&@69
+|:+0&#ffffff0|t+0#af5f00255&|y|p|e| +0#0000000&@69
|:|u+0#af5f00255&|n|a|b@1|r|e|v|i|a|t|e| +0#0000000&@61
|:|u+0#af5f00255&|n|a|b@1|r|e|v|i|a|t|e| +0#0000000&@61
|:|u+0#af5f00255&|n|d|o| +0#0000000&@69
|:|u+0#af5f00255&|n|d|o|j|o|i|n| +0#0000000&@65
-|:|u+0#af5f00255&|n|d|o|l|i|s|t| +0#0000000&@65
+>:|u+0#af5f00255&|n|d|o|l|i|s|t| +0#0000000&@65
|:|u+0#af5f00255&|n|h|i|d|e| +0#0000000&@67
|:|u+0#af5f00255&|n|l|o|c|k|v|a|r| +0#0000000&@64
|:|u+0#af5f00255&|n|m|a|p| +0#0000000&@68
@@ -17,4 +11,10 @@
|:|u+0#af5f00255&|n|s|i|l|e|n|t| +0#0000000&@65
|:|u+0#af5f00255&|p|d|a|t|e| +0#0000000&@67
|:|v+0#af5f00255&|a|r| +0#0000000&@70
+|:|v+0#af5f00255&|e|r|b|o|s|e| +0#0000000&@66
+|:|v+0#af5f00255&|e|r|s|i|o|n| +0#0000000&@66
+|:|v+0#af5f00255&|e|r|t|i|c|a|l| +0#0000000&@65
+|:|v+0#af5f00255&|g|l|o|b|a|l|/|.+0#0000000&@2|/+0#af5f00255&| +0#0000000&@61
+|:|v+0#af5f00255&|i|e|w| +0#0000000&@69
+|:|v+0#af5f00255&|i|m|9|c|m|d| +0#0000000&@66
@57|5|4|1|,|1| @8|4@1|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_31.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_31.dump
index d4daaca..7172b96 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_31.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_31.dump
@@ -1,15 +1,9 @@
-|:+0&#ffffff0|v+0#af5f00255&|a|r| +0#0000000&@70
-|:|v+0#af5f00255&|e|r|b|o|s|e| +0#0000000&@66
-|:|v+0#af5f00255&|e|r|s|i|o|n| +0#0000000&@66
-|:|v+0#af5f00255&|e|r|t|i|c|a|l| +0#0000000&@65
-|:|v+0#af5f00255&|g|l|o|b|a|l|/|.+0#0000000&@2|/+0#af5f00255&| +0#0000000&@61
->:|v+0#af5f00255&|i|e|w| +0#0000000&@69
-|:|v+0#af5f00255&|i|m|9|c|m|d| +0#0000000&@66
+|:+0&#ffffff0|v+0#af5f00255&|i|m|9|c|m|d| +0#0000000&@66
|#+0#0000e05&| |:|v|i|m|9|s|c|r|i|p|t| +0#0000000&@61
|:|v+0#af5f00255&|i|m|g|r|e|p| +0#0000000&@66
|:|v+0#af5f00255&|i|m|g|r|e|p|a|d@1| +0#0000000&@63
|:|v+0#af5f00255&|i|s|u|a|l| +0#0000000&@67
-|:|v+0#af5f00255&|i|u|s|a|g|e| +0#0000000&@66
+>:|v+0#af5f00255&|i|u|s|a|g|e| +0#0000000&@66
|:|v+0#af5f00255&|m|a|p| +0#0000000&@69
|:|v+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@64
|:|v+0#af5f00255&|m|e|n|u| +0#0000000&@68
@@ -17,4 +11,10 @@
|:|v+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@65
|:|v+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@64
|:|v+0#af5f00255&|s|p|l|i|t| +0#0000000&@67
-@57|5@1|9|,|1| @8|4|5|%|
+|:|v+0#af5f00255&|u|n|m|a|p| +0#0000000&@67
+|:|v+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@66
+|:|w+0#af5f00255&|a|l@1| +0#0000000&@69
+|:|w+0#af5f00255&|h|i|l|e| +0#0000000&@68
+|:|w+0#af5f00255&|i|n|c|m|d| +0#0000000&@67
+|:|w+0#af5f00255&|i|n|d|o| +0#0000000&@68
+@57|5@1|9|,|1| @8|4|6|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_32.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_32.dump
index 499f3da..ed9e919 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_32.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_32.dump
@@ -1,15 +1,9 @@
-|:+0&#ffffff0|v+0#af5f00255&|s|p|l|i|t| +0#0000000&@67
-|:|v+0#af5f00255&|u|n|m|a|p| +0#0000000&@67
-|:|v+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@66
-|:|w+0#af5f00255&|a|l@1| +0#0000000&@69
-|:|w+0#af5f00255&|h|i|l|e| +0#0000000&@68
->:|w+0#af5f00255&|i|n|c|m|d| +0#0000000&@67
-|:|w+0#af5f00255&|i|n|d|o| +0#0000000&@68
+|:+0&#ffffff0|w+0#af5f00255&|i|n|d|o| +0#0000000&@68
|:|w+0#af5f00255&|i|n|p|o|s| +0#0000000&@67
|:|w+0#af5f00255&|i|n|s|i|z|e| +0#0000000&@66
|:|w+0#af5f00255&|n|e|x|t| +0#0000000&@68
|:|w+0#af5f00255&|N|e|x|t| +0#0000000&@68
-|:|w+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@64
+>:|w+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@64
|:|w+0#af5f00255&|q| +0#0000000&@71
|:|w+0#af5f00255&|q|a|l@1| +0#0000000&@68
|:|w+0#af5f00255&|r|i|t|e| +0#0000000&@68
@@ -17,4 +11,10 @@
|:|w+0#af5f00255&|v|i|m|i|n|f|o| +0#0000000&@65
|:|x+0#af5f00255&|a|l@1| +0#0000000&@69
|:|x+0#af5f00255&|m|a|p| +0#0000000&@69
+|:|x+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@64
+|:|x+0#af5f00255&|m|e|n|u| +0#0000000&@68
+|:|x+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@65
+|:|x+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@64
+|:|x+0#af5f00255&|r|e|s|t|o|r|e| +0#0000000&@65
+|:|x+0#af5f00255&|u|n|m|a|p| +0#0000000&@67
@57|5|7@1|,|1| @8|4|7|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_33.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_33.dump
index 7ac1072..8c37497 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_33.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_33.dump
@@ -1,15 +1,9 @@
-|:+0&#ffffff0|x+0#af5f00255&|m|a|p| +0#0000000&@69
-|:|x+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@64
-|:|x+0#af5f00255&|m|e|n|u| +0#0000000&@68
-|:|x+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@65
-|:|x+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@64
->:|x+0#af5f00255&|r|e|s|t|o|r|e| +0#0000000&@65
-|:|x+0#af5f00255&|u|n|m|a|p| +0#0000000&@67
+|:+0&#ffffff0|x+0#af5f00255&|u|n|m|a|p| +0#0000000&@67
|:|x+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@66
|:|y+0#af5f00255&|a|n|k| +0#0000000&@69
|:|z+0#af5f00255&| +0#0000000&@72
@75
-|F|o@1|(+0#e000e06&|)||+0#0000000&|h+0#af5f00255&|e|l|p| +0#0000000&@64
+>F|o@1|(+0#e000e06&|)||+0#0000000&|h+0#af5f00255&|e|l|p| +0#0000000&@64
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|e|l|p| +0#0000000&@62
|F|o@1|(+0#e000e06&|)| +0#0000000&|||h+0#af5f00255&|e|l|p| +0#0000000&@63
|F|o@1|(+0#e000e06&|)||+0#0000000&| |h+0#af5f00255&|e|l|p| +0#0000000&@63
@@ -17,4 +11,10 @@
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |2+0#af5f00255&|m|a|t|c|h| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |3+0#af5f00255&|m|a|t|c|h| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|b@1|r|e|v|i|a|t|e| +0#0000000&@56
-@57|5|9|5|,|1| @8|4|8|%|
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|b|c|l|e|a|r| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|b|o|v|e|l|e|f|t| +0#0000000&@57
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|b|s|t|r|a|c|t| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|l@1| +0#0000000&@63
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|m|e|n|u| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@57
+@57|5|9|5|,|1| @8|4|9|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_34.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_34.dump
index 259d457..3d622cf 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_34.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_34.dump
@@ -1,15 +1,9 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|b@1|r|e|v|i|a|t|e| +0#0000000&@56
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|b|c|l|e|a|r| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|b|o|v|e|l|e|f|t| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|b|s|t|r|a|c|t| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|l@1| +0#0000000&@63
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|m|e|n|u| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@57
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@57
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|r|g|a|d@1| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|r|g|d|e|d|u|p|e| +0#0000000&@57
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|r|g|d|e|l|e|t|e| +0#0000000&@57
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|r|g|d|o| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|r|g|e|d|i|t| +0#0000000&@59
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|r|g|e|d|i|t| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|r|g@1|l|o|b|a|l| +0#0000000&@57
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|r|g|l|o|c|a|l| +0#0000000&@58
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|r|g|s| +0#0000000&@62
@@ -17,4 +11,10 @@
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|s|c|i@1| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|u|g|r|o|u|p| +0#0000000&|F|o@1| ||| |a+0#af5f00255&|u|g|r|o|u|p| +0#0000000&|E|N|D| @41
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|u|t|o|c|m|d| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|a|d@1| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|a|l@1| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|a|l|t| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|d|e|l|e|t|e| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|e|h|a|v|e| +0#0000000&|m+0#af5f00255&|s|w|i|n| +0#0000000&@54
@57|6|1|3|,|1| @8|5|0|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_35.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_35.dump
index 3fb5032..c6ec183 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_35.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_35.dump
@@ -1,15 +1,9 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|u|t|o|c|m|d| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|a|d@1| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|a|l@1| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|a|l|t| +0#0000000&@62
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|d|e|l|e|t|e| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|e|h|a|v|e| +0#0000000&|m+0#af5f00255&|s|w|i|n| +0#0000000&@54
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|e|h|a|v|e| +0#0000000&|m+0#af5f00255&|s|w|i|n| +0#0000000&@54
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|e|h|a|v|e| +0#0000000&|x+0#af5f00255&|t|e|r|m| +0#0000000&@54
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|e|l|o|w|r|i|g|h|t| +0#0000000&@56
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|f|i|r|s|t| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|l|a|s|t| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|m|o|d|i|f|i|e|d| +0#0000000&@57
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|m|o|d|i|f|i|e|d| +0#0000000&@57
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|n|e|x|t| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|N|e|x|t| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|o|t|r|i|g|h|t| +0#0000000&@58
@@ -17,4 +11,10 @@
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|r|e|a|k| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|r|e|a|k|a|d@1| +0#0000000&@58
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|r|e|a|k|d|e|l| +0#0000000&@58
-@57|6|3|1|,|1| @8|5|1|%|
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|r|e|a|k|l|i|s|t| +0#0000000&@57
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|r|o|w|s|e| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|u|f|d|o| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|u|f@1|e|r| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|u|f@1|e|r|s| +0#0000000&@59
+@57|6|3|1|,|1| @8|5|2|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_36.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_36.dump
index 9431275..2d11b45 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_36.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_36.dump
@@ -1,15 +1,9 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|r|e|a|k|d|e|l| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|r|e|a|k|l|i|s|t| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|r|o|w|s|e| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|u|f|d|o| +0#0000000&@61
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|u|f@1|e|r| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|u|f@1|e|r|s| +0#0000000&@59
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|u|f@1|e|r|s| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|u|n|l|o|a|d| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|w|i|p|e|o|u|t| +0#0000000&@58
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|a|b@1|r|e|v| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|a|b|c|l|e|a|r| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|a|b|o|v|e| +0#0000000&@60
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|a|b|o|v|e| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|a|d@1|b|u|f@1|e|r| +0#0000000&@56
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|a|d@1|e|x|p|r| +0#0000000&@58
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|a|d@1|f|i|l|e| +0#0000000&@58
@@ -17,4 +11,10 @@
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|a|l@1| +0#0000000&@62
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|a|t|c|h| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|b|e|f|o|r|e| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|b|e|l|o|w| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|b|o|t@1|o|m| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|b|u|f@1|e|r| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&@1| +0#0000000&@64
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&@1|l|o|s|e| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|d| +0#0000000&@64
@57|6|4|9|,|1| @8|5|3|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_37.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_37.dump
index da8635d..87fc445 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_37.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_37.dump
@@ -1,15 +1,9 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|b|e|f|o|r|e| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|b|e|l|o|w| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|b|o|t@1|o|m| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|b|u|f@1|e|r| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&@1| +0#0000000&@64
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&@1|l|o|s|e| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|d| +0#0000000&@64
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|d| +0#0000000&@64
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|d|o| +0#0000000&@63
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|e|n|t|e|r| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|e|x|p|r| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|f|d|o| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|f|i|l|e| +0#0000000&@61
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|f|i|l|e| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|f|i|r|s|t| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|g|e|t|b|u|f@1|e|r| +0#0000000&@56
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|g|e|t|e|x|p|r| +0#0000000&@58
@@ -17,4 +11,10 @@
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|h|a|n|g|e|s| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|h|d|i|r| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|h|e|c|k|p|a|t|h| +0#0000000&@57
-@57|6@1|7|,|1| @8|5|4|%|
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|h|e|c|k|t|i|m|e| +0#0000000&@57
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|h|i|s|t|o|r|y| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|l|a|s@1| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|l|a|s|t| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|l|e|a|r|j|u|m|p|s| +0#0000000&@56
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|l|i|s|t| +0#0000000&@61
+@57|6@1|7|,|1| @8|5@1|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_38.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_38.dump
index 6c4b4c9..5589cc9 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_38.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_38.dump
@@ -1,20 +1,20 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|h|e|c|k|p|a|t|h| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|h|e|c|k|t|i|m|e| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|h|i|s|t|o|r|y| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|l|a|s@1| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|l|a|s@1| +0#0000000&@61
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|l|a|s|t| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|l|e|a|r|j|u|m|p|s| +0#0000000&@56
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|l|i|s|t| +0#0000000&@61
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|l|i|s|t| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|l|o|s|e| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|m|a|p| +0#0000000&@62
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@57
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|m|e|n|u| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|n|e|w|e|r| +0#0000000&@60
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|n|e|w|e|r| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|n|e|x|t| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|N|e|x|t| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|n|f|i|l|e| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|N|f|i|l|e| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|n|o|r|e|a|b@1|r|e|v| +0#0000000&@55
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@57
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|l|d|e|r| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|l|o|r|s|c|h|e|m|e| +0#0000000&@55
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|m|c|l|e|a|r| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|m|p|i|l|e|r| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|n|f|i|r|m| +0#0000000&@59
@57|6|8|5|,|1| @8|5|6|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_39.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_39.dump
index ec8610e..0568360 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_39.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_39.dump
@@ -1,20 +1,20 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|l|d|e|r| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|l|o|r|s|c|h|e|m|e| +0#0000000&@55
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|m|c|l|e|a|r| +0#0000000&@58
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|m|p|i|l|e|r| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|n|f|i|r|m| +0#0000000&@59
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|n|f|i|r|m| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|n|s|t| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|n|t|i|n|u|e| +0#0000000&@58
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|p|e|n| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|p|y| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|p|f|i|l|e| +0#0000000&@60
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|p|f|i|l|e| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@57
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|q|u|i|t| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|s|c|o|p|e| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|s|t|a|g| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|u|n|a|b@1|r|e|v| +0#0000000&@57
-@57|7|0|3|,|1| @8|5|7|%|
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|u|n|m|a|p| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|w|i|n|d|o|w| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|b|u|g| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|b|u|g@1|r|e@1|d|y| +0#0000000&@55
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|f| +0#0000000&@63
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|f|c|o|m|p|i|l|e| +0#0000000&@56
+@57|7|0|3|,|1| @8|5|8|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_40.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_40.dump
index 7e09720..77d2b3b 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_40.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_40.dump
@@ -1,20 +1,20 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|u|n|a|b@1|r|e|v| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|u|n|m|a|p| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|w|i|n|d|o|w| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|b|u|g| +0#0000000&@61
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|b|u|g@1|r|e@1|d|y| +0#0000000&@55
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|f| +0#0000000&@63
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|f|c|o|m|p|i|l|e| +0#0000000&@56
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|f|c|o|m|p|i|l|e| +0#0000000&@56
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|f|c|o|m|p|i|l|e| +0#0000000&@56
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|f|e|r| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|l|c|o|m@1|a|n|d| +0#0000000&@56
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|l|e|t|e| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|l|f|u|n|c|t|i|o|n| +0#0000000&@55
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|l|f|u|n|c|t|i|o|n| +0#0000000&@55
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|l|m|a|r|k|s| +0#0000000&@58
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|f@1|g|e|t| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|f@1|o|f@1| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|f@1|p|a|t|c|h| +0#0000000&@57
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|f@1|p|u|t| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|f@1|s|p|l|i|t| +0#0000000&@57
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|f@1|u|p|d|a|t|e| +0#0000000&@56
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|g|r|a|p|h|s| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|s|a|s@1|e|m|b|l|e| +0#0000000&@55
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|s|a|s@1|e|m|b|l|e| +0#0000000&@55
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|s|p|l|a|y| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|j|u|m|p| +0#0000000&@61
@57|7|2|1|,|1| @8|5|9|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_41.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_41.dump
index f9fd2c8..17f0d2e 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_41.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_41.dump
@@ -1,20 +1,20 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|f@1|s|p|l|i|t| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|f@1|u|p|d|a|t|e| +0#0000000&@56
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|g|r|a|p|h|s| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|s|a|s@1|e|m|b|l|e| +0#0000000&@55
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|s|a|s@1|e|m|b|l|e| +0#0000000&@55
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|s|p|l|a|y| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|j|u|m|p| +0#0000000&@61
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|j|u|m|p| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|l| +0#0000000&@64
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|l|i|s|t| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|o|a|u|t|o|a|l@1| +0#0000000&@57
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|o|a|u|t|o|c|m|d| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|p| +0#0000000&@64
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|p| +0#0000000&@64
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|r|o|p| +0#0000000&@62
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|s|e|a|r|c|h| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|s|p|l|i|t| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|a|r|l|i|e|r| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&@62
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o|c|o|n|s|o|l|e| +0#0000000&@55
-@57|7|3|9|,|1| @8|6|0|%|
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o|e|r@1| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o|h|l| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o|m|s|g| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o|n| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o|w|i|n|d|o|w| +0#0000000&@56
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|d|i|t| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|l|s|e| +0#0000000&@62
+@57|7|3|9|,|1| @8|6|1|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_42.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_42.dump
index e2bded9..dd7c753 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_42.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_42.dump
@@ -1,20 +1,20 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o|c|o|n|s|o|l|e| +0#0000000&@55
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o|e|r@1| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o|h|l| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o|m|s|g| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o|n| +0#0000000&@61
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o|w|i|n|d|o|w| +0#0000000&@56
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|d|i|t| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|l|s|e| +0#0000000&@62
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|l|s|e| +0#0000000&@62
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|l|s|e|i|f| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|m|e|n|u| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|d|c|l|a|s@1| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|d|c|l|a|s@1| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e|n|d|c|l|a|s@1| @58
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|d@1|e|f| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|d|e|n|u|m| +0#0000000&@59
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |e|n|d|e|n|u|m| @59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|d|f|o|r| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@55
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|d|i|f| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|d|i|n|t|e|r|f|a|c|e| +0#0000000&@54
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e|n|d|i|n|t|e|r|f|a|c|e| @54
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|d|t|r|y| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|d|w|h|i|l|e| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|e|w| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|u|m| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|v|a|l| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|x| +0#0000000&@64
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|x|e|c|u|t|e| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|x|i|t| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|x|p|o|r|t| +0#0000000&@60
@57|7|5|7|,|1| @8|6|2|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_43.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_43.dump
index 4687bc4..f59746e 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_43.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_43.dump
@@ -1,20 +1,20 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|d|t|r|y| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|d|w|h|i|l|e| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|e|w| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|u|m| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|v|a|l| +0#0000000&@62
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|x| +0#0000000&@64
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|x|e|c|u|t|e| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|x|i|t| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|x|p|o|r|t| +0#0000000&@60
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|x|p|o|r|t| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|x|p|o|r|t| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|x|u|s|a|g|e| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|l|e| +0#0000000&@62
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|l|e|s| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|l|e|t|y|p|e| +0#0000000&@58
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|l|e|t|y|p|e| +0#0000000&@58
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|l|t|e|r| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|n|a|l| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|n|a|l@1|y| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|n|d| +0#0000000&@62
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|n|i|s|h| +0#0000000&@60
-@57|7@1|5|,|1| @8|6|3|%|
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|r|s|t| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|x|d|e|l| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|l|d| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|l|d|c|l|o|s|e| +0#0000000&@57
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|l|d@1|o|c|l|o|s|e|d| +0#0000000&@54
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|l|d@1|o@1|p|e|n| +0#0000000&@56
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|l|d|o|p|e|n| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|r| +0#0000000&@63
+@57|7@1|5|,|1| @8|6|4|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_44.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_44.dump
index 0d4ee69..6d476cf 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_44.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_44.dump
@@ -1,20 +1,20 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|n|i|s|h| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|r|s|t| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|x|d|e|l| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|l|d| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|l|d|c|l|o|s|e| +0#0000000&@57
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|l|d@1|o|c|l|o|s|e|d| +0#0000000&@54
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|l|d@1|o@1|p|e|n| +0#0000000&@56
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|l|d|o|p|e|n| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|r| +0#0000000&@63
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|r| +0#0000000&@63
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|u|n|c|t|i|o|n| +0#0000000&@58
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |g+0#af5f00255&|l|o|b|a|l|/|.+0#0000000&@2|/+0#af5f00255&| +0#0000000&@55
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |g+0#af5f00255&|o|t|o| +0#0000000&@62
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |g+0#af5f00255&|r|e|p| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |g+0#af5f00255&|r|e|p|a|d@1| +0#0000000&@59
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |g+0#af5f00255&|r|e|p|a|d@1| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |g+0#af5f00255&|u|i| +0#0000000&@63
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |g+0#af5f00255&|v|i|m| +0#0000000&@62
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|a|r|d|c|o|p|y| +0#0000000&@58
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|e|l|p| +0#0000000&@62
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|e|l|p|c|l|o|s|e| +0#0000000&@57
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|e|l|p|f|i|n|d| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|e|l|p|g|r|e|p| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|e|l|p|t|a|g|s| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|i|d|e| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&@57
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|i|s|t|o|r|y| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|o|r|i|z|o|n|t|a|l| +0#0000000&@56
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|a|b@1|r|e|v| +0#0000000&@59
@57|7|9|3|,|1| @8|6|5|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_45.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_45.dump
index ed46723..17497ab 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_45.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_45.dump
@@ -1,20 +1,20 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|e|l|p|c|l|o|s|e| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|e|l|p|f|i|n|d| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|e|l|p|g|r|e|p| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|e|l|p|t|a|g|s| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|i|d|e| +0#0000000&@62
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|i|s|t|o|r|y| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|o|r|i|z|o|n|t|a|l| +0#0000000&@56
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|a|b@1|r|e|v| +0#0000000&@59
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|a|b@1|r|e|v| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|a|b|c|l|e|a|r| +0#0000000&@58
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|f| +0#0000000&@64
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|j|u|m|p| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|l|i|s|t| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|m|a|p| +0#0000000&@62
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|m|a|p| +0#0000000&@62
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@57
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|m|e|n|u| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|m|p|o|r|t| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|n|o|r|e|a|b@1|r|e|v| +0#0000000&@55
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@58
-@57|8|1@1|,|1| @8|6@1|%|
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@57
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|n|t|e|r|f|a|c|e| +0#0000000&@57
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|n|t|r|o| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|s|e|a|r|c|h| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|s|p|l|i|t| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|u|n|a|b@1|r|e|v| +0#0000000&@57
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|u|n|m|a|p| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@59
+@57|8|1@1|,|1| @8|6|7|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_46.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_46.dump
index 7a519ee..19d572a 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_46.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_46.dump
@@ -1,20 +1,20 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|n|t|e|r|f|a|c|e| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|n|t|r|o| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|s|e|a|r|c|h| +0#0000000&@59
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|s|p|l|i|t| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|u|n|a|b@1|r|e|v| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|u|n|m|a|p| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@59
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |j+0#af5f00255&|o|i|n| +0#0000000&@62
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |j+0#af5f00255&|u|m|p|s| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&|e@1|p|a|l|t| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&|e@1|p|j|u|m|p|s| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&|e@1|p|m|a|r|k|s| +0#0000000&@57
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&|e@1|p|m|a|r|k|s| +0#0000000&@57
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&|e@1|p@1|a|t@1|e|r|n|s| +0#0000000&@54
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|b|o|v|e| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|d@1|b|u|f@1|e|r| +0#0000000&@56
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|d@1|e|x|p|r| +0#0000000&@58
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|d@1|f|i|l|e| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|f|t|e|r| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|n|g|u|a|g|e| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|s|t| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|t|e|r| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|b|e|f|o|r|e| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|b|e|l|o|w| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|b|o|t@1|o|m| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|b|u|f@1|e|r| +0#0000000&@59
@57|8|2|9|,|1| @8|6|8|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_47.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_47.dump
index c6e9fbe..5a596e0 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_47.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_47.dump
@@ -1,20 +1,20 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|d@1|f|i|l|e| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|f|t|e|r| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|n|g|u|a|g|e| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|s|t| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|t|e|r| +0#0000000&@61
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|b|e|f|o|r|e| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|b|e|l|o|w| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|b|o|t@1|o|m| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|b|u|f@1|e|r| +0#0000000&@59
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|b|u|f@1|e|r| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|c|d| +0#0000000&@63
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|c|h|d|i|r| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|c|l|o|s|e| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|c|s|c|o|p|e| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|d|o| +0#0000000&@63
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|d|o| +0#0000000&@63
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|e|f|t| +0#0000000&@62
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|e|f|t|a|b|o|v|e| +0#0000000&@57
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|e|g|a|c|y| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|e|x|p|r| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|f|d|o| +0#0000000&@62
-@57|8|4|7|,|1| @8|6|9|%|
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|f|i|l|e| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|f|i|r|s|t| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|g|e|t|b|u|f@1|e|r| +0#0000000&@56
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|g|e|t|e|x|p|r| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|g|e|t|f|i|l|e| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|g|r|e|p| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|g|r|e|p|a|d@1| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|h|e|l|p|g|r|e|p| +0#0000000&@57
+@57|8|4|7|,|1| @8|7|0|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_48.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_48.dump
index 0069011..dfd900c 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_48.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_48.dump
@@ -1,20 +1,20 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|f|d|o| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|f|i|l|e| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|f|i|r|s|t| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|g|e|t|b|u|f@1|e|r| +0#0000000&@56
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|g|e|t|e|x|p|r| +0#0000000&@58
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|g|e|t|f|i|l|e| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|g|r|e|p| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|g|r|e|p|a|d@1| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|h|e|l|p|g|r|e|p| +0#0000000&@57
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|h|e|l|p|g|r|e|p| +0#0000000&@57
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|h|i|s|t|o|r|y| +0#0000000&@58
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|i|s|t| +0#0000000&@62
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&@1| +0#0000000&@64
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&@1|a|s|t| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&@1|i|s|t| +0#0000000&@61
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&@1|i|s|t| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|m|a|k|e| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|m|a|p| +0#0000000&@62
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@57
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|n|e|w|e|r| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|n|e|x|t| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|N|e|x|t| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|n|f|i|l|e| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|N|f|i|l|e| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@58
+|#+0#0000e05&| |F|o@1|(|)| ||| |l|o|a|d|k|e|y|m|a|p| |#| |d|i|s|a|b|l|e|d| |-| |r|u|n|s| |u|n|t|i|l| |E|O|F| +0#0000000&@26
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|o|a|d|v|i|e|w| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|o|c|k|m|a|r|k|s| +0#0000000&@57
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|o|c|k|v|a|r| +0#0000000&@59
@57|8|6|5|,|1| @8|7|1|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_49.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_49.dump
index 2222220..6b42598 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_49.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_49.dump
@@ -1,20 +1,20 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|n|e|x|t| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|N|e|x|t| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|n|f|i|l|e| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|N|f|i|l|e| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@58
->#+0#0000e05&| |F|o@1|(|)| ||| |l|o|a|d|k|e|y|m|a|p| |#| |d|i|s|a|b|l|e|d| |-| |r|u|n|s| |u|n|t|i|l| |E|O|F| +0#0000000&@26
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|o|a|d|v|i|e|w| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|o|c|k|m|a|r|k|s| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|o|c|k|v|a|r| +0#0000000&@59
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|o|c|k|v|a|r| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|o|l|d|e|r| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|o|p|e|n| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|p|f|i|l|e| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@59
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|s| +0#0000000&@64
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|t|a|g| +0#0000000&@62
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|u|a| +0#0000000&@63
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|u|a|d|o| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|u|a|f|i|l|e| +0#0000000&@59
-@57|8@1|3|,|1| @8|7|2|%|
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|u|n|m|a|p| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|v|i|m|g|r|e|p| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|v|i|m|g|r|e|p|a|d@1| +0#0000000&@55
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|w|i|n|d|o|w| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|k|e| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|r|k| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|o|v|e| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|p| +0#0000000&@63
+@57|8@1|3|,|1| @8|7|3|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_50.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_50.dump
index 4e38fbc..ad50ffb 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_50.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_50.dump
@@ -1,20 +1,20 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|u|a|f|i|l|e| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|u|n|m|a|p| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|v|i|m|g|r|e|p| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|v|i|m|g|r|e|p|a|d@1| +0#0000000&@55
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|w|i|n|d|o|w| +0#0000000&@59
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|k|e| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|r|k| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|o|v|e| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|p| +0#0000000&@63
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|p| +0#0000000&@63
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|p|c|l|e|a|r| +0#0000000&@58
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|r|k|s| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|t|c|h| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|e|n|u| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|e|n|u|t|r|a|n|s|l|a|t|e| +0#0000000&@53
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|e|n|u|t|r|a|n|s|l|a|t|e| +0#0000000&@53
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|e|s@1|a|g|e|s| +0#0000000&@58
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|k|e|x|r|c| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|k|s|e|s@1|i|o|n| +0#0000000&@57
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|k|s|p|e|l@1| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|k|v|i|e|w| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|k|v|i|m|r|c| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|z|f|i|l|e| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|z|s|c|h|e|m|e| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|b|c|l|o|s|e| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|b|k|e|y| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|b|s|t|a|r|t| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|e|w| +0#0000000&@63
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|e|x|t| +0#0000000&@62
@57|9|0|1|,|1| @8|7|4|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_51.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_51.dump
index 413a19e..436a720 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_51.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_51.dump
@@ -1,20 +1,20 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|k|v|i|e|w| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|k|v|i|m|r|c| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|z|f|i|l|e| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|z|s|c|h|e|m|e| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|b|c|l|o|s|e| +0#0000000&@59
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|b|k|e|y| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|b|s|t|a|r|t| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|e|w| +0#0000000&@63
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|e|x|t| +0#0000000&@62
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|e|x|t| +0#0000000&@62
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|m|a|p| +0#0000000&@62
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@57
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|m|e|n|u| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&@1|o|r|e|m|a|p| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&@1|o|r|e|m|e|n|u| +0#0000000&@57
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&@1|o|r|e|m|e|n|u| +0#0000000&@57
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|o|a|u|t|o|c|m|d| +0#0000000&@57
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|o|h|l|s|e|a|r|c|h| +0#0000000&@56
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|o|r|e|a|b@1|r|e|v| +0#0000000&@56
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|o|r|e|m|a|p| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|o|r|e|m|e|n|u| +0#0000000&@58
-@57|9|1|9|,|1| @8|7|5|%|
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|o|r|m|a|l| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|o|s|w|a|p|f|i|l|e| +0#0000000&@56
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|u|m|b|e|r| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|u|n|m|a|p| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|l|d|f|i|l|e|s| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|m|a|p| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@57
+@57|9|1|9|,|1| @8|7|6|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_52.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_52.dump
index 4a48f67..86e61ce 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_52.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_52.dump
@@ -1,20 +1,20 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|o|r|e|m|e|n|u| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|o|r|m|a|l| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|o|s|w|a|p|f|i|l|e| +0#0000000&@56
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|u|m|b|e|r| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|u|n|m|a|p| +0#0000000&@60
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|l|d|f|i|l|e|s| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|m|a|p| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@57
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@57
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|m|e|n|u| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|n|l|y| +0#0000000&@62
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@58
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|p|t|i|o|n|s| +0#0000000&@59
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|p|t|i|o|n|s| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|u|n|m|a|p| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|w|n|s|y|n|t|a|x| +0#0000000&@57
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|a|c|k|a|d@1| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|a|c|k|l|o|a|d|a|l@1| +0#0000000&@55
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|c|l|o|s|e| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|e|d|i|t| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|e|r|l| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|e|r|l|d|o| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|o|p| +0#0000000&@63
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|o|p|u|p| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&@1|o|p| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|r|e|s|e|r|v|e| +0#0000000&@58
@57|9|3|7|,|1| @8|7@1|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_53.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_53.dump
index 904af14..e822627 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_53.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_53.dump
@@ -1,20 +1,20 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|a|c|k|l|o|a|d|a|l@1| +0#0000000&@55
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|c|l|o|s|e| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|e|d|i|t| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|e|r|l| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|e|r|l|d|o| +0#0000000&@60
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|o|p| +0#0000000&@63
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|o|p|u|p| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&@1|o|p| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|r|e|s|e|r|v|e| +0#0000000&@58
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|r|e|s|e|r|v|e| +0#0000000&@58
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|r|e|v|i|o|u|s| +0#0000000&@58
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|r|i|n|t| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|r|o|f|d|e|l| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|r|o|f|i|l|e| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|r|o|m|p|t|f|i|n|d| +0#0000000&@56
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|r|o|m|p|t|f|i|n|d| +0#0000000&@56
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|r|o|m|p|t|r|e|p|l| +0#0000000&@56
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|s|e|a|r|c|h| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|a|g| +0#0000000&@62
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|f|i|r|s|t| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|j|u|m|p| +0#0000000&@60
-@57|9|5@1|,|1| @8|7|8|%|
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|l|a|s|t| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|n|e|x|t| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|N|e|x|t| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|p|r|e|v|i|o|u|s| +0#0000000&@56
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|r|e|w|i|n|d| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|s|e|l|e|c|t| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|u|t| +0#0000000&@63
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|w|d| +0#0000000&@63
+@57|9|5@1|,|1| @8|7|9|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_54.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_54.dump
index 13bf876..9ebccc1 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_54.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_54.dump
@@ -1,20 +1,20 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|j|u|m|p| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|l|a|s|t| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|n|e|x|t| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|N|e|x|t| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|p|r|e|v|i|o|u|s| +0#0000000&@56
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|r|e|w|i|n|d| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|s|e|l|e|c|t| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|u|b|l|i|c| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|u|b|l|i|c| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|u|t| +0#0000000&@63
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|w|d| +0#0000000&@63
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|w|d| +0#0000000&@63
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|3| +0#0000000&@63
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|3|d|o| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|3|f|i|l|e| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|d|o| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|f|i|l|e| +0#0000000&@60
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|f|i|l|e| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|t|h|o|n| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|t|h|o|n|3| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|t|h|o|n|x| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|x| +0#0000000&@63
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|x|d|o| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|x|f|i|l|e| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |q+0#af5f00255&|a|l@1| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |q+0#af5f00255&|u|i|t| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |q+0#af5f00255&|u|i|t|a|l@1| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|a|d| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|c|o|v|e|r| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|d|i|r| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|d|o| +0#0000000&@62
@57|9|7|3|,|1| @8|8|0|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_55.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_55.dump
index 1566106..5a22445 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_55.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_55.dump
@@ -1,20 +1,20 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|t|h|o|n|x| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|x| +0#0000000&@63
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|x|d|o| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|x|f|i|l|e| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |q+0#af5f00255&|a|l@1| +0#0000000&@62
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |q+0#af5f00255&|u|i|t| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |q+0#af5f00255&|u|i|t|a|l@1| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|a|d| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|c|o|v|e|r| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|d|i|r| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|d|o| +0#0000000&@62
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|d|o| +0#0000000&@62
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|d|r|a|w| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|d|r|a|w|s|t|a|t|u|s| +0#0000000&@54
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|d|r|a|w|t|a|b|l|i|n|e| +0#0000000&@53
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|g|i|s|t|e|r|s| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|s|i|z|e| +0#0000000&@60
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|s|i|z|e| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|t|a|b| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|t|u|r|n| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|w|i|n|d| +0#0000000&@60
-@57|9@1|1|,|1| @8|8|1|%|
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|i|g|h|t| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|i|g|h|t|b|e|l|o|w| +0#0000000&@56
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|u|b|y| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|u|b|y|d|o| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|u|b|y|f|i|l|e| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|u|n|d|o| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|u|n|t|i|m|e| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|v|i|m|i|n|f|o| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|a|l@1| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|a|n|d|b|o|x| +0#0000000&@59
+@57|9@1|1|,|1| @8|8|2|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_56.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_56.dump
index 252e0db..dc6983c 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_56.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_56.dump
@@ -1,20 +1,20 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|w|i|n|d| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|i|g|h|t| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|i|g|h|t|b|e|l|o|w| +0#0000000&@56
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|u|b|y| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|u|b|y|d|o| +0#0000000&@60
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|u|b|y|f|i|l|e| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|u|n|d|o| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|u|n|t|i|m|e| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|v|i|m|i|n|f|o| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|a|l@1| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|a|n|d|b|o|x| +0#0000000&@59
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|a|n|d|b|o|x| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|a|r|g|u|m|e|n|t| +0#0000000&@57
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|a|v|e|a|s| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|a|l@1| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|f|i|r|s|t| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|l|a|s|t| +0#0000000&@60
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|l|a|s|t| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|m|o|d|i|f|i|e|d| +0#0000000&@56
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|n|e|x|t| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|N|e|x|t| +0#0000000&@60
-@57|1|0@1|9|,|1| @7|8|3|%|
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|p|r|e|v|i|o|u|s| +0#0000000&@56
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|r|e|w|i|n|d| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|u|f@1|e|r| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|c|r|i|p|t|e|n|c|o|d|i|n|g| +0#0000000&@52
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|c|r|i|p|t|n|a|m|e|s| +0#0000000&@55
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|c|r|i|p|t|v|e|r|s|i|o|n| +0#0000000&@53
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|c|s|c|o|p|e| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|e|t| +0#0000000&@63
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|e|t|f|i|l|e|t|y|p|e| +0#0000000&@55
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|e|t|g|l|o|b|a|l| +0#0000000&@57
+@57|1|0@1|9|,|1| @7|8|4|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_57.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_57.dump
index ea46840..33749ef 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_57.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_57.dump
@@ -1,20 +1,20 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|N|e|x|t| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|p|r|e|v|i|o|u|s| +0#0000000&@56
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|r|e|w|i|n|d| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|u|f@1|e|r| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|c|r|i|p|t|e|n|c|o|d|i|n|g| +0#0000000&@52
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|c|r|i|p|t|n|a|m|e|s| +0#0000000&@55
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|c|r|i|p|t|v|e|r|s|i|o|n| +0#0000000&@53
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|c|s|c|o|p|e| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|e|t| +0#0000000&@63
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|e|t|f|i|l|e|t|y|p|e| +0#0000000&@55
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|e|t|g|l|o|b|a|l| +0#0000000&@57
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|e|t|g|l|o|b|a|l| +0#0000000&@57
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|e|t|l|o|c|a|l| +0#0000000&@58
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|f|i|n|d| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|f|i|r|s|t| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|h|e|l@1| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|i|g|n| +0#0000000&@62
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|i|g|n| +0#0000000&@62
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|i|l|e|n|t| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|i|m|a|l|t| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|l|a|s|t| +0#0000000&@61
-@57|1|0|2|7|,|1| @7|8|4|%|
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|l|e@1|p| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|l|e@1|p|!| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|m|a|g|i|c| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|m|a|p| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@57
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|m|e|n|u| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|m|i|l|e| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|n|e|x|t| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|N|e|x|t| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|n|o|m|a|g|i|c| +0#0000000&@58
+@57|1|0|2|7|,|1| @7|8|5|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_58.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_58.dump
index 3ca8140..67744dd 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_58.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_58.dump
@@ -1,20 +1,20 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|l|a|s|t| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|l|e@1|p| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|l|e@1|p|!| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|m|a|g|i|c| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|m|a|p| +0#0000000&@62
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|m|e|n|u| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|m|i|l|e| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|n|e|x|t| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|N|e|x|t| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|n|o|m|a|g|i|c| +0#0000000&@58
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|n|o|m|a|g|i|c| +0#0000000&@58
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@58
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@57
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|o|r|t| +0#0000000&@62
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|o|u|r|c|e| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|e|l@1|d|u|m|p| +0#0000000&@57
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|e|l@1|d|u|m|p| +0#0000000&@57
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|e|l@1|g|o@1|d| +0#0000000&@57
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|e|l@1|i|n|f|o| +0#0000000&@57
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|e|l@1|r|a|r|e| +0#0000000&@57
-@57|1|0|4|5|,|1| @7|8|6|%|
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|e|l@1|r|e|p|a|l@1| +0#0000000&@55
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|e|l@1|u|n|d|o| +0#0000000&@57
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|e|l@1|w|r|o|n|g| +0#0000000&@56
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|l|i|t| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@57
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|a|g| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|a|r|t|g|r|e|p|l|a|c|e| +0#0000000&@53
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|a|r|t|i|n|s|e|r|t| +0#0000000&@55
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|a|r|t|r|e|p|l|a|c|e| +0#0000000&@54
+@57|1|0|4|5|,|1| @7|8|7|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_59.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_59.dump
index 361e7a8..d42972f 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_59.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_59.dump
@@ -1,20 +1,20 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|e|l@1|r|a|r|e| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|e|l@1|r|e|p|a|l@1| +0#0000000&@55
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|e|l@1|u|n|d|o| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|e|l@1|w|r|o|n|g| +0#0000000&@56
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|l|i|t| +0#0000000&@61
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|a|g| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|a|r|t|g|r|e|p|l|a|c|e| +0#0000000&@53
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|a|r|t|i|n|s|e|r|t| +0#0000000&@55
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|a|r|t|r|e|p|l|a|c|e| +0#0000000&@54
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|a|t|i|c| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|a|t|i|c| +0#0000000&@60
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|a|r|t|r|e|p|l|a|c|e| +0#0000000&@54
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|j|u|m|p| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|o|p| +0#0000000&@62
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|o|p|i|n|s|e|r|t| +0#0000000&@56
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|s|e|l|e|c|t| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|u|b|s|t|i|t|u|t|e| +0#0000000&@56
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|u|b|s|t|i|t|u|t|e| +0#0000000&@56
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|u|n|h|i|d|e| +0#0000000&@59
-@57|1|0|6|3|,|1| @7|8|7|%|
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|u|n|m|a|p| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|u|s|p|e|n|d| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|v|i|e|w| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|w|a|p|n|a|m|e| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|y|n|c|b|i|n|d| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|y|n|t|a|x| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|y|n|t|i|m|e| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b| +0#0000000&@63
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|c|l|o|s|e| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|d|o| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|e|d|i|t| +0#0000000&@59
+@57|1|0|6|3|,|1| @7|8@1|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_60.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_60.dump
index c643b3a..14a4dcf 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_60.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_60.dump
@@ -1,20 +1,20 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|u|n|h|i|d|e| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|u|n|m|a|p| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|u|s|p|e|n|d| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|v|i|e|w| +0#0000000&@61
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|w|a|p|n|a|m|e| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|y|n|c|b|i|n|d| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|y|n|t|a|x| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|y|n|t|i|m|e| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b| +0#0000000&@63
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|c|l|o|s|e| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|d|o| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|e|d|i|t| +0#0000000&@59
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|e|d|i|t| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|f|i|n|d| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|f|i|r|s|t| +0#0000000&@58
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|l|a|s|t| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|m|o|v|e| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|n|e|w| +0#0000000&@60
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|n|e|w| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|n|e|x|t| +0#0000000&@59
-@57|1|0|8|1|,|1| @7|8|9|%|
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|N|e|x|t| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|o|n|l|y| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|p|r|e|v|i|o|u|s| +0#0000000&@55
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|r|e|w|i|n|d| +0#0000000&@57
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|s| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|g| +0#0000000&@63
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|g|s| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|c|d| +0#0000000&@63
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|c|h|d|i|r| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|c|l| +0#0000000&@63
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|c|l|d|o| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|c|l|f|i|l|e| +0#0000000&@59
+@57|1|0|8|1|,|1| @7|9|0|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_61.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_61.dump
index d024fa5..2bc2139 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_61.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_61.dump
@@ -1,20 +1,20 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|n|e|x|t| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|N|e|x|t| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|o|n|l|y| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|p|r|e|v|i|o|u|s| +0#0000000&@55
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|r|e|w|i|n|d| +0#0000000&@57
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|s| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|g| +0#0000000&@63
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|g|s| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|c|d| +0#0000000&@63
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|c|h|d|i|r| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|c|l| +0#0000000&@63
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|c|l|d|o| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|c|l|f|i|l|e| +0#0000000&@59
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|c|l|f|i|l|e| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|e|a|r|o|f@1| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|e|r|m|i|n|a|l| +0#0000000&@58
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|f|i|r|s|t| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|h|r|o|w| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|j|u|m|p| +0#0000000&@61
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|j|u|m|p| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|l|a|s|t| +0#0000000&@61
-@57|1|0|9@1|,|1| @7|9|0|%|
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|l|m|e|n|u| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|l|n|o|r|e|m|e|n|u| +0#0000000&@56
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|l|u|n|m|e|n|u| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|m|a|p| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@57
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|m|e|n|u| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|n|e|x|t| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|N|e|x|t| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|o|p|l|e|f|t| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@57
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@59
+@57|1|0|9@1|,|1| @7|9|1|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_62.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_62.dump
index 10f3bcc..3b22e9c 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_62.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_62.dump
@@ -1,20 +1,20 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|l|a|s|t| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|l|m|e|n|u| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|l|n|o|r|e|m|e|n|u| +0#0000000&@56
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|l|u|n|m|e|n|u| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|m|a|p| +0#0000000&@62
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|m|e|n|u| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|n|e|x|t| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|N|e|x|t| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|o|p|l|e|f|t| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@59
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|r|y| +0#0000000&@63
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|s|e|l|e|c|t| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|u|n|m|a|p| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|y|p|e| +0#0000000&@62
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|y|p|e| +0#0000000&@62
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|a|b@1|r|e|v|i|a|t|e| +0#0000000&@54
-@57|1@2|7|,|1| @7|9|2|%|
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|a|b@1|r|e|v|i|a|t|e| +0#0000000&@54
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|d|o| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|d|o|j|o|i|n| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|d|o|l|i|s|t| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|h|i|d|e| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|l|o|c|k|v|a|r| +0#0000000&@57
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|m|a|p| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|m|e|n|u| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|s|i|l|e|n|t| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|p|d|a|t|e| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|a|r| +0#0000000&@63
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|e|r|b|o|s|e| +0#0000000&@59
+@57|1@2|7|,|1| @7|9|3|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_63.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_63.dump
index 890f79f..a6cd765 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_63.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_63.dump
@@ -1,20 +1,20 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|a|b@1|r|e|v|i|a|t|e| +0#0000000&@54
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|a|b@1|r|e|v|i|a|t|e| +0#0000000&@54
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|d|o| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|d|o|j|o|i|n| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|d|o|l|i|s|t| +0#0000000&@58
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|h|i|d|e| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|l|o|c|k|v|a|r| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|m|a|p| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|m|e|n|u| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|s|i|l|e|n|t| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|p|d|a|t|e| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|a|r| +0#0000000&@63
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|e|r|b|o|s|e| +0#0000000&@59
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|e|r|b|o|s|e| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|e|r|s|i|o|n| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|e|r|t|i|c|a|l| +0#0000000&@58
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|g|l|o|b|a|l|/|.+0#0000000&@2|/+0#af5f00255&| +0#0000000&@54
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|m|9|c|m|d| +0#0000000&@59
-|#+0#0000e05&| |c|a|l@1| |F|o@1|(|)| ||| |v|i|m|9|s|c|r|i|p|t| +0#0000000&@49
+>#+0#0000e05&| |c|a|l@1| |F|o@1|(|)| ||| |v|i|m|9|s|c|r|i|p|t| +0#0000000&@49
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|m|g|r|e|p| +0#0000000&@59
-@57|1@1|3|5|,|1| @7|9|3|%|
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|m|g|r|e|p|a|d@1| +0#0000000&@56
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|s|u|a|l| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|u|s|a|g|e| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|e|w| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|m|a|p| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@57
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|m|e|n|u| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|n|e|w| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@57
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|s|p|l|i|t| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|u|n|m|a|p| +0#0000000&@60
+@57|1@1|3|5|,|1| @7|9|4|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_64.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_64.dump
index 11db98b..0f19637 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_64.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_64.dump
@@ -1,20 +1,20 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|m|g|r|e|p| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|m|g|r|e|p|a|d@1| +0#0000000&@56
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|s|u|a|l| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|u|s|a|g|e| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|e|w| +0#0000000&@62
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|m|a|p| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|m|e|n|u| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|n|e|w| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|s|p|l|i|t| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|u|n|m|a|p| +0#0000000&@60
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|u|n|m|a|p| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@59
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|i|n|d|o| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|r|i|t|e| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|N|e|x|t| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|a|l@1| +0#0000000&@62
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|a|l@1| +0#0000000&@62
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|h|i|l|e| +0#0000000&@61
-@57|1@1|5|3|,|1| @7|9|5|%|
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|i|n|s|i|z|e| +0#0000000&@59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|i|n|c|m|d| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|i|n|p|o|s| +0#0000000&@60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|n|e|x|t| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@57
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|q| +0#0000000&@64
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|q|a|l@1| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|u|n|d|o| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|v|i|m|i|n|f|o| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|a|l@1| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@57
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|m|a|p| +0#0000000&@62
+@57|1@1|5|3|,|1| @7|9|6|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_65.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_65.dump
index 3640a53..e90d7bd 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_65.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_65.dump
@@ -1,20 +1,20 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|h|i|l|e| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|i|n|s|i|z|e| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|i|n|c|m|d| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|i|n|p|o|s| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|n|e|x|t| +0#0000000&@61
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|q| +0#0000000&@64
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|q|a|l@1| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|u|n|d|o| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|v|i|m|i|n|f|o| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|a|l@1| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|m|a|p| +0#0000000&@62
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|m|a|p| +0#0000000&@62
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|m|e|n|u| +0#0000000&@61
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|r|e|s|t|o|r|e| +0#0000000&@58
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@58
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|u|n|m|a|p| +0#0000000&@60
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|u|n|m|a|p| +0#0000000&@60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@59
-@57|1@1|7|1|,|1| @7|9|6|%|
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |y+0#af5f00255&|a|n|k| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |z+0#af5f00255&| +0#0000000&@65
+@75
+@75
+|#+0#0000e05&| |L|e|g|a|c|y|-|s|c|r|i|p|t| |o|n|l|y| +0#0000000&@54
+@75
+|:|P|r|i|n|t| @68
+|:+0#af5f00255&|a|p@1|e|n|d| +0#0000000&@67
+| +0#e000002&@3|t|e|x|t| +0#0000000&@66
+|.+0#af5f00255&| +0#0000000&@73
+|:+0#af5f00255&|c|h|a|n|g|e| +0#0000000&@67
+| +0#e000002&@3|t|e|x|t| +0#0000000&@66
+@57|1@1|7|1|,|1| @7|9|7|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_66.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_66.dump
index 465500e..d3ec56f 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_66.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_66.dump
@@ -1,20 +1,20 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |y+0#af5f00255&|a|n|k| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |z+0#af5f00255&| +0#0000000&@65
-@75
-@75
->#+0#0000e05&| |L|e|g|a|c|y|-|s|c|r|i|p|t| |o|n|l|y| +0#0000000&@54
-@75
-|:|P|r|i|n|t| @68
-|:+0#af5f00255&|a|p@1|e|n|d| +0#0000000&@67
-| +0#e000002&@3|t|e|x|t| +0#0000000&@66
-|.+0#af5f00255&| +0#0000000&@73
-|:+0#af5f00255&|c|h|a|n|g|e| +0#0000000&@67
-| +0#e000002&@3|t|e|x|t| +0#0000000&@66
+| +0#e000002#ffffff0@3|t|e|x|t| +0#0000000&@66
|.+0#af5f00255&| +0#0000000&@73
|:+0#af5f00255&|i|n|s|e|r|t| +0#0000000&@67
| +0#e000002&@3|t|e|x|t| +0#0000000&@66
|.+0#af5f00255&| +0#0000000&@73
-|:|k+0#af5f00255&| +0#0000000&@72
+>:|k+0#af5f00255&| +0#0000000&@72
|:|l+0#af5f00255&|e|t| +0#0000000&@70
-@57|1@1|8|9|,|1| @7|9|8|%|
+|:|m+0#af5f00255&|o|d|e| +0#0000000&@69
+|:|o+0#af5f00255&|p|e|n| +0#0000000&@69
+|:|t+0#af5f00255&| +0#0000000&@72
+|:|u+0#af5f00255&|n|l|e|t| +0#0000000&@68
+|:|x+0#af5f00255&|i|t| +0#0000000&@70
+@75
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a|p@1|e|n|d| @60
+@4|t|e|x|t| @66
+|.+0#af5f00255&| +0#0000000&@73
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|h|a|n|g|e| +0#0000000&@60
+@4|t|e|x|t| @66
+|.+0#af5f00255&| +0#0000000&@73
+@57|1@1|8|9|,|1| @7|9@1|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_67.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_67.dump
index 0292dd4..5931937 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_67.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_commands_67.dump
@@ -1,20 +1,20 @@
-|:+0&#ffffff0|l+0#af5f00255&|e|t| +0#0000000&@70
-|:|m+0#af5f00255&|o|d|e| +0#0000000&@69
-|:|o+0#af5f00255&|p|e|n| +0#0000000&@69
-|:|t+0#af5f00255&| +0#0000000&@72
-|:|u+0#af5f00255&|n|l|e|t| +0#0000000&@68
->:|x+0#af5f00255&|i|t| +0#0000000&@70
-@75
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a|p@1|e|n|d| @60
-@4|t|e|x|t| @66
-|.+0#af5f00255&| +0#0000000&@73
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|h|a|n|g|e| +0#0000000&@60
-@4|t|e|x|t| @66
-|.+0#af5f00255&| +0#0000000&@73
+|.+0#af5f00255#ffffff0| +0#0000000&@73
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i|n|s|e|r|t| @60
@4|t|e|x|t| @66
|.+0#af5f00255&| +0#0000000&@73
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&| +0#0000000&@65
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|e|t| +0#0000000&@63
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|e|t| +0#0000000&@63
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|o|d|e| +0#0000000&@62
-@57|1|2|0|7|,|1| @7|9@1|%|
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|p|e|n| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&| +0#0000000&@65
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|l|e|t| +0#0000000&@61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|i|t| +0#0000000&@63
+@75
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|1|2|0|7|,|1| @7|B|o|t|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_commands_68.dump b/runtime/syntax/testdir/dumps/vim9_ex_commands_68.dump
deleted file mode 100644
index 1e90095..0000000
--- a/runtime/syntax/testdir/dumps/vim9_ex_commands_68.dump
+++ /dev/null
@@ -1,20 +0,0 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|o|d|e| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|p|e|n| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&| +0#0000000&@65
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|l|e|t| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|i|t| +0#0000000&@63
-> @74
-|~+0#4040ff13&| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-| +0#0000000&@56|1|2@1|5|,|0|-|1| @5|B|o|t|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_enum_fold_00.dump b/runtime/syntax/testdir/dumps/vim9_ex_enum_fold_00.dump
new file mode 100644
index 0000000..07eba76
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim9_ex_enum_fold_00.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1>v+0#af5f00255#ffffff0|i|m|9|s|c|r|i|p|t| +0#0000000&@62
+| +0#0000e05#a8a8a8255@1|#+0&#ffffff0| |V|i|m| |:|e|n|u|m| |c|o|m@1|a|n|d| +0#0000000&@53
+| +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| |=| |'|e|f|'| +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@1|i+0#af5f00255#ffffff0|n|t|e|r|f|a|c|e| +0#0000000&|I|n|t|e|r|f|a|c|e|1| @52
+| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|n|d|i|n|t|e|r|f|a|c|e| +0#0000000&@60
+| +0#0000e05#a8a8a8255@1|i+0#af5f00255#ffffff0|n|t|e|r|f|a|c|e| +0#0000000&|I|n|t|e|r|f|a|c|e|2| @52
+| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|n|d|i|n|t|e|r|f|a|c|e| +0#0000000&@60
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|u|m| +0#0000000&|E|n|u|m|1| @62
+||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|e|n|u|m| +0#0000000&@65
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|x|p|o|r|t| +0#0000000&|e+0#af5f00255&|n|u|m| +0#0000000&|E|n|u|m|2| @55
+||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|e|n|u|m| +0#0000000&@65
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|u|m| +0#0000000&|E|n|u|m|3| @62
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|V|a|l|u|e|1|,| @63
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|V|a|l|u|e|2|,| @63
+@57|1|,|1| @10|T|o|p|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_enum_fold_01.dump b/runtime/syntax/testdir/dumps/vim9_ex_enum_fold_01.dump
new file mode 100644
index 0000000..1d06184
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim9_ex_enum_fold_01.dump
@@ -0,0 +1,20 @@
+|-+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|x|p|o|r|t| +0#0000000&|e+0#af5f00255&|n|u|m| +0#0000000&|E|n|u|m|2| @55
+||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|e|n|u|m| +0#0000000&@65
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|u|m| +0#0000000&|E|n|u|m|3| @62
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|V|a|l|u|e|1|,| @63
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1>V|a|l|u|e|2|,| @63
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|V|a|l|u|e|3| @64
+||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|e|n|u|m| +0#0000000&@65
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|u|m| +0#0000000&|E|n|u|m|4| @62
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|V|a|l|u|e|1|,| @63
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|V|a|l|u|e|2|,| @63
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|V|a|l|u|e|3| @64
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|d+0#af5f00255&|e|f| +0#0000000&|M|e|t|h|o|d|1|(+0#e000e06&|)| +0#0000000&@57
+|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
+||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|e|n|u|m| +0#0000000&@65
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|u|m| +0#0000000&|E|n|u|m|5| |i+0#af5f00255&|m|p|l|e|m|e|n|t|s| +0#0000000&|I|n|t|e|r|f|a|c|e|1|,| |I|n|t|e|r|f|a|c|e|2| @28
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|V|a|l|u|e|1|,| @61
+@57|1|9|,|3| @9|6|5|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_enum_fold_02.dump b/runtime/syntax/testdir/dumps/vim9_ex_enum_fold_02.dump
new file mode 100644
index 0000000..fe40d4b
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim9_ex_enum_fold_02.dump
@@ -0,0 +1,20 @@
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|V|a|l|u|e|1|,| @61
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|V|a|l|u|e|2|,| @61
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|V|a|l|u|e|3| @62
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|M|e|t|h|o|d|1|(+0#e000e06&|)| +0#0000000&@55
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@5|d+0#af5f00255&|e|f| +0#0000000&|N|e|s|t|e|d|(+0#e000e06&|)| +0#0000000&@54
+|3+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@5>e+0#af5f00255&|n|d@1|e|f| +0#0000000&@60
+|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
+||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|e|n|u|m| +0#0000000&@65
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|3|7|,|7| @9|B|o|t|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_interface_fold_00.dump b/runtime/syntax/testdir/dumps/vim9_ex_interface_fold_00.dump
new file mode 100644
index 0000000..6e9dde7
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim9_ex_interface_fold_00.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1>v+0#af5f00255#ffffff0|i|m|9|s|c|r|i|p|t| +0#0000000&@62
+| +0#0000e05#a8a8a8255@1|#+0&#ffffff0| |V|i|m| |:|i|n|t|e|r|f|a|c|e| |c|o|m@1|a|n|d| +0#0000000&@48
+| +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| |=| |'|i|'| +0#0000000&@29
+| +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| |i+0#af5f00255#ffffff0|n|t|e|r|f|a|c|e| +0#0000000&|I|n|t|e|r|f|a|c|e|1| @52
+||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|i|n|t|e|r|f|a|c|e| +0#0000000&@60
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|x|p|o|r|t| +0#0000000&|i+0#af5f00255&|n|t|e|r|f|a|c|e| +0#0000000&|I|n|t|e|r|f|a|c|e|2| @45
+||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|i|n|t|e|r|f|a|c|e| +0#0000000&@60
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| |i+0#af5f00255#ffffff0|n|t|e|r|f|a|c|e| +0#0000000&|I|n|t|e|r|f|a|c|e|2| @52
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@61
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|v+0#af5f00255&|a|r| +0#0000000&|v+0#00e0e07&|a|r|1|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@54
+||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|i|n|t|e|r|f|a|c|e| +0#0000000&@60
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| |i+0#af5f00255#ffffff0|n|t|e|r|f|a|c|e| +0#0000000&|I|n|t|e|r|f|a|c|e|3| @52
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@61
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|d+0#af5f00255&|e|f| +0#0000000&|M|e|t|h|1|(+0#e000e06&|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@51
+@57|1|,|1| @10|T|o|p|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_interface_fold_01.dump b/runtime/syntax/testdir/dumps/vim9_ex_interface_fold_01.dump
new file mode 100644
index 0000000..12394b8
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim9_ex_interface_fold_01.dump
@@ -0,0 +1,20 @@
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|v+0#af5f00255&|a|r| +0#0000000&|v+0#00e0e07&|a|r|1|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@54
+||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|i|n|t|e|r|f|a|c|e| +0#0000000&@60
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| |i+0#af5f00255#ffffff0|n|t|e|r|f|a|c|e| +0#0000000&|I|n|t|e|r|f|a|c|e|3| @52
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@61
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1>d+0#af5f00255&|e|f| +0#0000000&|M|e|t|h|1|(+0#e000e06&|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@51
+||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|i|n|t|e|r|f|a|c|e| +0#0000000&@60
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| |i+0#af5f00255#ffffff0|n|t|e|r|f|a|c|e| +0#0000000&|I|n|t|e|r|f|a|c|e|4| @52
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@61
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|v+0#af5f00255&|a|r| +0#0000000&|v+0#00e0e07&|a|r|1|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@54
+||+0#0000e05#a8a8a8255| | +0&#ffffff0@1|#| |c|o|m@1|e|n|t| +0#0000000&@61
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|d+0#af5f00255&|e|f| +0#0000000&|M|e|t|h|1|(+0#e000e06&|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@51
+||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|i|n|t|e|r|f|a|c|e| +0#0000000&@60
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| |i+0#af5f00255#ffffff0|n|t|e|r|f|a|c|e| +0#0000000&|I|n|t|e|r|f|a|c|e|5| @52
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@61
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|v+0#af5f00255&|a|r| +0#0000000&|v+0#00e0e07&|a|r|1|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@54
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|v+0#af5f00255&|a|r| +0#0000000&|v+0#00e0e07&|a|r|2|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@54
+@57|1|9|,|3| @9|7|6|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_interface_fold_02.dump b/runtime/syntax/testdir/dumps/vim9_ex_interface_fold_02.dump
new file mode 100644
index 0000000..0cd6495
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim9_ex_interface_fold_02.dump
@@ -0,0 +1,20 @@
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|v+0#af5f00255&|a|r| +0#0000000&|v+0#00e0e07&|a|r|2|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@54
+||+0#0000e05#a8a8a8255| | +0&#ffffff0@1|#| |c|o|m@1|e|n|t| +0#0000000&@61
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|d+0#af5f00255&|e|f| +0#0000000&|M|e|t|h|1|(+0#e000e06&|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@51
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|d+0#af5f00255&|e|f| +0#0000000&|M|e|t|h|2|(+0#e000e06&|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@51
+||+0#0000e05#a8a8a8255| >e+0#af5f00255#ffffff0|n|d|i|n|t|e|r|f|a|c|e| +0#0000000&@60
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|3|6|,|1| @9|B|o|t|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_special_method_definitions_00.dump b/runtime/syntax/testdir/dumps/vim9_ex_special_method_definitions_00.dump
new file mode 100644
index 0000000..4a9295f
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim9_ex_special_method_definitions_00.dump
@@ -0,0 +1,20 @@
+>v+0#af5f00255#ffffff0|i|m|9|s|c|r|i|p|t| +0#0000000&@64
+|#+0#0000e05&| |V|i|m|9| |s|p|e|c|i|a|l| |m|e|t|h|o|d|s| |n|e|w|*|(|)|,| |e|m|p|t|y|(|)|,| |l|e|n|(|)|,| |s|t|r|i|n|g|(|)| +0#0000000&@19
+@75
+|d+0#af5f00255&|e|f| +0#0000000&|n+0#ffffff16#ff404010|e|w|(+0#e000e06#ffffff0|)| +0#0000000&@65
+|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
+@75
+|d+0#af5f00255&|e|f| +0#0000000&|n+0#ffffff16#ff404010|e|w|O|t|h|e|r|(+0#e000e06#ffffff0|)| +0#0000000&@60
+|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
+@75
+|d+0#af5f00255&|e|f| +0#0000000&|n+0#ffffff16#ff404010|e|w|y|e|t|a|n|o|t|h|e|r|(+0#e000e06#ffffff0|)| +0#0000000&@55
+|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
+@75
+|d+0#af5f00255&|e|f| +0#0000000&|e+0#ffffff16#ff404010|m|p|t|y|(+0#e000e06#ffffff0|)|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&@57
+@2|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#e000002&|r|u|e| +0#0000000&@61
+|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
+@75
+|d+0#af5f00255&|e|f| +0#0000000&|l+0#ffffff16#ff404010|e|n|(+0#e000e06#ffffff0|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@57
+@2|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|0+0#e000002&| +0#0000000&@64
+|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
+@57|1|,|1| @10|T|o|p|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_special_method_definitions_01.dump b/runtime/syntax/testdir/dumps/vim9_ex_special_method_definitions_01.dump
new file mode 100644
index 0000000..eef981d
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim9_ex_special_method_definitions_01.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@1|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#e000002&|r|u|e| +0#0000000&@61
+|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
+@75
+|d+0#af5f00255&|e|f| +0#0000000&|l+0#ffffff16#ff404010|e|n|(+0#e000e06#ffffff0|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@57
+@2|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|0+0#e000002&| +0#0000000&@64
+>e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
+@75
+|d+0#af5f00255&|e|f| +0#0000000&|s+0#ffffff16#ff404010|t|r|i|n|g|(+0#e000e06#ffffff0|)|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&@54
+@2|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|"+0#e000002&@1| +0#0000000&@63
+|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
+@75
+|c+0#af5f00255&|l|a|s@1| +0#0000000&|A| @67
+@2|d+0#af5f00255&|e|f| +0#0000000&|n+0#00e0e07&|e|w|(+0#e000e06&|)| +0#0000000&@63
+@4|d+0#af5f00255&|e|f| +0#0000000&|n+0#ffffff16#ff404010|e|w|N|e|s|t|e|d|(+0#e000e06#ffffff0|)| +0#0000000&@55
+@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
+@4|d+0#af5f00255&|e|f| +0#0000000&|e+0#ffffff16#ff404010|m|p|t|y|(+0#e000e06#ffffff0|)|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&@53
+@6|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#e000002&|r|u|e| +0#0000000&@57
+@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
+@4|d+0#af5f00255&|e|f| +0#0000000&|l+0#ffffff16#ff404010|e|n|(+0#e000e06#ffffff0|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@53
+@57|1|9|,|1| @9|1|3|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_special_method_definitions_02.dump b/runtime/syntax/testdir/dumps/vim9_ex_special_method_definitions_02.dump
new file mode 100644
index 0000000..ef8e3f5
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim9_ex_special_method_definitions_02.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|l+0#ffffff16#ff404010|e|n|(+0#e000e06#ffffff0|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@53
+@6|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|0+0#e000002&| +0#0000000&@60
+@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
+@4|d+0#af5f00255&|e|f| +0#0000000&|s+0#ffffff16#ff404010|t|r|i|n|g|(+0#e000e06#ffffff0|)|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&@50
+@6|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|"+0#e000002&@1| +0#0000000&@59
+@4>e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
+@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
+@75
+@2|d+0#af5f00255&|e|f| +0#0000000&|n+0#00e0e07&|e|w|O|t|h|e|r|(+0#e000e06&|)| +0#0000000&@58
+@4|d+0#af5f00255&|e|f| +0#0000000&|n+0#ffffff16#ff404010|e|w|N|e|s|t|e|d|(+0#e000e06#ffffff0|)| +0#0000000&@55
+@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
+@4|d+0#af5f00255&|e|f| +0#0000000&|e+0#ffffff16#ff404010|m|p|t|y|(+0#e000e06#ffffff0|)|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&@53
+@6|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#e000002&|r|u|e| +0#0000000&@57
+@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
+@4|d+0#af5f00255&|e|f| +0#0000000&|l+0#ffffff16#ff404010|e|n|(+0#e000e06#ffffff0|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@53
+@6|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|0+0#e000002&| +0#0000000&@60
+@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
+@4|d+0#af5f00255&|e|f| +0#0000000&|s+0#ffffff16#ff404010|t|r|i|n|g|(+0#e000e06#ffffff0|)|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&@50
+@6|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|"+0#e000002&@1| +0#0000000&@59
+@57|3|7|,|5| @9|3|2|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_special_method_definitions_03.dump b/runtime/syntax/testdir/dumps/vim9_ex_special_method_definitions_03.dump
new file mode 100644
index 0000000..84a201c
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim9_ex_special_method_definitions_03.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@5|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|"+0#e000002&@1| +0#0000000&@59
+@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
+@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
+@75
+@2|d+0#af5f00255&|e|f| +0#0000000&|n+0#00e0e07&|e|w|y|e|t|a|n|o|t|h|e|r|(+0#e000e06&|)| +0#0000000&@53
+@4>d+0#af5f00255&|e|f| +0#0000000&|n+0#ffffff16#ff404010|e|w|N|e|s|t|e|d|(+0#e000e06#ffffff0|)| +0#0000000&@55
+@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
+@4|d+0#af5f00255&|e|f| +0#0000000&|e+0#ffffff16#ff404010|m|p|t|y|(+0#e000e06#ffffff0|)|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&@53
+@6|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#e000002&|r|u|e| +0#0000000&@57
+@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
+@4|d+0#af5f00255&|e|f| +0#0000000&|l+0#ffffff16#ff404010|e|n|(+0#e000e06#ffffff0|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@53
+@6|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|0+0#e000002&| +0#0000000&@60
+@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
+@4|d+0#af5f00255&|e|f| +0#0000000&|s+0#ffffff16#ff404010|t|r|i|n|g|(+0#e000e06#ffffff0|)|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&@50
+@6|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|"+0#e000002&@1| +0#0000000&@59
+@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
+@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
+@75
+@2|d+0#af5f00255&|e|f| +0#0000000&|e+0#00e0e07&|m|p|t|y|(+0#e000e06&|)|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&@55
+@57|5@1|,|5| @9|5|2|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_special_method_definitions_04.dump b/runtime/syntax/testdir/dumps/vim9_ex_special_method_definitions_04.dump
new file mode 100644
index 0000000..5528045
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim9_ex_special_method_definitions_04.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@1|d+0#af5f00255&|e|f| +0#0000000&|e+0#00e0e07&|m|p|t|y|(+0#e000e06&|)|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&@55
+@4|d+0#af5f00255&|e|f| +0#0000000&|n+0#ffffff16#ff404010|e|w|N|e|s|t|e|d|(+0#e000e06#ffffff0|)| +0#0000000&@55
+@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
+@4|d+0#af5f00255&|e|f| +0#0000000&|e+0#ffffff16#ff404010|m|p|t|y|(+0#e000e06#ffffff0|)|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&@53
+@6|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#e000002&|r|u|e| +0#0000000&@57
+@4>e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
+@4|d+0#af5f00255&|e|f| +0#0000000&|l+0#ffffff16#ff404010|e|n|(+0#e000e06#ffffff0|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@53
+@6|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|0+0#e000002&| +0#0000000&@60
+@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
+@4|d+0#af5f00255&|e|f| +0#0000000&|s+0#ffffff16#ff404010|t|r|i|n|g|(+0#e000e06#ffffff0|)|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&@50
+@6|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|"+0#e000002&@1| +0#0000000&@59
+@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
+@4|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#e000002&|r|u|e| +0#0000000&@59
+@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
+@75
+@2|d+0#af5f00255&|e|f| +0#0000000&|l+0#00e0e07&|e|n|(+0#e000e06&|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@55
+@4|d+0#af5f00255&|e|f| +0#0000000&|n+0#ffffff16#ff404010|e|w|N|e|s|t|e|d|(+0#e000e06#ffffff0|)| +0#0000000&@55
+@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
+@4|d+0#af5f00255&|e|f| +0#0000000&|e+0#ffffff16#ff404010|m|p|t|y|(+0#e000e06#ffffff0|)|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&@53
+@57|7|3|,|5| @9|7|1|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_special_method_definitions_05.dump b/runtime/syntax/testdir/dumps/vim9_ex_special_method_definitions_05.dump
new file mode 100644
index 0000000..0e5727f
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim9_ex_special_method_definitions_05.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|e+0#ffffff16#ff404010|m|p|t|y|(+0#e000e06#ffffff0|)|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&@53
+@8|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#e000002&|r|u|e| +0#0000000&@55
+@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
+@4|d+0#af5f00255&|e|f| +0#0000000&|l+0#ffffff16#ff404010|e|n|(+0#e000e06#ffffff0|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@53
+@8|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|0+0#e000002&| +0#0000000&@58
+@4>e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
+@4|d+0#af5f00255&|e|f| +0#0000000&|s+0#ffffff16#ff404010|t|r|i|n|g|(+0#e000e06#ffffff0|)|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&@50
+@8|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|"+0#e000002&@1| +0#0000000&@57
+@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
+@4|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|0+0#e000002&| +0#0000000&@62
+@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
+@75
+@2|d+0#af5f00255&|e|f| +0#0000000&|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|)|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&@52
+@4|d+0#af5f00255&|e|f| +0#0000000&|n+0#ffffff16#ff404010|e|w|N|e|s|t|e|d|(+0#e000e06#ffffff0|)| +0#0000000&@55
+@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
+@4|d+0#af5f00255&|e|f| +0#0000000&|e+0#ffffff16#ff404010|m|p|t|y|(+0#e000e06#ffffff0|)|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&@53
+@8|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#e000002&|r|u|e| +0#0000000&@55
+@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
+@4|d+0#af5f00255&|e|f| +0#0000000&|l+0#ffffff16#ff404010|e|n|(+0#e000e06#ffffff0|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@53
+@57|9|1|,|5| @9|9|0|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_special_method_definitions_06.dump b/runtime/syntax/testdir/dumps/vim9_ex_special_method_definitions_06.dump
new file mode 100644
index 0000000..479163b
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim9_ex_special_method_definitions_06.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|l+0#ffffff16#ff404010|e|n|(+0#e000e06#ffffff0|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@53
+@8|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|0+0#e000002&| +0#0000000&@58
+@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
+@4|d+0#af5f00255&|e|f| +0#0000000&|s+0#ffffff16#ff404010|t|r|i|n|g|(+0#e000e06#ffffff0|)|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&@50
+@8|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|"+0#e000002&@1| +0#0000000&@57
+@4>e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
+@4|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|"+0#e000002&@1| +0#0000000&@61
+@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
+|e+0#af5f00255&|n|d|c|l|a|s@1| +0#0000000&@66
+@75
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|1|0|9|,|5| @8|B|o|t|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_type_00.dump b/runtime/syntax/testdir/dumps/vim9_ex_type_00.dump
new file mode 100644
index 0000000..5c896c1
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim9_ex_type_00.dump
@@ -0,0 +1,20 @@
+>v+0#af5f00255#ffffff0|i|m|9|s|c|r|i|p|t| +0#0000000&@64
+|#+0#0000e05&| |V|i|m| |:|t|y|p|e| |c|o|m@1|a|n|d| +0#0000000&@55
+@75
+|t+0#af5f00255&|y|p|e| +0#0000000&|F|o@1| |=+0#af5f00255&| +0#0000000&|s+0#00e0003&|t|r|i|n|g| +0#0000000&@57
+|t+0#af5f00255&|y|p|e| +0#0000000&|B|a|r| |=+0#af5f00255&| +0#0000000&|l+0#00e0003&|i|s|t|<|s|t|r|i|n|g|>| +0#0000000&@51
+|t+0#af5f00255&|y|p|e| +0#0000000&|B|a|z| |=+0#af5f00255&| +0#0000000&|F|o@1| @60
+@75
+|e+0#af5f00255&|x|p|o|r|t| +0#0000000&|t+0#af5f00255&|y|p|e| +0#0000000&|Q|u|x| |=+0#af5f00255&| +0#0000000&|B|a|z| @53
+@75
+|t+0#af5f00255&|y|p|e| +0#0000000&|f+0#ffffff16#ff404010|o@1| +0#0000000#ffffff0|=+0#af5f00255&| +0#0000000&|s|t|r|i|n|g| @57
+@75
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|1|,|1| @10|A|l@1|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_21.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_21.dump
index 41608a3..a705933 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_21.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_21.dump
@@ -10,11 +10,11 @@
|:|p+0#af5f00255&|t|p|r|e|v|i|o|u|s| +0#0000000&@63
|:|p+0#af5f00255&|t|r|e|w|i|n|d| +0#0000000&@65
|:|p+0#af5f00255&|t|s|e|l|e|c|t| +0#0000000&@65
-|:|p+0#af5f00255&|u|b|l|i|c| +0#0000000&@67
|:|p+0#af5f00255&|u|t| +0#0000000&@70
|:|p+0#af5f00255&|w|d| +0#0000000&@70
|:|p+0#af5f00255&|y|3| +0#0000000&@70
|:|p+0#af5f00255&|y|t|h|o|n|3| +0#0000000&@66
|:|p+0#af5f00255&|y|3|d|o| +0#0000000&@68
|:|p+0#af5f00255&|y|3|f|i|l|e| +0#0000000&@66
+|:|p+0#af5f00255&|y|t|h|o|n| +0#0000000&@67
@57|3|7|9|,|1| @8|3|1|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_22.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_22.dump
index b9bd8ba..e56dedc 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_22.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_22.dump
@@ -1,10 +1,9 @@
-|:+0&#ffffff0|p+0#af5f00255&|y|3|f|i|l|e| +0#0000000&@66
-|:|p+0#af5f00255&|y|t|h|o|n| +0#0000000&@67
+|:+0&#ffffff0|p+0#af5f00255&|y|t|h|o|n| +0#0000000&@67
|:|p+0#af5f00255&|y|d|o| +0#0000000&@69
|:|p+0#af5f00255&|y|f|i|l|e| +0#0000000&@67
|:|p+0#af5f00255&|y|x| +0#0000000&@70
->:|p+0#af5f00255&|y|t|h|o|n|x| +0#0000000&@66
-|:|p+0#af5f00255&|y|x|d|o| +0#0000000&@68
+|:|p+0#af5f00255&|y|t|h|o|n|x| +0#0000000&@66
+>:|p+0#af5f00255&|y|x|d|o| +0#0000000&@68
|:|p+0#af5f00255&|y|x|f|i|l|e| +0#0000000&@66
|:|q+0#af5f00255&|u|i|t| +0#0000000&@69
|:|q+0#af5f00255&|u|i|t|a|l@1| +0#0000000&@66
@@ -17,4 +16,5 @@
|:|r+0#af5f00255&|e|d|r|a|w|s|t|a|t|u|s| +0#0000000&@61
|:|r+0#af5f00255&|e|d|r|a|w|t|a|b|l|i|n|e| +0#0000000&@60
|:|r+0#af5f00255&|e|g|i|s|t|e|r|s| +0#0000000&@64
+|:|r+0#af5f00255&|e|s|i|z|e| +0#0000000&@67
@57|3|9|7|,|1| @8|3|2|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_23.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_23.dump
index 0efa896..16dac52 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_23.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_23.dump
@@ -1,10 +1,9 @@
-|:+0&#ffffff0|r+0#af5f00255&|e|g|i|s|t|e|r|s| +0#0000000&@64
-|:|r+0#af5f00255&|e|s|i|z|e| +0#0000000&@67
+|:+0&#ffffff0|r+0#af5f00255&|e|s|i|z|e| +0#0000000&@67
|:|r+0#af5f00255&|e|t|a|b| +0#0000000&@68
|:|r+0#af5f00255&|e|t|u|r|n| +0#0000000&@67
|:|r+0#af5f00255&|e|w|i|n|d| +0#0000000&@67
->:|r+0#af5f00255&|i|g|h|t| +0#0000000&@68
-|:|r+0#af5f00255&|i|g|h|t|b|e|l|o|w| +0#0000000&@63
+|:|r+0#af5f00255&|i|g|h|t| +0#0000000&@68
+>:|r+0#af5f00255&|i|g|h|t|b|e|l|o|w| +0#0000000&@63
|:|r+0#af5f00255&|u|b|y| +0#0000000&@69
|:|r+0#af5f00255&|u|b|y|d|o| +0#0000000&@67
|:|r+0#af5f00255&|u|b|y|f|i|l|e| +0#0000000&@65
@@ -17,4 +16,5 @@
|:|s+0#af5f00255&|a|r|g|u|m|e|n|t| +0#0000000&@64
|:|s+0#af5f00255&|a|l@1| +0#0000000&@69
|:|s+0#af5f00255&|a|v|e|a|s| +0#0000000&@67
+|:|s+0#af5f00255&|b|u|f@1|e|r| +0#0000000&@66
@57|4|1|5|,|1| @8|3|4|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_24.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_24.dump
index d066eba..9d9d989 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_24.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_24.dump
@@ -1,10 +1,9 @@
-|:+0&#ffffff0|s+0#af5f00255&|a|v|e|a|s| +0#0000000&@67
-|:|s+0#af5f00255&|b|u|f@1|e|r| +0#0000000&@66
+|:+0&#ffffff0|s+0#af5f00255&|b|u|f@1|e|r| +0#0000000&@66
|:|s+0#af5f00255&|b|N|e|x|t| +0#0000000&@67
|:|s+0#af5f00255&|b|a|l@1| +0#0000000&@68
|:|s+0#af5f00255&|b|f|i|r|s|t| +0#0000000&@66
->:|s+0#af5f00255&|b|l|a|s|t| +0#0000000&@67
-|:|s+0#af5f00255&|b|m|o|d|i|f|i|e|d| +0#0000000&@63
+|:|s+0#af5f00255&|b|l|a|s|t| +0#0000000&@67
+>:|s+0#af5f00255&|b|m|o|d|i|f|i|e|d| +0#0000000&@63
|:|s+0#af5f00255&|b|n|e|x|t| +0#0000000&@67
|:|s+0#af5f00255&|b|p|r|e|v|i|o|u|s| +0#0000000&@63
|:|s+0#af5f00255&|b|r|e|w|i|n|d| +0#0000000&@65
@@ -17,4 +16,5 @@
|:|s+0#af5f00255&|e|t|g|l|o|b|a|l| +0#0000000&@64
|:|s+0#af5f00255&|e|t|l|o|c|a|l| +0#0000000&@65
|:|s+0#af5f00255&|f|i|n|d| +0#0000000&@68
+|:|s+0#af5f00255&|f|i|r|s|t| +0#0000000&@67
@57|4|3@1|,|1| @8|3|5|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_25.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_25.dump
index 3875533..58ada76 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_25.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_25.dump
@@ -1,10 +1,9 @@
-|:+0&#ffffff0|s+0#af5f00255&|f|i|n|d| +0#0000000&@68
-|:|s+0#af5f00255&|f|i|r|s|t| +0#0000000&@67
+|:+0&#ffffff0|s+0#af5f00255&|f|i|r|s|t| +0#0000000&@67
|:|s+0#af5f00255&|h|e|l@1| +0#0000000&@68
|:|s+0#af5f00255&|i|m|a|l|t| +0#0000000&@67
|:|s+0#af5f00255&|i|g|n| +0#0000000&@69
->:|s+0#af5f00255&|i|l|e|n|t| +0#0000000&@67
-|:|s+0#af5f00255&|l|e@1|p| +0#0000000&@68
+|:|s+0#af5f00255&|i|l|e|n|t| +0#0000000&@67
+>:|s+0#af5f00255&|l|e@1|p| +0#0000000&@68
|:|s+0#af5f00255&|l|e@1|p|!| +0#0000000&@67
|:|s+0#af5f00255&|l|a|s|t| +0#0000000&@68
|:|s+0#af5f00255&|m|a|g|i|c| +0#0000000&@67
@@ -17,4 +16,5 @@
|:|s+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@65
|:|s+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@64
|:|s+0#af5f00255&|o|r|t| +0#0000000&@69
+|:|s+0#af5f00255&|o|u|r|c|e| +0#0000000&@67
@57|4|5|1|,|1| @8|3|7|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_26.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_26.dump
index 0d8a2d2..6dd0574 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_26.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_26.dump
@@ -1,10 +1,9 @@
-|:+0&#ffffff0|s+0#af5f00255&|o|r|t| +0#0000000&@69
-|:|s+0#af5f00255&|o|u|r|c|e| +0#0000000&@67
+|:+0&#ffffff0|s+0#af5f00255&|o|u|r|c|e| +0#0000000&@67
|:|s+0#af5f00255&|p|e|l@1|d|u|m|p| +0#0000000&@64
|:|s+0#af5f00255&|p|e|l@1|g|o@1|d| +0#0000000&@64
|:|s+0#af5f00255&|p|e|l@1|i|n|f|o| +0#0000000&@64
->:|s+0#af5f00255&|p|e|l@1|r|a|r|e| +0#0000000&@64
-|:|s+0#af5f00255&|p|e|l@1|r|e|p|a|l@1| +0#0000000&@62
+|:|s+0#af5f00255&|p|e|l@1|r|a|r|e| +0#0000000&@64
+>:|s+0#af5f00255&|p|e|l@1|r|e|p|a|l@1| +0#0000000&@62
|:|s+0#af5f00255&|p|e|l@1|u|n|d|o| +0#0000000&@64
|:|s+0#af5f00255&|p|e|l@1|w|r|o|n|g| +0#0000000&@63
|:|s+0#af5f00255&|p|l|i|t| +0#0000000&@68
@@ -15,6 +14,7 @@
|:|s+0#af5f00255&|t|a|r|t|i|n|s|e|r|t| +0#0000000&@62
|:|s+0#af5f00255&|t|a|r|t|g|r|e|p|l|a|c|e| +0#0000000&@60
|:|s+0#af5f00255&|t|a|r|t|r|e|p|l|a|c|e| +0#0000000&@61
-|:|s+0#af5f00255&|t|a|t|i|c| +0#0000000&@67
|:|s+0#af5f00255&|t|o|p|i|n|s|e|r|t| +0#0000000&@63
+|:|s+0#af5f00255&|t|j|u|m|p| +0#0000000&@67
+|:|s+0#af5f00255&|t|s|e|l|e|c|t| +0#0000000&@65
@57|4|6|9|,|1| @8|3|8|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_27.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_27.dump
index 448d363..460f468 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_27.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_27.dump
@@ -1,11 +1,9 @@
-|:+0&#ffffff0|s+0#af5f00255&|t|o|p|i|n|s|e|r|t| +0#0000000&@63
-|:|s+0#af5f00255&|t|j|u|m|p| +0#0000000&@67
-|:|s+0#af5f00255&|t|s|e|l|e|c|t| +0#0000000&@65
+|:+0&#ffffff0|s+0#af5f00255&|t|s|e|l|e|c|t| +0#0000000&@65
|:|s+0#af5f00255&|u|n|h|i|d|e| +0#0000000&@66
|:|s+0#af5f00255&|u|n|m|a|p| +0#0000000&@67
->:|s+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@66
+|:|s+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@66
|:|s+0#af5f00255&|u|s|p|e|n|d| +0#0000000&@66
-|:|s+0#af5f00255&|v|i|e|w| +0#0000000&@68
+>:|s+0#af5f00255&|v|i|e|w| +0#0000000&@68
|:|s+0#af5f00255&|w|a|p|n|a|m|e| +0#0000000&@65
|:|s+0#af5f00255&|y|n|t|a|x| +0#0000000&@67
|:|s+0#af5f00255&|y|n|t|i|m|e| +0#0000000&@66
@@ -17,4 +15,6 @@
|:|t+0#af5f00255&|a|b|d|o| +0#0000000&@68
|:|t+0#af5f00255&|a|b|e|d|i|t| +0#0000000&@66
|:|t+0#af5f00255&|a|b|f|i|n|d| +0#0000000&@66
+|:|t+0#af5f00255&|a|b|f|i|r|s|t| +0#0000000&@65
+|:|t+0#af5f00255&|a|b|l|a|s|t| +0#0000000&@66
@57|4|8|7|,|1| @8|4|0|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_28.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_28.dump
index add5257..5fcb49f 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_28.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_28.dump
@@ -1,11 +1,9 @@
-|:+0&#ffffff0|t+0#af5f00255&|a|b|f|i|n|d| +0#0000000&@66
-|:|t+0#af5f00255&|a|b|f|i|r|s|t| +0#0000000&@65
-|:|t+0#af5f00255&|a|b|l|a|s|t| +0#0000000&@66
+|:+0&#ffffff0|t+0#af5f00255&|a|b|l|a|s|t| +0#0000000&@66
|:|t+0#af5f00255&|a|b|m|o|v|e| +0#0000000&@66
|:|t+0#af5f00255&|a|b|n|e|w| +0#0000000&@67
->:|t+0#af5f00255&|a|b|n|e|x|t| +0#0000000&@66
+|:|t+0#af5f00255&|a|b|n|e|x|t| +0#0000000&@66
|:|t+0#af5f00255&|a|b|o|n|l|y| +0#0000000&@66
-|:|t+0#af5f00255&|a|b|p|r|e|v|i|o|u|s| +0#0000000&@62
+>:|t+0#af5f00255&|a|b|p|r|e|v|i|o|u|s| +0#0000000&@62
|:|t+0#af5f00255&|a|b|r|e|w|i|n|d| +0#0000000&@64
|:|t+0#af5f00255&|a|b|s| +0#0000000&@69
|:|t+0#af5f00255&|a|b| +0#0000000&@70
@@ -17,4 +15,6 @@
|:|t+0#af5f00255&|c|l|d|o| +0#0000000&@68
|:|t+0#af5f00255&|c|l|f|i|l|e| +0#0000000&@66
|:|t+0#af5f00255&|e|a|r|o|f@1| +0#0000000&@66
+|:|t+0#af5f00255&|e|r|m|i|n|a|l| +0#0000000&@65
+|:|t+0#af5f00255&|f|i|r|s|t| +0#0000000&@67
@57|5|0|5|,|1| @8|4|1|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_29.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_29.dump
index d5e29e4..6bbc741 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_29.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_29.dump
@@ -1,11 +1,9 @@
-|:+0&#ffffff0|t+0#af5f00255&|e|a|r|o|f@1| +0#0000000&@66
-|:|t+0#af5f00255&|e|r|m|i|n|a|l| +0#0000000&@65
-|:|t+0#af5f00255&|f|i|r|s|t| +0#0000000&@67
+|:+0&#ffffff0|t+0#af5f00255&|f|i|r|s|t| +0#0000000&@67
|:|t+0#af5f00255&|h|r|o|w| +0#0000000&@68
|:|t+0#af5f00255&|j|u|m|p| +0#0000000&@68
->:|t+0#af5f00255&|l|a|s|t| +0#0000000&@68
+|:|t+0#af5f00255&|l|a|s|t| +0#0000000&@68
|:|t+0#af5f00255&|l|m|e|n|u| +0#0000000&@67
-|:|t+0#af5f00255&|l|n|o|r|e|m|e|n|u| +0#0000000&@63
+>:|t+0#af5f00255&|l|n|o|r|e|m|e|n|u| +0#0000000&@63
|:|t+0#af5f00255&|l|u|n|m|e|n|u| +0#0000000&@65
|:|t+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@64
|:|t+0#af5f00255&|m|a|p| +0#0000000&@69
@@ -17,4 +15,6 @@
|:|t+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@66
|:|t+0#af5f00255&|r|y| +0#0000000&@70
|:|t+0#af5f00255&|s|e|l|e|c|t| +0#0000000&@66
+|:|t+0#af5f00255&|u|n|m|a|p| +0#0000000&@67
+|:|t+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@66
@57|5|2|3|,|1| @8|4|3|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_30.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_30.dump
index 89aa266..28f00fd 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_30.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_30.dump
@@ -1,11 +1,9 @@
-|:+0&#ffffff0|t+0#af5f00255&|s|e|l|e|c|t| +0#0000000&@66
-|:|t+0#af5f00255&|u|n|m|a|p| +0#0000000&@67
-|:|t+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@66
+|:+0&#ffffff0|t+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@66
|:|u+0#af5f00255&|n|d|o| +0#0000000&@69
|:|u+0#af5f00255&|n|d|o|j|o|i|n| +0#0000000&@65
->:|u+0#af5f00255&|n|d|o|l|i|s|t| +0#0000000&@65
+|:|u+0#af5f00255&|n|d|o|l|i|s|t| +0#0000000&@65
|:|u+0#af5f00255&|n|a|b@1|r|e|v|i|a|t|e| +0#0000000&@61
-|:|u+0#af5f00255&|n|a|b@1|r|e|v|i|a|t|e| +0#0000000&@61
+>:|u+0#af5f00255&|n|a|b@1|r|e|v|i|a|t|e| +0#0000000&@61
|:|u+0#af5f00255&|n|h|i|d|e| +0#0000000&@67
|:|u+0#af5f00255&|n|l|e|t| +0#0000000&@68
|:|u+0#af5f00255&|n|l|o|c|k|v|a|r| +0#0000000&@64
@@ -17,4 +15,6 @@
|:|v+0#af5f00255&|e|r|s|i|o|n| +0#0000000&@66
|:|v+0#af5f00255&|e|r|b|o|s|e| +0#0000000&@66
|:|v+0#af5f00255&|e|r|t|i|c|a|l| +0#0000000&@65
+|:|v+0#af5f00255&|i|m|9|c|m|d| +0#0000000&@66
+|:|v+0#af5f00255&|i|m|g|r|e|p| +0#0000000&@66
@57|5|4|1|,|1| @8|4@1|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_31.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_31.dump
index 6aab2b3..5abc5ab 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_31.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_31.dump
@@ -1,11 +1,9 @@
-|:+0&#ffffff0|v+0#af5f00255&|e|r|t|i|c|a|l| +0#0000000&@65
-|:|v+0#af5f00255&|i|m|9|c|m|d| +0#0000000&@66
-|:|v+0#af5f00255&|i|m|g|r|e|p| +0#0000000&@66
+|:+0&#ffffff0|v+0#af5f00255&|i|m|g|r|e|p| +0#0000000&@66
|:|v+0#af5f00255&|i|m|g|r|e|p|a|d@1| +0#0000000&@63
|:|v+0#af5f00255&|i|s|u|a|l| +0#0000000&@67
->:|v+0#af5f00255&|i|u|s|a|g|e| +0#0000000&@66
+|:|v+0#af5f00255&|i|u|s|a|g|e| +0#0000000&@66
|:|v+0#af5f00255&|i|e|w| +0#0000000&@69
-|:|v+0#af5f00255&|m|a|p| +0#0000000&@69
+>:|v+0#af5f00255&|m|a|p| +0#0000000&@69
|:|v+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@64
|:|v+0#af5f00255&|m|e|n|u| +0#0000000&@68
|:|v+0#af5f00255&|n|e|w| +0#0000000&@69
@@ -17,4 +15,6 @@
|:|w+0#af5f00255&|i|n|d|o| +0#0000000&@68
|:|w+0#af5f00255&|r|i|t|e| +0#0000000&@68
|:|w+0#af5f00255&|N|e|x|t| +0#0000000&@68
+|:|w+0#af5f00255&|a|l@1| +0#0000000&@69
+|:|w+0#af5f00255&|h|i|l|e| +0#0000000&@68
@57|5@1|9|,|1| @8|4|6|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_32.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_32.dump
index 9e2f45d..8ec5f2f 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_32.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_32.dump
@@ -1,11 +1,9 @@
-|:+0&#ffffff0|w+0#af5f00255&|N|e|x|t| +0#0000000&@68
-|:|w+0#af5f00255&|a|l@1| +0#0000000&@69
-|:|w+0#af5f00255&|h|i|l|e| +0#0000000&@68
+|:+0&#ffffff0|w+0#af5f00255&|h|i|l|e| +0#0000000&@68
|:|w+0#af5f00255&|i|n|s|i|z|e| +0#0000000&@66
|:|w+0#af5f00255&|i|n|c|m|d| +0#0000000&@67
->:|w+0#af5f00255&|i|n|p|o|s| +0#0000000&@67
+|:|w+0#af5f00255&|i|n|p|o|s| +0#0000000&@67
|:|w+0#af5f00255&|n|e|x|t| +0#0000000&@68
-|:|w+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@64
+>:|w+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@64
|:|w+0#af5f00255&|q| +0#0000000&@71
|:|w+0#af5f00255&|q|a|l@1| +0#0000000&@68
|:|w+0#af5f00255&|u|n|d|o| +0#0000000&@68
@@ -17,4 +15,6 @@
|:|x+0#af5f00255&|m|e|n|u| +0#0000000&@68
|:|x+0#af5f00255&|r|e|s|t|o|r|e| +0#0000000&@65
|:|x+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@65
+|:|x+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@64
+|:|x+0#af5f00255&|u|n|m|a|p| +0#0000000&@67
@57|5|7@1|,|1| @8|4|7|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_33.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_33.dump
index 6b423d0..0bef65d 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_33.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_33.dump
@@ -1,11 +1,9 @@
-|:+0&#ffffff0|x+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@65
-|:|x+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@64
-|:|x+0#af5f00255&|u|n|m|a|p| +0#0000000&@67
+|:+0&#ffffff0|x+0#af5f00255&|u|n|m|a|p| +0#0000000&@67
|:|x+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@66
|:|y+0#af5f00255&|a|n|k| +0#0000000&@69
->:|z+0#af5f00255&| +0#0000000&@72
+|:|z+0#af5f00255&| +0#0000000&@72
@75
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)||+0#0000000&|h+0#af5f00255&|e|l|p| +0#0000000&@59
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)||+0#0000000&|h+0#af5f00255&|e|l|p| +0#0000000&@59
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|e|l|p| +0#0000000&@57
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&|||h+0#af5f00255&|e|l|p| +0#0000000&@58
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)||+0#0000000&| |h+0#af5f00255&|e|l|p| +0#0000000&@58
@@ -17,4 +15,6 @@
@4|t|e|x|t| @66
|.+0#af5f00255&| +0#0000000&@73
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|b@1|r|e|v|i|a|t|e| +0#0000000&@51
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|b|c|l|e|a|r| +0#0000000&@54
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|b|o|v|e|l|e|f|t| +0#0000000&@52
@57|5|9|5|,|1| @8|4|9|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_34.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_34.dump
index ced1b52..8848783 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_34.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_34.dump
@@ -1,11 +1,9 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|b@1|r|e|v|i|a|t|e| +0#0000000&@51
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|b|c|l|e|a|r| +0#0000000&@54
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|b|o|v|e|l|e|f|t| +0#0000000&@52
+|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|b|o|v|e|l|e|f|t| +0#0000000&@52
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|l@1| +0#0000000&@58
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|m|e|n|u| +0#0000000&@56
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@52
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@52
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|r|g|s| +0#0000000&@57
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|r|g|a|d@1| +0#0000000&@55
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|r|g|a|d@1| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|r|g|d|e|d|u|p|e| +0#0000000&@52
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|r|g|d|e|l|e|t|e| +0#0000000&@52
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|r|g|e|d|i|t| +0#0000000&@54
@@ -17,4 +15,6 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|u|t|o|c|m|d| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|u|g|r|o|u|p| +0#0000000&|F|o@1| ||| |a+0#af5f00255&|u|g|r|o|u|p| +0#0000000&|E|N|D| @36
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@54
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|u|f@1|e|r| +0#0000000&@55
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|N|e|x|t| +0#0000000&@56
@57|6|1|3|,|1| @8|5|0|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_35.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_35.dump
index c8fa150..62dac2f 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_35.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_35.dump
@@ -1,11 +1,9 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@54
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|u|f@1|e|r| +0#0000000&@55
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|N|e|x|t| +0#0000000&@56
+|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|N|e|x|t| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|a|l@1| +0#0000000&@57
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|a|d@1| +0#0000000&@57
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|a|l|t| +0#0000000&@57
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|a|l|t| +0#0000000&@57
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|d|e|l|e|t|e| +0#0000000&@54
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|e|h|a|v|e| +0#0000000&|m+0#af5f00255&|s|w|i|n| +0#0000000&@49
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|e|h|a|v|e| +0#0000000&|m+0#af5f00255&|s|w|i|n| +0#0000000&@49
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|e|h|a|v|e| +0#0000000&|x+0#af5f00255&|t|e|r|m| +0#0000000&@49
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|e|l|o|w|r|i|g|h|t| +0#0000000&@51
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|f|i|r|s|t| +0#0000000&@55
@@ -17,4 +15,6 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|r|e|a|k| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|r|e|a|k|a|d@1| +0#0000000&@53
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|r|e|a|k|d|e|l| +0#0000000&@53
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|r|e|a|k|l|i|s|t| +0#0000000&@52
@57|6|3|1|,|1| @8|5|2|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_36.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_36.dump
index 2b0c603..462a76e 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_36.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_36.dump
@@ -1,11 +1,9 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|r|e|a|k|a|d@1| +0#0000000&@53
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|r|e|a|k|d|e|l| +0#0000000&@53
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|r|e|a|k|l|i|s|t| +0#0000000&@52
+|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|r|e|a|k|l|i|s|t| +0#0000000&@52
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|r|o|w|s|e| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|u|f|d|o| +0#0000000&@56
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|u|f@1|e|r|s| +0#0000000&@54
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|u|f@1|e|r|s| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|u|n|l|o|a|d| +0#0000000&@54
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|w|i|p|e|o|u|t| +0#0000000&@53
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|w|i|p|e|o|u|t| +0#0000000&@53
|"+0#0000e05&| |F+0#0000001#ffff4012|I|X|M|E| +0#0000000#ffffff0@67
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|h|a|n|g|e| +0#0000000&@55
@4|t|e|x|t| @66
@@ -17,4 +15,6 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|a|b|o|v|e| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|a|d@1|b|u|f@1|e|r| +0#0000000&@51
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|a|d@1|e|x|p|r| +0#0000000&@53
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|a|d@1|f|i|l|e| +0#0000000&@53
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|a|f|t|e|r| +0#0000000&@55
@57|6|4|9|,|1| @8|5|3|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_37.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_37.dump
index 83f1290..4ff1d33 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_37.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_37.dump
@@ -1,11 +1,9 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|a|d@1|e|x|p|r| +0#0000000&@53
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|a|d@1|f|i|l|e| +0#0000000&@53
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|a|f|t|e|r| +0#0000000&@55
+|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|a|f|t|e|r| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|a|l@1| +0#0000000&@57
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|a|t|c|h| +0#0000000&@56
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|b|e|f|o|r|e| +0#0000000&@54
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|b|e|f|o|r|e| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|b|e|l|o|w| +0#0000000&@55
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|b|o|t@1|o|m| +0#0000000&@54
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|b|o|t@1|o|m| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|b|u|f@1|e|r| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&@1| +0#0000000&@59
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&@1|l|o|s|e| +0#0000000&@55
@@ -17,4 +15,6 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|f|i|l|e| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|f|i|r|s|t| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|g|e|t|b|u|f@1|e|r| +0#0000000&@51
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|g|e|t|e|x|p|r| +0#0000000&@53
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|g|e|t|f|i|l|e| +0#0000000&@53
@57|6@1|7|,|1| @8|5@1|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_38.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_38.dump
index 0fba9d4..cd1c7c7 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_38.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_38.dump
@@ -1,11 +1,9 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|g|e|t|b|u|f@1|e|r| +0#0000000&@51
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|g|e|t|e|x|p|r| +0#0000000&@53
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|g|e|t|f|i|l|e| +0#0000000&@53
+|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|g|e|t|f|i|l|e| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|h|a|n|g|e|s| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|h|d|i|r| +0#0000000&@56
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|h|e|c|k|p|a|t|h| +0#0000000&@52
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|h|e|c|k|p|a|t|h| +0#0000000&@52
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|h|e|c|k|t|i|m|e| +0#0000000&@52
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|h|i|s|t|o|r|y| +0#0000000&@53
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|h|i|s|t|o|r|y| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|l|a|s|t| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|l|e|a|r|j|u|m|p|s| +0#0000000&@51
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|l|i|s|t| +0#0000000&@56
@@ -17,4 +15,6 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|n|e|w|e|r| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|n|f|i|l|e| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@53
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|n|o|r|e|a|b@1|r|e|v| +0#0000000&@50
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@52
@57|6|8|5|,|1| @8|5|6|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_39.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_39.dump
index d494887..aa727eb 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_39.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_39.dump
@@ -1,11 +1,9 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@53
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|n|o|r|e|a|b@1|r|e|v| +0#0000000&@50
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@52
+|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@52
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|p|y| +0#0000000&@57
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|l|d|e|r| +0#0000000&@55
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|l|o|r|s|c|h|e|m|e| +0#0000000&@50
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|l|o|r|s|c|h|e|m|e| +0#0000000&@50
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&@54
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|m|c|l|e|a|r| +0#0000000&@53
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|m|c|l|e|a|r| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|m|p|i|l|e|r| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|n|t|i|n|u|e| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|n|f|i|r|m| +0#0000000&@54
@@ -17,4 +15,6 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|s|c|o|p|e| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|s|t|a|g| +0#0000000&@56
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|u|n|m|a|p| +0#0000000&@55
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|u|n|a|b@1|r|e|v| +0#0000000&@52
@57|7|0|3|,|1| @8|5|8|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_40.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_40.dump
index 9179c26..552dcc3 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_40.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_40.dump
@@ -1,11 +1,9 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|s|t|a|g| +0#0000000&@56
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|u|n|m|a|p| +0#0000000&@55
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|u|n|a|b@1|r|e|v| +0#0000000&@52
+|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|u|n|a|b@1|r|e|v| +0#0000000&@52
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|w|i|n|d|o|w| +0#0000000&@54
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|l|e|t|e| +0#0000000&@55
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|l|e|t|e| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|b|u|g| +0#0000000&@56
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|b|u|g@1|r|e@1|d|y| +0#0000000&@50
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|b|u|g@1|r|e@1|d|y| +0#0000000&@50
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|f| +0#0000000&@58
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|f|c|o|m|p|i|l|e| +0#0000000&@51
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|f|e|r| +0#0000000&@56
@@ -17,4 +15,6 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|f@1|o|f@1| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|f@1|p|a|t|c|h| +0#0000000&@52
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|f@1|p|u|t| +0#0000000&@54
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|f@1|s|p|l|i|t| +0#0000000&@52
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000&@53
@57|7|2|1|,|1| @8|5|9|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_41.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_41.dump
index 7394fba..4ec8cc2 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_41.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_41.dump
@@ -1,11 +1,9 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|f@1|p|u|t| +0#0000000&@54
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|f@1|s|p|l|i|t| +0#0000000&@52
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000&@53
+|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|g|r|a|p|h|s| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|s|p|l|a|y| +0#0000000&@54
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|s|a|s@1|e|m|b|l|e| +0#0000000&@50
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|s|a|s@1|e|m|b|l|e| +0#0000000&@50
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|j|u|m|p| +0#0000000&@56
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|l| +0#0000000&@59
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|l| +0#0000000&@59
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|l|i|s|t| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|o|a|u|t|o|c|m|d| +0#0000000&@52
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|o|a|u|t|o|a|l@1| +0#0000000&@52
@@ -17,4 +15,6 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|a|r|l|i|e|r| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&@57
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o|c|o|n|s|o|l|e| +0#0000000&@50
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o|e|r@1| +0#0000000&@54
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o|h|l| +0#0000000&@55
@57|7|3|9|,|1| @8|6|1|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_42.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_42.dump
index 6e0b583..6fd1238 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_42.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_42.dump
@@ -1,11 +1,9 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o|c|o|n|s|o|l|e| +0#0000000&@50
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o|e|r@1| +0#0000000&@54
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o|h|l| +0#0000000&@55
+|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o|h|l| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o|m|s|g| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o|n| +0#0000000&@56
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o|w|i|n|d|o|w| +0#0000000&@51
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o|w|i|n|d|o|w| +0#0000000&@51
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|l|s|e| +0#0000000&@57
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|l|s|e|i|f| +0#0000000&@55
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|l|s|e|i|f| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|m|e|n|u| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|d@1|e|f| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|d|i|f| +0#0000000&@56
@@ -17,4 +15,6 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|v|a|l| +0#0000000&@57
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|x| +0#0000000&@59
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|x|e|c|u|t|e| +0#0000000&@54
-@57|7|5|7|,|1| @8|6|2|%|
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|x|i|t| +0#0000000&@57
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|x|u|s|a|g|e| +0#0000000&@54
+@57|7|5|7|,|1| @8|6|3|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_43.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_43.dump
index e8b1090..1d4a521 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_43.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_43.dump
@@ -1,11 +1,9 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|x|e|c|u|t|e| +0#0000000&@54
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|x|i|t| +0#0000000&@57
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|x|u|s|a|g|e| +0#0000000&@54
+|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|x|u|s|a|g|e| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|l|e| +0#0000000&@57
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|l|e|s| +0#0000000&@56
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|l|e|t|y|p|e| +0#0000000&@53
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|l|e|t|y|p|e| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|l|t|e|r| +0#0000000&@55
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|n|d| +0#0000000&@57
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|n|d| +0#0000000&@57
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|n|a|l| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|n|a|l@1|y| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|n|i|s|h| +0#0000000&@55
@@ -17,4 +15,6 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|l|d@1|o|c|l|o|s|e|d| +0#0000000&@49
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|l|d|o|p|e|n| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|r| +0#0000000&@58
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|u|n|c|t|i|o|n| +0#0000000&@53
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |g+0#af5f00255&|l|o|b|a|l|/|.+0#0000000&@2|/+0#af5f00255&| +0#0000000&@50
@57|7@1|5|,|1| @8|6|4|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_44.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_44.dump
index bac0a9c..76cf436 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_44.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_44.dump
@@ -1,11 +1,9 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|r| +0#0000000&@58
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|u|n|c|t|i|o|n| +0#0000000&@53
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |g+0#af5f00255&|l|o|b|a|l|/|.+0#0000000&@2|/+0#af5f00255&| +0#0000000&@50
+|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |g+0#af5f00255&|l|o|b|a|l|/|.+0#0000000&@2|/+0#af5f00255&| +0#0000000&@50
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |g+0#af5f00255&|o|t|o| +0#0000000&@57
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |g+0#af5f00255&|r|e|p| +0#0000000&@57
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |g+0#af5f00255&|r|e|p|a|d@1| +0#0000000&@54
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |g+0#af5f00255&|r|e|p|a|d@1| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |g+0#af5f00255&|u|i| +0#0000000&@58
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |g+0#af5f00255&|v|i|m| +0#0000000&@57
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |g+0#af5f00255&|v|i|m| +0#0000000&@57
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|a|r|d|c|o|p|y| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|e|l|p| +0#0000000&@57
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|e|l|p|c|l|o|s|e| +0#0000000&@52
@@ -17,4 +15,6 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|i|s|t|o|r|y| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|o|r|i|z|o|n|t|a|l| +0#0000000&@51
|"+0#0000e05&| |F+0#0000001#ffff4012|I|X|M|E| +0#0000000#ffffff0@67
-@57|7|9|3|,|1| @8|6|5|%|
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i|n|s|e|r|t| @55
+@4|t|e|x|t| @66
+@57|7|9|3|,|1| @8|6@1|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_45.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_45.dump
index 6d71599..4948dd4 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_45.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_45.dump
@@ -1,11 +1,9 @@
-|"+0#0000e05#ffffff0| |F+0#0000001#ffff4012|I|X|M|E| +0#0000000#ffffff0@67
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i|n|s|e|r|t| @55
-@4|t|e|x|t| @66
+| +0&#ffffff0@3|t|e|x|t| @66
|.+0#af5f00255&| +0#0000000&@73
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|a|b@1|r|e|v| +0#0000000&@54
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|a|b|c|l|e|a|r| +0#0000000&@53
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|a|b|c|l|e|a|r| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|f| +0#0000000&@59
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|j|u|m|p| +0#0000000&@56
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|j|u|m|p| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|l|i|s|t| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|m|a|p| +0#0000000&@57
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@52
@@ -17,4 +15,6 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|n|t|r|o| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|s|e|a|r|c|h| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|s|p|l|i|t| +0#0000000&@55
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|u|n|m|a|p| +0#0000000&@55
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|u|n|a|b@1|r|e|v| +0#0000000&@52
@57|8|1@1|,|1| @8|6|7|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_46.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_46.dump
index d5fe918..c43c922 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_46.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_46.dump
@@ -1,11 +1,9 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|s|p|l|i|t| +0#0000000&@55
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|u|n|m|a|p| +0#0000000&@55
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|u|n|a|b@1|r|e|v| +0#0000000&@52
+|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|u|n|a|b@1|r|e|v| +0#0000000&@52
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |j+0#af5f00255&|o|i|n| +0#0000000&@57
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |j+0#af5f00255&|u|m|p|s| +0#0000000&@56
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |j+0#af5f00255&|u|m|p|s| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&| +0#0000000&@60
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&|e@1|p|a|l|t| +0#0000000&@54
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&|e@1|p|a|l|t| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&|e@1|p|m|a|r|k|s| +0#0000000&@52
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&|e@1|p|j|u|m|p|s| +0#0000000&@52
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&|e@1|p@1|a|t@1|e|r|n|s| +0#0000000&@49
@@ -17,4 +15,6 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|d@1|b|u|f@1|e|r| +0#0000000&@51
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|d@1|f|i|l|e| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|f|t|e|r| +0#0000000&@55
-@57|8|2|9|,|1| @8|6|8|%|
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|s|t| +0#0000000&@57
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|n|g|u|a|g|e| +0#0000000&@53
+@57|8|2|9|,|1| @8|6|9|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_47.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_47.dump
index b66d1b7..ee7887b 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_47.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_47.dump
@@ -1,11 +1,9 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|f|t|e|r| +0#0000000&@55
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|s|t| +0#0000000&@57
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|n|g|u|a|g|e| +0#0000000&@53
+|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|n|g|u|a|g|e| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|t|e|r| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|b|e|f|o|r|e| +0#0000000&@54
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|b|e|l|o|w| +0#0000000&@55
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|b|e|l|o|w| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|b|o|t@1|o|m| +0#0000000&@54
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|b|u|f@1|e|r| +0#0000000&@54
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|b|u|f@1|e|r| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|c|d| +0#0000000&@58
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|c|h|d|i|r| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|c|l|o|s|e| +0#0000000&@55
@@ -17,4 +15,6 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|e|g|a|c|y| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|e|t| +0#0000000&@58
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|e|x|p|r| +0#0000000&@56
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|f|i|l|e| +0#0000000&@56
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|f|i|r|s|t| +0#0000000&@55
@57|8|4|7|,|1| @8|7|0|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_48.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_48.dump
index 08980e1..bffe0a8 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_48.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_48.dump
@@ -1,11 +1,9 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|e|x|p|r| +0#0000000&@56
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|f|i|l|e| +0#0000000&@56
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|f|i|r|s|t| +0#0000000&@55
+|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|f|i|r|s|t| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|g|e|t|b|u|f@1|e|r| +0#0000000&@51
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|g|e|t|e|x|p|r| +0#0000000&@53
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|g|e|t|f|i|l|e| +0#0000000&@53
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|g|e|t|f|i|l|e| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|g|r|e|p| +0#0000000&@56
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|g|r|e|p|a|d@1| +0#0000000&@53
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|g|r|e|p|a|d@1| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|h|e|l|p|g|r|e|p| +0#0000000&@52
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|h|i|s|t|o|r|y| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&@1| +0#0000000&@59
@@ -17,4 +15,6 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|n|e|x|t| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|n|e|w|e|r| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|n|f|i|l|e| +0#0000000&@55
-@57|8|6|5|,|1| @8|7|1|%|
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@53
+|"+0#0000e05&| |c|a|l@1| |F|o@1|(|)| ||| |l|o|a|d|k|e|y|m|a|p| |"| |d|i|s|a|b|l|e|d| |-| |r|u|n|s| |u|n|t|i|l| |E|O|F| +0#0000000&@21
+@57|8|6|5|,|1| @8|7|2|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_49.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_49.dump
index c2052da..fd025a6 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_49.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_49.dump
@@ -1,11 +1,9 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|n|f|i|l|e| +0#0000000&@55
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@53
-|"+0#0000e05&| |c|a|l@1| |F|o@1|(|)| ||| |l|o|a|d|k|e|y|m|a|p| |"| |d|i|s|a|b|l|e|d| |-| |r|u|n|s| |u|n|t|i|l| |E|O|F| +0#0000000&@21
+|"+0#0000e05#ffffff0| |c|a|l@1| |F|o@1|(|)| ||| |l|o|a|d|k|e|y|m|a|p| |"| |d|i|s|a|b|l|e|d| |-| |r|u|n|s| |u|n|t|i|l| |E|O|F| +0#0000000&@21
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|o|a|d|v|i|e|w| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|o|c|k|m|a|r|k|s| +0#0000000&@52
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|o|c|k|v|a|r| +0#0000000&@54
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|o|c|k|v|a|r| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|o|l|d|e|r| +0#0000000&@55
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|o|p|e|n| +0#0000000&@56
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|o|p|e|n| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@52
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|p|f|i|l|e| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@54
@@ -17,4 +15,6 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|u|a|f|i|l|e| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|v|i|m|g|r|e|p| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|v|i|m|g|r|e|p|a|d@1| +0#0000000&@50
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|w|i|n|d|o|w| +0#0000000&@54
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|o|v|e| +0#0000000&@57
@57|8@1|3|,|1| @8|7|3|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_50.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_50.dump
index 529c91d..7546808 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_50.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_50.dump
@@ -1,11 +1,9 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|v|i|m|g|r|e|p|a|d@1| +0#0000000&@50
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|w|i|n|d|o|w| +0#0000000&@54
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|o|v|e| +0#0000000&@57
+|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|o|v|e| +0#0000000&@57
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|r|k| +0#0000000&@57
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|k|e| +0#0000000&@57
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|p| +0#0000000&@58
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|p| +0#0000000&@58
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|p|c|l|e|a|r| +0#0000000&@53
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|r|k|s| +0#0000000&@56
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|r|k|s| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|t|c|h| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|e|n|u| +0#0000000&@57
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|e|n|u|t|r|a|n|s|l|a|t|e| +0#0000000&@48
@@ -17,4 +15,6 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|k|v|i|e|w| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|o|d|e| +0#0000000&@57
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|z|s|c|h|e|m|e| +0#0000000&@53
-@57|9|0|1|,|1| @8|7|4|%|
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|z|f|i|l|e| +0#0000000&@55
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|b|c|l|o|s|e| +0#0000000&@54
+@57|9|0|1|,|1| @8|7|5|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_51.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_51.dump
index 6b12992..947baeb 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_51.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_51.dump
@@ -1,11 +1,9 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|z|s|c|h|e|m|e| +0#0000000&@53
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|z|f|i|l|e| +0#0000000&@55
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|b|c|l|o|s|e| +0#0000000&@54
+|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|b|c|l|o|s|e| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|b|k|e|y| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|b|s|t|a|r|t| +0#0000000&@54
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|e|x|t| +0#0000000&@57
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|e|x|t| +0#0000000&@57
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|e|w| +0#0000000&@58
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|m|a|p| +0#0000000&@57
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|m|a|p| +0#0000000&@57
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@52
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|m|e|n|u| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&@1|o|r|e|m|a|p| +0#0000000&@53
@@ -17,4 +15,6 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|o|r|e|m|e|n|u| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|o|r|m|a|l| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|o|s|w|a|p|f|i|l|e| +0#0000000&@51
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|u|m|b|e|r| +0#0000000&@55
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|u|n|m|a|p| +0#0000000&@55
@57|9|1|9|,|1| @8|7|6|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_52.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_52.dump
index 1a03dbb..e6d3890 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_52.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_52.dump
@@ -1,11 +1,9 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|o|s|w|a|p|f|i|l|e| +0#0000000&@51
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|u|m|b|e|r| +0#0000000&@55
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|u|n|m|a|p| +0#0000000&@55
+|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|u|n|m|a|p| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|l|d|f|i|l|e|s| +0#0000000&@53
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|p|e|n| +0#0000000&@57
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|p|e|n| +0#0000000&@57
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|m|a|p| +0#0000000&@57
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@52
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@52
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|m|e|n|u| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|n|l|y| +0#0000000&@57
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@53
@@ -17,4 +15,6 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|a|c|k|a|d@1| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|a|c|k|l|o|a|d|a|l@1| +0#0000000&@50
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|c|l|o|s|e| +0#0000000&@55
-@57|9|3|7|,|1| @8|7@1|%|
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|e|d|i|t| +0#0000000&@56
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|e|r|l| +0#0000000&@57
+@57|9|3|7|,|1| @8|7|8|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_53.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_53.dump
index 76f4d20..c6e1721 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_53.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_53.dump
@@ -1,11 +1,9 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|c|l|o|s|e| +0#0000000&@55
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|e|d|i|t| +0#0000000&@56
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|e|r|l| +0#0000000&@57
+|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|e|r|l| +0#0000000&@57
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|r|i|n|t| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|r|o|f|d|e|l| +0#0000000&@54
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|r|o|f|i|l|e| +0#0000000&@54
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|r|o|f|i|l|e| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|r|o|m|p|t|f|i|n|d| +0#0000000&@51
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|r|o|m|p|t|r|e|p|l| +0#0000000&@51
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|r|o|m|p|t|r|e|p|l| +0#0000000&@51
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|e|r|l|d|o| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|o|p| +0#0000000&@58
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|o|p|u|p| +0#0000000&@56
@@ -17,4 +15,6 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|N|e|x|t| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|f|i|r|s|t| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|j|u|m|p| +0#0000000&@55
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|l|a|s|t| +0#0000000&@55
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|n|e|x|t| +0#0000000&@55
@57|9|5@1|,|1| @8|7|9|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_54.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_54.dump
index b511392..91c0bac 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_54.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_54.dump
@@ -1,12 +1,9 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|j|u|m|p| +0#0000000&@55
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|l|a|s|t| +0#0000000&@55
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|n|e|x|t| +0#0000000&@55
+|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|n|e|x|t| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|p|r|e|v|i|o|u|s| +0#0000000&@51
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|r|e|w|i|n|d| +0#0000000&@53
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|s|e|l|e|c|t| +0#0000000&@53
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|u|b|l|i|c| +0#0000000&@55
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|s|e|l|e|c|t| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|u|t| +0#0000000&@58
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|w|d| +0#0000000&@58
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|w|d| +0#0000000&@58
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|3| +0#0000000&@58
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|t|h|o|n|3| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|3|d|o| +0#0000000&@56
@@ -17,4 +14,7 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|x| +0#0000000&@58
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|t|h|o|n|x| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|x|d|o| +0#0000000&@56
-@57|9|7|3|,|1| @8|8|0|%|
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|x|f|i|l|e| +0#0000000&@54
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |q+0#af5f00255&|u|i|t| +0#0000000&@57
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |q+0#af5f00255&|u|i|t|a|l@1| +0#0000000&@54
+@57|9|7|3|,|1| @8|8|1|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_55.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_55.dump
index 1c4f533..600f7d0 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_55.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_55.dump
@@ -1,12 +1,9 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|x|d|o| +0#0000000&@56
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|x|f|i|l|e| +0#0000000&@54
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |q+0#af5f00255&|u|i|t| +0#0000000&@57
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |q+0#af5f00255&|u|i|t|a|l@1| +0#0000000&@54
+|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |q+0#af5f00255&|u|i|t|a|l@1| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |q+0#af5f00255&|a|l@1| +0#0000000&@57
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|a|d| +0#0000000&@57
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|a|d| +0#0000000&@57
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|c|o|v|e|r| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|d|o| +0#0000000&@57
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|d|i|r| +0#0000000&@56
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|d|i|r| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|d|r|a|w| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|d|r|a|w|s|t|a|t|u|s| +0#0000000&@49
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|d|r|a|w|t|a|b|l|i|n|e| +0#0000000&@48
@@ -17,4 +14,7 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|w|i|n|d| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|i|g|h|t| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|i|g|h|t|b|e|l|o|w| +0#0000000&@51
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|u|b|y| +0#0000000&@57
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|u|b|y|d|o| +0#0000000&@55
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|u|b|y|f|i|l|e| +0#0000000&@53
@57|9@1|1|,|1| @8|8|2|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_56.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_56.dump
index 7401899..05727d5 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_56.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_56.dump
@@ -1,12 +1,9 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|i|g|h|t|b|e|l|o|w| +0#0000000&@51
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|u|b|y| +0#0000000&@57
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|u|b|y|d|o| +0#0000000&@55
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|u|b|y|f|i|l|e| +0#0000000&@53
+|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|u|b|y|f|i|l|e| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|u|n|d|o| +0#0000000&@56
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|u|n|t|i|m|e| +0#0000000&@54
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|u|n|t|i|m|e| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|v|i|m|i|n|f|o| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|u|b|s|t|i|t|u|t|e| +0#0000000&@51
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|N|e|x|t| +0#0000000&@56
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|N|e|x|t| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|a|n|d|b|o|x| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|a|r|g|u|m|e|n|t| +0#0000000&@52
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|a|l@1| +0#0000000&@57
@@ -17,4 +14,7 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|f|i|r|s|t| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|l|a|s|t| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|m|o|d|i|f|i|e|d| +0#0000000&@51
-@57|1|0@1|9|,|1| @7|8|3|%|
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|n|e|x|t| +0#0000000&@55
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|p|r|e|v|i|o|u|s| +0#0000000&@51
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|r|e|w|i|n|d| +0#0000000&@53
+@57|1|0@1|9|,|1| @7|8|4|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_57.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_57.dump
index a59f4a1..b8dc2bc 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_57.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_57.dump
@@ -1,12 +1,9 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|m|o|d|i|f|i|e|d| +0#0000000&@51
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|n|e|x|t| +0#0000000&@55
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|p|r|e|v|i|o|u|s| +0#0000000&@51
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|r|e|w|i|n|d| +0#0000000&@53
+|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|r|e|w|i|n|d| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|c|r|i|p|t|n|a|m|e|s| +0#0000000&@50
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|c|r|i|p|t|e|n|c|o|d|i|n|g| +0#0000000&@47
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|c|r|i|p|t|e|n|c|o|d|i|n|g| +0#0000000&@47
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|c|r|i|p|t|v|e|r|s|i|o|n| +0#0000000&@48
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|c|s|c|o|p|e| +0#0000000&@54
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|e|t| +0#0000000&@58
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|e|t| +0#0000000&@58
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|e|t|f|i|l|e|t|y|p|e| +0#0000000&@50
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|e|t|g|l|o|b|a|l| +0#0000000&@52
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|e|t|l|o|c|a|l| +0#0000000&@53
@@ -17,4 +14,7 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|i|g|n| +0#0000000&@57
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|i|l|e|n|t| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|l|e@1|p| +0#0000000&@56
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|l|e@1|p|!| +0#0000000&@55
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|l|a|s|t| +0#0000000&@56
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|m|a|g|i|c| +0#0000000&@55
@57|1|0|2|7|,|1| @7|8|5|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_58.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_58.dump
index 67e9545..d240226 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_58.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_58.dump
@@ -1,12 +1,9 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|l|e@1|p| +0#0000000&@56
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|l|e@1|p|!| +0#0000000&@55
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|l|a|s|t| +0#0000000&@56
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|m|a|g|i|c| +0#0000000&@55
+|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|m|a|g|i|c| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|m|a|p| +0#0000000&@57
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@52
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@52
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|m|e|n|u| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|m|i|l|e| +0#0000000&@56
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|n|e|x|t| +0#0000000&@56
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|n|e|x|t| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|n|o|m|a|g|i|c| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@52
@@ -17,4 +14,7 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|e|l@1|i|n|f|o| +0#0000000&@52
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|e|l@1|r|a|r|e| +0#0000000&@52
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|e|l@1|r|e|p|a|l@1| +0#0000000&@50
-@57|1|0|4|5|,|1| @7|8|6|%|
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|e|l@1|u|n|d|o| +0#0000000&@52
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|e|l@1|w|r|o|n|g| +0#0000000&@51
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|l|i|t| +0#0000000&@56
+@57|1|0|4|5|,|1| @7|8|7|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_59.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_59.dump
index 1299076..67dfffc 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_59.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_59.dump
@@ -1,15 +1,11 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|e|l@1|r|e|p|a|l@1| +0#0000000&@50
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|e|l@1|u|n|d|o| +0#0000000&@52
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|e|l@1|w|r|o|n|g| +0#0000000&@51
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|l|i|t| +0#0000000&@56
+|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|l|i|t| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@52
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@54
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|o|p| +0#0000000&@57
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|a|g| +0#0000000&@57
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|a|r|t|i|n|s|e|r|t| +0#0000000&@50
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|a|r|t|i|n|s|e|r|t| +0#0000000&@50
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|a|r|t|g|r|e|p|l|a|c|e| +0#0000000&@48
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|a|r|t|r|e|p|l|a|c|e| +0#0000000&@49
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|a|t|i|c| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|o|p|i|n|s|e|r|t| +0#0000000&@51
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|j|u|m|p| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|s|e|l|e|c|t| +0#0000000&@53
@@ -17,4 +13,8 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|u|n|m|a|p| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|u|s|p|e|n|d| +0#0000000&@54
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|v|i|e|w| +0#0000000&@56
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|w|a|p|n|a|m|e| +0#0000000&@53
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|y|n|t|a|x| +0#0000000&@55
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|y|n|t|i|m|e| +0#0000000&@54
@57|1|0|6|3|,|1| @7|8@1|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_60.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_60.dump
index 0818013..86ce0b8 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_60.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_60.dump
@@ -1,13 +1,9 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|u|s|p|e|n|d| +0#0000000&@54
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|v|i|e|w| +0#0000000&@56
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|w|a|p|n|a|m|e| +0#0000000&@53
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|y|n|t|a|x| +0#0000000&@55
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|y|n|t|i|m|e| +0#0000000&@54
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|y|n|c|b|i|n|d| +0#0000000&@53
+|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|y|n|t|i|m|e| +0#0000000&@54
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|y|n|c|b|i|n|d| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&| +0#0000000&@60
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|N|e|x|t| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|N|e|x|t| +0#0000000&@54
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|c|l|o|s|e| +0#0000000&@53
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|c|l|o|s|e| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|d|o| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|e|d|i|t| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|f|i|n|d| +0#0000000&@54
@@ -17,4 +13,8 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|n|e|w| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|n|e|x|t| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|o|n|l|y| +0#0000000&@54
-@57|1|0|8|1|,|1| @7|8|9|%|
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|p|r|e|v|i|o|u|s| +0#0000000&@50
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|r|e|w|i|n|d| +0#0000000&@52
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|s| +0#0000000&@57
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b| +0#0000000&@58
+@57|1|0|8|1|,|1| @7|9|0|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_61.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_61.dump
index 62ca86d..695a37a 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_61.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_61.dump
@@ -1,13 +1,9 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|o|n|l|y| +0#0000000&@54
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|p|r|e|v|i|o|u|s| +0#0000000&@50
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|r|e|w|i|n|d| +0#0000000&@52
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|s| +0#0000000&@57
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b| +0#0000000&@58
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|g| +0#0000000&@58
+|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b| +0#0000000&@58
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|g| +0#0000000&@58
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|g|s| +0#0000000&@57
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|c|d| +0#0000000&@58
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|c|h|d|i|r| +0#0000000&@55
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|c|l| +0#0000000&@58
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|c|l| +0#0000000&@58
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|c|l|d|o| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|c|l|f|i|l|e| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|e|a|r|o|f@1| +0#0000000&@54
@@ -17,4 +13,8 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|j|u|m|p| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|l|a|s|t| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|l|m|e|n|u| +0#0000000&@55
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|l|n|o|r|e|m|e|n|u| +0#0000000&@51
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|l|u|n|m|e|n|u| +0#0000000&@53
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@52
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|m|a|p| +0#0000000&@57
@57|1|0|9@1|,|1| @7|9|1|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_62.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_62.dump
index c81c02c..9ebe8d8 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_62.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_62.dump
@@ -1,13 +1,9 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|l|m|e|n|u| +0#0000000&@55
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|l|n|o|r|e|m|e|n|u| +0#0000000&@51
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|l|u|n|m|e|n|u| +0#0000000&@53
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@52
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|m|a|p| +0#0000000&@57
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|m|e|n|u| +0#0000000&@56
+|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|m|a|p| +0#0000000&@57
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|m|e|n|u| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|n|e|x|t| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|o|p|l|e|f|t| +0#0000000&@54
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@52
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@52
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|r|y| +0#0000000&@58
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|s|e|l|e|c|t| +0#0000000&@54
@@ -17,4 +13,8 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|d|o|j|o|i|n| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|d|o|l|i|s|t| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|a|b@1|r|e|v|i|a|t|e| +0#0000000&@49
-@57|1@2|7|,|1| @7|9|2|%|
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|a|b@1|r|e|v|i|a|t|e| +0#0000000&@49
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|h|i|d|e| +0#0000000&@55
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|l|e|t| +0#0000000&@56
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|l|o|c|k|v|a|r| +0#0000000&@52
+@57|1@2|7|,|1| @7|9|3|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_63.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_63.dump
index 249c967..dca5d01 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_63.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_63.dump
@@ -1,13 +1,9 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|a|b@1|r|e|v|i|a|t|e| +0#0000000&@49
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|a|b@1|r|e|v|i|a|t|e| +0#0000000&@49
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|h|i|d|e| +0#0000000&@55
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|l|e|t| +0#0000000&@56
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|l|o|c|k|v|a|r| +0#0000000&@52
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|m|a|p| +0#0000000&@56
+|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|l|o|c|k|v|a|r| +0#0000000&@52
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|m|a|p| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|m|e|n|u| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|s|i|l|e|n|t| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|p|d|a|t|e| +0#0000000&@55
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|g|l|o|b|a|l|/|.+0#0000000&@2|/+0#af5f00255&| +0#0000000&@49
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|g|l|o|b|a|l|/|.+0#0000000&@2|/+0#af5f00255&| +0#0000000&@49
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|e|r|s|i|o|n| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|e|r|b|o|s|e| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|e|r|t|i|c|a|l| +0#0000000&@53
@@ -17,4 +13,8 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|s|u|a|l| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|u|s|a|g|e| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|e|w| +0#0000000&@57
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|m|a|p| +0#0000000&@57
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@52
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|m|e|n|u| +0#0000000&@56
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|n|e|w| +0#0000000&@57
@57|1@1|3|5|,|1| @7|9|4|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_64.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_64.dump
index 11a5bc3..c9ebc87 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_64.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_64.dump
@@ -1,13 +1,9 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|e|w| +0#0000000&@57
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|m|a|p| +0#0000000&@57
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@52
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|m|e|n|u| +0#0000000&@56
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|n|e|w| +0#0000000&@57
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@53
+|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|n|e|w| +0#0000000&@57
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@52
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|s|p|l|i|t| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|u|n|m|a|p| +0#0000000&@55
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@54
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@54
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|i|n|d|o| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|r|i|t|e| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|N|e|x|t| +0#0000000&@56
@@ -17,4 +13,8 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|i|n|c|m|d| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|i|n|p|o|s| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|n|e|x|t| +0#0000000&@56
-@57|1@1|5|3|,|1| @7|9|5|%|
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@52
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|q| +0#0000000&@59
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|q|a|l@1| +0#0000000&@56
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|u|n|d|o| +0#0000000&@56
+@57|1@1|5|3|,|1| @7|9|6|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_65.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_65.dump
index 9dfb7f5..5739359 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_65.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_65.dump
@@ -1,13 +1,9 @@
-|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|n|e|x|t| +0#0000000&@56
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@52
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|q| +0#0000000&@59
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|q|a|l@1| +0#0000000&@56
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|u|n|d|o| +0#0000000&@56
->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|v|i|m|i|n|f|o| +0#0000000&@53
+|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|u|n|d|o| +0#0000000&@56
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|v|i|m|i|n|f|o| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|i|t| +0#0000000&@58
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|a|l@1| +0#0000000&@57
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@52
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|m|a|p| +0#0000000&@57
+>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|m|a|p| +0#0000000&@57
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|m|e|n|u| +0#0000000&@56
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|r|e|s|t|o|r|e| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@53
@@ -17,4 +13,8 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |y+0#af5f00255&|a|n|k| +0#0000000&@57
|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |z+0#af5f00255&| +0#0000000&@60
@75
+@75
+|"+0#0000e05&| |V|i|m|9|-|s|c|r|i|p|t| |o|n|l|y| +0#0000000&@56
+@75
+|:|a+0#af5f00255&|b|s|t|r|a|c|t| +0#0000000&@65
@57|1@1|7|1|,|1| @7|9|7|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_66.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_66.dump
index 6dd455c..c3f3007 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_66.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_66.dump
@@ -1,20 +1,20 @@
-| +0&#ffffff0@74
-@75
-|"+0#0000e05&| |V|i|m|9|-|s|c|r|i|p|t| |o|n|l|y| +0#0000000&@56
-@75
-|:|a+0#af5f00255&|b|s|t|r|a|c|t| +0#0000000&@65
->:|c+0#af5f00255&|l|a|s@1| +0#0000000&@68
-|:|d+0#af5f00255&|e|f|c|o|m|p|i|l|e| +0#0000000&@63
-|:|d+0#af5f00255&|i|s|a|s@1|e|m|b|l|e| +0#0000000&@62
-|:|e+0#af5f00255&|n|d|c|l|a|s@1| +0#0000000&@65
-|:|e+0#af5f00255&|n|d|i|n|t|e|r|f|a|c|e| +0#0000000&@61
-|:|e+0#af5f00255&|n|d|e|n|u|m| +0#0000000&@66
-|:|e+0#af5f00255&|n|u|m| +0#0000000&@69
-|:|e+0#af5f00255&|x|p|o|r|t| +0#0000000&@67
+|:+0&#ffffff0|a+0#af5f00255&|b|s|t|r|a|c|t| +0#0000000&@65
+|:|c|l|a|s@1| @68
+|:|e|n|d|c|l|a|s@1| @65
+|:|e|n|d|i|n|t|e|r|f|a|c|e| @61
+|:|e|n|d|e|n|u|m| @66
+>:|e|n|u|m| @69
+|:|e|x|p|o|r|t| @67
|:|f+0#af5f00255&|i|n|a|l| +0#0000000&@68
-|:|i+0#af5f00255&|n|t|e|r|f|a|c|e| +0#0000000&@64
-|:|p+0#af5f00255&|u|b|l|i|c| +0#0000000&@67
-|:|s+0#af5f00255&|t|a|t|i|c| +0#0000000&@67
-|:|t+0#af5f00255&|y|p|e| +0#0000000&@69
+|:|i|n|t|e|r|f|a|c|e| @64
+|:|p|u|b|l|i|c| @67
+|:|s|t|a|t|i|c| @67
+|:|t|y|p|e| @69
|:|v+0#af5f00255&|a|r| +0#0000000&@70
-@57|1@1|8|9|,|1| @7|9|8|%|
+@75
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|b|s|t|r|a|c|t| +0#0000000&@58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c|l|a|s@1| @61
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e|n|d|c|l|a|s@1| @58
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e|n|d|e|n|u|m| @59
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e|n|d|i|n|t|e|r|f|a|c|e| @54
+@57|1@1|8|9|,|1| @7|9@1|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_67.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_67.dump
index e276a66..0195b72 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_67.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_commands_67.dump
@@ -1,20 +1,20 @@
-|:+0&#ffffff0|v+0#af5f00255&|a|r| +0#0000000&@70
-@75
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|b|s|t|r|a|c|t| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|l|a|s@1| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|f|c|o|m|p|i|l|e| +0#0000000&@56
->F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|s|a|s@1|e|m|b|l|e| +0#0000000&@55
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|d|c|l|a|s@1| +0#0000000&@58
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|d|e|n|u|m| +0#0000000&@59
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|d|i|n|t|e|r|f|a|c|e| +0#0000000&@54
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|u|m| +0#0000000&@62
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|x|p|o|r|t| +0#0000000&@60
+|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |e|n|d|i|n|t|e|r|f|a|c|e| @54
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e|n|u|m| @62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e|x|p|o|r|t| @60
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|n|a|l| +0#0000000&@61
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|n|t|e|r|f|a|c|e| +0#0000000&@57
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|u|b|l|i|c| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|a|t|i|c| +0#0000000&@60
-|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|y|p|e| +0#0000000&@62
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i|n|t|e|r|f|a|c|e| @57
+>F|o@1|(+0#e000e06&|)| +0#0000000&||| |p|u|b|l|i|c| @60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s|t|a|t|i|c| @60
+|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t|y|p|e| @62
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|a|r| +0#0000000&@63
@75
|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
| +0#0000000&@56|1|2|0|7|,|1| @7|B|o|t|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_68.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_68.dump
deleted file mode 100644
index 7e1be8b..0000000
--- a/runtime/syntax/testdir/dumps/vim_ex_commands_68.dump
+++ /dev/null
@@ -1,20 +0,0 @@
-|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|a|r| +0#0000000&@63
-> @74
-|~+0#4040ff13&| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-| +0#0000000&@56|1|2@1|1|,|0|-|1| @5|B|o|t|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_def_nested_00.dump b/runtime/syntax/testdir/dumps/vim_ex_def_nested_00.dump
index 5180ea3..88cfca8 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_def_nested_00.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_def_nested_00.dump
@@ -4,7 +4,7 @@
|c+0#af5f00255&|l|a|s@1| +0#0000000&|T|e|s|t| @64
@4|c+0#af5f00255&|o|n|s|t| +0#0000000&|n+0#00e0e07&|a|m|e|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&@52
@75
-@4|d+0#af5f00255&|e|f| +0#0000000&|n|e|w|(+0#e000e06&|)| +0#0000000&@61
+@4|d+0#af5f00255&|e|f| +0#0000000&|n+0#00e0e07&|e|w|(+0#e000e06&|)| +0#0000000&@61
@8|d+0#af5f00255&|e|f| +0#0000000&|N|a|m|e|(+0#e000e06&|)|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&@48
@12|f+0#af5f00255&|u|n|c|t|i|o|n| +0#0000000&|G|i|v|e|N|a|m|e|(+0#e000e06&|)| +0#0000000&@43
@16|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|"+0#e000002&|a|n|y|"| +0#0000000&@46
@@ -13,7 +13,7 @@
@12|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|G|i|v|e|N|a|m|e|(+0#e000e06&|)| +0#0000000&@45
@8|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@60
@75
-@8|t+0#af5f00255&|h|i|s|.|n+0#0000000&|a|m|e| |=+0#af5f00255&| +0#0000000&|N|a|m|e|(+0#e000e06&|)| +0#0000000&@48
+@8|t+0#00e0e07&|h|i|s|.+0#af5f00255&|n+0#0000000&|a|m|e| |=+0#af5f00255&| +0#0000000&|N|a|m|e|(+0#e000e06&|)| +0#0000000&@48
@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
|e+0#af5f00255&|n|d|c|l|a|s@1| +0#0000000&@66
@75
diff --git a/runtime/syntax/testdir/dumps/vim_ex_def_nested_01.dump b/runtime/syntax/testdir/dumps/vim_ex_def_nested_01.dump
index a3d1c36..f8bbad4 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_def_nested_01.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_def_nested_01.dump
@@ -1,10 +1,10 @@
| +0&#ffffff0@7|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@60
@75
-@8|t+0#af5f00255&|h|i|s|.|n+0#0000000&|a|m|e| |=+0#af5f00255&| +0#0000000&|N|a|m|e|(+0#e000e06&|)| +0#0000000&@48
+@8|t+0#00e0e07&|h|i|s|.+0#af5f00255&|n+0#0000000&|a|m|e| |=+0#af5f00255&| +0#0000000&|N|a|m|e|(+0#e000e06&|)| +0#0000000&@48
@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
|e+0#af5f00255&|n|d|c|l|a|s@1| +0#0000000&@66
> @74
-|e+0#af5f00255&|c|h|o| +0#0000000&|T|e|s|t|.|n|e|w|(+0#e000e06&|)| +0#0000000&@59
+|e+0#af5f00255&|c|h|o| +0#0000000&|T|e|s|t|.|n+0#00e0e07&|e|w|(+0#e000e06&|)| +0#0000000&@59
|~+0#4040ff13&| @73
|~| @73
|~| @73
diff --git a/runtime/syntax/testdir/dumps/vim_ex_def_nested_fold_00.dump b/runtime/syntax/testdir/dumps/vim_ex_def_nested_fold_00.dump
index 452fa61..122abd1 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_def_nested_fold_00.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_def_nested_fold_00.dump
@@ -9,7 +9,7 @@
|++0#0000e05#a8a8a8255| |+|-@1| |1@1| |l|i|n|e|s|:| |d|e|f| |n|e|w|(|)|-@49
| @1|e+0#af5f00255#ffffff0|n|d|c|l|a|s@1| +0#0000000&@64
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|T|e|s|t|.|n|e|w|(+0#e000e06&|)| +0#0000000&@57
+| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|T|e|s|t|.|n+0#00e0e07&|e|w|(+0#e000e06&|)| +0#0000000&@57
|~+0#4040ff13&| @73
|~| @73
|~| @73
diff --git a/runtime/syntax/testdir/dumps/vim_ex_menu_04.dump b/runtime/syntax/testdir/dumps/vim_ex_menu_04.dump
index 7bc4ebd..5c804a5 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_menu_04.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_menu_04.dump
@@ -11,7 +11,7 @@
@75
|"+0#0000e05&| |a| |m|e|n|u| |i|t|e|m| |n|a|m|e| |c|a|n@1|o|t| |s|t|a|r|t| |w|i|t|h| |'|.|'| +0#0000000&@34
@75
-|e+0#af5f00255&|x|p|o|r|t| +0#0000000&|d+0#af5f00255&|e|f| +0#0000000&|H|i|s|t|o|r|y|J|u|m|p|M|e|n|u|(+0#e000e06&|)| +0#0000000&@46
+|d+0#af5f00255&|e|f| +0#0000000&|H|i|s|t|o|r|y|J|u|m|p|M|e|n|u|(+0#e000e06&|)| +0#0000000&@53
@4|p+0#af5f00255&|o|p|u|p|.|F+0#0000000&|i|l|t|e|r|M|e|n|u|(+0#e000e06&|"+0#e000002&|J|u|m|p| |h|i|s|t|o|r|y|"|,+0#0000000&| |d+0#00e0e07&|i|r|_|h|i|s|t|,+0#0000000&| @28
@8|(+0#e000e06&|r+0#00e0e07&|e|s|,+0#0000000&| |_+0#00e0e07&|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|{+0#e000e06&| +0#0000000&@53
@12|H|i|s|t|o|r|y|J|u|m|p|(+0#e000e06&|r+0#00e0e07&|e|s|.+0#af5f00255&|t+0#00e0e07&|e|x|t|)+0#e000e06&| +0#0000000&@41
diff --git a/runtime/syntax/testdir/dumps/vim_new_00.dump b/runtime/syntax/testdir/dumps/vim_new_00.dump
index 2ff76f4..3c40ce4 100644
--- a/runtime/syntax/testdir/dumps/vim_new_00.dump
+++ b/runtime/syntax/testdir/dumps/vim_new_00.dump
@@ -2,17 +2,17 @@
@75
|#+0#0000e05&| |V|i|m| |:|n|e|w| |c|o|m@1|a|n|d| |a|n|d| |c|l|a|s@1| |c|o|n|s|t|r|u|c|t|o|r|s|.| +0#0000000&@32
|c+0#af5f00255&|l|a|s@1| +0#0000000&|T|e|s|t| @64
-@8|d+0#af5f00255&|e|f| +0#0000000&|n|e|w|(+0#e000e06&|)| +0#0000000&@57
+@8|d+0#af5f00255&|e|f| +0#0000000&|n+0#00e0e07&|e|w|(+0#e000e06&|)| +0#0000000&@57
@8|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@60
-@8|d+0#af5f00255&|e|f| +0#0000000&|n|e|w|O|t|h|e|r|(+0#e000e06&|)| +0#0000000&@52
+@8|d+0#af5f00255&|e|f| +0#0000000&|n+0#00e0e07&|e|w|O|t|h|e|r|(+0#e000e06&|)| +0#0000000&@52
@8|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@60
-@8|d+0#af5f00255&|e|f| +0#0000000&|n|e|w|y|e|t|a|n|o|t|h|e|r|(+0#e000e06&|)| +0#0000000&@47
+@8|d+0#af5f00255&|e|f| +0#0000000&|n+0#00e0e07&|e|w|y|e|t|a|n|o|t|h|e|r|(+0#e000e06&|)| +0#0000000&@47
@8|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@60
|e+0#af5f00255&|n|d|c|l|a|s@1| +0#0000000&@66
@75
-|T|e|s|t|.+0#af5f00255&|n+0#0000000&|e|w|(+0#e000e06&|)| +0#0000000&@64
-|T|e|s|t|.+0#af5f00255&|n+0#0000000&|e|w|O|t|h|e|r|(+0#e000e06&|)| +0#0000000&@59
-|T|e|s|t|.+0#af5f00255&|n+0#0000000&|e|w|y|e|t|a|n|o|t|h|e|r|(+0#e000e06&|)| +0#0000000&@54
+|T|e|s|t|.+0#af5f00255&|n+0#00e0e07&|e|w|(+0#e000e06&|)| +0#0000000&@64
+|T|e|s|t|.+0#af5f00255&|n+0#00e0e07&|e|w|O|t|h|e|r|(+0#e000e06&|)| +0#0000000&@59
+|T|e|s|t|.+0#af5f00255&|n+0#00e0e07&|e|w|y|e|t|a|n|o|t|h|e|r|(+0#e000e06&|)| +0#0000000&@54
|n+0#af5f00255&|e|w| +0#0000000&@71
|q+0#af5f00255&|u|i|t| +0#0000000&@70
|~+0#4040ff13&| @73
diff --git a/runtime/syntax/testdir/dumps/vim_object_methods_00.dump b/runtime/syntax/testdir/dumps/vim_object_methods_00.dump
index 990ff18..d9ea0cc 100644
--- a/runtime/syntax/testdir/dumps/vim_object_methods_00.dump
+++ b/runtime/syntax/testdir/dumps/vim_object_methods_00.dump
@@ -7,14 +7,14 @@
@8|p+0#af5f00255&|u|b|l|i|c| +0#0000000&|c+0#af5f00255&|o|n|s|t| +0#0000000&|a+0#00e0e07&|:+0#0000000&| |a+0#00e0003&|n|y| +0#0000000&@47
@8|p+0#af5f00255&|u|b|l|i|c| +0#0000000&|c+0#af5f00255&|o|n|s|t| +0#0000000&|b+0#00e0e07&|:+0#0000000&| |a+0#00e0003&|n|y| +0#0000000&@47
@75
-@8|d+0#af5f00255&|e|f| +0#0000000&|n|e|w|(+0#e000e06&|a+0#00e0e07&|:+0#0000000&| |a+0#00e0003&|n|y|,+0#0000000&| |b+0#00e0e07&|:+0#0000000&| |a+0#00e0003&|n|y|)+0#e000e06&| +0#0000000&@43
-@16|t+0#af5f00255&|h|i|s|.|a| +0#0000000&|=+0#af5f00255&| +0#0000000&|a+0#af5f00255&| +0#0000000&@48
-@16|t+0#af5f00255&|h|i|s|.|b| +0#0000000&|=+0#af5f00255&| +0#0000000&|b+0#af5f00255&| +0#0000000&@48
+@8|d+0#af5f00255&|e|f| +0#0000000&|n+0#00e0e07&|e|w|(+0#e000e06&|a+0#00e0e07&|:+0#0000000&| |a+0#00e0003&|n|y|,+0#0000000&| |b+0#00e0e07&|:+0#0000000&| |a+0#00e0003&|n|y|)+0#e000e06&| +0#0000000&@43
+@16|t+0#00e0e07&|h|i|s|.+0#af5f00255&|a| +0#0000000&|=+0#af5f00255&| +0#0000000&|a+0#af5f00255&| +0#0000000&@48
+@16|t+0#00e0e07&|h|i|s|.+0#af5f00255&|b| +0#0000000&|=+0#af5f00255&| +0#0000000&|b+0#af5f00255&| +0#0000000&@48
@8|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@60
@75
-@8|d+0#af5f00255&|e|f| +0#0000000&|e+0#0000001#ffff4012|m|p|t|y|(+0#e000e06#ffffff0|)|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&@49
+@8|d+0#af5f00255&|e|f| +0#0000000&|e+0#00e0e07&|m|p|t|y|(+0#e000e06&|)|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&@49
@16|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|f+0#e000002&|a|l|s|e| +0#0000000&@46
@8|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@60
-@8|d+0#af5f00255&|e|f| +0#0000000&|l+0#0000001#ffff4012|e|n|(+0#e000e06#ffffff0|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@49
+@8|d+0#af5f00255&|e|f| +0#0000000&|l+0#00e0e07&|e|n|(+0#e000e06&|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@49
@16|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|2+0#e000002&| +0#0000000&@50
@57|1|,|1| @10|T|o|p|
diff --git a/runtime/syntax/testdir/dumps/vim_object_methods_01.dump b/runtime/syntax/testdir/dumps/vim_object_methods_01.dump
index d3af3d7..7989781 100644
--- a/runtime/syntax/testdir/dumps/vim_object_methods_01.dump
+++ b/runtime/syntax/testdir/dumps/vim_object_methods_01.dump
@@ -1,11 +1,11 @@
| +0&#ffffff0@74
-@8|d+0#af5f00255&|e|f| +0#0000000&|e+0#0000001#ffff4012|m|p|t|y|(+0#e000e06#ffffff0|)|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&@49
+@8|d+0#af5f00255&|e|f| +0#0000000&|e+0#00e0e07&|m|p|t|y|(+0#e000e06&|)|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&@49
@16|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|f+0#e000002&|a|l|s|e| +0#0000000&@46
@8|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@60
-@8|d+0#af5f00255&|e|f| +0#0000000&|l+0#0000001#ffff4012|e|n|(+0#e000e06#ffffff0|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@49
+@8|d+0#af5f00255&|e|f| +0#0000000&|l+0#00e0e07&|e|n|(+0#e000e06&|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@49
@16>r+0#af5f00255&|e|t|u|r|n| +0#0000000&|2+0#e000002&| +0#0000000&@50
@8|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@60
-@8|d+0#af5f00255&|e|f| +0#0000000&|s+0#0000001#ffff4012|t|r|i|n|g|(+0#e000e06#ffffff0|)|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&@46
+@8|d+0#af5f00255&|e|f| +0#0000000&|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|)|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&@46
@16|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|p+0#00e0e07&|r|i|n|t|f|(+0#e000e06&|'+0#e000002&|(|%|s|,| |%|s|)|'|,+0#0000000&| |t+0#00e0e07&|h|i|s|.+0#af5f00255&|a+0#00e0e07&|,+0#0000000&| |t+0#00e0e07&|h|i|s|.+0#af5f00255&|b+0#00e0e07&|)+0#e000e06&| +0#0000000&@17
@8|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@60
|e+0#af5f00255&|n|d|c|l|a|s@1| +0#0000000&@66
@@ -16,5 +16,5 @@
@8|d+0#af5f00255&|e|f| +0#0000000&|N|o|O|p|(+0#e000e06&|)| +0#0000000&@56
@8|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@60
@75
-@8|d+0#af5f00255&|e|f| +0#0000000&|e+0#0000001#ffff4012|m|p|t|y|(+0#e000e06#ffffff0|)|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&@49
+@8|d+0#af5f00255&|e|f| +0#0000000&|e+0#00e0e07&|m|p|t|y|(+0#e000e06&|)|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&@49
@57|1|9|,|3|-|1|7| @6|3|5|%|
diff --git a/runtime/syntax/testdir/dumps/vim_object_methods_02.dump b/runtime/syntax/testdir/dumps/vim_object_methods_02.dump
index 0ef5583..1ca93f0 100644
--- a/runtime/syntax/testdir/dumps/vim_object_methods_02.dump
+++ b/runtime/syntax/testdir/dumps/vim_object_methods_02.dump
@@ -1,10 +1,10 @@
-| +0&#ffffff0@7|d+0#af5f00255&|e|f| +0#0000000&|e+0#0000001#ffff4012|m|p|t|y|(+0#e000e06#ffffff0|)|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&@49
+| +0&#ffffff0@7|d+0#af5f00255&|e|f| +0#0000000&|e+0#00e0e07&|m|p|t|y|(+0#e000e06&|)|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&@49
@16|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#e000002&|r|u|e| +0#0000000&@47
@8|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@60
-@8|d+0#af5f00255&|e|f| +0#0000000&|l+0#0000001#ffff4012|e|n|(+0#e000e06#ffffff0|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@49
+@8|d+0#af5f00255&|e|f| +0#0000000&|l+0#00e0e07&|e|n|(+0#e000e06&|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@49
@16|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|0+0#e000002&| +0#0000000&@50
@8>e+0#af5f00255&|n|d@1|e|f| +0#0000000&@60
-@8|d+0#af5f00255&|e|f| +0#0000000&|s+0#0000001#ffff4012|t|r|i|n|g|(+0#e000e06#ffffff0|)|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&@46
+@8|d+0#af5f00255&|e|f| +0#0000000&|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|)|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&@46
@16|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#00e0e07&|h|i|s|.+0#af5f00255&|n+0#0000000&|a|m|e| @42
@8|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@60
|e+0#af5f00255&|n|d|e|n|u|m| +0#0000000&@67
@@ -12,9 +12,9 @@
|c+0#af5f00255&|o|n|s|t| +0#0000000&|b+0#00e0e07&|1|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|m|p|t|y|(+0#e000e06&|M+0#00e0e07&|a|r|k|e|r|E|n|u|m|T|e|s|t|.+0#af5f00255&|I+0#00e0e07&|N|S|T|A|N|C|E|)+0#e000e06&| +0#0000000&@27
|c+0#af5f00255&|o|n|s|t| +0#0000000&|n+0#00e0e07&|1|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|l+0#00e0e07&|e|n|(+0#e000e06&|M+0#00e0e07&|a|r|k|e|r|E|n|u|m|T|e|s|t|.+0#af5f00255&|I+0#00e0e07&|N|S|T|A|N|C|E|)+0#e000e06&| +0#0000000&@27
|c+0#af5f00255&|o|n|s|t| +0#0000000&|s+0#00e0e07&|1|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&|=+0#af5f00255&| +0#0000000&|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|M+0#00e0e07&|a|r|k|e|r|E|n|u|m|T|e|s|t|.+0#af5f00255&|I+0#00e0e07&|N|S|T|A|N|C|E|)+0#e000e06&| +0#0000000&@24
-|e+0#af5f00255&|c|h|o| +0#0000000&|b+0#00e0e07&|1| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|M|a|r|k|e|r|E|n|u|m|T|e|s|t|.|I|N|S|T|A|N|C|E|.|e+0#0000001#ffff4012|m|p|t|y|(+0#e000e06#ffffff0|)| +0#0000000&@32
-|e+0#af5f00255&|c|h|o| +0#0000000&|n+0#00e0e07&|1| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|0+0#e000002&| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|M|a|r|k|e|r|E|n|u|m|T|e|s|t|.|I|N|S|T|A|N|C|E|.|l+0#0000001#ffff4012|e|n|(+0#e000e06#ffffff0|)| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|0+0#e000002&| +0#0000000&@24
-|e+0#af5f00255&|c|h|o| +0#0000000&|s+0#00e0e07&|1| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|'+0#e000002&|I|N|S|T|A|N|C|E|'| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|M|a|r|k|e|r|E|n|u|m|T|e|s|t|.|I|N|S|T|A|N|C|E|.|s+0#0000001#ffff4012|t|r|i|n|g|(+0#e000e06#ffffff0|)| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|'+0#e000002&|I|N|S|T|A|N|C|E|'| +0#0000000&@3
+|e+0#af5f00255&|c|h|o| +0#0000000&|b+0#00e0e07&|1| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|M|a|r|k|e|r|E|n|u|m|T|e|s|t|.|I|N|S|T|A|N|C|E|.|e+0#00e0e07&|m|p|t|y|(+0#e000e06&|)| +0#0000000&@32
+|e+0#af5f00255&|c|h|o| +0#0000000&|n+0#00e0e07&|1| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|0+0#e000002&| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|M|a|r|k|e|r|E|n|u|m|T|e|s|t|.|I|N|S|T|A|N|C|E|.|l+0#00e0e07&|e|n|(+0#e000e06&|)| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|0+0#e000002&| +0#0000000&@24
+|e+0#af5f00255&|c|h|o| +0#0000000&|s+0#00e0e07&|1| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|'+0#e000002&|I|N|S|T|A|N|C|E|'| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|M|a|r|k|e|r|E|n|u|m|T|e|s|t|.|I|N|S|T|A|N|C|E|.|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|)| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|'+0#e000002&|I|N|S|T|A|N|C|E|'| +0#0000000&@3
@75
-|c+0#af5f00255&|o|n|s|t| +0#0000000&|p+0#00e0e07&|a|i|r|:+0#0000000&| |P|a|i|r|C|l|a|s@1|T|e|s|t| |=+0#af5f00255&| +0#0000000&|P|a|i|r|C|l|a|s@1|T|e|s|t|.|n|e|w|(+0#e000e06&|0+0#e000002&|,+0#0000000&| |1+0#e000002&|)+0#e000e06&| +0#0000000&@23
+|c+0#af5f00255&|o|n|s|t| +0#0000000&|p+0#00e0e07&|a|i|r|:+0#0000000&| |P|a|i|r|C|l|a|s@1|T|e|s|t| |=+0#af5f00255&| +0#0000000&|P|a|i|r|C|l|a|s@1|T|e|s|t|.|n+0#00e0e07&|e|w|(+0#e000e06&|0+0#e000002&|,+0#0000000&| |1+0#e000002&|)+0#e000e06&| +0#0000000&@23
@57|3|7|,|2|-|9| @7|8|3|%|
diff --git a/runtime/syntax/testdir/dumps/vim_object_methods_03.dump b/runtime/syntax/testdir/dumps/vim_object_methods_03.dump
index 538ba4f..fe5bf51 100644
--- a/runtime/syntax/testdir/dumps/vim_object_methods_03.dump
+++ b/runtime/syntax/testdir/dumps/vim_object_methods_03.dump
@@ -1,7 +1,7 @@
-|c+0#af5f00255#ffffff0|o|n|s|t| +0#0000000&|p+0#00e0e07&|a|i|r|:+0#0000000&| |P|a|i|r|C|l|a|s@1|T|e|s|t| |=+0#af5f00255&| +0#0000000&|P|a|i|r|C|l|a|s@1|T|e|s|t|.|n|e|w|(+0#e000e06&|0+0#e000002&|,+0#0000000&| |1+0#e000002&|)+0#e000e06&| +0#0000000&@23
-|c+0#af5f00255&|o|n|s|t| +0#0000000&|b+0#00e0e07&|2|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&|=+0#af5f00255&| +0#0000000&|!+0#af5f00255&|p+0#0000000&|a|i|r|.|e+0#0000001#ffff4012|m|p|t|y|(+0#e000e06#ffffff0|)| +0#0000000&@44
-|c+0#af5f00255&|o|n|s|t| +0#0000000&|n+0#00e0e07&|2|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|p|a|i|r|.|l+0#0000001#ffff4012|e|n|(+0#e000e06#ffffff0|)| +0#0000000&@45
-|c+0#af5f00255&|o|n|s|t| +0#0000000&|s+0#00e0e07&|2|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&|=+0#af5f00255&| +0#0000000&|p|a|i|r|.|s+0#0000001#ffff4012|t|r|i|n|g|(+0#e000e06#ffffff0|)| +0#0000000&@42
+|c+0#af5f00255#ffffff0|o|n|s|t| +0#0000000&|p+0#00e0e07&|a|i|r|:+0#0000000&| |P|a|i|r|C|l|a|s@1|T|e|s|t| |=+0#af5f00255&| +0#0000000&|P|a|i|r|C|l|a|s@1|T|e|s|t|.|n+0#00e0e07&|e|w|(+0#e000e06&|0+0#e000002&|,+0#0000000&| |1+0#e000002&|)+0#e000e06&| +0#0000000&@23
+|c+0#af5f00255&|o|n|s|t| +0#0000000&|b+0#00e0e07&|2|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&|=+0#af5f00255&| +0#0000000&|!+0#af5f00255&|p+0#0000000&|a|i|r|.|e+0#00e0e07&|m|p|t|y|(+0#e000e06&|)| +0#0000000&@44
+|c+0#af5f00255&|o|n|s|t| +0#0000000&|n+0#00e0e07&|2|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|p|a|i|r|.|l+0#00e0e07&|e|n|(+0#e000e06&|)| +0#0000000&@45
+|c+0#af5f00255&|o|n|s|t| +0#0000000&|s+0#00e0e07&|2|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&|=+0#af5f00255&| +0#0000000&|p|a|i|r|.|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|)| +0#0000000&@42
|e+0#af5f00255&|c|h|o| +0#0000000&|b+0#00e0e07&|2| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|!+0#af5f00255&|e+0#00e0e07&|m|p|t|y|(+0#e000e06&|p+0#00e0e07&|a|i|r|)+0#e000e06&| +0#0000000&@51
>e+0#af5f00255&|c|h|o| +0#0000000&|n+0#00e0e07&|2| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|2+0#e000002&| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|l+0#00e0e07&|e|n|(+0#e000e06&|p+0#00e0e07&|a|i|r|)+0#e000e06&| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|2+0#e000002&| +0#0000000&@44
|e+0#af5f00255&|c|h|o| +0#0000000&|s+0#00e0e07&|2| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|'+0#e000002&|(|0|,| |1|)|'| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|p+0#00e0e07&|a|i|r|)+0#e000e06&| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|'+0#e000002&|(|0|,| |1|)|'| +0#0000000&@27
diff --git a/runtime/syntax/testdir/input/vim9_ex_class_fold.vim b/runtime/syntax/testdir/input/vim9_ex_class_fold.vim
new file mode 100644
index 0000000..3e5715f
--- /dev/null
+++ b/runtime/syntax/testdir/input/vim9_ex_class_fold.vim
@@ -0,0 +1,70 @@
+vim9script
+# Vim9 :class command
+# VIM_TEST_SETUP let g:vimsyn_folding = 'cf'
+# VIM_TEST_SETUP setl fdc=2 fdl=99 fdm=syntax
+
+interface Interface1
+endinterface
+interface Interface2
+endinterface
+
+class Class1
+endclass
+
+export class Class2
+endclass
+
+abstract class Class3
+endclass
+
+export abstract class Class4
+endclass
+
+class Class5 extends Class1
+endclass
+
+export class Class6 extends Class1
+endclass
+
+class Class7 implements Interface1, Interface2
+endclass
+
+export class Class8 implements Interface1, Interface2
+endclass
+
+class Class9
+ def new()
+ enddef
+ def Method1(): void
+ def Nested1(): void
+ def Nested2(): void
+ enddef
+ enddef
+ enddef
+ def _Method2(): void
+ enddef
+ static def Method3(): void
+ enddef
+endclass
+
+abstract class Class10
+ abstract def Method1(): void
+ abstract def string(): string
+endclass
+
+
+# Issue: #14393
+
+interface Testable
+ def SetUp()
+ def TearDown()
+endinterface
+
+abstract class TestTemplate implements Testable
+ var failed: number
+ var passed: number
+
+ abstract def SetUp()
+ abstract def TearDown()
+endclass
+
diff --git a/runtime/syntax/testdir/input/vim9_ex_commands.vim b/runtime/syntax/testdir/input/vim9_ex_commands.vim
index 92ab9dc..c0eb97d 100644
--- a/runtime/syntax/testdir/input/vim9_ex_commands.vim
+++ b/runtime/syntax/testdir/input/vim9_ex_commands.vim
@@ -93,7 +93,6 @@
:checktime
:chistory
:class
-:class
:clast
:clearjumps
:clist
@@ -172,7 +171,6 @@
:elseif
:emenu
:endclass
-:endclass
:enddef
:endenum
:endfor
@@ -385,8 +383,6 @@
:ptprevious
:ptrewind
:ptselect
-:public
-:public
:put
:pwd
:py3
@@ -479,8 +475,6 @@
:startgreplace
:startinsert
:startreplace
-:static
-:static
:stjump
:stop
:stopinsert
@@ -681,7 +675,6 @@
Foo() | checktime
Foo() | chistory
Foo() | class
-Foo() | class
Foo() | clast
Foo() | clearjumps
Foo() | clist
@@ -760,7 +753,6 @@
Foo() | elseif
Foo() | emenu
Foo() | endclass
-Foo() | endclass
Foo() | enddef
Foo() | endenum
Foo() | endfor
@@ -972,8 +964,6 @@
Foo() | ptprevious
Foo() | ptrewind
Foo() | ptselect
-Foo() | public
-Foo() | public
Foo() | put
Foo() | pwd
Foo() | py3
@@ -1066,8 +1056,6 @@
Foo() | startgreplace
Foo() | startinsert
Foo() | startreplace
-Foo() | static
-Foo() | static
Foo() | stjump
Foo() | stop
Foo() | stopinsert
diff --git a/runtime/syntax/testdir/input/vim9_ex_enum_fold.vim b/runtime/syntax/testdir/input/vim9_ex_enum_fold.vim
new file mode 100644
index 0000000..0656907
--- /dev/null
+++ b/runtime/syntax/testdir/input/vim9_ex_enum_fold.vim
@@ -0,0 +1,39 @@
+vim9script
+# Vim :enum command
+# VIM_TEST_SETUP let g:vimsyn_folding = 'ef'
+# VIM_TEST_SETUP setl fdc=2 fdl=99 fdm=syntax
+
+interface Interface1
+endinterface
+interface Interface2
+endinterface
+
+enum Enum1
+endenum
+
+export enum Enum2
+endenum
+
+enum Enum3
+ Value1,
+ Value2,
+ Value3
+endenum
+
+enum Enum4
+ Value1,
+ Value2,
+ Value3
+ def Method1()
+ enddef
+endenum
+
+enum Enum5 implements Interface1, Interface2
+ Value1,
+ Value2,
+ Value3
+ def Method1()
+ def Nested()
+ enddef
+ enddef
+endenum
diff --git a/runtime/syntax/testdir/input/vim9_ex_interface_fold.vim b/runtime/syntax/testdir/input/vim9_ex_interface_fold.vim
new file mode 100644
index 0000000..232c3e2
--- /dev/null
+++ b/runtime/syntax/testdir/input/vim9_ex_interface_fold.vim
@@ -0,0 +1,36 @@
+vim9script
+# Vim :interface command
+# VIM_TEST_SETUP let g:vimsyn_folding = 'i'
+# VIM_TEST_SETUP setl fdc=2 fdl=99 fdm=syntax
+
+interface Interface1
+endinterface
+
+export interface Interface2
+endinterface
+
+interface Interface2
+ # comment
+ var var1: number
+endinterface
+
+interface Interface3
+ # comment
+ def Meth1(): number
+endinterface
+
+interface Interface4
+ # comment
+ var var1: number
+ # comment
+ def Meth1(): number
+endinterface
+
+interface Interface5
+ # comment
+ var var1: number
+ var var2: number
+ # comment
+ def Meth1(): number
+ def Meth2(): number
+endinterface
diff --git a/runtime/syntax/testdir/input/vim9_ex_special_method_definitions.vim b/runtime/syntax/testdir/input/vim9_ex_special_method_definitions.vim
new file mode 100644
index 0000000..79a0626
--- /dev/null
+++ b/runtime/syntax/testdir/input/vim9_ex_special_method_definitions.vim
@@ -0,0 +1,113 @@
+vim9script
+# Vim9 special methods new*(), empty(), len(), string()
+
+def new()
+enddef
+
+def newOther()
+enddef
+
+def newyetanother()
+enddef
+
+def empty(): bool
+ return true
+enddef
+
+def len(): number
+ return 0
+enddef
+
+def string(): string
+ return ""
+enddef
+
+class A
+ def new()
+ def newNested()
+ enddef
+ def empty(): bool
+ return true
+ enddef
+ def len(): number
+ return 0
+ enddef
+ def string(): string
+ return ""
+ enddef
+ enddef
+
+ def newOther()
+ def newNested()
+ enddef
+ def empty(): bool
+ return true
+ enddef
+ def len(): number
+ return 0
+ enddef
+ def string(): string
+ return ""
+ enddef
+ enddef
+
+ def newyetanother()
+ def newNested()
+ enddef
+ def empty(): bool
+ return true
+ enddef
+ def len(): number
+ return 0
+ enddef
+ def string(): string
+ return ""
+ enddef
+ enddef
+
+ def empty(): bool
+ def newNested()
+ enddef
+ def empty(): bool
+ return true
+ enddef
+ def len(): number
+ return 0
+ enddef
+ def string(): string
+ return ""
+ enddef
+ return true
+ enddef
+
+ def len(): number
+ def newNested()
+ enddef
+ def empty(): bool
+ return true
+ enddef
+ def len(): number
+ return 0
+ enddef
+ def string(): string
+ return ""
+ enddef
+ return 0
+ enddef
+
+ def string(): string
+ def newNested()
+ enddef
+ def empty(): bool
+ return true
+ enddef
+ def len(): number
+ return 0
+ enddef
+ def string(): string
+ return ""
+ enddef
+ return ""
+ enddef
+endclass
+
diff --git a/runtime/syntax/testdir/input/vim9_ex_type.vim b/runtime/syntax/testdir/input/vim9_ex_type.vim
new file mode 100644
index 0000000..bfd9eb9
--- /dev/null
+++ b/runtime/syntax/testdir/input/vim9_ex_type.vim
@@ -0,0 +1,11 @@
+vim9script
+# Vim :type command
+
+type Foo = string
+type Bar = list<string>
+type Baz = Foo
+
+export type Qux = Baz
+
+type foo = string
+
diff --git a/runtime/syntax/testdir/input/vim_ex_commands.vim b/runtime/syntax/testdir/input/vim_ex_commands.vim
index 3d03ac3..98f32d7 100644
--- a/runtime/syntax/testdir/input/vim_ex_commands.vim
+++ b/runtime/syntax/testdir/input/vim_ex_commands.vim
@@ -383,7 +383,6 @@
:ptprevious
:ptrewind
:ptselect
-:public
:put
:pwd
:py3
@@ -478,7 +477,6 @@
:startinsert
:startgreplace
:startreplace
-:static
:stopinsert
:stjump
:stselect
@@ -971,7 +969,6 @@
call Foo() | ptprevious
call Foo() | ptrewind
call Foo() | ptselect
-call Foo() | public
call Foo() | put
call Foo() | pwd
call Foo() | py3
@@ -1066,7 +1063,6 @@
call Foo() | startinsert
call Foo() | startgreplace
call Foo() | startreplace
-call Foo() | static
call Foo() | stopinsert
call Foo() | stjump
call Foo() | stselect
@@ -1187,8 +1183,6 @@
:abstract
:class
-:defcompile
-:disassemble
:endclass
:endinterface
:endenum
@@ -1203,8 +1197,6 @@
Foo() | abstract
Foo() | class
-Foo() | defcompile
-Foo() | disassemble
Foo() | endclass
Foo() | endenum
Foo() | endinterface
diff --git a/runtime/syntax/testdir/input/vim_ex_menu.vim b/runtime/syntax/testdir/input/vim_ex_menu.vim
index fb737c2..f65493d 100644
--- a/runtime/syntax/testdir/input/vim_ex_menu.vim
+++ b/runtime/syntax/testdir/input/vim_ex_menu.vim
@@ -76,7 +76,7 @@
" a menu item name cannot start with '.'
-export def HistoryJumpMenu()
+def HistoryJumpMenu()
popup.FilterMenu("Jump history", dir_hist,
(res, _) => {
HistoryJump(res.text)
diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index 54e6486..2598cae 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: 2024 Sep 16
+" Last Change: 2024 Oct 05
" Former Maintainer: Charles E. Campbell
" DO NOT CHANGE DIRECTLY.
@@ -27,12 +27,12 @@
" regular vim commands {{{2
" GEN_SYN_VIM: vimCommand normal, START_STR='syn keyword vimCommand contained', END_STR=''
-syn keyword vimCommand contained abo[veleft] abs[tract] al[l] ar[gs] arga[dd] argd[elete] argdo argded[upe] arge[dit] argg[lobal] argl[ocal] argu[ment] as[cii] b[uffer] bN[ext] ba[ll] bad[d] balt bd[elete] bel[owright] bf[irst] bl[ast] bm[odified] bn[ext] bo[tright] bp[revious] br[ewind] brea[k] breaka[dd] breakd[el] breakl[ist] bro[wse] buffers bufd[o] bun[load] bw[ipeout] c[hange] cN[ext] cNf[ile] cabo[ve] cad[dbuffer] cadde[xpr] caddf[ile] caf[ter] cb[uffer] cbe[fore] cbel[ow] cbo[ttom] cc ccl[ose] cd cdo ce[nter] cex[pr] cf[ile] cfd[o] cfir[st] cg[etfile] cgetb[uffer] cgete[xpr] chd[ir] changes che[ckpath] checkt[ime] chi[story] cl[ist] cla[st] class clo[se] cle[arjumps] cn[ext] cnew[er] cnf[ile] co[py] col[der] colo[rscheme] com[mand] comc[lear] comp[iler]
-syn keyword vimCommand contained con[tinue] conf[irm] cons[t] cope[n] cp[revious] cpf[ile] cq[uit] cr[ewind] cs[cope] cst[ag] cw[indow] d[elete] delm[arks] deb[ug] debugg[reedy] defc[ompile] defe[r] delf[unction] di[splay] dif[fupdate] diffg[et] diffo[ff] diffp[atch] diffpu[t] diffs[plit] difft[his] dig[raphs] disa[ssemble] dj[ump] dli[st] dr[op] ds[earch] dsp[lit] e[dit] ea[rlier] el[se] em[enu] en[dif] endin[terface] endc[lass] ende[num] endfo[r] endt[ry] endw[hile] ene[w] enu[m] ev[al] ex exi[t] exp[ort] exu[sage] f[ile] files filet[ype] filt[er] fin[d] finall[y] fini[sh] fir[st] fix[del] fo[ld] foldc[lose] foldd[oopen] folddoc[losed] foldo[pen] g[lobal] go[to] gr[ep] grepa[dd] gu[i] gv[im] h[elp] helpc[lose] helpf[ind] helpg[rep] helpt[ags] ha[rdcopy] hi[ghlight]
-syn keyword vimCommand contained hid[e] his[tory] ho[rizontal] ij[ump] il[ist] imp[ort] int[ro] inte[rface] is[earch] isp[lit] j[oin] ju[mps] k kee[pmarks] keepj[umps] keepp[atterns] keepa[lt] l[ist] lN[ext] lNf[ile] la[st] lab[ove] lan[guage] lad[dexpr] laddb[uffer] laddf[ile] laf[ter] lat[er] lb[uffer] lbe[fore] lbel[ow] lbo[ttom] lc[d] lch[dir] lcl[ose] lcs[cope] ld[o] le[ft] lefta[bove] lex[pr] leg[acy] lf[ile] lfd[o] lfir[st] lg[etfile] lgetb[uffer] lgete[xpr] lgr[ep] lgrepa[dd] lh[elpgrep] lhi[story] ll lla[st] lli[st] lmak[e] lne[xt] lnew[er] lnf[ile] lo[adview] loc[kmarks] lockv[ar] lol[der] lop[en] lp[revious] lpf[ile] lr[ewind] lt[ag] lua luad[o] luaf[ile] lv[imgrep] lvimgrepa[dd] lw[indow] ls m[ove] ma[rk] mak[e] marks menut[ranslate] mes[sages] mk[exrc]
-syn keyword vimCommand contained mks[ession] mksp[ell] mkv[imrc] mkvie[w] mod[e] mz[scheme] mzf[ile] n[ext] nb[key] nbc[lose] nbs[tart] noa[utocmd] noh[lsearch] nos[wapfile] nu[mber] o[pen] ol[dfiles] on[ly] opt[ions] ow[nsyntax] p[rint] pa[ckadd] packl[oadall] pc[lose] pe[rl] perld[o] ped[it] po[p] pp[op] pre[serve] prev[ious] pro[mptfind] promptr[epl] prof[ile] profd[el] ps[earch] pt[ag] ptN[ext] ptf[irst] ptj[ump] ptl[ast] ptn[ext] ptp[revious] ptr[ewind] pts[elect] pu[t] pub[lic] pw[d] py[thon] pyd[o] pyf[ile] py3 py3d[o] python3 py3f[ile] pyx pyxd[o] pythonx pyxf[ile] q[uit] quita[ll] qa[ll] r[ead] rec[over] red[o] redi[r] redr[aw] redraws[tatus] redrawt[abline] reg[isters] res[ize] ret[ab] rew[ind] ri[ght] rightb[elow] ru[ntime] rub[y] rubyd[o] rubyf[ile]
-syn keyword vimCommand contained rund[o] rv[iminfo] sN[ext] sa[rgument] sal[l] san[dbox] sav[eas] sb[uffer] sbN[ext] sba[ll] sbf[irst] sbl[ast] sbm[odified] sbn[ext] sbp[revious] sbr[ewind] sc[riptnames] scripte[ncoding] scriptv[ersion] scs[cope] setf[iletype] sf[ind] sfir[st] sh[ell] si[malt] sig[n] sil[ent] sla[st] sn[ext] so[urce] sor[t] sp[lit] spe[llgood] spelld[ump] spelli[nfo] spellr[epall] spellra[re] spellu[ndo] spellw[rong] spr[evious] sr[ewind] st[op] sta[g] star[tinsert] startg[replace] startr[eplace] stat[ic] stopi[nsert] stj[ump] sts[elect] sun[hide] sus[pend] sv[iew] sw[apname] synti[me] sync[bind] smi[le] t tN[ext] ta[g] tags tab tabc[lose] tabd[o] tabe[dit] tabf[ind] tabfir[st] tabm[ove] tabl[ast] tabn[ext] tabnew tabo[nly] tabp[revious] tabN[ext]
-syn keyword vimCommand contained tabr[ewind] tabs tc[d] tch[dir] tcl tcld[o] tclf[ile] te[aroff] ter[minal] tf[irst] thi[s] tj[ump] tl[ast] tn[ext] to[pleft] tp[revious] tr[ewind] try ts[elect] ty[pe] u[ndo] undoj[oin] undol[ist] unh[ide] unlo[ckvar] uns[ilent] up[date] v[global] ve[rsion] verb[ose] vert[ical] vi[sual] vie[w] vim[grep] vimgrepa[dd] vim9[cmd] viu[sage] vne[w] vs[plit] w[rite] wN[ext] wa[ll] wi[nsize] winc[md] wind[o] winp[os] wn[ext] wp[revious] wq wqa[ll] wu[ndo] wv[iminfo] x[it] xa[ll] xr[estore] y[ank] z dl dell delel deletl deletel dp dep delp delep deletp deletep a i
+syn keyword vimCommand contained abo[veleft] abs[tract] al[l] ar[gs] arga[dd] argd[elete] argdo argded[upe] arge[dit] argg[lobal] argl[ocal] argu[ment] as[cii] b[uffer] bN[ext] ba[ll] bad[d] balt bd[elete] bel[owright] bf[irst] bl[ast] bm[odified] bn[ext] bo[tright] bp[revious] br[ewind] brea[k] breaka[dd] breakd[el] breakl[ist] bro[wse] buffers bufd[o] bun[load] bw[ipeout] c[hange] cN[ext] cNf[ile] cabo[ve] cad[dbuffer] cadde[xpr] caddf[ile] caf[ter] cb[uffer] cbe[fore] cbel[ow] cbo[ttom] cc ccl[ose] cd cdo ce[nter] cex[pr] cf[ile] cfd[o] cfir[st] cg[etfile] cgetb[uffer] cgete[xpr] chd[ir] changes che[ckpath] checkt[ime] chi[story] cl[ist] cla[st] clo[se] cle[arjumps] cn[ext] cnew[er] cnf[ile] co[py] col[der] colo[rscheme] com[mand] comc[lear] comp[iler] con[tinue]
+syn keyword vimCommand contained conf[irm] cons[t] cope[n] cp[revious] cpf[ile] cq[uit] cr[ewind] cs[cope] cst[ag] cw[indow] d[elete] delm[arks] deb[ug] debugg[reedy] defc[ompile] defe[r] delf[unction] di[splay] dif[fupdate] diffg[et] diffo[ff] diffp[atch] diffpu[t] diffs[plit] difft[his] dig[raphs] disa[ssemble] dj[ump] dli[st] dr[op] ds[earch] dsp[lit] e[dit] ea[rlier] el[se] em[enu] en[dif] endfo[r] endt[ry] endw[hile] ene[w] ev[al] ex exi[t] exu[sage] f[ile] files filet[ype] filt[er] fin[d] finall[y] fini[sh] fir[st] fix[del] fo[ld] foldc[lose] foldd[oopen] folddoc[losed] foldo[pen] g[lobal] go[to] gr[ep] grepa[dd] gu[i] gv[im] h[elp] helpc[lose] helpf[ind] helpg[rep] helpt[ags] ha[rdcopy] hi[ghlight] hid[e] his[tory] ho[rizontal] ij[ump] il[ist] imp[ort]
+syn keyword vimCommand contained int[ro] is[earch] isp[lit] j[oin] ju[mps] k kee[pmarks] keepj[umps] keepp[atterns] keepa[lt] l[ist] lN[ext] lNf[ile] la[st] lab[ove] lan[guage] lad[dexpr] laddb[uffer] laddf[ile] laf[ter] lat[er] lb[uffer] lbe[fore] lbel[ow] lbo[ttom] lc[d] lch[dir] lcl[ose] lcs[cope] ld[o] le[ft] lefta[bove] lex[pr] leg[acy] lf[ile] lfd[o] lfir[st] lg[etfile] lgetb[uffer] lgete[xpr] lgr[ep] lgrepa[dd] lh[elpgrep] lhi[story] ll lla[st] lli[st] lmak[e] lne[xt] lnew[er] lnf[ile] lo[adview] loc[kmarks] lockv[ar] lol[der] lop[en] lp[revious] lpf[ile] lr[ewind] lt[ag] lua luad[o] luaf[ile] lv[imgrep] lvimgrepa[dd] lw[indow] ls m[ove] ma[rk] mak[e] marks menut[ranslate] mes[sages] mk[exrc] mks[ession] mksp[ell] mkv[imrc] mkvie[w] mod[e] mz[scheme] mzf[ile]
+syn keyword vimCommand contained n[ext] nb[key] nbc[lose] nbs[tart] noa[utocmd] noh[lsearch] nos[wapfile] nu[mber] o[pen] ol[dfiles] on[ly] opt[ions] ow[nsyntax] p[rint] pa[ckadd] packl[oadall] pc[lose] pe[rl] perld[o] ped[it] po[p] pp[op] pre[serve] prev[ious] pro[mptfind] promptr[epl] prof[ile] profd[el] ps[earch] pt[ag] ptN[ext] ptf[irst] ptj[ump] ptl[ast] ptn[ext] ptp[revious] ptr[ewind] pts[elect] pu[t] pw[d] py[thon] pyd[o] pyf[ile] py3 py3d[o] python3 py3f[ile] pyx pyxd[o] pythonx pyxf[ile] q[uit] quita[ll] qa[ll] r[ead] rec[over] red[o] redi[r] redr[aw] redraws[tatus] redrawt[abline] reg[isters] res[ize] ret[ab] rew[ind] ri[ght] rightb[elow] ru[ntime] rub[y] rubyd[o] rubyf[ile] rund[o] rv[iminfo] sN[ext] sa[rgument] sal[l] san[dbox] sav[eas] sb[uffer]
+syn keyword vimCommand contained sbN[ext] sba[ll] sbf[irst] sbl[ast] sbm[odified] sbn[ext] sbp[revious] sbr[ewind] sc[riptnames] scripte[ncoding] scriptv[ersion] scs[cope] setf[iletype] sf[ind] sfir[st] sh[ell] si[malt] sig[n] sil[ent] sla[st] sn[ext] so[urce] sor[t] sp[lit] spe[llgood] spelld[ump] spelli[nfo] spellr[epall] spellra[re] spellu[ndo] spellw[rong] spr[evious] sr[ewind] st[op] sta[g] star[tinsert] startg[replace] startr[eplace] stopi[nsert] stj[ump] sts[elect] sun[hide] sus[pend] sv[iew] sw[apname] synti[me] sync[bind] smi[le] t tN[ext] ta[g] tags tab tabc[lose] tabd[o] tabe[dit] tabf[ind] tabfir[st] tabm[ove] tabl[ast] tabn[ext] tabnew tabo[nly] tabp[revious] tabN[ext] tabr[ewind] tabs tc[d] tch[dir] tcl tcld[o] tclf[ile] te[aroff] ter[minal] tf[irst]
+syn keyword vimCommand contained tj[ump] tl[ast] tn[ext] to[pleft] tp[revious] tr[ewind] try ts[elect] u[ndo] undoj[oin] undol[ist] unh[ide] unlo[ckvar] uns[ilent] up[date] v[global] ve[rsion] verb[ose] vert[ical] vi[sual] vie[w] vim[grep] vimgrepa[dd] vim9[cmd] viu[sage] vne[w] vs[plit] w[rite] wN[ext] wa[ll] wi[nsize] winc[md] wind[o] winp[os] wn[ext] wp[revious] wq wqa[ll] wu[ndo] wv[iminfo] x[it] xa[ll] xr[estore] y[ank] z dl dell delel deletl deletel dp dep delp delep deletp deletep a i
" Lower priority for _new_ to distinguish constructors from the command.
syn match vimCommand contained "\<new\>(\@!"
@@ -42,13 +42,13 @@
" vimOptions are caught only when contained in a vimSet {{{2
" 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
+syn keyword vimOption contained cia completeitemalign 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 skipwhite nextgroup=vimSetEqual,vimSetMod
+syn keyword vimOption contained fic fileignorecase 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 skipwhite nextgroup=vimSetEqual,vimSetMod
+syn keyword vimOption contained imsf imstatusfunc 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 skipwhite nextgroup=vimSetEqual,vimSetMod
+syn keyword vimOption contained mousef mousefocus 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 skipwhite nextgroup=vimSetEqual,vimSetMod
+syn keyword vimOption contained remap rop renderoptions 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 skipwhite nextgroup=vimSetEqual,vimSetMod
+syn keyword vimOption contained spf spellfile spl spelllang 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 skipwhite nextgroup=vimSetEqual,vimSetMod
+syn keyword vimOption contained tsl ttyscroll tty ttytype 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=''
@@ -103,8 +103,8 @@
" GEN_SYN_VIM: vimFuncName, START_STR='syn keyword vimFuncName contained', END_STR=''
syn keyword vimFuncName contained abs acos add and append appendbufline argc argidx arglistid argv asin assert_beeps assert_equal assert_equalfile assert_exception assert_fails assert_false assert_inrange assert_match assert_nobeep assert_notequal assert_notmatch assert_report assert_true atan atan2 autocmd_add autocmd_delete autocmd_get balloon_gettext balloon_show balloon_split bindtextdomain blob2list browse browsedir bufadd bufexists buflisted bufload bufloaded bufname bufnr bufwinid bufwinnr byte2line byteidx byteidxcomp call ceil ch_canread ch_close ch_close_in ch_evalexpr ch_evalraw ch_getbufnr ch_getjob ch_info ch_log ch_logfile ch_open ch_read ch_readblob ch_readraw ch_sendexpr ch_sendraw ch_setoptions ch_status changenr char2nr charclass charcol charidx
syn keyword vimFuncName contained chdir cindent clearmatches col complete complete_add complete_check complete_info confirm copy cos cosh count cscope_connection cursor debugbreak deepcopy delete deletebufline did_filetype diff diff_filler diff_hlID digraph_get digraph_getlist digraph_set digraph_setlist echoraw empty environ err_teapot escape eval eventhandler executable execute exepath exists exists_compiled exp expand expandcmd extend extendnew feedkeys filecopy filereadable filewritable filter finddir findfile flatten flattennew float2nr floor fmod fnameescape fnamemodify foldclosed foldclosedend foldlevel foldtext foldtextresult foreach foreground fullcommand funcref function garbagecollect get getbufinfo getbufline getbufoneline getbufvar getcellwidths getchangelist
-syn keyword vimFuncName contained getchar getcharmod getcharpos getcharsearch getcharstr getcmdcompltype getcmdline getcmdpos getcmdscreenpos getcmdtype getcmdwintype getcompletion getcurpos getcursorcharpos getcwd getenv getfontname getfperm getfsize getftime getftype getimstatus getjumplist getline getloclist getmarklist getmatches getmousepos getmouseshape getpid getpos getqflist getreg getreginfo getregion getregionpos getregtype getscriptinfo gettabinfo gettabvar gettabwinvar gettagstack gettext getwininfo getwinpos getwinposx getwinposy getwinvar glob glob2regpat globpath has has_key haslocaldir hasmapto histadd histdel histget histnr hlID hlexists hlget hlset hostname iconv id indent index indexof input inputdialog inputlist inputrestore inputsave inputsecret
-syn keyword vimFuncName contained insert instanceof interrupt invert isabsolutepath isdirectory isinf islocked isnan items job_getchannel job_info job_setoptions job_start job_status job_stop join js_decode js_encode json_decode json_encode keys keytrans len libcall libcallnr line line2byte lispindent list2blob list2str listener_add listener_flush listener_remove localtime log log10 luaeval map maparg mapcheck maplist mapnew mapset match matchadd matchaddpos matcharg matchbufline matchdelete matchend matchfuzzy matchfuzzypos matchlist matchstr matchstrlist matchstrpos max menu_info min mkdir mode mzeval nextnonblank nr2char or pathshorten perleval popup_atcursor popup_beval popup_clear popup_close popup_create popup_dialog popup_filter_menu popup_filter_yesno
+syn keyword vimFuncName contained getchar getcharmod getcharpos getcharsearch getcharstr getcmdcompltype getcmdline getcmdpos getcmdprompt getcmdscreenpos getcmdtype getcmdwintype getcompletion getcurpos getcursorcharpos getcwd getenv getfontname getfperm getfsize getftime getftype getimstatus getjumplist getline getloclist getmarklist getmatches getmousepos getmouseshape getpid getpos getqflist getreg getreginfo getregion getregionpos getregtype getscriptinfo gettabinfo gettabvar gettabwinvar gettagstack gettext getwininfo getwinpos getwinposx getwinposy getwinvar glob glob2regpat globpath has has_key haslocaldir hasmapto histadd histdel histget histnr hlID hlexists hlget hlset hostname iconv id indent index indexof input inputdialog inputlist inputrestore inputsave
+syn keyword vimFuncName contained inputsecret insert instanceof interrupt invert isabsolutepath isdirectory isinf islocked isnan items job_getchannel job_info job_setoptions job_start job_status job_stop join js_decode js_encode json_decode json_encode keys keytrans len libcall libcallnr line line2byte lispindent list2blob list2str listener_add listener_flush listener_remove localtime log log10 luaeval map maparg mapcheck maplist mapnew mapset match matchadd matchaddpos matcharg matchbufline matchdelete matchend matchfuzzy matchfuzzypos matchlist matchstr matchstrlist matchstrpos max menu_info min mkdir mode mzeval nextnonblank nr2char or pathshorten perleval popup_atcursor popup_beval popup_clear popup_close popup_create popup_dialog popup_filter_menu popup_filter_yesno
syn keyword vimFuncName contained popup_findecho popup_findinfo popup_findpreview popup_getoptions popup_getpos popup_hide popup_list popup_locate popup_menu popup_move popup_notification popup_setbuf popup_setoptions popup_settext popup_show pow prevnonblank printf prompt_getprompt prompt_setcallback prompt_setinterrupt prompt_setprompt prop_add prop_add_list prop_clear prop_find prop_list prop_remove prop_type_add prop_type_change prop_type_delete prop_type_get prop_type_list pum_getpos pumvisible py3eval pyeval pyxeval rand range readblob readdir readdirex readfile reduce reg_executing reg_recording reltime reltimefloat reltimestr remote_expr remote_foreground remote_peek remote_read remote_send remote_startserver remove rename repeat resolve reverse round
syn keyword vimFuncName contained rubyeval screenattr screenchar screenchars screencol screenpos screenrow screenstring search searchcount searchdecl searchpair searchpairpos searchpos server2client serverlist setbufline setbufvar setcellwidths setcharpos setcharsearch setcmdline setcmdpos setcursorcharpos setenv setfperm setline setloclist setmatches setpos setqflist setreg settabvar settabwinvar settagstack setwinvar sha256 shellescape shiftwidth sign_define sign_getdefined sign_getplaced sign_jump sign_place sign_placelist sign_undefine sign_unplace sign_unplacelist simplify sin sinh slice sort sound_clear sound_playevent sound_playfile sound_stop soundfold spellbadword spellsuggest split sqrt srand state str2float str2list str2nr strcharlen strcharpart strchars
syn keyword vimFuncName contained strdisplaywidth strftime strgetchar stridx string strlen strpart strptime strridx strtrans strutf16len strwidth submatch substitute swapfilelist swapinfo swapname synID synIDattr synIDtrans synconcealed synstack system systemlist tabpagebuflist tabpagenr tabpagewinnr tagfiles taglist tan tanh tempname term_dumpdiff term_dumpload term_dumpwrite term_getaltscreen term_getansicolors term_getattr term_getcursor term_getjob term_getline term_getscrolled term_getsize term_getstatus term_gettitle term_gettty term_list term_scrape term_sendkeys term_setansicolors term_setapi term_setkill term_setrestore term_setsize term_start term_wait terminalprops test_alloc_fail test_autochdir test_feedinput test_garbagecollect_now test_garbagecollect_soon
@@ -119,12 +119,22 @@
com! -nargs=* Vim9 execute <q-args> s:vim9script ? "" : "contained"
com! -nargs=* VimL execute <q-args> s:vim9script ? "contained" : ""
-if exists("g:vimsyn_folding") && g:vimsyn_folding =~# '[afhHlmpPrt]'
+if exists("g:vimsyn_folding") && g:vimsyn_folding =~# '[acefhiHlmpPrt]'
if g:vimsyn_folding =~# 'a'
com! -nargs=* VimFolda <args> fold
else
com! -nargs=* VimFolda <args>
endif
+ if g:vimsyn_folding =~# 'c'
+ com! -nargs=* VimFoldc <args> fold
+ else
+ com! -nargs=* VimFoldc <args>
+ endif
+ if g:vimsyn_folding =~# 'e'
+ com! -nargs=* VimFolde <args> fold
+ else
+ com! -nargs=* VimFolde <args>
+ endif
if g:vimsyn_folding =~# 'f'
com! -nargs=* VimFoldf <args> fold
else
@@ -140,6 +150,11 @@
else
com! -nargs=* VimFoldH <args>
endif
+ if g:vimsyn_folding =~# 'i'
+ com! -nargs=* VimFoldi <args> fold
+ else
+ com! -nargs=* VimFoldi <args>
+ endif
if g:vimsyn_folding =~# 'l'
com! -nargs=* VimFoldl <args> fold
else
@@ -172,7 +187,10 @@
endif
else
com! -nargs=* VimFolda <args>
+ com! -nargs=* VimFoldc <args>
+ com! -nargs=* VimFolde <args>
com! -nargs=* VimFoldf <args>
+ com! -nargs=* VimFoldi <args>
com! -nargs=* VimFoldh <args>
com! -nargs=* VimFoldH <args>
com! -nargs=* VimFoldl <args>
@@ -222,8 +240,8 @@
syn case match
" All vimCommands are contained by vimIsCommand. {{{2
-syn cluster vimCmdList contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimCall,vimCatch,vimConst,vimDef,vimDelcommand,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimFuncFold,vimGlobal,vimHighlight,vimLet,vimLoadkeymap,vimMap,vimMark,vimMatch,vimNotFunc,vimNorm,vimSet,vimSleep,vimSyntax,vimThrow,vimUnlet,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate,@vim9CmdList
-syn cluster vim9CmdList contains=vim9Const,vim9Final,vim9For,vim9Var
+syn cluster vimCmdList contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimCall,vimCatch,vimConst,vimDef,vimDefFold,vimDelcommand,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimFuncFold,vimGlobal,vimHighlight,vimLet,vimLoadkeymap,vimMap,vimMark,vimMatch,vimNotFunc,vimNorm,vimSet,vimSleep,vimSyntax,vimThrow,vimUnlet,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate,@vim9CmdList
+syn cluster vim9CmdList contains=vim9Class,vim9Const,vim9Enum,vim9Export,vim9Final,vim9For,vim9Interface,vim9Type,vim9Var
syn match vimCmdSep "[:|]\+" skipwhite nextgroup=@vimCmdList,vimSubst1
syn match vimIsCommand "\<\%(\h\w*\|[23]mat\%[ch]\)\>" contains=vimCommand
syn match vimBang contained "!"
@@ -265,6 +283,12 @@
syn keyword vimCatch cat[ch] skipwhite nextgroup=vimCatchPattern
syn region vimCatchPattern contained matchgroup=Delimiter start="\z([!#$%&'()*+,-./:;<=>?@[\]^_`{}~]\)" skip="\\\\\|\\\z1" end="\z1" contains=@vimSubstList oneline
+" Export {{{2
+" ======
+if s:vim9script
+ syn keyword vim9Export export skipwhite nextgroup=vim9Abstract,vim9ClassBody,vim9Const,vim9Def,vim9EnumBody,vim9Final,vim9InterfaceBody,vim9Type,vim9Var
+endif
+
" Filetypes {{{2
" =========
syn match vimFiletype "\<filet\%[ype]\(\s\+\I\i*\)*" skipwhite contains=vimFTCmd,vimFTOption,vimFTError
@@ -309,7 +333,7 @@
syn cluster vimFuncList contains=vimFuncBang,vimFunctionError,vimFuncKey,vimFuncSID,Tag
syn cluster vimDefList contains=vimFuncBang,vimFunctionError,vimDefKey,vimFuncSID,Tag
-syn cluster vimFuncBodyCommon contains=@vimCmdList,vimCmplxRepeat,vimContinue,vimCtrlChar,vimDef,vimEnvvar,vimFBVar,vimFunc,vimFunction,vimLetHereDoc,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegister,vimSearch,vimSpecFile,vimString,vimSubst,vimFuncFold
+syn cluster vimFuncBodyCommon contains=@vimCmdList,vimCmplxRepeat,vimContinue,vimCtrlChar,vimDef,vimEnvvar,vimFBVar,vimFunc,vimFunction,vimLetHereDoc,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegister,vimSearch,vimSpecFile,vimString,vimSubst,vimFuncFold,vimDefFold
syn cluster vimFuncBodyList contains=@vimFuncBodyCommon,vimComment,vimLineComment,vimFuncVar,vimInsert,vimConst,vimLet
syn cluster vimDefBodyList contains=@vimFuncBodyCommon,vim9Comment,vim9LineComment,vim9Const,vim9Final,vim9Var,vim9Null,vim9Boolean,vim9For
@@ -318,8 +342,7 @@
syn match vimDef "\<def\>" skipwhite nextgroup=vimCmdSep,vimComment,vimFuncPattern contains=vimDefKey
syn match vimFunction "\<fu\%[nction]\>!\=\s*\%(<[sS][iI][dD]>\|[sg]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)\+" contains=@vimFuncList skipwhite nextgroup=vimFuncParams
-syn match vimDef "\<def\s\+new\%(\i\|{.\{-1,}}\)\+" contains=@vimDefList nextgroup=vimDefParams
-syn match vimDef "\<def\>!\=\s*\%(<[sS][iI][dD]>\|[sg]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)\+" contains=@vimDefList,vimMethodName nextgroup=vimDefParams
+syn match vimDef "\<def\>!\=\s*\%(<[sS][iI][dD]>\|[sg]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)\+" contains=@vimDefList nextgroup=vimDefParams
syn match vimFuncComment contained +".*+ skipwhite skipempty nextgroup=vimFuncBody,vimEndfunction
syn match vimDefComment contained "#.*" skipwhite skipempty nextgroup=vimDefBody,vimEnddef
@@ -329,7 +352,6 @@
syn match vimFuncSID contained "\<[sg]:"
syn keyword vimFuncKey contained fu[nction]
syn keyword vimDefKey contained def
-syn keyword vimMethodName contained empty len string
syn region vimFuncParams contained matchgroup=Delimiter start="(" skip=+\n\s*\\\|\n\s*"\\ + end=")" skipwhite skipempty nextgroup=vimFuncBody,vimFuncComment,vimEndfunction,vimFuncMod,vim9CommentError contains=vimFuncParam,@vimContinue
syn region vimDefParams contained matchgroup=Delimiter start="(" end=")" skipwhite skipempty nextgroup=vimDefBody,vimDefComment,vimEnddef,vimReturnType,vimCommentError contains=vimDefParam,vim9Comment,vimFuncParamEquals
@@ -346,9 +368,8 @@
syn match vimEnddef "\<enddef\>" skipwhite nextgroup=vimCmdSep,vim9Comment,vimCommentError
if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'f'
- syn region vimFuncFold start="\<fu\%[nction]\>!\=\s*\%(<[sS][iI][dD]>\|[sg]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)\+\s*(" end="\<endf\%[unction]\>" contains=vimFunction fold keepend extend transparent
- syn region vimFuncFold start="\<def\>!\=\s*\%(<[sS][iI][dD]>\|[sg]:\)\=\%(\i\|[#.]\)\+(" end="\<enddef\>" contains=vimDef fold keepend extend transparent
- syn region vimFuncFold start="\<def\s\+new\i\+(" end="\<enddef\>" contains=vimDef fold keepend extend transparent
+ syn region vimFuncFold start="\<fu\%[nction]\>!\=\s*\%(<[sS][iI][dD]>\|[sg]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)\+\s*(" end="\<endf\%[unction]\>" contains=vimFunction fold keepend extend transparent
+ syn region vimDefFold start="\<def\>!\=\s*\%(<[sS][iI][dD]>\|[sg]:\)\=\%(\i\|[#.]\)\+(" end="\<enddef\>" contains=vimDef fold keepend extend transparent
endif
syn match vimFuncVar contained "a:\%(\K\k*\|\d\+\)\>"
@@ -369,6 +390,100 @@
syn cluster vimType contains=vimType,vimCompoundType,vimUserType
+" Classes, Enums And Interfaces: {{{2
+" =============================
+
+if s:vim9script
+ " Methods {{{3
+ syn match vim9MethodDef contained "\<def\>" skipwhite nextgroup=vim9MethodDefName
+ syn match vim9MethodDefName contained "\<\h\w*\>" nextgroup=vim9MethodDefParams contains=@vim9MethodName
+ syn region vim9MethodDefParams contained
+ \ matchgroup=Delimiter start="(" end=")"
+ \ skipwhite skipnl nextgroup=vim9MethodDefBody,vimDefComment,vimEnddef,vim9MethodDefReturnType,vimCommentError
+ \ contains=vimDefParam,vim9Comment,vimFuncParamEquals
+ syn region vim9MethodDefReturnType contained
+ \ start=":\s" end="$" matchgroup=vim9Comment end="\ze[#"]"
+ \ skipwhite skipnl nextgroup=vim9MethodDefBody,vimDefComment,vimCommentError
+ \ contains=vimTypeSep
+ \ transparent
+ syn region vim9MethodDefBody contained
+ \ start="^.\=" matchgroup=vimCommand end="\<enddef\>"
+ \ skipwhite nextgroup=vimCmdSep,vim9Comment,vimCommentError
+ \ contains=@vim9MethodDefBodyList
+
+ syn cluster vim9MethodDefBodyList contains=@vimDefBodyList,vim9This,vim9Super
+
+ if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimfunctionerror")
+ syn match vim9MethodNameError contained "\<[a-z0-9]\i\>"
+ endif
+ syn match vim9MethodName contained "\<new\i*\>"
+ syn keyword vim9MethodName contained empty len string
+
+ syn cluster vim9MethodName contains=vim9MethodName,vim9MethodNameError
+
+ if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'f'
+ syn region vim9MethodDefFold contained start="\%(^\s*\%(:\=static\s\+\)\=\)\@16<=:\=def\s\+\h\i*(" end="^\s*:\=enddef\>" contains=vim9MethodDef fold keepend extend transparent
+ syn region vim9MethodDefFold contained start="^\s*:\=def\s\+new\i*(" end="^\s*:\=enddef\>" contains=vim9MethodDef fold keepend extend transparent
+ endif
+
+ syn cluster vim9MethodDef contains=vim9MethodDef,vim9MethodDefFold
+
+ " Classes {{{3
+ syn cluster vim9ClassBodyList contains=vim9Abstract,vim9Class,vim9Comment,vim9LineComment,@vim9Continue,@vimExprList,vim9Extends,vim9Implements,@vim9MethodDef,vim9Public,vim9Static,vim9Const,vim9Final,vim9This,vim9Super,vim9Var
+
+ syn match vim9Class contained "\<class\>" skipwhite nextgroup=vim9ClassName
+ syn match vim9ClassName contained "\<\u\w*\>" skipwhite skipnl nextgroup=vim9Extends,vim9Implements
+ syn match vim9SuperClass contained "\<\u\w*\>" skipwhite skipnl nextgroup=vim9Implements
+ syn match vim9ImplementedInterface contained "\<\u\w*\>" skipwhite skipnl nextgroup=vim9InterfaceListComma,vim9Extends
+ syn match vim9InterfaceListComma contained "," skipwhite skipnl nextgroup=vim9ImplementedInterface
+ syn keyword vim9Abstract abstract skipwhite skipnl nextgroup=vim9ClassBody,vim9AbstractDef
+ syn keyword vim9Extends contained extends skipwhite skipnl nextgroup=vim9SuperClass
+ syn keyword vim9Implements contained implements skipwhite skipnl nextgroup=vim9ImplementedInterface
+ syn keyword vim9Public contained public
+ syn keyword vim9Static contained static
+ syn keyword vim9This contained this
+ syn keyword vim9Super contained super
+
+ VimFoldc syn region vim9ClassBody start="\<class\>" matchgroup=vimCommand end="\<endclass\>" contains=@vim9ClassBodyList transparent
+
+ " Enums {{{3
+ syn cluster vim9EnumBodyList contains=vim9Comment,vim9LineComment,@vim9Continue,vim9Enum,vim9Implements,@vim9MethodDef,vim9Const,vim9Final,vim9Var
+
+ syn match vim9Enum contained "\<enum\>" skipwhite nextgroup=vim9EnumName
+ syn match vim9EnumName contained "\<\u\w*\>" skipwhite skipnl nextgroup=vim9Implements
+
+ VimFolde syn region vim9EnumBody start="\<enum\>" matchgroup=vimCommand end="\<endenum\>" contains=@vim9EnumBodyList transparent
+
+ " Interfaces {{{3
+ " TODO: limit to decl only - no init values
+ syn cluster vim9InterfaceBodyList contains=vim9Comment,vim9LineComment,@vim9Continue,vim9Extends,vim9Interface,vim9AbstractDef,vim9Var
+
+ syn match vim9Interface contained "\<interface\>" skipwhite nextgroup=vim9InterfaceName
+ syn match vim9InterfaceName contained "\<\u\w*\>" skipwhite skipnl nextgroup=vim9Extends
+
+ syn keyword vim9AbstractDef contained def skipwhite nextgroup=vim9AbstractDefName
+ syn match vim9AbstractDefName contained "\<\h\w*\>" skipwhite nextgroup=vim9AbstractDefParams contains=@vim9MethodName
+ syn region vim9AbstractDefParams contained
+ \ matchgroup=Delimiter start="(" end=")"
+ \ skipwhite skipnl nextgroup=vimDefComment,vim9AbstractDefReturnType,vimCommentError
+ \ contains=vimDefParam,vim9Comment,vimFuncParamEquals
+ syn region vim9AbstractDefReturnType contained
+ \ start=":\s" end="$" matchgroup=vim9Comment end="\ze[#"]"
+ \ skipwhite skipnl nextgroup=vimDefComment,vimCommentError
+ \ contains=vimTypeSep
+ \ transparent
+
+ VimFoldi syn region vim9InterfaceBody start="\<interface\>" matchgroup=vimCommand end="\<endinterface\>" contains=@vim9InterfaceBodyList transparent
+
+ " type {{{3
+ syn match vim9Type "\<ty\%[pe]\>" skipwhite nextgroup=vim9TypeAlias,vim9TypeAliasError
+ syn match vim9TypeAlias contained "\<\u\w*\>" skipwhite nextgroup=vim9TypeEquals
+ syn match vim9TypeEquals contained "=" skipwhite nextgroup=@vimType
+ if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_notypealiaserror")
+ syn match vim9TypeAliasError contained "\<\U\w*"
+ endif
+endif
+
" Keymaps: {{{2
" =======
@@ -587,7 +702,7 @@
Vim9 syn keyword vim9Final final skipwhite nextgroup=vim9Variable,vim9VariableList
Vim9 syn keyword vim9Var var skipwhite nextgroup=vim9Variable,vim9VariableList
-syn match vim9Variable contained "\<\h\w*\>" skipwhite nextgroup=vimTypeSep,vimLetHereDoc
+syn match vim9Variable contained "\<\h\w*\>" skipwhite nextgroup=vimTypeSep,vimLetHereDoc,vimOper
syn region vim9VariableList contained start="\[" end="]" contains=vim9Variable,@vimContinue
" For: {{{2
@@ -714,7 +829,7 @@
" (following Gautam Iyer's suggestion)
" ==========================
syn match vimFunc "\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%(\w\+\.\)*\I[a-zA-Z0-9_.]*\)\ze\s*(" contains=vimFuncEcho,vimFuncName,vimUserFunc,vimExecute
-syn match vimUserFunc contained "\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%(\w\+\.\)*\I[a-zA-Z0-9_.]*\)\|\<\u[a-zA-Z0-9.]*\>\|\<if\>" contains=vimNotation,vimMethodName
+syn match vimUserFunc contained "\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%(\w\+\.\)*\I[a-zA-Z0-9_.]*\)\|\<\u[a-zA-Z0-9.]*\>\|\<if\>" contains=vimNotation,vim9MethodName
syn keyword vimFuncEcho contained ec ech echo
syn match vimMap "\<map\%(\s\+(\)\@=" skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs
@@ -725,10 +840,7 @@
" Errors And Warnings: {{{2
" ====================
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimfunctionerror")
- " TODO: The new-prefix exception should only apply to constructor definitions.
- " TODO: The |builtin-object-methods| exception should only apply to method
- " definitions.
- syn match vimFunctionError "\s\zs\%(empty\|len\|new\|string\)\@![a-z0-9]\i\{-}\ze\s*(" contained contains=vimFuncKey,vimFuncBlank
+ syn match vimFunctionError "\s\zs[a-z0-9]\i\{-}\ze\s*(" contained contains=vimFuncKey,vimFuncBlank
syn match vimFunctionError "\s\zs\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\d\i\{-}\ze\s*(" contained contains=vimFuncKey,vimFuncBlank
syn match vimElseIfErr "\<else\s\+if\>"
syn match vimBufnrWarn /\<bufnr\s*(\s*["']\.['"]\s*)/
@@ -934,7 +1046,10 @@
syn match vimContinue "^\s*\zs\\"
syn match vimContinueComment '^\s*\zs["#]\\ .*'
-syn cluster vimContinue contains=vimContinue,vimContinueComment
+syn match vim9ContinueComment "^\s*\zs#\\ .*"
+syn cluster vimContinue contains=vimContinue,vimContinueComment
+syn cluster vim9Continue contains=vimContinue,vim9ContinueComment
+
syn region vimString start="^\s*\\\z(['"]\)" skip='\\\\\|\\\z1' end="\z1" oneline keepend contains=@vimStringGroup,vimContinue
syn match vimCommentTitleLeader '"\s\+'ms=s+1 contained
syn match vim9CommentTitleLeader '#\s\+'ms=s+1 contained
@@ -1189,6 +1304,8 @@
hi def link vimSynCaseError vimError
hi def link vimSynFoldMethodError vimError
hi def link vimBufnrWarn vimWarn
+
+ hi def link vim9TypeAliasError vimError
endif
hi def link vimAbb vimCommand
@@ -1298,7 +1415,7 @@
hi def link vimMenuPriority Number
hi def link vimMenuStatus Special
hi def link vimMenutranslateComment vimComment
- hi def link vimMethodName vimFuncName
+ hi def link vim9MethodName vimFuncName
hi def link vimMtchComment vimComment
hi def link vimNorm vimCommand
hi def link vimNotation Special
@@ -1392,19 +1509,36 @@
hi def link vimVar Identifier
hi def link vimWarn WarningMsg
+ hi def link vim9Abstract vimCommand
hi def link vim9Boolean Boolean
+ hi def link vim9Class vimCommand
hi def link vim9Comment Comment
hi def link vim9CommentError vimError
hi def link vim9CommentTitle PreProc
hi def link vim9Const vimCommand
+ hi def link vim9ContinueComment vimContinueComment
+ hi def link vim9Enum vimCommand
+ hi def link vim9Export vimCommand
+ hi def link vim9Extends Keyword
hi def link vim9Final vimCommand
hi def link vim9For vimCommand
+ hi def link vim9Implements Keyword
+ hi def link vim9AbstractDef vimCommand
+ hi def link vim9Interface vimCommand
hi def link vim9LineComment vimComment
+ hi def link vim9MethodDef vimCommand
+ hi def link vim9MethodNameError vimFunctionError
hi def link vim9Null Constant
- hi def link vim9Var vimCommand
+ hi def link vim9Public vimCommand
+ hi def link vim9Static vimCommand
+ hi def link vim9Super Identifier
+ hi def link vim9This Identifier
+ hi def link vim9Type vimCommand
+ hi def link vim9TypeEquals vimOper
hi def link vim9Variable vimVar
- hi def link vim9Vim9Script vimCommand
+ hi def link vim9Var vimCommand
hi def link vim9Vim9ScriptArg Special
+ hi def link vim9Vim9Script vimCommand
endif
" Current Syntax Variable: {{{2
@@ -1415,9 +1549,12 @@
delc Vim9
delc VimL
delc VimFolda
+delc VimFoldc
+delc VimFolde
delc VimFoldf
delc VimFoldh
delc VimFoldH
+delc VimFoldi
delc VimFoldl
delc VimFoldm
delc VimFoldp