runtime(vim): Update base-syntax, improve performance

Commit: 
https://github.com/vim/vim/commit/68ba6c2c6c165796225f321597341a464fd72b63
Author: Doug Kearns <dougkea...@gmail.com>
Date:   Sun Feb 16 16:40:12 2025 +0100

    runtime(vim): Update base-syntax, improve performance
    
    Contain the vimNotation syntax group, matching this at top level is
    unnecessary and very slow.
    
    The removed vimString and vimNumber definitions are broken and/or never
    match. They have long been replaced by newer definitions.
    
    closes: #16645
    
    Signed-off-by: Doug Kearns <dougkea...@gmail.com>
    Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/runtime/syntax/generator/vim.vim.base 
b/runtime/syntax/generator/vim.vim.base
index d2ddd1c90..009b2083b 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 <dougkea...@gmail.com>
-" Last Change:    2025 Feb 13
+" Last Change:    2025 Feb 16
 " Former Maintainer: Charles E. Campbell
 
 " DO NOT CHANGE DIRECTLY.
@@ -199,7 +199,6 @@ syn match   vimNumber       '\<0o\=\o\+'                    
skipwhite nextgroup=vimGlobal,vimSubst1,@vimC
 syn match      vimNumber       '\<0x\x\+'                      skipwhite 
nextgroup=vimGlobal,vimSubst1,@vimComment,vimSubscript
 syn match      vimNumber       '\<0z\>'                        skipwhite 
nextgroup=vimGlobal,vimSubst1,@vimComment
 syn match      vimNumber       '\<0z\%(\x\x\)\+\%(\.\%(\x\x\)\+\)*'    
skipwhite nextgroup=vimGlobal,vimSubst1,@vimComment,vimSubscript
-syn match      vimNumber       '\%(^\|\A\)\zs#\x\{6}'          skipwhite 
nextgroup=vimGlobal,vimSubst1,@vimComment
 syn case match
 
 " All vimCommands are contained by vimIsCommand. {{{2
@@ -360,7 +359,7 @@ syn match   vim9LambdaOperatorComment contained "#.*" 
skipwhite skipempty nextgrou
 syn cluster    vimFuncList     
contains=vimFuncBang,vimFunctionError,vimFuncKey,vimFuncScope,vimFuncSID,Tag
 syn cluster    vimDefList      
contains=vimFuncBang,vimFunctionError,vimDefKey,vimFuncScope,vimFuncSID,Tag
 
-syn cluster    vimFuncBodyCommon       
contains=@vimCmdList,vimCmplxRepeat,vimContinue,vimCtrlChar,vimDef,vimFBVar,vimFunc,vimFunction,vimLetHereDoc,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegister,vimSpecFile,vimString,vimSubst,vimFuncFold,vimDefFold
+syn cluster    vimFuncBodyCommon       
contains=@vimCmdList,vimCmplxRepeat,vimContinue,vimCtrlChar,vimDef,vimFBVar,vimFunc,vimFunction,vimLetHereDoc,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegister,vimSpecFile,vimString,vimSubst,vimFuncFold,vimDefFold
 syn cluster    vimFuncBodyList 
contains=@vimFuncBodyCommon,vimComment,vimLineComment,vimInsert,vimConst,vimLet,vimSearch
 syn cluster    vimDefBodyList  
contains=@vimFuncBodyCommon,vim9Comment,vim9LineComment,vim9Block,vim9Const,vim9Final,vim9Var,vim9Null,vim9Boolean,vim9For,vim9LhsVariable,vim9LhsVariableList,vim9LhsRegister,vim9Search,@vimSpecialVar
 
@@ -630,7 +629,10 @@ syn match  vimCommentError contained       +".*+
 syn match      vimEnvvar       "\$\I\i*"
 syn match      vimEnvvar       "\${\I\i*}"
 
-" In-String Specials: {{{2
+" Strings {{{2
+" =======
+
+" In-String Specials:
 " Try to catch strings, if nothing else matches (therefore it must precede the 
others!)
 "  vimEscapeBrace handles ["]  []"] (ie. "s don't terminate string inside [])
 syn region     vimEscapeBrace  oneline   contained transparent 
start="[^\]\(\\\)*\[\zs\^\=\]\=" skip="\\\|\\]" end="]"me=e-1
@@ -643,8 +645,6 @@ syn cluster vimStringGroup  
contains=vimEscape,vimEscapeBrace,vimPatSep,vimNotPat
 syn region     vimString       oneline keepend matchgroup=vimString 
start=+[^a-zA-Z>\@]"+lc=1 skip=+\\\|\"+ matchgroup=vimStringEnd end=+"+ 
nextgroup=vimSubscript contains=@vimStringGroup extend
 syn region     vimString       oneline matchgroup=vimString 
start=+[^a-zA-Z>\@]'+lc=1 end=+'+                 nextgroup=vimSubscript 
contains=vimQuoteEscape  extend
 "syn region    vimString       oneline start="\s/\s*\A"lc=1 skip="\\\|\+" 
end="/"      contains=@vimStringGroup  " see tst45.vim
-syn match      vimString       contained       +"[^"]*\$+      skipnl 
nextgroup=vimStringCont
-syn match      vimStringCont   contained       +\(\\\|.\)\{-}[^\]"+
 
 syn match      vimEscape       contained       "\."
 " syn match    vimEscape       contained       +\[befnrt\"]+
@@ -685,9 +685,6 @@ syn match   vimSubstFlags   contained       
"[&cegiIlnpr#]\+"
 syn match      vimSubstDelim   contained       "\"
 syn match      vimSubstPat     contained       "\\ze[/?&]" 
contains=vimSubstDelim nextgroup=vimSubstRep4
 
-" 'String': {{{2
-syn match      vimString       "[^(,]'[^']\{-}\zs'"
-
 " Marks, Registers, Addresses, Filters: {{{2
 syn match      vimMark "'[a-zA-Z0-9]\ze[-+,!]" 
nextgroup=vimFilter,vimMarkNumber,vimSubst1
 syn match      vimMark "'[[\]{}()<>]\ze[-+,!]" 
nextgroup=vimFilter,vimMarkNumber,vimSubst1
@@ -875,22 +872,22 @@ syn match vimMenutranslateComment +".*+ contained 
containedin=vimMenutranslate
 " Angle-Bracket Notation: (tnx to Michael Geddes) {{{2
 " ======================
 syn case ignore
-syn match      vimNotation     
"\%#=1\%(\\|<lt>\)\=<\%([scamd]-\)\{0,4}x\=\%(f\d\{1,2}\|[^     
:]\|space\|bar\|bslash\|nl\|newline\|lf\|linefeed\|cr\|retu\%[rn]\|enter\|k\=del\%[ete]\|bs\|backspace\|tab\|esc\|csi\|right\|paste\%(start\|end\)\|left\|help\|undo\|k\=insert\|ins\|mouse\|[kz]\=home\|[kz]\=end\|kplus\|kminus\|kdivide\|kmultiply\|kenter\|kpoint\|space\|k\=\%(page\)\=\%(\|down\|up\|k\d\>\)\)>"
 contains=vimBracket
-
-syn match      vimNotation     
"\%#=1\%(\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}\%(net\|dec\|jsb\|pterm\|urxvt\|sgr\)mouse>"
         contains=vimBracket
-syn match      vimNotation     
"\%#=1\%(\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}\%(left\|middle\|right\)\%(mouse\|drag\|release\)>"
  contains=vimBracket
-syn match      vimNotation     
"\%#=1\%(\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}left\%(mouse\|release\)nm>"          
        contains=vimBracket
-syn match      vimNotation     
"\%#=1\%(\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}x[12]\%(mouse\|drag\|release\)>"     
        contains=vimBracket
-syn match      vimNotation     
"\%#=1\%(\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}sgrmouserelease>"                    
contains=vimBracket
-syn match      vimNotation     
"\%#=1\%(\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}mouse\%(up\|down\|move\)>"           
        contains=vimBracket
-syn match      vimNotation     
"\%#=1\%(\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}scrollwheel\%(up\|down\|right\|left\)>"
              contains=vimBracket
-
-syn match      vimNotation     
"\%#=1\%(\\|<lt>\)\=<\%(sid\|nop\|nul\|lt\|drop\)>"                             
contains=vimBracket
-syn match      vimNotation     
"\%#=1\%(\\|<lt>\)\=<\%(snr\|plug\|cursorhold\|ignore\|cmd\|scriptcmd\|focus\%(gained\|lost\)\)>"
       contains=vimBracket
-syn match      vimNotation     '\%(\\|<lt>\)\=<C-R>[0-9a-z"%#:.\-=]'he=e-1     
                        contains=vimBracket
-syn match      vimNotation     
'\%#=1\%(\\|<lt>\)\=<\%(q-\)\=\%(line[12]\|count\|bang\|reg\|args\|mods\|f-args\|f-mods\|lt\)>'
 contains=vimBracket
-syn match      vimNotation     
"\%#=1\%(\\|<lt>\)\=<\%([cas]file\|abuf\|amatch\|cexpr\|cword\|cWORD\|client\|stack\|script\|sf\=lnum\)>"
       contains=vimBracket
-syn match      vimNotation     
"\%#=1\%(\\|<lt>\)\=<\%([scamd]-\)\{0,4}char-\%(\d\+\|0\o\+\|0x\x\+\)>"         
contains=vimBracket
+syn match      vimNotation     contained       
"\%#=1\%(\\|<lt>\)\=<\%([scamd]-\)\{0,4}x\=\%(f\d\{1,2}\|[^     
:]\|space\|bar\|bslash\|nl\|newline\|lf\|linefeed\|cr\|retu\%[rn]\|enter\|k\=del\%[ete]\|bs\|backspace\|tab\|esc\|csi\|right\|paste\%(start\|end\)\|left\|help\|undo\|k\=insert\|ins\|mouse\|[kz]\=home\|[kz]\=end\|kplus\|kminus\|kdivide\|kmultiply\|kenter\|kpoint\|space\|k\=\%(page\)\=\%(\|down\|up\|k\d\>\)\)>"
 contains=vimBracket
+
+syn match      vimNotation     contained       
"\%#=1\%(\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}\%(net\|dec\|jsb\|pterm\|urxvt\|sgr\)mouse>"
         contains=vimBracket
+syn match      vimNotation     contained       
"\%#=1\%(\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}\%(left\|middle\|right\)\%(mouse\|drag\|release\)>"
  contains=vimBracket
+syn match      vimNotation     contained       
"\%#=1\%(\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}left\%(mouse\|release\)nm>"          
        contains=vimBracket
+syn match      vimNotation     contained       
"\%#=1\%(\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}x[12]\%(mouse\|drag\|release\)>"     
        contains=vimBracket
+syn match      vimNotation     contained       
"\%#=1\%(\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}sgrmouserelease>"                    
contains=vimBracket
+syn match      vimNotation     contained       
"\%#=1\%(\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}mouse\%(up\|down\|move\)>"           
        contains=vimBracket
+syn match      vimNotation     contained       
"\%#=1\%(\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}scrollwheel\%(up\|down\|right\|left\)>"
              contains=vimBracket
+
+syn match      vimNotation     contained       
"\%#=1\%(\\|<lt>\)\=<\%(sid\|nop\|nul\|lt\|drop\)>"                             
contains=vimBracket
+syn match      vimNotation     contained       
"\%#=1\%(\\|<lt>\)\=<\%(snr\|plug\|cursorhold\|ignore\|cmd\|scriptcmd\|focus\%(gained\|lost\)\)>"
       contains=vimBracket
+syn match      vimNotation     contained       
'\%(\\|<lt>\)\=<C-R>[0-9a-z"%#:.\-=]'he=e-1                             
contains=vimBracket
+syn match      vimNotation     contained       
'\%#=1\%(\\|<lt>\)\=<\%(q-\)\=\%(line[12]\|count\|bang\|reg\|args\|mods\|f-args\|f-mods\|lt\)>'
 contains=vimBracket
+syn match      vimNotation     contained       
"\%#=1\%(\\|<lt>\)\=<\%([cas]file\|abuf\|amatch\|cexpr\|cword\|cWORD\|client\|stack\|script\|sf\=lnum\)>"
       contains=vimBracket
+syn match      vimNotation     contained       
"\%#=1\%(\\|<lt>\)\=<\%([scamd]-\)\{0,4}char-\%(\d\+\|0\o\+\|0x\x\+\)>"         
contains=vimBracket
 
 syn match      vimBracket contained    "[\<>]"
 syn case match
@@ -916,7 +913,7 @@ if !exists("g:vimsyn_noerror") && 
!exists("g:vimsyn_novimfunctionerror")
  syn match     vimBufnrWarn    /\<bufnr\s*(\s*["']\.['"]\s*)/
 endif
 
-syn match vimNotFunc   "\<if\>\|\<el\%[seif]\>\|\<retu\%[rn]\>\|\<while\>"     
skipwhite nextgroup=@vimExprList,vimNotation
+syn match      vimNotFunc      
"\%#=1\<\%(if\|el\%[seif]\|retu\%[rn]\|while\)\>"       skipwhite 
nextgroup=@vimExprList,vimNotation
 
 " Match: {{{2
 " =====
diff --git a/runtime/syntax/testdir/dumps/vim_key_notation_00.dump 
b/runtime/syntax/testdir/dumps/vim_key_notation_00.dump
index ed58e2fde..ea3711595 100644
--- a/runtime/syntax/testdir/dumps/vim_key_notation_00.dump
+++ b/runtime/syntax/testdir/dumps/vim_key_notation_00.dump
@@ -1,20 +1,20 @@
 >"+0#0000e05#ffffff0| |K|e|y| |n|o|t|a|t|i|o|n| +0#0000000&@60
 @75
-|<+0#e000e06&|S|p|a|c|e|>| +0#0000000&@67
-|<+0#e000e06&|T|a|b|>| +0#0000000&@69
-|<+0#e000e06&|T|a|b|>| +0#0000000&@69
-|<+0#e000e06&|N|L|>| +0#0000000&@70
-|<+0#e000e06&|N|e|w|L|i|n|e|>| +0#0000000&@65
-|<+0#e000e06&|L|i|n|e|F|e@1|d|>| +0#0000000&@64
-|<+0#e000e06&|L|F|>| +0#0000000&@70
-|<+0#e000e06&|C|R|>| +0#0000000&@70
-|<+0#e000e06&|R|e|t|u|r|n|>| +0#0000000&@66
-|<+0#e000e06&|E|n|t|e|r|>| +0#0000000&@67
-|<+0#e000e06&|B|S|>| +0#0000000&@70
-|<+0#e000e06&|B|a|c|k|S|p|a|c|e|>| +0#0000000&@63
-|<+0#e000e06&|E|s|c|>| +0#0000000&@69
-|<+0#e000e06&|C|S|I|>| +0#0000000&@69
-|<+0#e000e06&|x|C|S|I|>| +0#0000000&@68
-|<+0#e000e06&|B|a|r|>| +0#0000000&@69
-|<+0#e000e06&|B|s|l|a|s|h|>| +0#0000000&@66
+|m+0#af5f00255&|a|p| +0#0000000&|f|o@1| @67
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|S|p|a|c|e|>| +0#0000000&@59
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|T|a|b|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|T|a|b|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|N|L|>| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|N|e|w|L|i|n|e|>| +0#0000000&@57
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|L|i|n|e|F|e@1|d|>| +0#0000000&@56
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|L|F|>| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|C|R|>| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|R|e|t|u|r|n|>| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|E|n|t|e|r|>| +0#0000000&@59
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|B|S|>| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|B|a|c|k|S|p|a|c|e|>| +0#0000000&@55
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|E|s|c|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|C|S|I|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|x|C|S|I|>| +0#0000000&@60
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|B|a|r|>| +0#0000000&@61
 @57|1|,|1| @10|T|o|p| 
diff --git a/runtime/syntax/testdir/dumps/vim_key_notation_01.dump 
b/runtime/syntax/testdir/dumps/vim_key_notation_01.dump
index 0cbf0ee0f..b14d575da 100644
--- a/runtime/syntax/testdir/dumps/vim_key_notation_01.dump
+++ b/runtime/syntax/testdir/dumps/vim_key_notation_01.dump
@@ -1,20 +1,20 @@
-|<+0#e000e06#ffffff0|B|a|c|k|S|p|a|c|e|>| +0#0000000&@63
-|<+0#e000e06&|E|s|c|>| +0#0000000&@69
-|<+0#e000e06&|C|S|I|>| +0#0000000&@69
-|<+0#e000e06&|x|C|S|I|>| +0#0000000&@68
-|<+0#e000e06&|B|a|r|>| +0#0000000&@69
-><+0#e000e06&|B|s|l|a|s|h|>| +0#0000000&@66
-|<+0#e000e06&|D|e|l|>| +0#0000000&@69
-|<+0#e000e06&|D|e|l|e|t|e|>| +0#0000000&@66
-|<+0#e000e06&|k|D|e|l|>| +0#0000000&@68
-|<+0#e000e06&|U|p|>| +0#0000000&@70
-|<+0#e000e06&|D|o|w|n|>| +0#0000000&@68
-|<+0#e000e06&|L|e|f|t|>| +0#0000000&@68
-|<+0#e000e06&|R|i|g|h|t|>| +0#0000000&@67
-|<+0#e000e06&|x|U|p|>| +0#0000000&@69
-|<+0#e000e06&|x|D|o|w|n|>| +0#0000000&@67
-|<+0#e000e06&|x|L|e|f|t|>| +0#0000000&@67
-|<+0#e000e06&|x|R|i|g|h|t|>| +0#0000000&@66
-|<+0#e000e06&|P|a|s|t|e|S|t|a|r|t|>| +0#0000000&@62
-|<+0#e000e06&|P|a|s|t|e|E|n|d|>| +0#0000000&@64
-@57|1|9|,|1| @10|9|%| 
+| +0&#ffffff0@5|\+0#e000e06&| +0#0000000&|<+0#e000e06&|B|S|>| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|B|a|c|k|S|p|a|c|e|>| +0#0000000&@55
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|E|s|c|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|C|S|I|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|x|C|S|I|>| +0#0000000&@60
+@6>\+0#e000e06&| +0#0000000&|<+0#e000e06&|B|a|r|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|B|s|l|a|s|h|>| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|D|e|l|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|D|e|l|e|t|e|>| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|k|D|e|l|>| +0#0000000&@60
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|U|p|>| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|D|o|w|n|>| +0#0000000&@60
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|L|e|f|t|>| +0#0000000&@60
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|R|i|g|h|t|>| +0#0000000&@59
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|x|U|p|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|x|D|o|w|n|>| +0#0000000&@59
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|x|L|e|f|t|>| +0#0000000&@59
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|x|R|i|g|h|t|>| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|P|a|s|t|e|S|t|a|r|t|>| +0#0000000&@54
+@57|1|9|,|7| @10|8|%| 
diff --git a/runtime/syntax/testdir/dumps/vim_key_notation_02.dump 
b/runtime/syntax/testdir/dumps/vim_key_notation_02.dump
index 01fca78c4..5826a4ecc 100644
--- a/runtime/syntax/testdir/dumps/vim_key_notation_02.dump
+++ b/runtime/syntax/testdir/dumps/vim_key_notation_02.dump
@@ -1,20 +1,20 @@
-|<+0#e000e06#ffffff0|P|a|s|t|e|E|n|d|>| +0#0000000&@64
-|<+0#e000e06&|F|1|>| +0#0000000&@70
-|<+0#e000e06&|F|2|>| +0#0000000&@70
-|<+0#e000e06&|F|3|>| +0#0000000&@70
-|<+0#e000e06&|F|4|>| +0#0000000&@70
-><+0#e000e06&|F|5|>| +0#0000000&@70
-|<+0#e000e06&|F|6|>| +0#0000000&@70
-|<+0#e000e06&|F|7|>| +0#0000000&@70
-|<+0#e000e06&|F|8|>| +0#0000000&@70
-|<+0#e000e06&|F|9|>| +0#0000000&@70
-|<+0#e000e06&|F|1|0|>| +0#0000000&@69
-|<+0#e000e06&|F|1@1|>| +0#0000000&@69
-|<+0#e000e06&|F|1|2|>| +0#0000000&@69
-|<+0#e000e06&|F|1|3|>| +0#0000000&@69
-|<+0#e000e06&|F|1|4|>| +0#0000000&@69
-|<+0#e000e06&|F|1|5|>| +0#0000000&@69
-|<+0#e000e06&|F|1|6|>| +0#0000000&@69
-|<+0#e000e06&|F|1|7|>| +0#0000000&@69
-|<+0#e000e06&|F|1|8|>| +0#0000000&@69
-@57|3|7|,|1| @9|2|1|%| 
+| +0&#ffffff0@5|\+0#e000e06&| +0#0000000&|<+0#e000e06&|P|a|s|t|e|S|t|a|r|t|>| 
+0#0000000&@54
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|P|a|s|t|e|E|n|d|>| +0#0000000&@56
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|1|>| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|2|>| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|3|>| +0#0000000&@62
+@6>\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|4|>| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|5|>| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|6|>| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|7|>| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|8|>| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|9|>| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|1|0|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|1@1|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|1|2|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|1|3|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|1|4|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|1|5|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|1|6|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|1|7|>| +0#0000000&@61
+@57|3|7|,|7| @9|2|1|%| 
diff --git a/runtime/syntax/testdir/dumps/vim_key_notation_03.dump 
b/runtime/syntax/testdir/dumps/vim_key_notation_03.dump
index dfdf8902f..ccb9f026d 100644
--- a/runtime/syntax/testdir/dumps/vim_key_notation_03.dump
+++ b/runtime/syntax/testdir/dumps/vim_key_notation_03.dump
@@ -1,20 +1,20 @@
-|<+0#e000e06#ffffff0|F|1|8|>| +0#0000000&@69
-|<+0#e000e06&|F|1|9|>| +0#0000000&@69
-|<+0#e000e06&|F|2|0|>| +0#0000000&@69
-|<+0#e000e06&|F|2|1|>| +0#0000000&@69
-|<+0#e000e06&|F|2@1|>| +0#0000000&@69
-><+0#e000e06&|F|2|3|>| +0#0000000&@69
-|<+0#e000e06&|F|2|4|>| +0#0000000&@69
-|<+0#e000e06&|F|2|5|>| +0#0000000&@69
-|<+0#e000e06&|F|2|6|>| +0#0000000&@69
-|<+0#e000e06&|F|2|7|>| +0#0000000&@69
-|<+0#e000e06&|F|2|8|>| +0#0000000&@69
-|<+0#e000e06&|F|2|9|>| +0#0000000&@69
-|<+0#e000e06&|F|3|0|>| +0#0000000&@69
-|<+0#e000e06&|F|3|1|>| +0#0000000&@69
-|<+0#e000e06&|F|3|2|>| +0#0000000&@69
-|<+0#e000e06&|F|3@1|>| +0#0000000&@69
-|<+0#e000e06&|F|3|4|>| +0#0000000&@69
-|<+0#e000e06&|F|3|5|>| +0#0000000&@69
-|<+0#e000e06&|F|3|6|>| +0#0000000&@69
-@57|5@1|,|1| @9|3|4|%| 
+| +0&#ffffff0@5|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|1|7|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|1|8|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|1|9|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|2|0|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|2|1|>| +0#0000000&@61
+@6>\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|2@1|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|2|3|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|2|4|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|2|5|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|2|6|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|2|7|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|2|8|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|2|9|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|3|0|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|3|1|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|3|2|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|3@1|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|3|4|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|3|5|>| +0#0000000&@61
+@57|5@1|,|7| @9|3@1|%| 
diff --git a/runtime/syntax/testdir/dumps/vim_key_notation_04.dump 
b/runtime/syntax/testdir/dumps/vim_key_notation_04.dump
index 8820c2680..d34618752 100644
--- a/runtime/syntax/testdir/dumps/vim_key_notation_04.dump
+++ b/runtime/syntax/testdir/dumps/vim_key_notation_04.dump
@@ -1,20 +1,20 @@
-|<+0#e000e06#ffffff0|F|3|6|>| +0#0000000&@69
-|<+0#e000e06&|F|3|7|>| +0#0000000&@69
-|<+0#e000e06&|x|F|1|>| +0#0000000&@69
-|<+0#e000e06&|x|F|2|>| +0#0000000&@69
-|<+0#e000e06&|x|F|3|>| +0#0000000&@69
-><+0#e000e06&|x|F|4|>| +0#0000000&@69
-|<+0#e000e06&|H|e|l|p|>| +0#0000000&@68
-|<+0#e000e06&|U|n|d|o|>| +0#0000000&@68
-|<+0#e000e06&|I|n|s|e|r|t|>| +0#0000000&@66
-|<+0#e000e06&|I|n|s|>| +0#0000000&@69
-|<+0#e000e06&|k|I|n|s|e|r|t|>| +0#0000000&@65
-|<+0#e000e06&|H|o|m|e|>| +0#0000000&@68
-|<+0#e000e06&|k|H|o|m|e|>| +0#0000000&@67
-|<+0#e000e06&|x|H|o|m|e|>| +0#0000000&@67
-|<+0#e000e06&|z|H|o|m|e|>| +0#0000000&@67
-|<+0#e000e06&|E|n|d|>| +0#0000000&@69
-|<+0#e000e06&|k|E|n|d|>| +0#0000000&@68
-|<+0#e000e06&|x|E|n|d|>| +0#0000000&@68
-|<+0#e000e06&|z|E|n|d|>| +0#0000000&@68
-@57|7|3|,|1| @9|4|6|%| 
+| +0&#ffffff0@5|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|3|5|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|3|6|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|3|7|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|x|F|1|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|x|F|2|>| +0#0000000&@61
+@6>\+0#e000e06&| +0#0000000&|<+0#e000e06&|x|F|3|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|x|F|4|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|H|e|l|p|>| +0#0000000&@60
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|U|n|d|o|>| +0#0000000&@60
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|I|n|s|e|r|t|>| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|I|n|s|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|k|I|n|s|e|r|t|>| +0#0000000&@57
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|H|o|m|e|>| +0#0000000&@60
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|k|H|o|m|e|>| +0#0000000&@59
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|x|H|o|m|e|>| +0#0000000&@59
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|z|H|o|m|e|>| +0#0000000&@59
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|E|n|d|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|k|E|n|d|>| +0#0000000&@60
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|x|E|n|d|>| +0#0000000&@60
+@57|7|3|,|7| @9|4|5|%| 
diff --git a/runtime/syntax/testdir/dumps/vim_key_notation_05.dump 
b/runtime/syntax/testdir/dumps/vim_key_notation_05.dump
index 939bf89ba..2962483d0 100644
--- a/runtime/syntax/testdir/dumps/vim_key_notation_05.dump
+++ b/runtime/syntax/testdir/dumps/vim_key_notation_05.dump
@@ -1,20 +1,20 @@
-|<+0#e000e06#ffffff0|z|E|n|d|>| +0#0000000&@68
-|<+0#e000e06&|P|a|g|e|U|p|>| +0#0000000&@66
-|<+0#e000e06&|P|a|g|e|D|o|w|n|>| +0#0000000&@64
-|<+0#e000e06&|k|P|a|g|e|U|p|>| +0#0000000&@65
-|<+0#e000e06&|k|P|a|g|e|D|o|w|n|>| +0#0000000&@63
-><+0#e000e06&|k|P|l|u|s|>| +0#0000000&@67
-|<+0#e000e06&|k|M|i|n|u|s|>| +0#0000000&@66
-|<+0#e000e06&|k|D|i|v|i|d|e|>| +0#0000000&@65
-|<+0#e000e06&|k|M|u|l|t|i|p|l|y|>| +0#0000000&@63
-|<+0#e000e06&|k|E|n|t|e|r|>| +0#0000000&@66
-|<+0#e000e06&|k|P|o|i|n|t|>| +0#0000000&@66
-|<+0#e000e06&|k|0|>| +0#0000000&@70
-|<+0#e000e06&|k|1|>| +0#0000000&@70
-|<+0#e000e06&|k|2|>| +0#0000000&@70
-|<+0#e000e06&|k|3|>| +0#0000000&@70
-|<+0#e000e06&|k|4|>| +0#0000000&@70
-|<+0#e000e06&|k|5|>| +0#0000000&@70
-|<+0#e000e06&|k|6|>| +0#0000000&@70
-|<+0#e000e06&|k|7|>| +0#0000000&@70
-@57|9|1|,|1| @9|5|9|%| 
+| +0&#ffffff0@5|\+0#e000e06&| +0#0000000&|<+0#e000e06&|x|E|n|d|>| 
+0#0000000&@60
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|z|E|n|d|>| +0#0000000&@60
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|P|a|g|e|U|p|>| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|P|a|g|e|D|o|w|n|>| +0#0000000&@56
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|k|P|a|g|e|U|p|>| +0#0000000&@57
+@6>\+0#e000e06&| +0#0000000&|<+0#e000e06&|k|P|a|g|e|D|o|w|n|>| +0#0000000&@55
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|k|P|l|u|s|>| +0#0000000&@59
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|k|M|i|n|u|s|>| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|k|D|i|v|i|d|e|>| +0#0000000&@57
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|k|M|u|l|t|i|p|l|y|>| +0#0000000&@55
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|k|E|n|t|e|r|>| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|k|P|o|i|n|t|>| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|k|0|>| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|k|1|>| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|k|2|>| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|k|3|>| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|k|4|>| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|k|5|>| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|k|6|>| +0#0000000&@62
+@57|9|1|,|7| @9|5|8|%| 
diff --git a/runtime/syntax/testdir/dumps/vim_key_notation_06.dump 
b/runtime/syntax/testdir/dumps/vim_key_notation_06.dump
index e82c7f3eb..66a80f213 100644
--- a/runtime/syntax/testdir/dumps/vim_key_notation_06.dump
+++ b/runtime/syntax/testdir/dumps/vim_key_notation_06.dump
@@ -1,20 +1,20 @@
-|<+0#e000e06#ffffff0|k|7|>| +0#0000000&@70
-|<+0#e000e06&|k|8|>| +0#0000000&@70
-|<+0#e000e06&|k|9|>| +0#0000000&@70
-|<+0#e000e06&|l|t|>| +0#0000000&@70
-|<+0#e000e06&|M|o|u|s|e|>| +0#0000000&@67
-><+0#e000e06&|N|e|t|M|o|u|s|e|>| +0#0000000&@64
-|<+0#e000e06&|D|e|c|M|o|u|s|e|>| +0#0000000&@64
-|<+0#e000e06&|J|s|b|M|o|u|s|e|>| +0#0000000&@64
-|<+0#e000e06&|P|t|e|r|m|M|o|u|s|e|>| +0#0000000&@62
-|<+0#e000e06&|U|r|x|v|t|M|o|u|s|e|>| +0#0000000&@62
-|<+0#e000e06&|S|g|r|M|o|u|s|e|>| +0#0000000&@64
-|<+0#e000e06&|S|g|r|M|o|u|s|e|R|e|l|e|a|s|e|>| +0#0000000&@57
-|<+0#e000e06&|L|e|f|t|M|o|u|s|e|>| +0#0000000&@63
-|<+0#e000e06&|L|e|f|t|M|o|u|s|e|N|M|>| +0#0000000&@61
-|<+0#e000e06&|L|e|f|t|D|r|a|g|>| +0#0000000&@64
-|<+0#e000e06&|L|e|f|t|R|e|l|e|a|s|e|>| +0#0000000&@61
-|<+0#e000e06&|L|e|f|t|R|e|l|e|a|s|e|N|M|>| +0#0000000&@59
-|<+0#e000e06&|M|o|u|s|e|M|o|v|e|>| +0#0000000&@63
-|<+0#e000e06&|M|i|d@1|l|e|M|o|u|s|e|>| +0#0000000&@61
-@57|1|0|9|,|1| @8|7|1|%| 
+| +0&#ffffff0@5|\+0#e000e06&| +0#0000000&|<+0#e000e06&|k|6|>| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|k|7|>| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|k|8|>| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|k|9|>| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|l|t|>| +0#0000000&@62
+@6>\+0#e000e06&| +0#0000000&|<+0#e000e06&|M|o|u|s|e|>| +0#0000000&@59
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|N|e|t|M|o|u|s|e|>| +0#0000000&@56
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|D|e|c|M|o|u|s|e|>| +0#0000000&@56
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|J|s|b|M|o|u|s|e|>| +0#0000000&@56
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|P|t|e|r|m|M|o|u|s|e|>| +0#0000000&@54
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|U|r|x|v|t|M|o|u|s|e|>| +0#0000000&@54
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|S|g|r|M|o|u|s|e|>| +0#0000000&@56
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|S|g|r|M|o|u|s|e|R|e|l|e|a|s|e|>| 
+0#0000000&@49
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|L|e|f|t|M|o|u|s|e|>| +0#0000000&@55
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|L|e|f|t|M|o|u|s|e|N|M|>| 
+0#0000000&@53
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|L|e|f|t|D|r|a|g|>| +0#0000000&@56
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|L|e|f|t|R|e|l|e|a|s|e|>| 
+0#0000000&@53
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|L|e|f|t|R|e|l|e|a|s|e|N|M|>| 
+0#0000000&@51
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|M|o|u|s|e|M|o|v|e|>| +0#0000000&@55
+@57|1|0|9|,|7| @8|7|0|%| 
diff --git a/runtime/syntax/testdir/dumps/vim_key_notation_07.dump 
b/runtime/syntax/testdir/dumps/vim_key_notation_07.dump
index 3e21774e1..a05017e01 100644
--- a/runtime/syntax/testdir/dumps/vim_key_notation_07.dump
+++ b/runtime/syntax/testdir/dumps/vim_key_notation_07.dump
@@ -1,20 +1,20 @@
-|<+0#e000e06#ffffff0|M|i|d@1|l|e|M|o|u|s|e|>| +0#0000000&@61
-|<+0#e000e06&|M|i|d@1|l|e|D|r|a|g|>| +0#0000000&@62
-|<+0#e000e06&|M|i|d@1|l|e|R|e|l|e|a|s|e|>| +0#0000000&@59
-|<+0#e000e06&|R|i|g|h|t|M|o|u|s|e|>| +0#0000000&@62
-|<+0#e000e06&|R|i|g|h|t|D|r|a|g|>| +0#0000000&@63
-><+0#e000e06&|R|i|g|h|t|R|e|l|e|a|s|e|>| +0#0000000&@60
-|<+0#e000e06&|S|c|r|o|l@1|W|h|e@1|l|U|p|>| +0#0000000&@59
-|<+0#e000e06&|S|c|r|o|l@1|W|h|e@1|l|D|o|w|n|>| +0#0000000&@57
-|<+0#e000e06&|S|c|r|o|l@1|W|h|e@1|l|R|i|g|h|t|>| +0#0000000&@56
-|<+0#e000e06&|S|c|r|o|l@1|W|h|e@1|l|L|e|f|t|>| +0#0000000&@57
-|<+0#e000e06&|M|o|u|s|e|D|o|w|n|>| +0#0000000&@63
-|<+0#e000e06&|M|o|u|s|e|U|p|>| +0#0000000&@65
-|<+0#e000e06&|X|1|M|o|u|s|e|>| +0#0000000&@65
-|<+0#e000e06&|X|1|D|r|a|g|>| +0#0000000&@66
-|<+0#e000e06&|X|1|R|e|l|e|a|s|e|>| +0#0000000&@63
-|<+0#e000e06&|X|2|M|o|u|s|e|>| +0#0000000&@65
-|<+0#e000e06&|X|2|D|r|a|g|>| +0#0000000&@66
-|<+0#e000e06&|X|2|R|e|l|e|a|s|e|>| +0#0000000&@63
-|<+0#e000e06&|D|r|o|p|>| +0#0000000&@68
-@57|1|2|7|,|1| @8|8|4|%| 
+| +0&#ffffff0@5|\+0#e000e06&| +0#0000000&|<+0#e000e06&|M|o|u|s|e|M|o|v|e|>| 
+0#0000000&@55
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|M|i|d@1|l|e|M|o|u|s|e|>| 
+0#0000000&@53
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|M|i|d@1|l|e|D|r|a|g|>| +0#0000000&@54
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|M|i|d@1|l|e|R|e|l|e|a|s|e|>| 
+0#0000000&@51
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|R|i|g|h|t|M|o|u|s|e|>| +0#0000000&@54
+@6>\+0#e000e06&| +0#0000000&|<+0#e000e06&|R|i|g|h|t|D|r|a|g|>| +0#0000000&@55
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|R|i|g|h|t|R|e|l|e|a|s|e|>| 
+0#0000000&@52
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|S|c|r|o|l@1|W|h|e@1|l|U|p|>| 
+0#0000000&@51
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|S|c|r|o|l@1|W|h|e@1|l|D|o|w|n|>| 
+0#0000000&@49
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|S|c|r|o|l@1|W|h|e@1|l|R|i|g|h|t|>| 
+0#0000000&@48
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|S|c|r|o|l@1|W|h|e@1|l|L|e|f|t|>| 
+0#0000000&@49
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|M|o|u|s|e|D|o|w|n|>| +0#0000000&@55
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|M|o|u|s|e|U|p|>| +0#0000000&@57
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|X|1|M|o|u|s|e|>| +0#0000000&@57
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|X|1|D|r|a|g|>| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|X|1|R|e|l|e|a|s|e|>| +0#0000000&@55
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|X|2|M|o|u|s|e|>| +0#0000000&@57
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|X|2|D|r|a|g|>| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|X|2|R|e|l|e|a|s|e|>| +0#0000000&@55
+@57|1|2|7|,|7| @8|8|2|%| 
diff --git a/runtime/syntax/testdir/dumps/vim_key_notation_08.dump 
b/runtime/syntax/testdir/dumps/vim_key_notation_08.dump
index 733757527..37db049f7 100644
--- a/runtime/syntax/testdir/dumps/vim_key_notation_08.dump
+++ b/runtime/syntax/testdir/dumps/vim_key_notation_08.dump
@@ -1,20 +1,20 @@
-|<+0#e000e06#ffffff0|D|r|o|p|>| +0#0000000&@68
-|<+0#e000e06&|N|u|l|>| +0#0000000&@69
-|<+0#e000e06&|S|N|R|>| +0#0000000&@69
-|<+0#e000e06&|P|l|u|g|>| +0#0000000&@68
-|<+0#e000e06&|C|u|r|s|o|r|H|o|l|d|>| +0#0000000&@62
-><+0#e000e06&|I|g|n|o|r|e|>| +0#0000000&@66
-|<+0#e000e06&|C|m|d|>| +0#0000000&@69
-|<+0#e000e06&|S|c|r|i|p|t|C|m|d|>| +0#0000000&@63
-|<+0#e000e06&|F|o|c|u|s|G|a|i|n|e|d|>| +0#0000000&@61
-|<+0#e000e06&|F|o|c|u|s|L|o|s|t|>| +0#0000000&@63
-@75
-|<+0#e000e06&|c|w|o|r|d|>| +0#0000000&@67
-|<+0#e000e06&|c|W|O|R|D|>| +0#0000000&@67
-|<+0#e000e06&|c|e|x|p|r|>| +0#0000000&@67
-|<+0#e000e06&|c|f|i|l|e|>| +0#0000000&@67
-|<+0#e000e06&|a|f|i|l|e|>| +0#0000000&@67
-|<+0#e000e06&|a|b|u|f|>| +0#0000000&@68
-|<+0#e000e06&|a|m|a|t|c|h|>| +0#0000000&@66
-|<+0#e000e06&|s|f|i|l|e|>| +0#0000000&@67
-@57|1|4|5|,|1| @8|9|6|%| 
+| +0&#ffffff0@5|\+0#e000e06&| +0#0000000&|<+0#e000e06&|X|2|R|e|l|e|a|s|e|>| 
+0#0000000&@55
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|D|r|o|p|>| +0#0000000&@60
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|N|u|l|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|S|N|R|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|P|l|u|g|>| +0#0000000&@60
+@6>\+0#e000e06&| +0#0000000&|<+0#e000e06&|C|u|r|s|o|r|H|o|l|d|>| +0#0000000&@54
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|I|g|n|o|r|e|>| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|C|m|d|>| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|S|c|r|i|p|t|C|m|d|>| +0#0000000&@55
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|o|c|u|s|G|a|i|n|e|d|>| 
+0#0000000&@53
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|F|o|c|u|s|L|o|s|t|>| +0#0000000&@55
+@6|\+0#e000e06&| +0#0000000&@67
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|c|w|o|r|d|>| +0#0000000&@59
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|c|W|O|R|D|>| +0#0000000&@59
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|c|e|x|p|r|>| +0#0000000&@59
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|c|f|i|l|e|>| +0#0000000&@59
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|a|f|i|l|e|>| +0#0000000&@59
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|a|b|u|f|>| +0#0000000&@60
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|a|m|a|t|c|h|>| +0#0000000&@58
+@57|1|4|5|,|7| @8|9|5|%| 
diff --git a/runtime/syntax/testdir/dumps/vim_key_notation_09.dump 
b/runtime/syntax/testdir/dumps/vim_key_notation_09.dump
index d7fc77deb..d9adc7b3f 100644
--- a/runtime/syntax/testdir/dumps/vim_key_notation_09.dump
+++ b/runtime/syntax/testdir/dumps/vim_key_notation_09.dump
@@ -1,9 +1,11 @@
-|<+0#e000e06#ffffff0|s|f|i|l|e|>| +0#0000000&@67
-|<+0#e000e06&|s|t|a|c|k|>| +0#0000000&@67
-|<+0#e000e06&|s|c|r|i|p|t|>| +0#0000000&@66
-|<+0#e000e06&|s|l|n|u|m|>| +0#0000000&@67
-|<+0#e000e06&|s|f|l|n|u|m|>| +0#0000000&@66
-><+0#e000e06&|c|l|i|e|n|t|>| +0#0000000&@66
+| +0&#ffffff0@5|\+0#e000e06&| +0#0000000&|<+0#e000e06&|a|m|a|t|c|h|>| 
+0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|s|f|i|l|e|>| +0#0000000&@59
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|s|t|a|c|k|>| +0#0000000&@59
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|s|c|r|i|p|t|>| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|s|l|n|u|m|>| +0#0000000&@59
+@6>\+0#e000e06&| +0#0000000&|<+0#e000e06&|s|f|l|n|u|m|>| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|<+0#e000e06&|c|l|i|e|n|t|>| +0#0000000&@58
+@75
 |~+0#4040ff13&| @73
 |~| @73
 |~| @73
@@ -15,6 +17,4 @@
 |~| @73
 |~| @73
 |~| @73
-|~| @73
-|~| @73
-| +0#0000000&@56|1|6|3|,|1| @8|B|o|t| 
+| +0#0000000&@56|1|6|3|,|7| @8|B|o|t| 
diff --git a/runtime/syntax/testdir/input/vim_key_notation.vim 
b/runtime/syntax/testdir/input/vim_key_notation.vim
index 8bc128a4d..857249929 100644
--- a/runtime/syntax/testdir/input/vim_key_notation.vim
+++ b/runtime/syntax/testdir/input/vim_key_notation.vim
@@ -1,163 +1,165 @@
 " Key notation
  
-<Space>
-<Tab>
-<Tab>
-<NL>
-<NewLine>
-<LineFeed>
-<LF>
-<CR>
-<Return>
-<Enter>
-<BS>
-<BackSpace>
-<Esc>
-<CSI>
-<xCSI>
-<Bar>
-<Bslash>
-<Del>
-<Delete>
-<kDel>
-<Up>
-<Down>
-<Left>
-<Right>
-<xUp>
-<xDown>
-<xLeft>
-<xRight>
-<PasteStart>
-<PasteEnd>
-<F1>
-<F2>
-<F3>
-<F4>
-<F5>
-<F6>
-<F7>
-<F8>
-<F9>
-<F10>
-<F11>
-<F12>
-<F13>
-<F14>
-<F15>
-<F16>
-<F17>
-<F18>
-<F19>
-<F20>
-<F21>
-<F22>
-<F23>
-<F24>
-<F25>
-<F26>
-<F27>
-<F28>
-<F29>
-<F30>
-<F31>
-<F32>
-<F33>
-<F34>
-<F35>
-<F36>
-<F37>
-<xF1>
-<xF2>
-<xF3>
-<xF4>
-<Help>
-<Undo>
-<Insert>
-<Ins>
-<kInsert>
-<Home>
-<kHome>
-<xHome>
-<zHome>
-<End>
-<kEnd>
-<xEnd>
-<zEnd>
-<PageUp>
-<PageDown>
-<kPageUp>
-<kPageDown>
-<kPlus>
-<kMinus>
-<kDivide>
-<kMultiply>
-<kEnter>
-<kPoint>
-<k0>
-<k1>
-<k2>
-<k3>
-<k4>
-<k5>
-<k6>
-<k7>
-<k8>
-<k9>
-<lt>
-<Mouse>
-<NetMouse>
-<DecMouse>
-<JsbMouse>
-<PtermMouse>
-<UrxvtMouse>
-<SgrMouse>
-<SgrMouseRelease>
-<LeftMouse>
-<LeftMouseNM>
-<LeftDrag>
-<LeftRelease>
-<LeftReleaseNM>
-<MouseMove>
-<MiddleMouse>
-<MiddleDrag>
-<MiddleRelease>
-<RightMouse>
-<RightDrag>
-<RightRelease>
-<ScrollWheelUp>
-<ScrollWheelDown>
-<ScrollWheelRight>
-<ScrollWheelLeft>
-<MouseDown>
-<MouseUp>
-<X1Mouse>
-<X1Drag>
-<X1Release>
-<X2Mouse>
-<X2Drag>
-<X2Release>
-<Drop>
-<Nul>
-<SNR>
-<Plug>
-<CursorHold>
-<Ignore>
-<Cmd>
-<ScriptCmd>
-<FocusGained>
-<FocusLost>
+map foo 
+      \ <Space>
+      \ <Tab>
+      \ <Tab>
+      \ <NL>
+      \ <NewLine>
+      \ <LineFeed>
+      \ <LF>
+      \ <CR>
+      \ <Return>
+      \ <Enter>
+      \ <BS>
+      \ <BackSpace>
+      \ <Esc>
+      \ <CSI>
+      \ <xCSI>
+      \ <Bar>
+      \ <Bslash>
+      \ <Del>
+      \ <Delete>
+      \ <kDel>
+      \ <Up>
+      \ <Down>
+      \ <Left>
+      \ <Right>
+      \ <xUp>
+      \ <xDown>
+      \ <xLeft>
+      \ <xRight>
+      \ <PasteStart>
+      \ <PasteEnd>
+      \ <F1>
+      \ <F2>
+      \ <F3>
+      \ <F4>
+      \ <F5>
+      \ <F6>
+      \ <F7>
+      \ <F8>
+      \ <F9>
+      \ <F10>
+      \ <F11>
+      \ <F12>
+      \ <F13>
+      \ <F14>
+      \ <F15>
+      \ <F16>
+      \ <F17>
+      \ <F18>
+      \ <F19>
+      \ <F20>
+      \ <F21>
+      \ <F22>
+      \ <F23>
+      \ <F24>
+      \ <F25>
+      \ <F26>
+      \ <F27>
+      \ <F28>
+      \ <F29>
+      \ <F30>
+      \ <F31>
+      \ <F32>
+      \ <F33>
+      \ <F34>
+      \ <F35>
+      \ <F36>
+      \ <F37>
+      \ <xF1>
+      \ <xF2>
+      \ <xF3>
+      \ <xF4>
+      \ <Help>
+      \ <Undo>
+      \ <Insert>
+      \ <Ins>
+      \ <kInsert>
+      \ <Home>
+      \ <kHome>
+      \ <xHome>
+      \ <zHome>
+      \ <End>
+      \ <kEnd>
+      \ <xEnd>
+      \ <zEnd>
+      \ <PageUp>
+      \ <PageDown>
+      \ <kPageUp>
+      \ <kPageDown>
+      \ <kPlus>
+      \ <kMinus>
+      \ <kDivide>
+      \ <kMultiply>
+      \ <kEnter>
+      \ <kPoint>
+      \ <k0>
+      \ <k1>
+      \ <k2>
+      \ <k3>
+      \ <k4>
+      \ <k5>
+      \ <k6>
+      \ <k7>
+      \ <k8>
+      \ <k9>
+      \ <lt>
+      \ <Mouse>
+      \ <NetMouse>
+      \ <DecMouse>
+      \ <JsbMouse>
+      \ <PtermMouse>
+      \ <UrxvtMouse>
+      \ <SgrMouse>
+      \ <SgrMouseRelease>
+      \ <LeftMouse>
+      \ <LeftMouseNM>
+      \ <LeftDrag>
+      \ <LeftRelease>
+      \ <LeftReleaseNM>
+      \ <MouseMove>
+      \ <MiddleMouse>
+      \ <MiddleDrag>
+      \ <MiddleRelease>
+      \ <RightMouse>
+      \ <RightDrag>
+      \ <RightRelease>
+      \ <ScrollWheelUp>
+      \ <ScrollWheelDown>
+      \ <ScrollWheelRight>
+      \ <ScrollWheelLeft>
+      \ <MouseDown>
+      \ <MouseUp>
+      \ <X1Mouse>
+      \ <X1Drag>
+      \ <X1Release>
+      \ <X2Mouse>
+      \ <X2Drag>
+      \ <X2Release>
+      \ <Drop>
+      \ <Nul>
+      \ <SNR>
+      \ <Plug>
+      \ <CursorHold>
+      \ <Ignore>
+      \ <Cmd>
+      \ <ScriptCmd>
+      \ <FocusGained>
+      \ <FocusLost>
+      \ 
+      \ <cword>
+      \ <cWORD>
+      \ <cexpr>
+      \ <cfile>
+      \ <afile>
+      \ <abuf>
+      \ <amatch>
+      \ <sfile>
+      \ <stack>
+      \ <script>
+      \ <slnum>
+      \ <sflnum>
+      \ <client>
 
-<cword>
-<cWORD>
-<cexpr>
-<cfile>
-<afile>
-<abuf>
-<amatch>
-<sfile>
-<stack>
-<script>
-<slnum>
-<sflnum>
-<client>
diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index 8bb91e397..7047373e5 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 <dougkea...@gmail.com>
-" Last Change:    2025 Feb 13
+" Last Change:    2025 Feb 16
 " Former Maintainer: Charles E. Campbell
 
 " DO NOT CHANGE DIRECTLY.
@@ -237,7 +237,6 @@ syn match   vimNumber       '\<0o\=\o\+'                    
skipwhite nextgroup=vimGlobal,vimSubst1,@vimC
 syn match      vimNumber       '\<0x\x\+'                      skipwhite 
nextgroup=vimGlobal,vimSubst1,@vimComment,vimSubscript
 syn match      vimNumber       '\<0z\>'                        skipwhite 
nextgroup=vimGlobal,vimSubst1,@vimComment
 syn match      vimNumber       '\<0z\%(\x\x\)\+\%(\.\%(\x\x\)\+\)*'    
skipwhite nextgroup=vimGlobal,vimSubst1,@vimComment,vimSubscript
-syn match      vimNumber       '\%(^\|\A\)\zs#\x\{6}'          skipwhite 
nextgroup=vimGlobal,vimSubst1,@vimComment
 syn case match
 
 " All vimCommands are contained by vimIsCommand. {{{2
@@ -398,7 +397,7 @@ syn match   vim9LambdaOperatorComment contained "#.*" 
skipwhite skipempty nextgrou
 syn cluster    vimFuncList     
contains=vimFuncBang,vimFunctionError,vimFuncKey,vimFuncScope,vimFuncSID,Tag
 syn cluster    vimDefList      
contains=vimFuncBang,vimFunctionError,vimDefKey,vimFuncScope,vimFuncSID,Tag
 
-syn cluster    vimFuncBodyCommon       
contains=@vimCmdList,vimCmplxRepeat,vimContinue,vimCtrlChar,vimDef,vimFBVar,vimFunc,vimFunction,vimLetHereDoc,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegister,vimSpecFile,vimString,vimSubst,vimFuncFold,vimDefFold
+syn cluster    vimFuncBodyCommon       
contains=@vimCmdList,vimCmplxRepeat,vimContinue,vimCtrlChar,vimDef,vimFBVar,vimFunc,vimFunction,vimLetHereDoc,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegister,vimSpecFile,vimString,vimSubst,vimFuncFold,vimDefFold
 syn cluster    vimFuncBodyList 
contains=@vimFuncBodyCommon,vimComment,vimLineComment,vimInsert,vimConst,vimLet,vimSearch
 syn cluster    vimDefBodyList  
contains=@vimFuncBodyCommon,vim9Comment,vim9LineComment,vim9Block,vim9Const,vim9Final,vim9Var,vim9Null,vim9Boolean,vim9For,vim9LhsVariable,vim9LhsVariableList,vim9LhsRegister,vim9Search,@vimSpecialVar
 
@@ -670,7 +669,10 @@ syn match  vimCommentError contained       +".*+
 syn match      vimEnvvar       "\$\I\i*"
 syn match      vimEnvvar       "\${\I\i*}"
 
-" In-String Specials: {{{2
+" Strings {{{2
+" =======
+
+" In-String Specials:
 " Try to catch strings, if nothing else matches (therefore it must precede the 
others!)
 "  vimEscapeBrace handles ["]  []"] (ie. "s don't terminate string inside [])
 syn region     vimEscapeBrace  oneline   contained transparent 
start="[^\]\(\\\)*\[\zs\^\=\]\=" skip="\\\|\\]" end="]"me=e-1
@@ -683,8 +685,6 @@ syn cluster vimStringGroup  
contains=vimEscape,vimEscapeBrace,vimPatSep,vimNotPat
 syn region     vimString       oneline keepend matchgroup=vimString 
start=+[^a-zA-Z>\@]"+lc=1 skip=+\\\|\"+ matchgroup=vimStringEnd end=+"+ 
nextgroup=vimSubscript contains=@vimStringGroup extend
 syn region     vimString       oneline matchgroup=vimString 
start=+[^a-zA-Z>\@]'+lc=1 end=+'+                 nextgroup=vimSubscript 
contains=vimQuoteEscape  extend
 "syn region    vimString       oneline start="\s/\s*\A"lc=1 skip="\\\|\+" 
end="/"      contains=@vimStringGroup  " see tst45.vim
-syn match      vimString       contained       +"[^"]*\$+      skipnl 
nextgroup=vimStringCont
-syn match      vimStringCont   contained       +\(\\\|.\)\{-}[^\]"+
 
 syn match      vimEscape       contained       "\."
 " syn match    vimEscape       contained       +\[befnrt\"]+
@@ -725,9 +725,6 @@ syn match   vimSubstFlags   contained       
"[&cegiIlnpr#]\+"
 syn match      vimSubstDelim   contained       "\"
 syn match      vimSubstPat     contained       "\\ze[/?&]" 
contains=vimSubstDelim nextgroup=vimSubstRep4
 
-" 'String': {{{2
-syn match      vimString       "[^(,]'[^']\{-}\zs'"
-
 " Marks, Registers, Addresses, Filters: {{{2
 syn match      vimMark "'[a-zA-Z0-9]\ze[-+,!]" 
nextgroup=vimFilter,vimMarkNumber,vimSubst1
 syn match      vimMark "'[[\]{}()<>]\ze[-+,!]" 
nextgroup=vimFilter,vimMarkNumber,vimSubst1
@@ -921,22 +918,22 @@ syn match vimMenutranslateComment +".*+ contained 
containedin=vimMenutranslate
 " Angle-Bracket Notation: (tnx to Michael Geddes) {{{2
 " ======================
 syn case ignore
-syn match      vimNotation     
"\%#=1\%(\\|<lt>\)\=<\%([scamd]-\)\{0,4}x\=\%(f\d\{1,2}\|[^     
:]\|space\|bar\|bslash\|nl\|newline\|lf\|linefeed\|cr\|retu\%[rn]\|enter\|k\=del\%[ete]\|bs\|backspace\|tab\|esc\|csi\|right\|paste\%(start\|end\)\|left\|help\|undo\|k\=insert\|ins\|mouse\|[kz]\=home\|[kz]\=end\|kplus\|kminus\|kdivide\|kmultiply\|kenter\|kpoint\|space\|k\=\%(page\)\=\%(\|down\|up\|k\d\>\)\)>"
 contains=vimBracket
-
-syn match      vimNotation     
"\%#=1\%(\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}\%(net\|dec\|jsb\|pterm\|urxvt\|sgr\)mouse>"
         contains=vimBracket
-syn match      vimNotation     
"\%#=1\%(\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}\%(left\|middle\|right\)\%(mouse\|drag\|release\)>"
  contains=vimBracket
-syn match      vimNotation     
"\%#=1\%(\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}left\%(mouse\|release\)nm>"          
        contains=vimBracket
-syn match      vimNotation     
"\%#=1\%(\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}x[12]\%(mouse\|drag\|release\)>"     
        contains=vimBracket
-syn match      vimNotation     
"\%#=1\%(\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}sgrmouserelease>"                    
contains=vimBracket
-syn match      vimNotation     
"\%#=1\%(\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}mouse\%(up\|down\|move\)>"           
        contains=vimBracket
-syn match      vimNotation     
"\%#=1\%(\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}scrollwheel\%(up\|down\|right\|left\)>"
              contains=vimBracket
-
-syn match      vimNotation     
"\%#=1\%(\\|<lt>\)\=<\%(sid\|nop\|nul\|lt\|drop\)>"                             
contains=vimBracket
-syn match      vimNotation     
"\%#=1\%(\\|<lt>\)\=<\%(snr\|plug\|cursorhold\|ignore\|cmd\|scriptcmd\|focus\%(gained\|lost\)\)>"
       contains=vimBracket
-syn match      vimNotation     '\%(\\|<lt>\)\=<C-R>[0-9a-z"%#:.\-=]'he=e-1     
                        contains=vimBracket
-syn match      vimNotation     
'\%#=1\%(\\|<lt>\)\=<\%(q-\)\=\%(line[12]\|count\|bang\|reg\|args\|mods\|f-args\|f-mods\|lt\)>'
 contains=vimBracket
-syn match      vimNotation     
"\%#=1\%(\\|<lt>\)\=<\%([cas]file\|abuf\|amatch\|cexpr\|cword\|cWORD\|client\|stack\|script\|sf\=lnum\)>"
       contains=vimBracket
-syn match      vimNotation     
"\%#=1\%(\\|<lt>\)\=<\%([scamd]-\)\{0,4}char-\%(\d\+\|0\o\+\|0x\x\+\)>"         
contains=vimBracket
+syn match      vimNotation     contained       
"\%#=1\%(\\|<lt>\)\=<\%([scamd]-\)\{0,4}x\=\%(f\d\{1,2}\|[^     
:]\|space\|bar\|bslash\|nl\|newline\|lf\|linefeed\|cr\|retu\%[rn]\|enter\|k\=del\%[ete]\|bs\|backspace\|tab\|esc\|csi\|right\|paste\%(start\|end\)\|left\|help\|undo\|k\=insert\|ins\|mouse\|[kz]\=home\|[kz]\=end\|kplus\|kminus\|kdivide\|kmultiply\|kenter\|kpoint\|space\|k\=\%(page\)\=\%(\|down\|up\|k\d\>\)\)>"
 contains=vimBracket
+
+syn match      vimNotation     contained       
"\%#=1\%(\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}\%(net\|dec\|jsb\|pterm\|urxvt\|sgr\)mouse>"
         contains=vimBracket
+syn match      vimNotation     contained       
"\%#=1\%(\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}\%(left\|middle\|right\)\%(mouse\|drag\|release\)>"
  contains=vimBracket
+syn match      vimNotation     contained       
"\%#=1\%(\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}left\%(mouse\|release\)nm>"          
        contains=vimBracket
+syn match      vimNotation     contained       
"\%#=1\%(\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}x[12]\%(mouse\|drag\|release\)>"     
        contains=vimBracket
+syn match      vimNotation     contained       
"\%#=1\%(\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}sgrmouserelease>"                    
contains=vimBracket
+syn match      vimNotation     contained       
"\%#=1\%(\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}mouse\%(up\|down\|move\)>"           
        contains=vimBracket
+syn match      vimNotation     contained       
"\%#=1\%(\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}scrollwheel\%(up\|down\|right\|left\)>"
              contains=vimBracket
+
+syn match      vimNotation     contained       
"\%#=1\%(\\|<lt>\)\=<\%(sid\|nop\|nul\|lt\|drop\)>"                             
contains=vimBracket
+syn match      vimNotation     contained       
"\%#=1\%(\\|<lt>\)\=<\%(snr\|plug\|cursorhold\|ignore\|cmd\|scriptcmd\|focus\%(gained\|lost\)\)>"
       contains=vimBracket
+syn match      vimNotation     contained       
'\%(\\|<lt>\)\=<C-R>[0-9a-z"%#:.\-=]'he=e-1                             
contains=vimBracket
+syn match      vimNotation     contained       
'\%#=1\%(\\|<lt>\)\=<\%(q-\)\=\%(line[12]\|count\|bang\|reg\|args\|mods\|f-args\|f-mods\|lt\)>'
 contains=vimBracket
+syn match      vimNotation     contained       
"\%#=1\%(\\|<lt>\)\=<\%([cas]file\|abuf\|amatch\|cexpr\|cword\|cWORD\|client\|stack\|script\|sf\=lnum\)>"
       contains=vimBracket
+syn match      vimNotation     contained       
"\%#=1\%(\\|<lt>\)\=<\%([scamd]-\)\{0,4}char-\%(\d\+\|0\o\+\|0x\x\+\)>"         
contains=vimBracket
 
 syn match      vimBracket contained    "[\<>]"
 syn case match
@@ -962,7 +959,7 @@ if !exists("g:vimsyn_noerror") && 
!exists("g:vimsyn_novimfunctionerror")
  syn match     vimBufnrWarn    /\<bufnr\s*(\s*["']\.['"]\s*)/
 endif
 
-syn match vimNotFunc   "\<if\>\|\<el\%[seif]\>\|\<retu\%[rn]\>\|\<while\>"     
skipwhite nextgroup=@vimExprList,vimNotation
+syn match      vimNotFunc      
"\%#=1\<\%(if\|el\%[seif]\|retu\%[rn]\|while\)\>"       skipwhite 
nextgroup=@vimExprList,vimNotation
 
 " Match: {{{2
 " =====

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

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

Raspunde prin e-mail lui