diff --git a/runtime/colors/blue.vim b/runtime/colors/blue.vim
index ba1f68b..7ac44c8 100644
--- a/runtime/colors/blue.vim
+++ b/runtime/colors/blue.vim
@@ -4,7 +4,7 @@
 " Maintainer:   Original maintainer Steven Vertigan <steven@vertigan.wattle.id.au>
 " Website:      https://github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:34 MSK
+" Last Updated: Fri 02 Sep 2022 09:41:44 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -57,7 +57,7 @@
 hi VertSplit guifg=#008787 guibg=NONE gui=NONE cterm=NONE
 hi Visual guifg=#ffffff guibg=#008787 gui=NONE cterm=NONE
 hi VisualNOS guifg=#008787 guibg=#ffffff gui=NONE cterm=NONE
-hi WarningMsg guifg=#d70000 guibg=NONE gui=NONE cterm=NONE
+hi WarningMsg guifg=#d787d7 guibg=NONE gui=NONE cterm=NONE
 hi WildMenu guifg=#000087 guibg=#ffd700 gui=NONE cterm=NONE
 hi debugBreakpoint guifg=#00ff00 guibg=#000087 gui=reverse cterm=reverse
 hi debugPC guifg=#5fffff guibg=#000087 gui=reverse cterm=reverse
@@ -120,6 +120,8 @@
 hi! link Tag Special
 hi! link Typedef Type
 hi! link Terminal Normal
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
 hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
 hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
@@ -165,7 +167,7 @@
   hi VertSplit ctermfg=30 ctermbg=NONE cterm=NONE
   hi Visual ctermfg=231 ctermbg=30 cterm=NONE
   hi VisualNOS ctermfg=30 ctermbg=231 cterm=NONE
-  hi WarningMsg ctermfg=160 ctermbg=NONE cterm=NONE
+  hi WarningMsg ctermfg=176 ctermbg=NONE cterm=NONE
   hi WildMenu ctermfg=18 ctermbg=220 cterm=NONE
   hi debugBreakpoint ctermfg=46 ctermbg=18 cterm=reverse
   hi debugPC ctermfg=87 ctermbg=18 cterm=reverse
@@ -228,6 +230,8 @@
   hi! link Tag Special
   hi! link Typedef Type
   hi! link Terminal Normal
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
   hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
   hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
@@ -276,7 +280,7 @@
   hi VertSplit ctermfg=darkcyan ctermbg=NONE cterm=NONE
   hi Visual ctermfg=white ctermbg=darkcyan cterm=NONE
   hi VisualNOS ctermfg=darkcyan ctermbg=white cterm=NONE
-  hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
+  hi WarningMsg ctermfg=magenta ctermbg=NONE cterm=NONE
   hi WildMenu ctermfg=darkblue ctermbg=yellow cterm=NONE
   hi debugBreakpoint ctermfg=green ctermbg=darkblue cterm=reverse
   hi debugPC ctermfg=cyan ctermbg=darkblue cterm=reverse
@@ -339,6 +343,8 @@
   hi! link Tag Special
   hi! link Typedef Type
   hi! link Terminal Normal
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
   hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
   hi DiffText ctermfg=black ctermbg=grey cterm=NONE
@@ -449,6 +455,8 @@
   hi! link Tag Special
   hi! link Typedef Type
   hi! link Terminal Normal
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
   hi DiffChange ctermfg=white ctermbg=darkblue cterm=NONE
   hi DiffText ctermfg=black ctermbg=grey cterm=NONE
diff --git a/runtime/colors/darkblue.vim b/runtime/colors/darkblue.vim
index 88a6c41..140e7d4 100644
--- a/runtime/colors/darkblue.vim
+++ b/runtime/colors/darkblue.vim
@@ -4,7 +4,7 @@
 " Maintainer:   Original author Bohdan Vlasyuk <bohdan@vstu.edu.ua>
 " Website:      https://github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:35 MSK
+" Last Updated: Fri 02 Sep 2022 09:40:36 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -65,6 +65,8 @@
 hi! link diffBDiffer WarningMsg
 hi! link lCursor Cursor
 hi! link CurSearch Search
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 hi Normal guifg=#c0c0c0 guibg=#000040 gui=NONE cterm=NONE
 hi Conceal guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
 hi ColorColumn guifg=#c0c0c0 guibg=#8b0000 gui=NONE cterm=NONE
@@ -171,6 +173,8 @@
   hi! link diffBDiffer WarningMsg
   hi! link lCursor Cursor
   hi! link CurSearch Search
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi Normal ctermfg=252 ctermbg=17 cterm=NONE
   hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
   hi ColorColumn ctermfg=252 ctermbg=88 cterm=NONE
diff --git a/runtime/colors/delek.vim b/runtime/colors/delek.vim
index ebaf12f..9543b56 100644
--- a/runtime/colors/delek.vim
+++ b/runtime/colors/delek.vim
@@ -4,7 +4,7 @@
 " Maintainer:   Original maintainer David Schweikert <david@schweikert.ch>
 " Website:      https://github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:36 MSK
+" Last Updated: Sun 04 Sep 2022 09:31:26 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -25,6 +25,8 @@
 hi! link CursorLineFold CursorLine
 hi! link CursorLineSign CursorLine
 hi! link ErrorMsg Error
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 hi Normal guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
 hi EndOfBuffer guifg=#bcbcbc guibg=NONE gui=NONE cterm=NONE
 hi StatusLine guifg=#ffff00 guibg=#00008b gui=bold cterm=bold
@@ -57,7 +59,7 @@
 hi WarningMsg guifg=#cd00cd guibg=#ffffff gui=NONE cterm=NONE
 hi MoreMsg guifg=#000000 guibg=#ffffff gui=bold cterm=bold
 hi ModeMsg guifg=#000000 guibg=#ffffff gui=bold cterm=bold
-hi Question guifg=#00cd00 guibg=NONE gui=bold cterm=bold
+hi Question guifg=#008700 guibg=NONE gui=bold cterm=bold
 hi Todo guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
 hi MatchParen guifg=#ffffff guibg=#ff1493 gui=NONE cterm=NONE
 hi Search guifg=#ffffff guibg=#cd00cd gui=NONE cterm=NONE
@@ -97,6 +99,8 @@
   hi! link CursorLineFold CursorLine
   hi! link CursorLineSign CursorLine
   hi! link ErrorMsg Error
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi Normal ctermfg=16 ctermbg=231 cterm=NONE
   hi EndOfBuffer ctermfg=250 ctermbg=NONE cterm=NONE
   hi StatusLine ctermfg=226 ctermbg=18 cterm=bold
@@ -129,7 +133,7 @@
   hi WarningMsg ctermfg=164 ctermbg=231 cterm=NONE
   hi MoreMsg ctermfg=16 ctermbg=231 cterm=bold
   hi ModeMsg ctermfg=16 ctermbg=231 cterm=bold
-  hi Question ctermfg=40 ctermbg=NONE cterm=bold
+  hi Question ctermfg=28 ctermbg=NONE cterm=bold
   hi Todo ctermfg=16 ctermbg=226 cterm=NONE
   hi MatchParen ctermfg=231 ctermbg=198 cterm=NONE
   hi Search ctermfg=231 ctermbg=164 cterm=NONE
diff --git a/runtime/colors/desert.vim b/runtime/colors/desert.vim
index 152384e..41ed976 100644
--- a/runtime/colors/desert.vim
+++ b/runtime/colors/desert.vim
@@ -4,7 +4,7 @@
 " Maintainer:   Original maintainer Hans Fugal <hans@fugal.net>
 " Website:      https://github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:37 MSK
+" Last Updated: Fri 02 Sep 2022 09:39:21 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -25,6 +25,8 @@
 hi! link CursorLineFold CursorLine
 hi! link CursorLineSign CursorLine
 hi! link EndOfBuffer NonText
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 hi Normal guifg=#ffffff guibg=#333333 gui=NONE cterm=NONE
 hi StatusLine guifg=#333333 guibg=#c2bfa5 gui=NONE cterm=NONE
 hi StatusLineNC guifg=#7f7f8c guibg=#c2bfa5 gui=NONE cterm=NONE
@@ -97,6 +99,8 @@
   hi! link CursorLineFold CursorLine
   hi! link CursorLineSign CursorLine
   hi! link EndOfBuffer NonText
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi Normal ctermfg=231 ctermbg=236 cterm=NONE
   hi StatusLine ctermfg=236 ctermbg=144 cterm=NONE
   hi StatusLineNC ctermfg=242 ctermbg=144 cterm=NONE
diff --git a/runtime/colors/elflord.vim b/runtime/colors/elflord.vim
index 2cda253..e9efd3d 100644
--- a/runtime/colors/elflord.vim
+++ b/runtime/colors/elflord.vim
@@ -3,7 +3,7 @@
 " Maintainer:   original maintainer Ron Aaron <ron@ronware.org>
 " Website:      https://www.github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:37 MSK
+" Last Updated: Fri 02 Sep 2022 09:44:22 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -43,6 +43,8 @@
 hi! link CurSearch Search
 hi! link CursorLineFold CursorLine
 hi! link CursorLineSign CursorLine
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 
 if (has('termguicolors') && &termguicolors) || has('gui_running')
   let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
diff --git a/runtime/colors/evening.vim b/runtime/colors/evening.vim
index c2043b6..be6c43f 100644
--- a/runtime/colors/evening.vim
+++ b/runtime/colors/evening.vim
@@ -4,7 +4,7 @@
 " Maintainer:   Original maintainer Steven Vertigan <steven@vertigan.wattle.id.au>
 " Website:      https://github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:38 MSK
+" Last Updated: Sun 04 Sep 2022 09:48:34 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -16,7 +16,7 @@
 let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
 
 if (has('termguicolors') && &termguicolors) || has('gui_running')
-  let g:terminal_ansi_colors = ['#000000', '#ffa500', '#2e8b57', '#ffff00', '#006faf', '#8b008b', '#008b8b', '#bebebe', '#4d4d4d', '#ff5f5f', '#00ff00', '#ffff60', '#0087ff', '#ff80ff', '#00ffff', '#ffffff']
+  let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0087ff', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
 endif
 hi! link VertSplit StatusLineNC
 hi! link StatusLineTerm StatusLine
@@ -64,6 +64,8 @@
 hi! link Structure Type
 hi! link Tag Special
 hi! link Typedef Type
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 hi Normal guifg=#ffffff guibg=#333333 gui=NONE cterm=NONE
 hi ColorColumn guifg=NONE guibg=#8b0000 gui=NONE cterm=NONE
 hi CursorLine guifg=NONE guibg=#666666 gui=NONE cterm=NONE
@@ -98,7 +100,7 @@
 hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
 hi Visual guifg=#ffffff guibg=#999999 gui=NONE cterm=NONE
 hi VisualNOS guifg=NONE guibg=NONE gui=bold,underline ctermfg=NONE ctermbg=NONE cterm=bold,underline
-hi WarningMsg guifg=#8b0000 guibg=NONE gui=NONE cterm=NONE
+hi WarningMsg guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
 hi WildMenu guifg=#000000 guibg=#ffff00 gui=bold cterm=bold
 hi debugBreakpoint guifg=#00008b guibg=#ff0000 gui=NONE cterm=NONE
 hi debugPC guifg=#00008b guibg=#0000ff gui=NONE cterm=NONE
@@ -170,6 +172,8 @@
   hi! link Structure Type
   hi! link Tag Special
   hi! link Typedef Type
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi Normal ctermfg=231 ctermbg=236 cterm=NONE
   hi ColorColumn ctermfg=NONE ctermbg=88 cterm=NONE
   hi CursorLine ctermfg=NONE ctermbg=241 cterm=NONE
@@ -204,7 +208,7 @@
   hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
   hi Visual ctermfg=231 ctermbg=246 cterm=NONE
   hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=bold,underline
-  hi WarningMsg ctermfg=88 ctermbg=NONE cterm=NONE
+  hi WarningMsg ctermfg=196 ctermbg=NONE cterm=NONE
   hi WildMenu ctermfg=16 ctermbg=226 cterm=bold
   hi debugBreakpoint ctermfg=18 ctermbg=196 cterm=NONE
   hi debugPC ctermfg=18 ctermbg=21 cterm=NONE
@@ -279,6 +283,8 @@
   hi! link Structure Type
   hi! link Tag Special
   hi! link Typedef Type
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi Normal ctermfg=white ctermbg=black cterm=NONE
   hi ColorColumn ctermfg=white ctermbg=darkred cterm=NONE
   hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
@@ -313,7 +319,7 @@
   hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
   hi Visual ctermfg=white ctermbg=darkgray cterm=NONE
   hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=bold,underline
-  hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
   hi WildMenu ctermfg=black ctermbg=darkyellow cterm=bold
   hi debugBreakpoint ctermfg=darkblue ctermbg=red cterm=NONE
   hi debugPC ctermfg=darkblue ctermbg=blue cterm=NONE
@@ -494,13 +500,26 @@
 " Color: grey30        #4d4d4d           239               darkgray
 " Color: grey40        #666666           241               darkgray
 " Color: grey60        #999999           246               darkgray
-" Color: xtermblue     #0087ff           33                blue
-" Color: xtermdarkblue #006faf           25                darkblue
-" Color: xtermred      #ff5f5f           203               red
 " Color: comment       #80a0ff           111               lightblue
 " Color: darkred       #8b0000           88                darkred
-" Term colors: black orange seagreen yellow xtermdarkblue darkmagenta darkcyan grey
-" Term colors: grey30 xtermred green lightyellow xtermblue magenta cyan white
+" Color: x_black       #000000           16                black
+" Color: x_darkred     #cd0000           160               darkred
+" Color: x_darkgreen   #00cd00           40                darkgreen
+" Color: x_darkyellow  #cdcd00           184               darkyellow
+" Color: x_darkblue_m  #0087ff           33                darkblue
+" Color: x_darkmagenta #cd00cd           164               darkmagenta
+" Color: x_darkcyan    #00cdcd           44                darkcyan
+" Color: x_gray        #e5e5e5           254               gray
+" Color: x_darkgray    #7f7f7f           244               darkgray
+" Color: x_red         #ff0000           196               red
+" Color: x_green       #00ff00           46                green
+" Color: x_yellow      #ffff00           226               yellow
+" Color: x_blue        #5c5cff           63                blue
+" Color: x_magenta     #ff00ff           201               magenta
+" Color: x_cyan        #00ffff           51                cyan
+" Color: x_white       #ffffff           231               white
+" Term colors: x_black x_darkred x_darkgreen x_darkyellow x_darkblue_m x_darkmagenta x_darkcyan x_gray
+" Term colors: x_darkgray x_red x_green x_yellow x_blue x_magenta x_cyan x_white
 " Color: bgDiffA     #5F875F        65             darkgreen
 " Color: bgDiffC     #5F87AF        67             blue
 " Color: bgDiffD     #AF5FAF        133            magenta
diff --git a/runtime/colors/habamax.vim b/runtime/colors/habamax.vim
index ad84f4d..e3e7202 100644
--- a/runtime/colors/habamax.vim
+++ b/runtime/colors/habamax.vim
@@ -4,7 +4,7 @@
 " Maintainer:   Maxim Kim <habamax@gmail.com>
 " Website:      https://github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:38 MSK
+" Last Updated: Fri 02 Sep 2022 09:45:11 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -21,6 +21,8 @@
 hi! link Terminal Normal
 hi! link StatuslineTerm Statusline
 hi! link StatuslineTermNC StatuslineNC
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 hi! link javaScriptFunction Statement
 hi! link javaScriptIdentifier Statement
 hi! link sqlKeyword Statement
@@ -142,6 +144,8 @@
   hi! link Terminal Normal
   hi! link StatuslineTerm Statusline
   hi! link StatuslineTermNC StatuslineNC
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi! link javaScriptFunction Statement
   hi! link javaScriptIdentifier Statement
   hi! link sqlKeyword Statement
diff --git a/runtime/colors/industry.vim b/runtime/colors/industry.vim
index 07d15d3..0946fe9 100644
--- a/runtime/colors/industry.vim
+++ b/runtime/colors/industry.vim
@@ -4,7 +4,7 @@
 " Maintainer:   Original maintainer Shian Lee.
 " Website:      https://github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:39 MSK
+" Last Updated: Sun 04 Sep 2022 09:50:04 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -51,7 +51,7 @@
 hi Error guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
 hi ErrorMsg guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
 hi ModeMsg guifg=#ffffff guibg=NONE gui=bold cterm=bold
-hi WarningMsg guifg=#870000 guibg=NONE gui=bold cterm=bold
+hi WarningMsg guifg=#ff0000 guibg=NONE gui=bold cterm=bold
 hi MoreMsg guifg=#5fd75f guibg=NONE gui=bold cterm=bold
 hi Question guifg=#00ff00 guibg=NONE gui=bold cterm=bold
 hi Todo guifg=#005fff guibg=#ffff00 gui=NONE cterm=NONE
@@ -84,6 +84,8 @@
 hi! link CurSearch Search
 hi! link CursorLineFold CursorLine
 hi! link CursorLineSign CursorLine
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
 hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
 hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
@@ -123,7 +125,7 @@
   hi Error ctermfg=231 ctermbg=196 cterm=NONE
   hi ErrorMsg ctermfg=231 ctermbg=196 cterm=NONE
   hi ModeMsg ctermfg=231 ctermbg=NONE cterm=bold
-  hi WarningMsg ctermfg=88 ctermbg=NONE cterm=bold
+  hi WarningMsg ctermfg=196 ctermbg=NONE cterm=bold
   hi MoreMsg ctermfg=77 ctermbg=NONE cterm=bold
   hi Question ctermfg=46 ctermbg=NONE cterm=bold
   hi Todo ctermfg=27 ctermbg=226 cterm=NONE
@@ -156,6 +158,8 @@
   hi! link CurSearch Search
   hi! link CursorLineFold CursorLine
   hi! link CursorLineSign CursorLine
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
   hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
   hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
@@ -198,7 +202,7 @@
   hi Error ctermfg=white ctermbg=red cterm=NONE
   hi ErrorMsg ctermfg=white ctermbg=red cterm=NONE
   hi ModeMsg ctermfg=white ctermbg=NONE cterm=bold
-  hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=bold
+  hi WarningMsg ctermfg=red ctermbg=NONE cterm=bold
   hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=bold
   hi Question ctermfg=green ctermbg=NONE cterm=bold
   hi Todo ctermfg=blue ctermbg=yellow cterm=NONE
@@ -231,6 +235,8 @@
   hi! link CurSearch Search
   hi! link CursorLineFold CursorLine
   hi! link CursorLineSign CursorLine
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
   hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
   hi DiffText ctermfg=black ctermbg=grey cterm=NONE
diff --git a/runtime/colors/koehler.vim b/runtime/colors/koehler.vim
index 69b10c6..2505e8e 100644
--- a/runtime/colors/koehler.vim
+++ b/runtime/colors/koehler.vim
@@ -3,7 +3,7 @@
 " Maintainer:   original maintainer Ron Aaron <ron@ronware.org>
 " Website:      https://www.github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:39 MSK
+" Last Updated: Fri 02 Sep 2022 09:23:56 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -49,6 +49,8 @@
 hi! link CurSearch Search
 hi! link CursorLineFold CursorLine
 hi! link CursorLineSign CursorLine
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 
 if (has('termguicolors') && &termguicolors) || has('gui_running')
   let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
diff --git a/runtime/colors/lunaperche.vim b/runtime/colors/lunaperche.vim
index 982d93c..7ec3de1 100644
--- a/runtime/colors/lunaperche.vim
+++ b/runtime/colors/lunaperche.vim
@@ -4,7 +4,7 @@
 " Maintainer:   Maxim Kim <habamax@gmail.com>
 " Website:      https://www.github.com/vim/colorschemes
 " License:      Vim License (see `:help license`)
-" Last Updated: Tue 23 Aug 2022 16:50:40 MSK
+" Last Updated: Sat 03 Sep 2022 14:31:51 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -81,18 +81,31 @@
 hi! link shCommandSub Normal
 hi! link shDerefPattern shQuote
 hi! link shDerefOp Special
+hi! link phpStorageClass Statement
+hi! link phpStructure Statement
+hi! link phpInclude Statement
+hi! link phpDefine Statement
+hi! link phpSpecialFunction Normal
+hi! link phpParent Normal
+hi! link phpComparison Normal
+hi! link phpOperator Normal
+hi! link phpVarSelector Special
+hi! link phpMemberSelector Special
+hi! link phpDocCustomTags phpDocTags
 hi! link Terminal Normal
 hi! link StatuslineTerm Statusline
 hi! link StatuslineTermNC StatuslineNC
 hi! link LineNrAbove LineNr
 hi! link LineNrBelow LineNr
+hi! link MessageWindow PMenu
+hi! link PopupNotification Todo
 if &background ==# 'dark'
   if (has('termguicolors') && &termguicolors) || has('gui_running')
     let g:terminal_ansi_colors = ['#000000', '#af5f5f', '#5faf5f', '#af875f', '#5f87af', '#d787af', '#5fafaf', '#c6c6c6', '#767676', '#ff5f5f', '#5fd75f', '#ffd787', '#87afd7', '#ffafd7', '#5fd7d7', '#ffffff']
   endif
   hi Normal guifg=#c6c6c6 guibg=#000000 gui=NONE cterm=NONE
-  hi Statusline guifg=#000000 guibg=#c6c6c6 gui=bold cterm=bold
-  hi StatuslineNC guifg=#000000 guibg=#767676 gui=NONE cterm=NONE
+  hi Statusline guifg=#c6c6c6 guibg=#000000 gui=bold,reverse cterm=bold,reverse
+  hi StatuslineNC guifg=#767676 guibg=#000000 gui=reverse cterm=reverse
   hi VertSplit guifg=#767676 guibg=#767676 gui=NONE cterm=NONE
   hi TabLine guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
   hi TabLineFill guifg=NONE guibg=#767676 gui=NONE cterm=NONE
@@ -107,7 +120,7 @@
   hi EndOfBuffer guifg=#585858 guibg=NONE gui=NONE cterm=NONE
   hi SpecialKey guifg=#585858 guibg=NONE gui=NONE cterm=NONE
   hi Pmenu guifg=NONE guibg=#1c1c1c gui=NONE cterm=NONE
-  hi PmenuSel guifg=NONE guibg=#005f00 gui=NONE cterm=NONE
+  hi PmenuSel guifg=NONE guibg=#444444 gui=NONE cterm=NONE
   hi PmenuThumb guifg=NONE guibg=#c6c6c6 gui=NONE cterm=NONE
   hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
   hi SignColumn guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -169,7 +182,6 @@
   hi dirFilterMenuBookmarkPath guifg=#878787 guibg=NONE gui=NONE cterm=NONE
   hi dirFilterMenuHistoryPath guifg=#878787 guibg=NONE gui=NONE cterm=NONE
   hi FilterMenuLineNr guifg=#878787 guibg=NONE gui=NONE cterm=NONE
-  hi CocMenuSel guifg=NONE guibg=#005f00 gui=NONE cterm=NONE
   hi CocSearch guifg=#ffd787 guibg=NONE gui=NONE cterm=NONE
 else
   " Light background
@@ -193,7 +205,7 @@
   hi EndOfBuffer guifg=#9e9e9e guibg=NONE gui=NONE cterm=NONE
   hi SpecialKey guifg=#9e9e9e guibg=NONE gui=NONE cterm=NONE
   hi Pmenu guifg=NONE guibg=#eeeeee gui=NONE cterm=NONE
-  hi PmenuSel guifg=NONE guibg=#afd7af gui=NONE cterm=NONE
+  hi PmenuSel guifg=NONE guibg=#c6c6c6 gui=NONE cterm=NONE
   hi PmenuThumb guifg=NONE guibg=#767676 gui=NONE cterm=NONE
   hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
   hi SignColumn guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -256,7 +268,6 @@
   hi dirFilterMenuHistoryPath guifg=#626262 guibg=NONE gui=NONE cterm=NONE
   hi FilterMenuDirectorySubtle guifg=#626262 guibg=NONE gui=NONE cterm=NONE
   hi FilterMenuLineNr guifg=#626262 guibg=NONE gui=NONE cterm=NONE
-  hi CocMenuSel guifg=NONE guibg=#afd7af gui=NONE cterm=NONE
   hi CocSearch guifg=#870000 guibg=NONE gui=NONE cterm=NONE
 endif
 
@@ -329,15 +340,28 @@
   hi! link shCommandSub Normal
   hi! link shDerefPattern shQuote
   hi! link shDerefOp Special
+  hi! link phpStorageClass Statement
+  hi! link phpStructure Statement
+  hi! link phpInclude Statement
+  hi! link phpDefine Statement
+  hi! link phpSpecialFunction Normal
+  hi! link phpParent Normal
+  hi! link phpComparison Normal
+  hi! link phpOperator Normal
+  hi! link phpVarSelector Special
+  hi! link phpMemberSelector Special
+  hi! link phpDocCustomTags phpDocTags
   hi! link Terminal Normal
   hi! link StatuslineTerm Statusline
   hi! link StatuslineTermNC StatuslineNC
   hi! link LineNrAbove LineNr
   hi! link LineNrBelow LineNr
+  hi! link MessageWindow PMenu
+  hi! link PopupNotification Todo
   if &background ==# 'dark'
     hi Normal ctermfg=251 ctermbg=16 cterm=NONE
-    hi Statusline ctermfg=16 ctermbg=251 cterm=bold
-    hi StatuslineNC ctermfg=16 ctermbg=243 cterm=NONE
+    hi Statusline ctermfg=251 ctermbg=16 cterm=bold,reverse
+    hi StatuslineNC ctermfg=243 ctermbg=16 cterm=reverse
     hi VertSplit ctermfg=243 ctermbg=243 cterm=NONE
     hi TabLine ctermfg=16 ctermbg=251 cterm=NONE
     hi TabLineFill ctermfg=NONE ctermbg=243 cterm=NONE
@@ -352,7 +376,7 @@
     hi EndOfBuffer ctermfg=240 ctermbg=NONE cterm=NONE
     hi SpecialKey ctermfg=240 ctermbg=NONE cterm=NONE
     hi Pmenu ctermfg=NONE ctermbg=234 cterm=NONE
-    hi PmenuSel ctermfg=NONE ctermbg=22 cterm=NONE
+    hi PmenuSel ctermfg=NONE ctermbg=238 cterm=NONE
     hi PmenuThumb ctermfg=NONE ctermbg=251 cterm=NONE
     hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
     hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -412,7 +436,6 @@
     hi dirFilterMenuBookmarkPath ctermfg=102 ctermbg=NONE cterm=NONE
     hi dirFilterMenuHistoryPath ctermfg=102 ctermbg=NONE cterm=NONE
     hi FilterMenuLineNr ctermfg=102 ctermbg=NONE cterm=NONE
-    hi CocMenuSel ctermfg=NONE ctermbg=22 cterm=NONE
     hi CocSearch ctermfg=222 ctermbg=NONE cterm=NONE
   else
     " Light background
@@ -433,7 +456,7 @@
     hi EndOfBuffer ctermfg=247 ctermbg=NONE cterm=NONE
     hi SpecialKey ctermfg=247 ctermbg=NONE cterm=NONE
     hi Pmenu ctermfg=NONE ctermbg=255 cterm=NONE
-    hi PmenuSel ctermfg=NONE ctermbg=151 cterm=NONE
+    hi PmenuSel ctermfg=NONE ctermbg=251 cterm=NONE
     hi PmenuThumb ctermfg=NONE ctermbg=243 cterm=NONE
     hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
     hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -494,7 +517,6 @@
     hi dirFilterMenuHistoryPath ctermfg=241 ctermbg=NONE cterm=NONE
     hi FilterMenuDirectorySubtle ctermfg=241 ctermbg=NONE cterm=NONE
     hi FilterMenuLineNr ctermfg=241 ctermbg=NONE cterm=NONE
-    hi CocMenuSel ctermfg=NONE ctermbg=151 cterm=NONE
     hi CocSearch ctermfg=88 ctermbg=NONE cterm=NONE
   endif
   unlet s:t_Co
@@ -504,8 +526,8 @@
 if s:t_Co >= 16
   if &background ==# 'dark'
     hi Normal ctermfg=grey ctermbg=black cterm=NONE
-    hi Statusline ctermfg=black ctermbg=grey cterm=bold
-    hi StatuslineNC ctermfg=black ctermbg=darkgrey cterm=NONE
+    hi Statusline ctermfg=grey ctermbg=black cterm=bold,reverse
+    hi StatuslineNC ctermfg=darkgrey ctermbg=black cterm=reverse
     hi VertSplit ctermfg=darkgrey ctermbg=darkgrey cterm=NONE
     hi TabLine ctermfg=black ctermbg=grey cterm=NONE
     hi TabLineFill ctermfg=NONE ctermbg=darkgrey cterm=NONE
@@ -520,7 +542,7 @@
     hi EndOfBuffer ctermfg=grey ctermbg=NONE cterm=NONE
     hi SpecialKey ctermfg=grey ctermbg=NONE cterm=NONE
     hi Pmenu ctermfg=black ctermbg=darkgrey cterm=NONE
-    hi PmenuSel ctermfg=black ctermbg=darkgreen cterm=NONE
+    hi PmenuSel ctermfg=black ctermbg=darkcyan cterm=NONE
     hi PmenuThumb ctermfg=NONE ctermbg=grey cterm=NONE
     hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
     hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -567,6 +589,20 @@
     hi diffAdded ctermfg=green ctermbg=NONE cterm=NONE
     hi diffRemoved ctermfg=darkred ctermbg=NONE cterm=NONE
     hi diffSubname ctermfg=magenta ctermbg=NONE cterm=NONE
+    hi dirType ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+    hi dirPermissionUser ctermfg=darkgreen ctermbg=NONE cterm=NONE
+    hi dirPermissionGroup ctermfg=darkyellow ctermbg=NONE cterm=NONE
+    hi dirPermissionOther ctermfg=darkcyan ctermbg=NONE cterm=NONE
+    hi dirOwner ctermfg=darkgrey ctermbg=NONE cterm=NONE
+    hi dirGroup ctermfg=darkgrey ctermbg=NONE cterm=NONE
+    hi dirTime ctermfg=darkgrey ctermbg=NONE cterm=NONE
+    hi dirSize ctermfg=yellow ctermbg=NONE cterm=NONE
+    hi dirSizeMod ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+    hi FilterMenuDirectorySubtle ctermfg=grey ctermbg=NONE cterm=NONE
+    hi dirFilterMenuBookmarkPath ctermfg=grey ctermbg=NONE cterm=NONE
+    hi dirFilterMenuHistoryPath ctermfg=grey ctermbg=NONE cterm=NONE
+    hi FilterMenuLineNr ctermfg=grey ctermbg=NONE cterm=NONE
+    hi CocSearch ctermfg=yellow ctermbg=NONE cterm=NONE
   else
     " Light background
     hi Normal ctermfg=black ctermbg=white cterm=NONE
@@ -586,7 +622,7 @@
     hi EndOfBuffer ctermfg=darkgrey ctermbg=NONE cterm=NONE
     hi SpecialKey ctermfg=darkgrey ctermbg=NONE cterm=NONE
     hi Pmenu ctermfg=black ctermbg=grey cterm=NONE
-    hi PmenuSel ctermfg=black ctermbg=darkgreen cterm=NONE
+    hi PmenuSel ctermfg=black ctermbg=darkcyan cterm=NONE
     hi PmenuThumb ctermfg=NONE ctermbg=darkgrey cterm=NONE
     hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
     hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -633,6 +669,21 @@
     hi diffAdded ctermfg=darkgreen ctermbg=NONE cterm=NONE
     hi diffRemoved ctermfg=red ctermbg=NONE cterm=NONE
     hi diffSubname ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+    hi dirType ctermfg=darkcyan ctermbg=NONE cterm=NONE
+    hi dirPermissionUser ctermfg=darkyellow ctermbg=NONE cterm=NONE
+    hi dirPermissionGroup ctermfg=darkgreen ctermbg=NONE cterm=NONE
+    hi dirPermissionOther ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+    hi dirOwner ctermfg=grey ctermbg=NONE cterm=NONE
+    hi dirGroup ctermfg=grey ctermbg=NONE cterm=NONE
+    hi dirTime ctermfg=grey ctermbg=NONE cterm=NONE
+    hi dirSize ctermfg=darkred ctermbg=NONE cterm=NONE
+    hi dirSizeMod ctermfg=darkcyan ctermbg=NONE cterm=NONE
+    hi dirLink ctermfg=darkgreen ctermbg=NONE cterm=bold
+    hi dirFilterMenuBookmarkPath ctermfg=darkgrey ctermbg=NONE cterm=NONE
+    hi dirFilterMenuHistoryPath ctermfg=darkgrey ctermbg=NONE cterm=NONE
+    hi FilterMenuDirectorySubtle ctermfg=darkgrey ctermbg=NONE cterm=NONE
+    hi FilterMenuLineNr ctermfg=darkgrey ctermbg=NONE cterm=NONE
+    hi CocSearch ctermfg=darkred ctermbg=NONE cterm=NONE
   endif
   unlet s:t_Co
   finish
@@ -659,7 +710,7 @@
     hi Pmenu ctermfg=black ctermbg=grey cterm=NONE
     hi PmenuThumb ctermfg=NONE ctermbg=darkgreen cterm=NONE
     hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
-    hi PmenuSel ctermfg=black ctermbg=darkgreen cterm=NONE
+    hi PmenuSel ctermfg=black ctermbg=darkcyan cterm=NONE
     hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
     hi Error ctermfg=grey ctermbg=darkred cterm=NONE
     hi ErrorMsg ctermfg=grey ctermbg=darkred cterm=NONE
@@ -688,7 +739,7 @@
     hi Comment ctermfg=darkblue ctermbg=NONE cterm=NONE
     hi Constant ctermfg=darkred ctermbg=NONE cterm=NONE
     hi Identifier ctermfg=NONE ctermbg=NONE cterm=NONE
-    hi Statement ctermfg=black ctermbg=NONE cterm=bold
+    hi Statement ctermfg=grey ctermbg=NONE cterm=bold
     hi Type ctermfg=darkgreen ctermbg=NONE cterm=bold
     hi PreProc ctermfg=darkyellow ctermbg=NONE cterm=NONE
     hi Special ctermfg=darkcyan ctermbg=NONE cterm=NONE
@@ -722,7 +773,7 @@
     hi Pmenu ctermfg=grey ctermbg=black cterm=NONE
     hi PmenuThumb ctermfg=NONE ctermbg=darkgreen cterm=NONE
     hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
-    hi PmenuSel ctermfg=black ctermbg=darkgreen cterm=NONE
+    hi PmenuSel ctermfg=black ctermbg=darkcyan cterm=NONE
     hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
     hi Error ctermfg=grey ctermbg=darkred cterm=NONE
     hi ErrorMsg ctermfg=grey ctermbg=darkred cterm=NONE
@@ -864,7 +915,7 @@
 " Color: colorlC                 #FF5FFF        207            magenta
 " Color: colorV                  #005F87        24             darkblue
 " Color: colorMP                 #C5E7C5        30             darkcyan
-" Color: colorPMenuSel           #005F00        22             darkgreen
+" Color: colorPMenuSel           #444444        238            darkcyan
 " Color: colorDim                #878787        102            grey
 " Color: diffAdd                 #AF87AF        139            darkmagenta
 " Color: diffDelete              #D78787        174            darkred
@@ -898,7 +949,7 @@
 " Color: colorlC                 #FF00FF        201            magenta
 " Color: colorV                  #5F87AF        67             darkblue
 " Color: colorMP                 #C5E7C5        30             darkcyan
-" Color: colorPMenuSel           #AFD7AF        151            darkgreen
+" Color: colorPMenuSel           #C6C6C6        251            darkcyan
 " Color: colorDim                #626262        241            darkgrey
 " Color: diffAdd                 #D7AFD7        182            darkmagenta
 " Color: diffDelete              #870000        88             darkred
diff --git a/runtime/colors/morning.vim b/runtime/colors/morning.vim
index 5e6e072..f1ac73f 100644
--- a/runtime/colors/morning.vim
+++ b/runtime/colors/morning.vim
@@ -4,7 +4,7 @@
 " Maintainer:   Original maintainer Bram Moolenaar <Bram@vim.org>
 " Website:      https://github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:41 MSK
+" Last Updated: Fri 02 Sep 2022 09:46:24 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -26,6 +26,8 @@
 hi! link CursorLineSign CursorLine
 hi! link StatuslineTerm Statusline
 hi! link StatuslineTermNC StatuslineNC
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 hi Normal guifg=#000000 guibg=#e4e4e4 gui=NONE cterm=NONE
 hi EndOfBuffer guifg=#0000ff guibg=#cccccc gui=bold cterm=bold
 hi Folded guifg=#00008b guibg=#d3d3d3 gui=NONE cterm=NONE
@@ -96,6 +98,8 @@
   hi! link CursorLineSign CursorLine
   hi! link StatuslineTerm Statusline
   hi! link StatuslineTermNC StatuslineNC
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi Normal ctermfg=16 ctermbg=254 cterm=NONE
   hi EndOfBuffer ctermfg=21 ctermbg=252 cterm=bold
   hi Folded ctermfg=18 ctermbg=252 cterm=NONE
diff --git a/runtime/colors/murphy.vim b/runtime/colors/murphy.vim
index c028c23..3dcff2c 100644
--- a/runtime/colors/murphy.vim
+++ b/runtime/colors/murphy.vim
@@ -4,7 +4,7 @@
 " Maintainer:   Original maintainer Ron Aaron <ron@ronware.org>.
 " Website:      https://github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:41 MSK
+" Last Updated: Fri 02 Sep 2022 09:47:20 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -26,6 +26,8 @@
 hi! link CursorLineSign CursorLine
 hi! link StatusLineTerm StatusLine
 hi! link StatusLineTermNC StatusLineNC
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 hi Normal guifg=#87ff87 guibg=#000000 gui=NONE cterm=NONE
 hi EndOfBuffer guifg=#0000ff guibg=#000000 gui=NONE cterm=NONE
 hi StatusLine guifg=#ffffff guibg=#00008b gui=NONE cterm=NONE
@@ -96,6 +98,8 @@
   hi! link CursorLineSign CursorLine
   hi! link StatusLineTerm StatusLine
   hi! link StatusLineTermNC StatusLineNC
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi Normal ctermfg=120 ctermbg=16 cterm=NONE
   hi EndOfBuffer ctermfg=21 ctermbg=16 cterm=NONE
   hi StatusLine ctermfg=231 ctermbg=18 cterm=NONE
diff --git a/runtime/colors/pablo.vim b/runtime/colors/pablo.vim
index 9489973..ece50e6 100644
--- a/runtime/colors/pablo.vim
+++ b/runtime/colors/pablo.vim
@@ -3,7 +3,7 @@
 " Maintainer:   Original maintainerRon Aaron <ron@ronware.org>
 " Website:      https://github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:42 MSK
+" Last Updated: Sun 04 Sep 2022 09:53:40 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -17,13 +17,15 @@
 if (has('termguicolors') && &termguicolors) || has('gui_running')
   let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
 endif
-hi Normal guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
 hi! link Terminal Normal
 hi! link StatusLineTerm StatusLine
 hi! link StatusLineTermNC StatusLineNC
 hi! link CurSearch Search
 hi! link CursorLineFold CursorLine
 hi! link CursorLineSign CursorLine
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
+hi Normal guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
 hi Comment guifg=#808080 guibg=NONE gui=NONE cterm=NONE
 hi Constant guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
 hi Identifier guifg=#00c0c0 guibg=NONE gui=NONE cterm=NONE
@@ -88,13 +90,15 @@
 hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
 
 if s:t_Co >= 256
-  hi Normal ctermfg=231 ctermbg=16 cterm=NONE
   hi! link Terminal Normal
   hi! link StatusLineTerm StatusLine
   hi! link StatusLineTermNC StatusLineNC
   hi! link CurSearch Search
   hi! link CursorLineFold CursorLine
   hi! link CursorLineSign CursorLine
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
+  hi Normal ctermfg=231 ctermbg=16 cterm=NONE
   hi Comment ctermfg=244 ctermbg=NONE cterm=NONE
   hi Constant ctermfg=51 ctermbg=NONE cterm=NONE
   hi Identifier ctermfg=37 ctermbg=NONE cterm=NONE
@@ -117,7 +121,7 @@
   hi NonText ctermfg=63 ctermbg=NONE cterm=bold
   hi EndOfBuffer ctermfg=63 ctermbg=NONE cterm=bold
   hi ErrorMsg ctermfg=231 ctermbg=160 cterm=NONE
-  hi WarningMsg ctermfg=224 ctermbg=NONE cterm=NONE
+  hi WarningMsg ctermfg=196 ctermbg=NONE cterm=NONE
   hi SignColumn ctermfg=51 ctermbg=248 cterm=NONE
   hi ColorColumn ctermfg=NONE ctermbg=239 cterm=NONE
   hi FoldColumn ctermfg=102 ctermbg=236 cterm=NONE
@@ -163,12 +167,6 @@
 
 if s:t_Co >= 16
   hi Normal ctermfg=white ctermbg=black cterm=NONE
-  hi! link Terminal Normal
-  hi! link StatusLineTerm StatusLine
-  hi! link StatusLineTermNC StatusLineNC
-  hi! link CurSearch Search
-  hi! link CursorLineFold CursorLine
-  hi! link CursorLineSign CursorLine
   hi Comment ctermfg=darkgrey ctermbg=NONE cterm=NONE
   hi Constant ctermfg=cyan ctermbg=NONE cterm=NONE
   hi Identifier ctermfg=darkcyan ctermbg=NONE cterm=NONE
@@ -191,7 +189,7 @@
   hi NonText ctermfg=blue ctermbg=NONE cterm=bold
   hi EndOfBuffer ctermfg=blue ctermbg=NONE cterm=bold
   hi ErrorMsg ctermfg=white ctermbg=darkred cterm=NONE
-  hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
   hi SignColumn ctermfg=cyan ctermbg=black cterm=NONE
   hi ColorColumn ctermfg=white ctermbg=darkgrey cterm=NONE
   hi FoldColumn ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -405,7 +403,7 @@
 " Color: SpecialKey     #00ffff     81             cyan
 " Color: StatusLineTerm #90ee90     121            darkgreen
 " Color: Title          #ff00ff     225            magenta
-" Color: WarningMsg     #ff0000     224            darkred
+" Color: WarningMsg     #ff0000     196            red
 " Color: ToolbarLine    #7f7f7f     242            darkgrey
 " Color: ToolbarButton  #d3d3d3     254            grey
 " Color: Underlined     #80a0ff     111            darkgreen
diff --git a/runtime/colors/peachpuff.vim b/runtime/colors/peachpuff.vim
index 1668b68..0622ce6 100644
--- a/runtime/colors/peachpuff.vim
+++ b/runtime/colors/peachpuff.vim
@@ -4,7 +4,7 @@
 " Maintainer:   Original maintainer David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
 " Website:      https://github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:42 MSK
+" Last Updated: Fri 02 Sep 2022 09:50:02 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -24,6 +24,8 @@
 hi! link CurSearch Search
 hi! link CursorLineFold CursorLine
 hi! link CursorLineSign CursorLine
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 hi Normal guifg=#000000 guibg=#ffdab9 gui=NONE cterm=NONE
 hi Folded guifg=#000000 guibg=#e3c1a5 gui=NONE cterm=NONE
 hi CursorLine guifg=NONE guibg=#f5c195 gui=NONE cterm=NONE
@@ -94,6 +96,8 @@
   hi! link CurSearch Search
   hi! link CursorLineFold CursorLine
   hi! link CursorLineSign CursorLine
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi Normal ctermfg=16 ctermbg=223 cterm=NONE
   hi Folded ctermfg=16 ctermbg=252 cterm=NONE
   hi CursorLine ctermfg=NONE ctermbg=180 cterm=NONE
diff --git a/runtime/colors/quiet.vim b/runtime/colors/quiet.vim
index 6f5be5b..fbe58b4 100644
--- a/runtime/colors/quiet.vim
+++ b/runtime/colors/quiet.vim
@@ -4,7 +4,7 @@
 " Maintainer:   neutaaaaan <neutaaaaan-gh@protonmail.com>
 " Website:      https://github.com/vim/colorschemes
 " License:      Vim License (see `:help license`)`
-" Last Updated: Tue 23 Aug 2022 16:50:43 MSK
+" Last Updated: Fri 02 Sep 2022 09:55:30 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -16,6 +16,8 @@
 hi! link Terminal Normal
 hi! link StatusLineTerm StatusLine
 hi! link StatusLineTermNC StatusLineNC
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 hi! link Boolean Constant
 hi! link Character Constant
 hi! link Conditional Statement
diff --git a/runtime/colors/ron.vim b/runtime/colors/ron.vim
index aeccfce..a7302a4 100644
--- a/runtime/colors/ron.vim
+++ b/runtime/colors/ron.vim
@@ -3,7 +3,7 @@
 " Maintainer:   original maintainer Ron Aaron <ron@ronware.org>
 " Website:      https://www.github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:45 MSK
+" Last Updated: Fri 02 Sep 2022 09:50:56 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -46,6 +46,8 @@
 hi! link CursorLineSign CursorLine
 hi! link LineNrAbove LineNr
 hi! link LineNrBelow LineNr
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 
 if (has('termguicolors') && &termguicolors) || has('gui_running')
   let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
diff --git a/runtime/colors/shine.vim b/runtime/colors/shine.vim
index e74b0ae..fe1ee15 100644
--- a/runtime/colors/shine.vim
+++ b/runtime/colors/shine.vim
@@ -4,7 +4,7 @@
 " Maintainer:   Original maintainer is Yasuhiro Matsumoto <mattn@mail.goo.ne.jp>
 " Website:      https://github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:46 MSK
+" Last Updated: Fri 02 Sep 2022 09:51:42 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -28,6 +28,8 @@
 hi! link ErrorMsg Error
 hi! link Tag Special
 hi! link Operator Statement
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 hi Normal guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
 hi Folded guifg=#00008b guibg=#dadada gui=NONE cterm=NONE
 hi CursorLine guifg=NONE guibg=#dadada gui=NONE cterm=NONE
@@ -104,6 +106,8 @@
   hi! link ErrorMsg Error
   hi! link Tag Special
   hi! link Operator Statement
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi Normal ctermfg=16 ctermbg=231 cterm=NONE
   hi Folded ctermfg=18 ctermbg=253 cterm=NONE
   hi CursorLine ctermfg=NONE ctermbg=253 cterm=NONE
diff --git a/runtime/colors/slate.vim b/runtime/colors/slate.vim
index 584e4b5..8c43fb6 100644
--- a/runtime/colors/slate.vim
+++ b/runtime/colors/slate.vim
@@ -4,7 +4,7 @@
 " Maintainer:   Original maintainer Ralph Amissah <ralph@amissah.com>
 " Website:      https://github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:46 MSK
+" Last Updated: Fri 02 Sep 2022 09:52:25 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -24,6 +24,8 @@
 hi! link CurSearch Search
 hi! link CursorLineFold CursorLine
 hi! link CursorLineSign CursorLine
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 hi Normal guifg=#ffffff guibg=#262626 gui=NONE cterm=NONE
 hi EndOfBuffer guifg=#5f87d7 guibg=NONE gui=NONE cterm=NONE
 hi StatusLine guifg=#000000 guibg=#afaf87 gui=NONE cterm=NONE
@@ -99,6 +101,8 @@
   hi! link CurSearch Search
   hi! link CursorLineFold CursorLine
   hi! link CursorLineSign CursorLine
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi Normal ctermfg=231 ctermbg=235 cterm=NONE
   hi EndOfBuffer ctermfg=68 ctermbg=NONE cterm=NONE
   hi StatusLine ctermfg=16 ctermbg=144 cterm=NONE
diff --git a/runtime/colors/torte.vim b/runtime/colors/torte.vim
index 814e50d..7ea5a69 100644
--- a/runtime/colors/torte.vim
+++ b/runtime/colors/torte.vim
@@ -4,7 +4,7 @@
 " Maintainer:   Original maintainer Thorsten Maerz <info@netztorte.de>
 " Website:      https://github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:47 MSK
+" Last Updated: Fri 02 Sep 2022 09:53:21 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -26,6 +26,8 @@
 hi! link CursorLineSign CursorLine
 hi! link StatusLineTerm StatusLine
 hi! link StatusLineTermNC StatusLineNC
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 hi Normal guifg=#cccccc guibg=#000000 gui=NONE cterm=NONE
 hi Comment guifg=#80a0ff guibg=NONE gui=NONE cterm=NONE
 hi Constant guifg=#ffa0a0 guibg=NONE gui=NONE cterm=NONE
@@ -97,6 +99,8 @@
   hi! link CursorLineSign CursorLine
   hi! link StatusLineTerm StatusLine
   hi! link StatusLineTermNC StatusLineNC
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi Normal ctermfg=251 ctermbg=16 cterm=NONE
   hi Comment ctermfg=111 ctermbg=NONE cterm=NONE
   hi Constant ctermfg=217 ctermbg=NONE cterm=NONE
diff --git a/runtime/colors/zellner.vim b/runtime/colors/zellner.vim
index 191dc7e..86340eb 100644
--- a/runtime/colors/zellner.vim
+++ b/runtime/colors/zellner.vim
@@ -4,7 +4,7 @@
 " Maintainer:   Original maintainer Ron Aaron <ron@ronware.org>
 " Website:      https://github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:48 MSK
+" Last Updated: Fri 02 Sep 2022 09:54:15 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -24,6 +24,8 @@
 hi! link CurSearch Search
 hi! link CursorLineFold CursorLine
 hi! link CursorLineSign CursorLine
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 hi Normal guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
 hi Folded guifg=#00008b guibg=#d3d3d3 gui=NONE cterm=NONE
 hi CursorLine guifg=NONE guibg=#e5e5e5 gui=NONE cterm=NONE
@@ -95,6 +97,8 @@
   hi! link CurSearch Search
   hi! link CursorLineFold CursorLine
   hi! link CursorLineSign CursorLine
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi Normal ctermfg=16 ctermbg=231 cterm=NONE
   hi Folded ctermfg=18 ctermbg=252 cterm=NONE
   hi CursorLine ctermfg=NONE ctermbg=254 cterm=NONE
diff --git a/runtime/doc/Makefile b/runtime/doc/Makefile
index 7b8c628..5786799 100644
--- a/runtime/doc/Makefile
+++ b/runtime/doc/Makefile
@@ -115,6 +115,7 @@
 	todo.txt \
 	uganda.txt \
 	undo.txt \
+	userfunc.txt \
 	usr_01.txt \
 	usr_02.txt \
 	usr_03.txt \
@@ -265,6 +266,7 @@
 	todo.html \
 	uganda.html \
 	undo.html \
+	userfunc.html \
 	usr_01.html \
 	usr_02.html \
 	usr_03.html \
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index d85fb89..61db274 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -640,6 +640,8 @@
 				|cmdwin-char|
 							*ColorScheme*
 ColorScheme			After loading a color scheme. |:colorscheme|
+				Not triggered if the color scheme is not
+				found.
 				The pattern is matched against the
 				colorscheme name. <afile> can be used for the
 				name of the actual file where this option was
diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt
index 690bac9..1de0e40 100644
--- a/runtime/doc/builtin.txt
+++ b/runtime/doc/builtin.txt
@@ -1671,7 +1671,7 @@
 				typed text only, or the last completion after
 				no item is selected when using the <Up> or
 				<Down> keys)
-		   inserted	Inserted string. [NOT IMPLEMENT YET]
+		   inserted	Inserted string. [NOT IMPLEMENTED YET]
 
 							*complete_info_mode*
 		mode values are:
@@ -3038,10 +3038,10 @@
 		Funcref.  The extra arguments are appended to the list of
 		arguments.  Example: >
 			func Callback(arg1, arg2, name)
-			...
+			"...
 			let Func = function('Callback', ['one'])
 			let Func2 = function(Func, ['two'])
-			...
+			"...
 			call Func2('name')
 <		Invokes the function as with: >
 			call Callback('one', 'two', 'name')
@@ -3051,22 +3051,23 @@
 			function Callback() dict
 			   echo "called for " .. self.name
 			endfunction
-			...
+			"...
 			let context = {"name": "example"}
 			let Func = function('Callback', context)
-			...
+			"...
 			call Func()	" will echo: called for example
 <		The use of function() is not needed when there are no extra
-		arguments, these two are equivalent: >
+		arguments, these two are equivalent, if Callback() is defined
+		as context.Callback(): >
 			let Func = function('Callback', context)
 			let Func = context.Callback
 
 <		The argument list and the Dictionary can be combined: >
 			function Callback(arg1, count) dict
-			...
+			"...
 			let context = {"name": "example"}
 			let Func = function('Callback', ['one'], context)
-			...
+			"...
 			call Func(500)
 <		Invokes the function as with: >
 			call context.Callback('one', 500)
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 750fc41..741f70a 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -2629,503 +2629,12 @@
 5. Defining functions					*user-functions*
 
 New functions can be defined.  These can be called just like builtin
-functions.  The function executes a sequence of Ex commands.  Normal mode
-commands can be executed with the |:normal| command.
+functions.  The function takes arguments, executes a sequence of Ex commands
+and can return a value.
 
-This section is about the legacy functions. For the Vim9 functions, which
-execute much faster, support type checking and more, see |vim9.txt|.
-
-The function name must start with an uppercase letter, to avoid confusion with
-builtin functions.  To prevent from using the same name in different scripts
-avoid obvious, short names.  A good habit is to start the function name with
-the name of the script, e.g., "HTMLcolor()".
-
-In legacy script it is also possible to use curly braces, see
-|curly-braces-names|.
-The |autoload| facility is useful to define a function only when it's called.
-
-							*local-function*
-A function local to a legacy script must start with "s:".  A local script
-function can only be called from within the script and from functions, user
-commands and autocommands defined in the script.  It is also possible to call
-the function from a mapping defined in the script, but then |<SID>| must be
-used instead of "s:" when the mapping is expanded outside of the script.
-There are only script-local functions, no buffer-local or window-local
-functions.
-
-In |Vim9| script functions are local to the script by default, prefix "g:" to
-define a global function.
-
-				*:fu* *:function* *E128* *E129* *E123* *E454*
-:fu[nction]		List all functions and their arguments.
-
-:fu[nction] {name}	List function {name}.
-			{name} can also be a |Dictionary| entry that is a
-			|Funcref|: >
-				:function dict.init
-
-:fu[nction] /{pattern}	List functions with a name matching {pattern}.
-			Example that lists all functions ending with "File": >
-				:function /File$
-<
-							*:function-verbose*
-When 'verbose' is non-zero, listing a function will also display where it was
-last defined. Example: >
-
-    :verbose function SetFileTypeSH
-	function SetFileTypeSH(name)
-	    Last set from /usr/share/vim/vim-7.0/filetype.vim
-<
-See |:verbose-cmd| for more information.
-
-						*E124* *E125* *E853* *E884*
-:fu[nction][!] {name}([arguments]) [range] [abort] [dict] [closure]
-			Define a new function by the name {name}.  The body of
-			the function follows in the next lines, until the
-			matching |:endfunction|.
-								*E1267*
-			The name must be made of alphanumeric characters and
-			'_', and must start with a capital or "s:" (see
-			above).  Note that using "b:" or "g:" is not allowed.
-			(since patch 7.4.260 E884 is given if the function
-			name has a colon in the name, e.g. for "foo:bar()".
-			Before that patch no error was given).
-
-			{name} can also be a |Dictionary| entry that is a
-			|Funcref|: >
-				:function dict.init(arg)
-<			"dict" must be an existing dictionary.  The entry
-			"init" is added if it didn't exist yet.  Otherwise [!]
-			is required to overwrite an existing function.  The
-			result is a |Funcref| to a numbered function.  The
-			function can only be used with a |Funcref| and will be
-			deleted if there are no more references to it.
-								*E127* *E122*
-			When a function by this name already exists and [!] is
-			not used an error message is given.  There is one
-			exception: When sourcing a script again, a function
-			that was previously defined in that script will be
-			silently replaced.
-			When [!] is used, an existing function is silently
-			replaced.  Unless it is currently being executed, that
-			is an error.
-			NOTE: Use ! wisely.  If used without care it can cause
-			an existing function to be replaced unexpectedly,
-			which is hard to debug.
-			NOTE: In Vim9 script script-local functions cannot be
-			deleted or redefined.
-
-			For the {arguments} see |function-argument|.
-
-					*:func-range* *a:firstline* *a:lastline*
-			When the [range] argument is added, the function is
-			expected to take care of a range itself.  The range is
-			passed as "a:firstline" and "a:lastline".  If [range]
-			is excluded, ":{range}call" will call the function for
-			each line in the range, with the cursor on the start
-			of each line.  See |function-range-example|.
-			The cursor is still moved to the first line of the
-			range, as is the case with all Ex commands.
-								*:func-abort*
-			When the [abort] argument is added, the function will
-			abort as soon as an error is detected.
-								*:func-dict*
-			When the [dict] argument is added, the function must
-			be invoked through an entry in a |Dictionary|.  The
-			local variable "self" will then be set to the
-			dictionary.  See |Dictionary-function|.
-						*:func-closure* *E932*
-			When the [closure] argument is added, the function
-			can access variables and arguments from the outer
-			scope.  This is usually called a closure.  In this
-			example Bar() uses "x" from the scope of Foo().  It
-			remains referenced even after Foo() returns: >
-				:function! Foo()
-				:  let x = 0
-				:  function! Bar() closure
-				:    let x += 1
-				:    return x
-				:  endfunction
-				:  return funcref('Bar')
-				:endfunction
-
-				:let F = Foo()
-				:echo F()
-<				1 >
-				:echo F()
-<				2 >
-				:echo F()
-<				3
-
-						*function-search-undo*
-			The last used search pattern and the redo command "."
-			will not be changed by the function.  This also
-			implies that the effect of |:nohlsearch| is undone
-			when the function returns.
-
-			*:endf* *:endfunction* *E126* *E193* *W22* *E1151*
-:endf[unction] [argument]
-			The end of a function definition.  Best is to put it
-			on a line by its own, without [argument].
-
-			[argument] can be:
-				| command	command to execute next
-				\n command	command to execute next
-				" comment	always ignored
-				anything else	ignored, warning given when
-						'verbose' is non-zero
-			The support for a following command was added in Vim
-			8.0.0654, before that any argument was silently
-			ignored.
-
-			To be able to define a function inside an `:execute`
-			command, use line breaks instead of |:bar|: >
-				:exe "func Foo()\necho 'foo'\nendfunc"
-<
-				*:delf* *:delfunction* *E131* *E933* *E1084*
-:delf[unction][!] {name}
-			Delete function {name}.
-			{name} can also be a |Dictionary| entry that is a
-			|Funcref|: >
-				:delfunc dict.init
-<			This will remove the "init" entry from "dict".  The
-			function is deleted if there are no more references to
-			it.
-			With the ! there is no error if the function does not
-			exist.
-							*:retu* *:return* *E133*
-:retu[rn] [expr]	Return from a function.  When "[expr]" is given, it is
-			evaluated and returned as the result of the function.
-			If "[expr]" is not given, the number 0 is returned.
-			When a function ends without an explicit ":return",
-			the number 0 is returned.
-			In a :def function *E1095* is given if unreachable
-			code follows after the `:return`.
-			In legacy script there is no check for unreachable
-			lines, thus there is no warning if commands follow
-			`:return`.
-
-			If the ":return" is used after a |:try| but before the
-			matching |:finally| (if present), the commands
-			following the ":finally" up to the matching |:endtry|
-			are executed first.  This process applies to all
-			nested ":try"s inside the function.  The function
-			returns at the outermost ":endtry".
-
-						*function-argument* *a:var*
-An argument can be defined by giving its name.  In the function this can then
-be used as "a:name" ("a:" for argument).
-					*a:0* *a:1* *a:000* *E740* *...*
-Up to 20 arguments can be given, separated by commas.  After the named
-arguments an argument "..." can be specified, which means that more arguments
-may optionally be following.  In the function the extra arguments can be used
-as "a:1", "a:2", etc.  "a:0" is set to the number of extra arguments (which
-can be 0).  "a:000" is set to a |List| that contains these arguments.  Note
-that "a:1" is the same as "a:000[0]".
-							*E742* *E1090*
-The a: scope and the variables in it cannot be changed, they are fixed.
-However, if a composite type is used, such as |List| or |Dictionary| , you can
-change their contents.  Thus you can pass a |List| to a function and have the
-function add an item to it.  If you want to make sure the function cannot
-change a |List| or |Dictionary| use |:lockvar|.
-
-It is also possible to define a function without any arguments.  You must
-still supply the () then.
-
-It is allowed to define another function inside a function body.
-
-						*optional-function-argument*
-You can provide default values for positional named arguments.  This makes
-them optional for function calls.  When a positional argument is not
-specified at a call, the default expression is used to initialize it.
-This only works for functions declared with `:function` or `:def`, not for
-lambda expressions |expr-lambda|.
-
-Example: >
-  function Something(key, value = 10)
-     echo a:key .. ": " .. a:value
-  endfunction
-  call Something('empty')	"empty: 10"
-  call Something('key', 20)	"key: 20"
-
-The argument default expressions are evaluated at the time of the function
-call, not definition.  Thus it is possible to use an expression which is
-invalid the moment the function is defined.  The expressions are also only
-evaluated when arguments are not specified during a call.
-						*none-function_argument*
-You can pass |v:none| to use the default expression.  Note that this means you
-cannot pass v:none as an ordinary value when an argument has a default
-expression.
-
-Example: >
-  function Something(a = 10, b = 20, c = 30)
-  endfunction
-  call Something(1, v:none, 3)	    " b = 20
-<
-								*E989*
-Optional arguments with default expressions must occur after any mandatory
-arguments.  You can use "..." after all optional named arguments.
-
-It is possible for later argument defaults to refer to prior arguments,
-but not the other way around.  They must be prefixed with "a:", as with all
-arguments.
-
-Example that works: >
-  :function Okay(mandatory, optional = a:mandatory)
-  :endfunction
-Example that does NOT work: >
-  :function NoGood(first = a:second, second = 10)
-  :endfunction
-<
-When not using "...", the number of arguments in a function call must be at
-least equal to the number of mandatory named arguments.  When using "...", the
-number of arguments may be larger than the total of mandatory and optional
-arguments.
-
-							*local-variables*
-Inside a function local variables can be used.  These will disappear when the
-function returns.  Global variables need to be accessed with "g:".
-
-Example: >
-  :function Table(title, ...)
-  :  echohl Title
-  :  echo a:title
-  :  echohl None
-  :  echo a:0 .. " items:"
-  :  for s in a:000
-  :    echon ' ' .. s
-  :  endfor
-  :endfunction
-
-This function can then be called with: >
-  call Table("Table", "line1", "line2")
-  call Table("Empty Table")
-
-To return more than one value, return a |List|: >
-  :function Compute(n1, n2)
-  :  if a:n2 == 0
-  :    return ["fail", 0]
-  :  endif
-  :  return ["ok", a:n1 / a:n2]
-  :endfunction
-
-This function can then be called with: >
-  :let [success, div] = Compute(102, 6)
-  :if success == "ok"
-  :  echo div
-  :endif
-<
-						*:cal* *:call* *E107*
-:[range]cal[l] {name}([arguments])
-		Call a function.  The name of the function and its arguments
-		are as specified with `:function`.  Up to 20 arguments can be
-		used.  The returned value is discarded.
-		In |Vim9| script using `:call` is optional, these two lines do
-		the same thing: >
-			call SomeFunc(arg)
-			SomeFunc(arg)
-<		Without a range and for functions that accept a range, the
-		function is called once.  When a range is given the cursor is
-		positioned at the start of the first line before executing the
-		function.
-		When a range is given and the function doesn't handle it
-		itself, the function is executed for each line in the range,
-		with the cursor in the first column of that line.  The cursor
-		is left at the last line (possibly moved by the last function
-		call).  The arguments are re-evaluated for each line.  Thus
-		this works:
-						*function-range-example*  >
-	:function Mynumber(arg)
-	:  echo line(".") .. " " .. a:arg
-	:endfunction
-	:1,5call Mynumber(getline("."))
-<
-		The "a:firstline" and "a:lastline" are defined anyway, they
-		can be used to do something different at the start or end of
-		the range.
-
-		Example of a function that handles the range itself: >
-
-	:function Cont() range
-	:  execute (a:firstline + 1) .. "," .. a:lastline .. 's/^/\t\\ '
-	:endfunction
-	:4,8call Cont()
-<
-		This function inserts the continuation character "\" in front
-		of all the lines in the range, except the first one.
-
-		When the function returns a composite value it can be further
-		dereferenced, but the range will not be used then.  Example: >
-	:4,8call GetDict().method()
-<		Here GetDict() gets the range but method() does not.
-
-								*E117*
-When a function cannot be found the error "E117: Unknown function" will be
-given.  If the function was using an autoload path or an autoload import and
-the script is a |Vim9| script, this may also be caused by the function not
-being exported.
-
-								*E132*
-The recursiveness of user functions is restricted with the |'maxfuncdepth'|
-option.
-
-It is also possible to use `:eval`.  It does not support a range, but does
-allow for method chaining, e.g.: >
-	eval GetList()->Filter()->append('$')
-
-A function can also be called as part of evaluating an expression or when it
-is used as a method: >
-	let x = GetList()
-	let y = GetList()->Filter()
-
-
-CLEANING UP IN A FUNCTION ~
-							*:defer*
-:defer {func}({args})	Call {func} when the current function is done.
-			{args} are evaluated here.
-
-Quite often a command in a function has a global effect, which must be undone
-when the function finishes.  Handling this in all kinds of situations can be a
-hassle.  Especially when an unexpected error is encountered.  This can be done
-with `try` / `finally` blocks, but this gets complicated when there is more
-than one.
-
-A much simpler solution is using `defer`.  It schedules a function call when
-the function is returning, no matter if there is an error.  Example: >
-	func Filter(text)
-	  call writefile(a:text, 'Tempfile')
-	  call system('filter < Tempfile > Outfile')
-	  call Handle('Outfile')
-	  call delete('Tempfile')
-	  call delete('Outfile')
-	endfunc
-
-Here 'Tempfile' and 'Outfile' will not be deleted if something causes the
-function to abort.  `:defer` can be used to avoid that: >
-	func Filter(text)
-	  call writefile(a:text, 'Tempfile')
-	  defer delete('Tempfile')
-	  defer delete('Outfile')
-	  call system('filter < Tempfile > Outfile')
-	  call Handle('Outfile')
-	endfunc
-
-Note that deleting "Outfile" is scheduled before calling system(), since it
-can be created even when `system()` fails.
-
-The defered functions are called in reverse order, the last one added is
-executed first.  A useless example: >
-	func Useless()
-	  for s in range(3)
-	    defer execute('echomsg "number ' .. s .. '"')
-	  endfor
-	endfunc
-
-Now `:messages` shows:
-	number 2
-	number 1
-	number 0
-
-Any return value of the deferred function is discarded.  The function cannot
-be followed by anything, such as "->func" or ".member".  Currently `:defer
-GetArg()->TheFunc()` does not work, it may work in a later version.
-
-Errors are reported but do not cause aborting execution of deferred functions.
-
-No range is accepted.
-
-
-AUTOMATICALLY LOADING FUNCTIONS ~
-							*autoload-functions*
-When using many or large functions, it's possible to automatically define them
-only when they are used.  There are two methods: with an autocommand and with
-the "autoload" directory in 'runtimepath'.
-
-
-Using an autocommand ~
-
-This is introduced in the user manual, section |51.4|.
-
-The autocommand is useful if you have a plugin that is a long Vim script file.
-You can define the autocommand and quickly quit the script with `:finish`.
-That makes Vim startup faster.  The autocommand should then load the same file
-again, setting a variable to skip the `:finish` command.
-
-Use the FuncUndefined autocommand event with a pattern that matches the
-function(s) to be defined.  Example: >
-
-	:au FuncUndefined BufNet* source ~/vim/bufnetfuncs.vim
-
-The file "~/vim/bufnetfuncs.vim" should then define functions that start with
-"BufNet".  Also see |FuncUndefined|.
-
-
-Using an autoload script ~
-							*autoload* *E746*
-This is introduced in the user manual, section |52.2|.
-
-Using a script in the "autoload" directory is simpler, but requires using
-exactly the right file name.  A function that can be autoloaded has a name
-like this: >
-
-	:call filename#funcname()
-
-These functions are always global, in Vim9 script "g:" needs to be used: >
-	:call g:filename#funcname()
-
-When such a function is called, and it is not defined yet, Vim will search the
-"autoload" directories in 'runtimepath' for a script file called
-"filename.vim".  For example "~/.vim/autoload/filename.vim".  That file should
-then define the function like this: >
-
-	function filename#funcname()
-	   echo "Done!"
-	endfunction
-
-The file name and the name used before the # in the function must match
-exactly, and the defined function must have the name exactly as it will be
-called.  In Vim9 script the "g:" prefix must be used: >
-	function g:filename#funcname()
-
-or for a compiled function: >
-	def g:filename#funcname()
-
-It is possible to use subdirectories.  Every # in the function name works like
-a path separator.  Thus when calling a function: >
-
-	:call foo#bar#func()
-
-Vim will look for the file "autoload/foo/bar.vim" in 'runtimepath'.
-
-This also works when reading a variable that has not been set yet: >
-
-	:let l = foo#bar#lvar
-
-However, when the autoload script was already loaded it won't be loaded again
-for an unknown variable.
-
-When assigning a value to such a variable nothing special happens.  This can
-be used to pass settings to the autoload script before it's loaded: >
-
-	:let foo#bar#toggle = 1
-	:call foo#bar#func()
-
-Note that when you make a mistake and call a function that is supposed to be
-defined in an autoload script, but the script doesn't actually define the
-function, you will get an error message for the missing function.  If you fix
-the autoload script it won't be automatically loaded again.  Either restart
-Vim or manually source the script.
-
-Also note that if you have two script files, and one calls a function in the
-other and vice versa, before the used function is defined, it won't work.
-Avoid using the autoload functionality at the toplevel.
-
-In |Vim9| script you will get error *E1263* if you define a function with
-a "#" character in the name.  You should use a name without "#" and use
-`:export`.
-
-Hint: If you distribute a bunch of scripts you can pack them together with the
-|vimball| utility.  Also read the user manual |distribute-script|.
+You can find most information about defining functions in |userfunc.txt|.
+For Vim9 functions, which execute much faster, support type checking and more,
+see |vim9.txt|.
 
 ==============================================================================
 6. Curly braces names					*curly-braces-names*
diff --git a/runtime/doc/help.txt b/runtime/doc/help.txt
index 71200a3..db803ef 100644
--- a/runtime/doc/help.txt
+++ b/runtime/doc/help.txt
@@ -141,6 +141,7 @@
 |autocmd.txt|	automatically executing commands on an event
 |eval.txt|	expression evaluation, conditional commands
 |builtin.txt|	builtin functions
+|userfunc.txt|	defining user functions
 |channel.txt|	Jobs, Channels, inter-process communication
 |fold.txt|	hide (fold) ranges of lines
 
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 73ecead..9ff4218 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -1582,7 +1582,7 @@
 -xrm	gui_x11.txt	/*-xrm*
 -y	starting.txt	/*-y*
 .	repeat.txt	/*.*
-...	eval.txt	/*...*
+...	userfunc.txt	/*...*
 .Xdefaults	gui_x11.txt	/*.Xdefaults*
 .aff	spell.txt	/*.aff*
 .dic	spell.txt	/*.dic*
@@ -2260,8 +2260,8 @@
 :caddfile	quickfix.txt	/*:caddfile*
 :caf	quickfix.txt	/*:caf*
 :cafter	quickfix.txt	/*:cafter*
-:cal	eval.txt	/*:cal*
-:call	eval.txt	/*:call*
+:cal	userfunc.txt	/*:cal*
+:call	userfunc.txt	/*:call*
 :cat	eval.txt	/*:cat*
 :catch	eval.txt	/*:catch*
 :cb	quickfix.txt	/*:cb*
@@ -2405,13 +2405,14 @@
 :def	vim9.txt	/*:def*
 :defc	vim9.txt	/*:defc*
 :defcompile	vim9.txt	/*:defcompile*
+:defer	userfunc.txt	/*:defer*
 :del	change.txt	/*:del*
 :delc	map.txt	/*:delc*
 :delcommand	map.txt	/*:delcommand*
 :delcr	todo.txt	/*:delcr*
 :delete	change.txt	/*:delete*
-:delf	eval.txt	/*:delf*
-:delfunction	eval.txt	/*:delfunction*
+:delf	userfunc.txt	/*:delf*
+:delfunction	userfunc.txt	/*:delfunction*
 :delm	motion.txt	/*:delm*
 :delmarks	motion.txt	/*:delmarks*
 :di	change.txt	/*:di*
@@ -2488,10 +2489,10 @@
 :endclass	vim9.txt	/*:endclass*
 :enddef	vim9.txt	/*:enddef*
 :endenum	vim9.txt	/*:endenum*
-:endf	eval.txt	/*:endf*
+:endf	userfunc.txt	/*:endf*
 :endfo	eval.txt	/*:endfo*
 :endfor	eval.txt	/*:endfor*
-:endfunction	eval.txt	/*:endfunction*
+:endfunction	userfunc.txt	/*:endfunction*
 :endif	eval.txt	/*:endif*
 :endinterface	vim9.txt	/*:endinterface*
 :endt	eval.txt	/*:endt*
@@ -2553,13 +2554,13 @@
 :foldo	fold.txt	/*:foldo*
 :foldopen	fold.txt	/*:foldopen*
 :for	eval.txt	/*:for*
-:fu	eval.txt	/*:fu*
-:func-abort	eval.txt	/*:func-abort*
-:func-closure	eval.txt	/*:func-closure*
-:func-dict	eval.txt	/*:func-dict*
-:func-range	eval.txt	/*:func-range*
-:function	eval.txt	/*:function*
-:function-verbose	eval.txt	/*:function-verbose*
+:fu	userfunc.txt	/*:fu*
+:func-abort	userfunc.txt	/*:func-abort*
+:func-closure	userfunc.txt	/*:func-closure*
+:func-dict	userfunc.txt	/*:func-dict*
+:func-range	userfunc.txt	/*:func-range*
+:function	userfunc.txt	/*:function*
+:function-verbose	userfunc.txt	/*:function-verbose*
 :g	repeat.txt	/*:g*
 :global	repeat.txt	/*:global*
 :go	motion.txt	/*:go*
@@ -2599,6 +2600,8 @@
 :his	cmdline.txt	/*:his*
 :history	cmdline.txt	/*:history*
 :history-indexing	cmdline.txt	/*:history-indexing*
+:hor	windows.txt	/*:hor*
+:horizontal	windows.txt	/*:horizontal*
 :i	insert.txt	/*:i*
 :ia	map.txt	/*:ia*
 :iabbrev	map.txt	/*:iabbrev*
@@ -3049,8 +3052,8 @@
 :ret	change.txt	/*:ret*
 :retab	change.txt	/*:retab*
 :retab!	change.txt	/*:retab!*
-:retu	eval.txt	/*:retu*
-:return	eval.txt	/*:return*
+:retu	userfunc.txt	/*:retu*
+:return	userfunc.txt	/*:return*
 :rew	editing.txt	/*:rew*
 :rewind	editing.txt	/*:rewind*
 :ri	change.txt	/*:ri*
@@ -4078,7 +4081,7 @@
 E1067	eval.txt	/*E1067*
 E1068	vim9.txt	/*E1068*
 E1069	vim9.txt	/*E1069*
-E107	eval.txt	/*E107*
+E107	userfunc.txt	/*E107*
 E1071	vim9.txt	/*E1071*
 E1072	eval.txt	/*E1072*
 E1073	vim9.txt	/*E1073*
@@ -4093,18 +4096,18 @@
 E1081	eval.txt	/*E1081*
 E1082	vim9.txt	/*E1082*
 E1083	editing.txt	/*E1083*
-E1084	eval.txt	/*E1084*
+E1084	userfunc.txt	/*E1084*
 E1085	eval.txt	/*E1085*
 E1087	vim9.txt	/*E1087*
 E1088	vim9.txt	/*E1088*
 E1089	eval.txt	/*E1089*
 E109	eval.txt	/*E109*
-E1090	eval.txt	/*E1090*
+E1090	userfunc.txt	/*E1090*
 E1091	vim9.txt	/*E1091*
 E1092	various.txt	/*E1092*
 E1093	eval.txt	/*E1093*
 E1094	vim9.txt	/*E1094*
-E1095	eval.txt	/*E1095*
+E1095	userfunc.txt	/*E1095*
 E1096	vim9.txt	/*E1096*
 E1097	vim9.txt	/*E1097*
 E1098	eval.txt	/*E1098*
@@ -4167,7 +4170,7 @@
 E1149	vim9.txt	/*E1149*
 E115	eval.txt	/*E115*
 E1150	vim9.txt	/*E1150*
-E1151	eval.txt	/*E1151*
+E1151	userfunc.txt	/*E1151*
 E1152	vim9.txt	/*E1152*
 E1153	eval.txt	/*E1153*
 E1154	eval.txt	/*E1154*
@@ -4187,7 +4190,7 @@
 E1167	vim9.txt	/*E1167*
 E1168	vim9.txt	/*E1168*
 E1169	eval.txt	/*E1169*
-E117	eval.txt	/*E117*
+E117	userfunc.txt	/*E117*
 E1170	vim9.txt	/*E1170*
 E1171	vim9.txt	/*E1171*
 E1172	vim9.txt	/*E1172*
@@ -4243,7 +4246,7 @@
 E1217	vim9.txt	/*E1217*
 E1218	vim9.txt	/*E1218*
 E1219	vim9.txt	/*E1219*
-E122	eval.txt	/*E122*
+E122	userfunc.txt	/*E122*
 E1220	vim9.txt	/*E1220*
 E1221	vim9.txt	/*E1221*
 E1222	vim9.txt	/*E1222*
@@ -4254,7 +4257,7 @@
 E1227	vim9.txt	/*E1227*
 E1228	vim9.txt	/*E1228*
 E1229	eval.txt	/*E1229*
-E123	eval.txt	/*E123*
+E123	userfunc.txt	/*E123*
 E1230	options.txt	/*E1230*
 E1231	map.txt	/*E1231*
 E1232	builtin.txt	/*E1232*
@@ -4264,7 +4267,7 @@
 E1237	map.txt	/*E1237*
 E1238	vim9.txt	/*E1238*
 E1239	builtin.txt	/*E1239*
-E124	eval.txt	/*E124*
+E124	userfunc.txt	/*E124*
 E1240	change.txt	/*E1240*
 E1241	change.txt	/*E1241*
 E1242	change.txt	/*E1242*
@@ -4275,7 +4278,7 @@
 E1247	cmdline.txt	/*E1247*
 E1248	vim9.txt	/*E1248*
 E1249	syntax.txt	/*E1249*
-E125	eval.txt	/*E125*
+E125	userfunc.txt	/*E125*
 E1250	vim9.txt	/*E1250*
 E1251	vim9.txt	/*E1251*
 E1252	vim9.txt	/*E1252*
@@ -4286,18 +4289,18 @@
 E1257	vim9.txt	/*E1257*
 E1258	vim9.txt	/*E1258*
 E1259	vim9.txt	/*E1259*
-E126	eval.txt	/*E126*
+E126	userfunc.txt	/*E126*
 E1260	vim9.txt	/*E1260*
 E1261	vim9.txt	/*E1261*
 E1262	vim9.txt	/*E1262*
-E1263	eval.txt	/*E1263*
+E1263	userfunc.txt	/*E1263*
 E1264	vim9.txt	/*E1264*
 E1265	eval.txt	/*E1265*
 E1266	if_pyth.txt	/*E1266*
-E1267	eval.txt	/*E1267*
+E1267	userfunc.txt	/*E1267*
 E1268	vim9.txt	/*E1268*
 E1269	vim9.txt	/*E1269*
-E127	eval.txt	/*E127*
+E127	userfunc.txt	/*E127*
 E1270	change.txt	/*E1270*
 E1271	vim9.txt	/*E1271*
 E1272	vim9.txt	/*E1272*
@@ -4308,7 +4311,7 @@
 E1277	channel.txt	/*E1277*
 E1278	eval.txt	/*E1278*
 E1279	eval.txt	/*E1279*
-E128	eval.txt	/*E128*
+E128	userfunc.txt	/*E128*
 E1280	spell.txt	/*E1280*
 E1281	pattern.txt	/*E1281*
 E1282	eval.txt	/*E1282*
@@ -4319,7 +4322,7 @@
 E1287	builtin.txt	/*E1287*
 E1288	builtin.txt	/*E1288*
 E1289	builtin.txt	/*E1289*
-E129	eval.txt	/*E129*
+E129	userfunc.txt	/*E129*
 E1290	change.txt	/*E1290*
 E1291	testing.txt	/*E1291*
 E1292	cmdline.txt	/*E1292*
@@ -4328,10 +4331,11 @@
 E1295	textprop.txt	/*E1295*
 E1296	textprop.txt	/*E1296*
 E1297	vim9.txt	/*E1297*
+E1298	vim9.txt	/*E1298*
 E13	message.txt	/*E13*
-E131	eval.txt	/*E131*
-E132	eval.txt	/*E132*
-E133	eval.txt	/*E133*
+E131	userfunc.txt	/*E131*
+E132	userfunc.txt	/*E132*
+E133	userfunc.txt	/*E133*
 E134	change.txt	/*E134*
 E135	autocmd.txt	/*E135*
 E136	starting.txt	/*E136*
@@ -4396,7 +4400,7 @@
 E190	message.txt	/*E190*
 E191	motion.txt	/*E191*
 E192	message.txt	/*E192*
-E193	eval.txt	/*E193*
+E193	userfunc.txt	/*E193*
 E194	message.txt	/*E194*
 E195	starting.txt	/*E195*
 E196	various.txt	/*E196*
@@ -4675,7 +4679,7 @@
 E451	eval.txt	/*E451*
 E452	eval.txt	/*E452*
 E453	syntax.txt	/*E453*
-E454	eval.txt	/*E454*
+E454	userfunc.txt	/*E454*
 E455	print.txt	/*E455*
 E456	print.txt	/*E456*
 E457	print.txt	/*E457*
@@ -4978,13 +4982,13 @@
 E738	eval.txt	/*E738*
 E739	builtin.txt	/*E739*
 E74	message.txt	/*E74*
-E740	eval.txt	/*E740*
+E740	userfunc.txt	/*E740*
 E741	eval.txt	/*E741*
-E742	eval.txt	/*E742*
+E742	userfunc.txt	/*E742*
 E743	eval.txt	/*E743*
 E744	netbeans.txt	/*E744*
 E745	eval.txt	/*E745*
-E746	eval.txt	/*E746*
+E746	userfunc.txt	/*E746*
 E747	editing.txt	/*E747*
 E748	repeat.txt	/*E748*
 E749	various.txt	/*E749*
@@ -5101,7 +5105,7 @@
 E850	change.txt	/*E850*
 E851	gui_x11.txt	/*E851*
 E852	gui_x11.txt	/*E852*
-E853	eval.txt	/*E853*
+E853	userfunc.txt	/*E853*
 E854	options.txt	/*E854*
 E855	autocmd.txt	/*E855*
 E856	testing.txt	/*E856*
@@ -5135,7 +5139,7 @@
 E881	autocmd.txt	/*E881*
 E882	builtin.txt	/*E882*
 E883	builtin.txt	/*E883*
-E884	eval.txt	/*E884*
+E884	userfunc.txt	/*E884*
 E885	sign.txt	/*E885*
 E886	starting.txt	/*E886*
 E887	if_pyth.txt	/*E887*
@@ -5188,8 +5192,8 @@
 E93	windows.txt	/*E93*
 E930	builtin.txt	/*E930*
 E931	message.txt	/*E931*
-E932	eval.txt	/*E932*
-E933	eval.txt	/*E933*
+E932	userfunc.txt	/*E932*
+E933	userfunc.txt	/*E933*
 E934	sign.txt	/*E934*
 E935	builtin.txt	/*E935*
 E936	autocmd.txt	/*E936*
@@ -5250,7 +5254,7 @@
 E986	tagsrch.txt	/*E986*
 E987	tagsrch.txt	/*E987*
 E988	gui_w32.txt	/*E988*
-E989	eval.txt	/*E989*
+E989	userfunc.txt	/*E989*
 E99	diff.txt	/*E99*
 E990	eval.txt	/*E990*
 E991	eval.txt	/*E991*
@@ -5572,7 +5576,7 @@
 W19	autocmd.txt	/*W19*
 W20	if_pyth.txt	/*W20*
 W21	if_pyth.txt	/*W21*
-W22	eval.txt	/*W22*
+W22	userfunc.txt	/*W22*
 WORD	motion.txt	/*WORD*
 WSL	os_win32.txt	/*WSL*
 WWW	intro.txt	/*WWW*
@@ -5707,12 +5711,12 @@
 a(	motion.txt	/*a(*
 a)	motion.txt	/*a)*
 a4	print.txt	/*a4*
-a:0	eval.txt	/*a:0*
-a:000	eval.txt	/*a:000*
-a:1	eval.txt	/*a:1*
-a:firstline	eval.txt	/*a:firstline*
-a:lastline	eval.txt	/*a:lastline*
-a:var	eval.txt	/*a:var*
+a:0	userfunc.txt	/*a:0*
+a:000	userfunc.txt	/*a:000*
+a:1	userfunc.txt	/*a:1*
+a:firstline	userfunc.txt	/*a:firstline*
+a:lastline	userfunc.txt	/*a:lastline*
+a:var	userfunc.txt	/*a:var*
 a<	motion.txt	/*a<*
 a>	motion.txt	/*a>*
 aB	motion.txt	/*aB*
@@ -5858,8 +5862,8 @@
 autocommand-pattern	autocmd.txt	/*autocommand-pattern*
 autocommands	autocmd.txt	/*autocommands*
 autoformat	change.txt	/*autoformat*
-autoload	eval.txt	/*autoload*
-autoload-functions	eval.txt	/*autoload-functions*
+autoload	userfunc.txt	/*autoload*
+autoload-functions	userfunc.txt	/*autoload-functions*
 avoid-hit-enter	version5.txt	/*avoid-hit-enter*
 aw	motion.txt	/*aw*
 a{	motion.txt	/*a{*
@@ -6493,6 +6497,7 @@
 deepcopy()	builtin.txt	/*deepcopy()*
 defaults.vim	starting.txt	/*defaults.vim*
 defaults.vim-explained	usr_05.txt	/*defaults.vim-explained*
+define-function	userfunc.txt	/*define-function*
 definition-search	tagsrch.txt	/*definition-search*
 definitions	intro.txt	/*definitions*
 delete()	builtin.txt	/*delete()*
@@ -7131,11 +7136,11 @@
 fullcommand()	builtin.txt	/*fullcommand()*
 funcref()	builtin.txt	/*funcref()*
 function()	builtin.txt	/*function()*
-function-argument	eval.txt	/*function-argument*
+function-argument	userfunc.txt	/*function-argument*
 function-key	intro.txt	/*function-key*
 function-list	usr_41.txt	/*function-list*
-function-range-example	eval.txt	/*function-range-example*
-function-search-undo	eval.txt	/*function-search-undo*
+function-range-example	userfunc.txt	/*function-range-example*
+function-search-undo	userfunc.txt	/*function-search-undo*
 function_key	intro.txt	/*function_key*
 functions	eval.txt	/*functions*
 fuzzy-matching	pattern.txt	/*fuzzy-matching*
@@ -8182,10 +8187,10 @@
 load-plugins	starting.txt	/*load-plugins*
 load-vim-script	repeat.txt	/*load-vim-script*
 local-additions	help.txt	/*local-additions*
-local-function	eval.txt	/*local-function*
+local-function	userfunc.txt	/*local-function*
 local-options	options.txt	/*local-options*
 local-variable	eval.txt	/*local-variable*
-local-variables	eval.txt	/*local-variables*
+local-variables	userfunc.txt	/*local-variables*
 local_markfilelist	pi_netrw.txt	/*local_markfilelist*
 locale	mbyte.txt	/*locale*
 locale-name	mbyte.txt	/*locale-name*
@@ -8797,7 +8802,7 @@
 nocombine	syntax.txt	/*nocombine*
 non-greedy	pattern.txt	/*non-greedy*
 non-zero-arg	eval.txt	/*non-zero-arg*
-none-function_argument	eval.txt	/*none-function_argument*
+none-function_argument	userfunc.txt	/*none-function_argument*
 none-variable	eval.txt	/*none-variable*
 normal-index	index.txt	/*normal-index*
 not-compatible	usr_01.txt	/*not-compatible*
@@ -8851,7 +8856,7 @@
 option-window	options.txt	/*option-window*
 option_restore()	todo.txt	/*option_restore()*
 option_save()	todo.txt	/*option_save()*
-optional-function-argument	eval.txt	/*optional-function-argument*
+optional-function-argument	userfunc.txt	/*optional-function-argument*
 options	options.txt	/*options*
 options-changed	version5.txt	/*options-changed*
 options-in-terminal	terminal.txt	/*options-in-terminal*
@@ -10326,6 +10331,7 @@
 user-commands	map.txt	/*user-commands*
 user-functions	eval.txt	/*user-functions*
 user-manual	usr_toc.txt	/*user-manual*
+userfunc.txt	userfunc.txt	/*userfunc.txt*
 using-<Plug>	usr_51.txt	/*using-<Plug>*
 using-menus	gui.txt	/*using-menus*
 using-scripts	repeat.txt	/*using-scripts*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 327ae01..71b8b0f 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -38,12 +38,17 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-cmdheight=0:
-- :g/pattern should not use message window  #11012
+When using :echomessage do use msg_row and msg_col, but save and restore.
+How to test any failure?
 
-*.sil detection with FTsil() (lacygoill, Aug 25)
+Improve :defer command:
+    - Use "D" flag of writefile() in tests.
+    - test "defer func()->funcouter()" fails (or use "funcouter")
+    - test "defer func().arg" fails
+    - test partial fails
+    - check arguments at :defer command
+    - Also when function does "qa!" or "cq"?
 
-Avoid using "Xfile" and "Xdir" in tests, use specific names.
 
 Further Vim9 improvements, possibly after launch:
 - Use Vim9 for more runtime files.
@@ -183,10 +188,7 @@
 - When 'encoding' is not utf-8, or the job is using another encoding, setup
   conversions.
 
-Cleanup:
-- Remove FEAT_FOOTER ?
-
-Add 'splitscroll'  #10682  Useful?  Any remaining trouble?
+Add 'splitscroll'  #10682  Anything remaining
 
 Autoconf: must use autoconf 2.69, later version generates lots of warnings
 - try using autoconf 2.71 and fix all "obsolete" warnings
@@ -196,6 +198,8 @@
 After patch 8.2.4915 w_botline is computed much more often. Can this be
 reduced?
 
+Add BufDeletePost.  #11041
+
 NFA regexp does not handle composing characters well: #10286
     [ɔ̃] matches both ɔ and ɔ̃
     \(ɔ\|ɔ̃\) matches ɔ and not ɔ̃
@@ -3753,6 +3757,7 @@
     - use treesitter, NeoVim uses it - Many people don't like it.
 	After changes requires rebuilding the library.
     - use TextMate, vscode uses it.  #9087 - Other people don't like it.
+	    https://github.com/icedman/vim-textmate
       Vscode is asked to switch to treesitter:
       https://github.com/microsoft/vscode/issues/50140
     - sublime grammar?
diff --git a/runtime/doc/userfunc.txt b/runtime/doc/userfunc.txt
new file mode 100644
index 0000000..f637700
--- /dev/null
+++ b/runtime/doc/userfunc.txt
@@ -0,0 +1,530 @@
+*userfunc.txt*	For Vim version 9.0.  Last change: 2022 Jun 17
+
+
+		  VIM REFERENCE MANUAL	  by Bram Moolenaar
+
+
+Defining and using functions.
+
+This is introduced in section |41.7| of the user manual.
+
+1. Defining a fuction			|define-function|
+2. Calling a fuction			|:call|
+3. Cleaning up in a function		|:defer|
+4. Automatically loading functions	|autoload-functions|
+
+==============================================================================
+
+1. Defining a fuction ~
+						*define-function*
+New functions can be defined.  These can be called just like builtin
+functions.  The function executes a sequence of Ex commands.  Normal mode
+commands can be executed with the |:normal| command.
+
+The function name must start with an uppercase letter, to avoid confusion with
+builtin functions.  To prevent from using the same name in different scripts
+make them script-local.  If you do use a global function the avoid obvious,
+short names.  A good habit is to start the function name with the name of the
+script, e.g., "HTMLcolor()".
+
+In legacy script it is also possible to use curly braces, see
+|curly-braces-names|.
+
+The |autoload| facility is useful to define a function only when it's called.
+
+							*local-function*
+A function local to a legacy script must start with "s:".  A local script
+function can only be called from within the script and from functions, user
+commands and autocommands defined in the script.  It is also possible to call
+the function from a mapping defined in the script, but then |<SID>| must be
+used instead of "s:" when the mapping is expanded outside of the script.
+There are only script-local functions, no buffer-local or window-local
+functions.
+
+In |Vim9| script functions are local to the script by default, prefix "g:" to
+define a global function.
+
+				*:fu* *:function* *E128* *E129* *E123* *E454*
+:fu[nction]		List all functions and their arguments.
+
+:fu[nction] {name}	List function {name}.
+			{name} can also be a |Dictionary| entry that is a
+			|Funcref|: >
+				:function dict.init
+
+:fu[nction] /{pattern}	List functions with a name matching {pattern}.
+			Example that lists all functions ending with "File": >
+				:function /File$
+<
+							*:function-verbose*
+When 'verbose' is non-zero, listing a function will also display where it was
+last defined. Example: >
+
+    :verbose function SetFileTypeSH
+	function SetFileTypeSH(name)
+	    Last set from /usr/share/vim/vim-7.0/filetype.vim
+<
+See |:verbose-cmd| for more information.
+
+						*E124* *E125* *E853* *E884*
+:fu[nction][!] {name}([arguments]) [range] [abort] [dict] [closure]
+			Define a new function by the name {name}.  The body of
+			the function follows in the next lines, until the
+			matching |:endfunction|.
+								*E1267*
+			The name must be made of alphanumeric characters and
+			'_', and must start with a capital or "s:" (see
+			above).  Note that using "b:" or "g:" is not allowed.
+			(since patch 7.4.260 E884 is given if the function
+			name has a colon in the name, e.g. for "foo:bar()".
+			Before that patch no error was given).
+
+			{name} can also be a |Dictionary| entry that is a
+			|Funcref|: >
+				:function dict.init(arg)
+<			"dict" must be an existing dictionary.  The entry
+			"init" is added if it didn't exist yet.  Otherwise [!]
+			is required to overwrite an existing function.  The
+			result is a |Funcref| to a numbered function.  The
+			function can only be used with a |Funcref| and will be
+			deleted if there are no more references to it.
+								*E127* *E122*
+			When a function by this name already exists and [!] is
+			not used an error message is given.  There is one
+			exception: When sourcing a script again, a function
+			that was previously defined in that script will be
+			silently replaced.
+			When [!] is used, an existing function is silently
+			replaced.  Unless it is currently being executed, that
+			is an error.
+			NOTE: Use ! wisely.  If used without care it can cause
+			an existing function to be replaced unexpectedly,
+			which is hard to debug.
+			NOTE: In Vim9 script script-local functions cannot be
+			deleted or redefined.
+
+			For the {arguments} see |function-argument|.
+
+					*:func-range* *a:firstline* *a:lastline*
+			When the [range] argument is added, the function is
+			expected to take care of a range itself.  The range is
+			passed as "a:firstline" and "a:lastline".  If [range]
+			is excluded, ":{range}call" will call the function for
+			each line in the range, with the cursor on the start
+			of each line.  See |function-range-example|.
+			The cursor is still moved to the first line of the
+			range, as is the case with all Ex commands.
+								*:func-abort*
+			When the [abort] argument is added, the function will
+			abort as soon as an error is detected.
+								*:func-dict*
+			When the [dict] argument is added, the function must
+			be invoked through an entry in a |Dictionary|.  The
+			local variable "self" will then be set to the
+			dictionary.  See |Dictionary-function|.
+						*:func-closure* *E932*
+			When the [closure] argument is added, the function
+			can access variables and arguments from the outer
+			scope.  This is usually called a closure.  In this
+			example Bar() uses "x" from the scope of Foo().  It
+			remains referenced even after Foo() returns: >
+				:function! Foo()
+				:  let x = 0
+				:  function! Bar() closure
+				:    let x += 1
+				:    return x
+				:  endfunction
+				:  return funcref('Bar')
+				:endfunction
+
+				:let F = Foo()
+				:echo F()
+<				1 >
+				:echo F()
+<				2 >
+				:echo F()
+<				3
+
+						*function-search-undo*
+			The last used search pattern and the redo command "."
+			will not be changed by the function.  This also
+			implies that the effect of |:nohlsearch| is undone
+			when the function returns.
+
+			*:endf* *:endfunction* *E126* *E193* *W22* *E1151*
+:endf[unction] [argument]
+			The end of a function definition.  Best is to put it
+			on a line by its own, without [argument].
+
+			[argument] can be:
+				| command	command to execute next
+				\n command	command to execute next
+				" comment	always ignored
+				anything else	ignored, warning given when
+						'verbose' is non-zero
+			The support for a following command was added in Vim
+			8.0.0654, before that any argument was silently
+			ignored.
+
+			To be able to define a function inside an `:execute`
+			command, use line breaks instead of |:bar|: >
+				:exe "func Foo()\necho 'foo'\nendfunc"
+<
+				*:delf* *:delfunction* *E131* *E933* *E1084*
+:delf[unction][!] {name}
+			Delete function {name}.
+			{name} can also be a |Dictionary| entry that is a
+			|Funcref|: >
+				:delfunc dict.init
+<			This will remove the "init" entry from "dict".  The
+			function is deleted if there are no more references to
+			it.
+			With the ! there is no error if the function does not
+			exist.
+							*:retu* *:return* *E133*
+:retu[rn] [expr]	Return from a function.  When "[expr]" is given, it is
+			evaluated and returned as the result of the function.
+			If "[expr]" is not given, the number 0 is returned.
+			When a function ends without an explicit ":return",
+			the number 0 is returned.
+			In a :def function *E1095* is given if unreachable
+			code follows after the `:return`.
+			In legacy script there is no check for unreachable
+			lines, thus there is no warning if commands follow
+			`:return`.
+
+			If the ":return" is used after a |:try| but before the
+			matching |:finally| (if present), the commands
+			following the ":finally" up to the matching |:endtry|
+			are executed first.  This process applies to all
+			nested ":try"s inside the function.  The function
+			returns at the outermost ":endtry".
+
+						*function-argument* *a:var*
+An argument can be defined by giving its name.  In the function this can then
+be used as "a:name" ("a:" for argument).
+					*a:0* *a:1* *a:000* *E740* *...*
+Up to 20 arguments can be given, separated by commas.  After the named
+arguments an argument "..." can be specified, which means that more arguments
+may optionally be following.  In the function the extra arguments can be used
+as "a:1", "a:2", etc.  "a:0" is set to the number of extra arguments (which
+can be 0).  "a:000" is set to a |List| that contains these arguments.  Note
+that "a:1" is the same as "a:000[0]".
+							*E742* *E1090*
+The a: scope and the variables in it cannot be changed, they are fixed.
+However, if a composite type is used, such as |List| or |Dictionary| , you can
+change their contents.  Thus you can pass a |List| to a function and have the
+function add an item to it.  If you want to make sure the function cannot
+change a |List| or |Dictionary| use |:lockvar|.
+
+It is also possible to define a function without any arguments.  You must
+still supply the () then.
+
+It is allowed to define another function inside a function body.
+
+						*optional-function-argument*
+You can provide default values for positional named arguments.  This makes
+them optional for function calls.  When a positional argument is not
+specified at a call, the default expression is used to initialize it.
+This only works for functions declared with `:function` or `:def`, not for
+lambda expressions |expr-lambda|.
+
+Example: >
+  function Something(key, value = 10)
+     echo a:key .. ": " .. a:value
+  endfunction
+  call Something('empty')	"empty: 10"
+  call Something('key', 20)	"key: 20"
+
+The argument default expressions are evaluated at the time of the function
+call, not definition.  Thus it is possible to use an expression which is
+invalid the moment the function is defined.  The expressions are also only
+evaluated when arguments are not specified during a call.
+						*none-function_argument*
+You can pass |v:none| to use the default expression.  Note that this means you
+cannot pass v:none as an ordinary value when an argument has a default
+expression.
+
+Example: >
+  function Something(a = 10, b = 20, c = 30)
+  endfunction
+  call Something(1, v:none, 3)	    " b = 20
+<
+								*E989*
+Optional arguments with default expressions must occur after any mandatory
+arguments.  You can use "..." after all optional named arguments.
+
+It is possible for later argument defaults to refer to prior arguments,
+but not the other way around.  They must be prefixed with "a:", as with all
+arguments.
+
+Example that works: >
+  :function Okay(mandatory, optional = a:mandatory)
+  :endfunction
+Example that does NOT work: >
+  :function NoGood(first = a:second, second = 10)
+  :endfunction
+<
+When not using "...", the number of arguments in a function call must be at
+least equal to the number of mandatory named arguments.  When using "...", the
+number of arguments may be larger than the total of mandatory and optional
+arguments.
+
+							*local-variables*
+Inside a function local variables can be used.  These will disappear when the
+function returns.  Global variables need to be accessed with "g:".
+Inside functions local variables are accessed without prepending anything.
+But you can also prepend "l:" if you like.  This is required for some reserved
+names, such as "count".
+
+Example: >
+  :function Table(title, ...)
+  :  echohl Title
+  :  echo a:title
+  :  echohl None
+  :  echo a:0 .. " items:"
+  :  for s in a:000
+  :    echon ' ' .. s
+  :  endfor
+  :endfunction
+
+This function can then be called with: >
+  call Table("Table", "line1", "line2")
+  call Table("Empty Table")
+
+To return more than one value, return a |List|: >
+  :function Compute(n1, n2)
+  :  if a:n2 == 0
+  :    return ["fail", 0]
+  :  endif
+  :  return ["ok", a:n1 / a:n2]
+  :endfunction
+
+This function can then be called with: >
+  :let [success, div] = Compute(102, 6)
+  :if success == "ok"
+  :  echo div
+  :endif
+<
+==============================================================================
+
+2. Calling a fuction ~
+						*:cal* *:call* *E107*
+:[range]cal[l] {name}([arguments])
+		Call a function.  The name of the function and its arguments
+		are as specified with `:function`.  Up to 20 arguments can be
+		used.  The returned value is discarded.
+		In |Vim9| script using `:call` is optional, these two lines do
+		the same thing: >
+			call SomeFunc(arg)
+			SomeFunc(arg)
+<		Without a range and for functions that accept a range, the
+		function is called once.  When a range is given the cursor is
+		positioned at the start of the first line before executing the
+		function.
+		When a range is given and the function doesn't handle it
+		itself, the function is executed for each line in the range,
+		with the cursor in the first column of that line.  The cursor
+		is left at the last line (possibly moved by the last function
+		call).  The arguments are re-evaluated for each line.  Thus
+		this works:
+						*function-range-example*  >
+	:function Mynumber(arg)
+	:  echo line(".") .. " " .. a:arg
+	:endfunction
+	:1,5call Mynumber(getline("."))
+<
+		The "a:firstline" and "a:lastline" are defined anyway, they
+		can be used to do something different at the start or end of
+		the range.
+
+		Example of a function that handles the range itself: >
+
+	:function Cont() range
+	:  execute (a:firstline + 1) .. "," .. a:lastline .. 's/^/\t\\ '
+	:endfunction
+	:4,8call Cont()
+<
+		This function inserts the continuation character "\" in front
+		of all the lines in the range, except the first one.
+
+		When the function returns a composite value it can be further
+		dereferenced, but the range will not be used then.  Example: >
+	:4,8call GetDict().method()
+<		Here GetDict() gets the range but method() does not.
+
+								*E117*
+When a function cannot be found the error "E117: Unknown function" will be
+given.  If the function was using an autoload path or an autoload import and
+the script is a |Vim9| script, this may also be caused by the function not
+being exported.
+
+								*E132*
+The recursiveness of user functions is restricted with the |'maxfuncdepth'|
+option.
+
+It is also possible to use `:eval`.  It does not support a range, but does
+allow for method chaining, e.g.: >
+	eval GetList()->Filter()->append('$')
+
+A function can also be called as part of evaluating an expression or when it
+is used as a method: >
+	let x = GetList()
+	let y = GetList()->Filter()
+
+==============================================================================
+
+3. Cleaning up in a function ~
+							*:defer*
+:defer {func}({args})	Call {func} when the current function is done.
+			{args} are evaluated here.
+
+Quite often a command in a function has a global effect, which must be undone
+when the function finishes.  Handling this in all kinds of situations can be a
+hassle.  Especially when an unexpected error is encountered.  This can be done
+with `try` / `finally` blocks, but this gets complicated when there is more
+than one.
+
+A much simpler solution is using `defer`.  It schedules a function call when
+the function is returning, no matter if there is an error.  Example: >
+	func Filter(text) abort
+	  call writefile(a:text, 'Tempfile')
+	  call system('filter < Tempfile > Outfile')
+	  call Handle('Outfile')
+	  call delete('Tempfile')
+	  call delete('Outfile')
+	endfunc
+
+Here 'Tempfile' and 'Outfile' will not be deleted if something causes the
+function to abort.  `:defer` can be used to avoid that: >
+	func Filter(text) abort
+	  call writefile(a:text, 'Tempfile')
+	  defer delete('Tempfile')
+	  defer delete('Outfile')
+	  call system('filter < Tempfile > Outfile')
+	  call Handle('Outfile')
+	endfunc
+
+Note that deleting "Outfile" is scheduled before calling system(), since it
+can be created even when `system()` fails.
+
+The deferred functions are called in reverse order, the last one added is
+executed first.  A useless example: >
+	func Useless() abort
+	  for s in range(3)
+	    defer execute('echomsg "number ' .. s .. '"')
+	  endfor
+	endfunc
+
+Now `:messages` shows:
+	number 2
+	number 1
+	number 0
+
+Any return value of the deferred function is discarded.  The function cannot
+be followed by anything, such as "->func" or ".member".  Currently `:defer
+GetArg()->TheFunc()` does not work, it may work in a later version.
+
+Errors are reported but do not cause aborting execution of deferred functions.
+
+No range is accepted.
+
+==============================================================================
+
+4. Automatically loading functions ~
+							*autoload-functions*
+When using many or large functions, it's possible to automatically define them
+only when they are used.  There are two methods: with an autocommand and with
+the "autoload" directory in 'runtimepath'.
+
+In |Vim9| script there is also an autoload mechanism for imported scripts, see
+|import-autoload|.
+
+
+Using an autocommand ~
+
+This is introduced in the user manual, section |51.4|.
+
+The autocommand is useful if you have a plugin that is a long Vim script file.
+You can define the autocommand and quickly quit the script with `:finish`.
+That makes Vim startup faster.  The autocommand should then load the same file
+again, setting a variable to skip the `:finish` command.
+
+Use the FuncUndefined autocommand event with a pattern that matches the
+function(s) to be defined.  Example: >
+
+	:au FuncUndefined BufNet* source ~/vim/bufnetfuncs.vim
+
+The file "~/vim/bufnetfuncs.vim" should then define functions that start with
+"BufNet".  Also see |FuncUndefined|.
+
+
+Using an autoload script ~
+							*autoload* *E746*
+This is introduced in the user manual, section |52.2|.
+
+Using a script in the "autoload" directory is simpler, but requires using
+exactly the right file name.  A function that can be autoloaded has a name
+like this: >
+
+	:call filename#funcname()
+
+These functions are always global, in Vim9 script "g:" needs to be used: >
+	:call g:filename#funcname()
+
+When such a function is called, and it is not defined yet, Vim will search the
+"autoload" directories in 'runtimepath' for a script file called
+"filename.vim".  For example "~/.vim/autoload/filename.vim".  That file should
+then define the function like this: >
+
+	function filename#funcname()
+	   echo "Done!"
+	endfunction
+
+The file name and the name used before the # in the function must match
+exactly, and the defined function must have the name exactly as it will be
+called.  In Vim9 script the "g:" prefix must be used: >
+	function g:filename#funcname()
+
+or for a compiled function: >
+	def g:filename#funcname()
+
+It is possible to use subdirectories.  Every # in the function name works like
+a path separator.  Thus when calling a function: >
+
+	:call foo#bar#func()
+
+Vim will look for the file "autoload/foo/bar.vim" in 'runtimepath'.
+
+This also works when reading a variable that has not been set yet: >
+
+	:let l = foo#bar#lvar
+
+However, when the autoload script was already loaded it won't be loaded again
+for an unknown variable.
+
+When assigning a value to such a variable nothing special happens.  This can
+be used to pass settings to the autoload script before it's loaded: >
+
+	:let foo#bar#toggle = 1
+	:call foo#bar#func()
+
+Note that when you make a mistake and call a function that is supposed to be
+defined in an autoload script, but the script doesn't actually define the
+function, you will get an error message for the missing function.  If you fix
+the autoload script it won't be automatically loaded again.  Either restart
+Vim or manually source the script.
+
+Also note that if you have two script files, and one calls a function in the
+other and vice versa, before the used function is defined, it won't work.
+Avoid using the autoload functionality at the toplevel.
+
+In |Vim9| script you will get error *E1263* if you define a function with
+a "#" character in the name.  You should use a name without "#" and use
+`:export`.
+
+Hint: If you distribute a bunch of scripts you can pack them together with the
+|vimball| utility.  Also read the user manual |distribute-script|.
+
+
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/windows.txt b/runtime/doc/windows.txt
index 32ec102..b60d44c 100644
--- a/runtime/doc/windows.txt
+++ b/runtime/doc/windows.txt
@@ -257,13 +257,13 @@
 :vert[ical] {cmd}
 		Execute {cmd}.  If it contains a command that splits a window,
 		it will be split vertically.  For `vertical wincmd =` windows
-		will be equialized only vertically.
+		will be equalized only vertically.
 		Doesn't work for |:execute| and |:normal|.
 
 						*:hor* *:horizontal*
 :hor[izontal] {cmd}
 		Execute {cmd}.  Currently only makes a difference for
-		`horizontal wincmd =`, which will equal windows only
+		`horizontal wincmd =`, which will equalize windows only
 		horizontally.
 
 :lefta[bove] {cmd}				*:lefta* *:leftabove*
diff --git a/runtime/ftplugin/gdscript.vim b/runtime/ftplugin/gdscript.vim
index dc1d220..3597d45 100644
--- a/runtime/ftplugin/gdscript.vim
+++ b/runtime/ftplugin/gdscript.vim
@@ -3,6 +3,7 @@
 # Vim filetype plugin file
 # Language: gdscript (Godot game engine scripting language)
 # Maintainer: Maxim Kim <habamax@gmail.com>
+# Website: https://github.com/habamax/vim-gdscript
 
 if exists("b:did_ftplugin") | finish | endif
 
@@ -49,5 +50,5 @@
 
 nnoremap <silent><buffer>   ]] <scriptcmd>NextSection(false, v:count1)<CR>
 nnoremap <silent><buffer>   [[ <scriptcmd>NextSection(true, v:count1)<CR>
-xmap <silent><buffer><expr> ]] "\<esc>" .. v:count1 .. ']]m>gv'
-xmap <silent><buffer><expr> [[ "\<esc>" .. v:count1 .. '[[m>gv'
+xmap <buffer><expr> ]] $'<C-\><C-N>{v:count1}]]m>gv'
+xmap <buffer><expr> [[ $'<C-\><C-N>{v:count1}[[m>gv'
diff --git a/runtime/indent/testdir/runtest.vim b/runtime/indent/testdir/runtest.vim
index 6bbd33c..fa4e16e 100644
--- a/runtime/indent/testdir/runtest.vim
+++ b/runtime/indent/testdir/runtest.vim
@@ -11,6 +11,7 @@
 set nowrapscan
 set report=9999
 set modeline
+set debug=throw
 
 au! SwapExists * call HandleSwapExists()
 func HandleSwapExists()
@@ -84,7 +85,12 @@
 
 	exe start + 1
 	if pattern == ''
-	  exe 'normal =' . (end - 1) . 'G'
+	  try
+	    exe 'normal =' . (end - 1) . 'G'
+	  catch
+	    call append(indent_at, 'ERROR: ' . v:exception)
+	    let failed = 1
+	  endtry
 	else
 	  let lnum = search(pattern)
 	  if lnum <= 0
@@ -99,7 +105,12 @@
 	  else
 	    exe lnum - 1
 	  endif
-	  normal ==
+	  try
+	    normal ==
+	  catch
+	    call append(indent_at, 'ERROR: ' . v:exception)
+	    let failed = 1
+	  endtry
 	endif
       endif
     endwhile
diff --git a/runtime/indent/testdir/vim.in b/runtime/indent/testdir/vim.in
index 873045b..5eb262f 100644
--- a/runtime/indent/testdir/vim.in
+++ b/runtime/indent/testdir/vim.in
@@ -36,6 +36,13 @@
 \ },
 \  ]
 
+def Func()
+  var d = dd
+	->extend({
+	})
+  eval 0
+enddef
+
 " END_INDENT
 
 " START_INDENT
diff --git a/runtime/indent/testdir/vim.ok b/runtime/indent/testdir/vim.ok
index 8e70abe..932eebe 100644
--- a/runtime/indent/testdir/vim.ok
+++ b/runtime/indent/testdir/vim.ok
@@ -36,6 +36,13 @@
 	    \ },
 	    \  ]
 
+def Func()
+    var d = dd
+		->extend({
+    })
+    eval 0
+enddef
+
 " END_INDENT
 
 " START_INDENT
diff --git a/runtime/indent/vim.vim b/runtime/indent/vim.vim
index 8a2502a..2ae3658 100644
--- a/runtime/indent/vim.vim
+++ b/runtime/indent/vim.vim
@@ -33,7 +33,9 @@
   endtry
 endfunc
 
-let s:lineContPat = '^\s*\(\\\|"\\ \)'
+" Legacy script line continuation and Vim9 script operators that must mean an
+" expression that continues from the previous line.
+let s:lineContPat = '^\s*\(\\\|"\\ \|->\)'
 
 function GetVimIndentIntern()
   " If the current line has line continuation and the previous one too, use
@@ -133,15 +135,15 @@
     endif
   endif
 
-  " For a line starting with "}" find the matching "{".  If it is at the start
-  " of the line align with it, probably end of a block.
+  " For a line starting with "}" find the matching "{".  Align with that line,
+  " it is either the matching block start or dictionary start.
   " Use the mapped "%" from matchit to find the match, otherwise we may match
   " a { inside a comment or string.
   if cur_text =~ '^\s*}'
     if maparg('%') != ''
       exe v:lnum
       silent! normal %
-      if line('.') < v:lnum && getline('.') =~ '^\s*{'
+      if line('.') < v:lnum
 	let ind = indent('.')
       endif
     else
@@ -149,19 +151,33 @@
     endif
   endif
 
-  " Below a line starting with "}" find the matching "{".  If it is at the
-  " end of the line we must be below the end of a dictionary.
-  if prev_text =~ '^\s*}'
-    if maparg('%') != ''
-      exe lnum
-      silent! normal %
-      if line('.') == lnum || getline('.') !~ '^\s*{'
-	let ind = ind - shiftwidth()
+  " Look back for a line to align with
+  while lnum > 1
+    " Below a line starting with "}" find the matching "{".
+    if prev_text =~ '^\s*}'
+      if maparg('%') != ''
+	exe lnum
+	silent! normal %
+	if line('.') < lnum
+	  let lnum = line('.')
+	  let ind = indent(lnum)
+	  let prev_text = getline(lnum)
+	else
+	  break
+	endif
+      else
+	" todo: use searchpair() to find a match
+	break
       endif
+    elseif prev_text =~ s:lineContPat
+      " looks like a continuation like, go back one line
+      let lnum = lnum - 1
+      let ind = indent(lnum)
+      let prev_text = getline(lnum)
     else
-      " todo: use searchpair() to find a match
+      break
     endif
-  endif
+  endwhile
 
   " Below a line starting with "]" we must be below the end of a list.
   " Include a "}" and "},} in case a dictionary ends too.
diff --git a/runtime/indent/yaml.vim b/runtime/indent/yaml.vim
index d732c37..93fd8ea 100644
--- a/runtime/indent/yaml.vim
+++ b/runtime/indent/yaml.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:	YAML
 " Maintainer:	Nikolai Pavlov <zyx.vim@gmail.com>
-" Last Update:	Lukas Reineke
+" Last Updates:	Lukas Reineke, "lacygoill"
 " Last Change:	2022 Jun 17
 
 " Only load this indent file when no other was loaded.
@@ -29,8 +29,8 @@
     let prevlnum = prevnonblank(a:lnum-1)
     let curindent = a:0 ? a:1 : indent(a:lnum)
     while           prevlnum
-                \&&  indent(prevlnum) >=  curindent
-                \&& getline(prevlnum) !~# '^\s*#'
+                \ && indent(prevlnum) >=  curindent
+                \ && getline(prevlnum) !~# '^\s*#'
         let prevlnum = prevnonblank(prevlnum-1)
     endwhile
     return prevlnum
@@ -54,7 +54,7 @@
 let s:c_ns_anchor_property =  '\v\&' .. s:c_ns_anchor_name
 
 let s:ns_word_char = '\v[[:alnum:]_\-]'
-let s:ns_tag_char  = '\v%(%\x\x|' .. s:ns_word_char .. '|[#/;?:@&=+$.~*''()])'
+let s:ns_tag_char  = '\v%(\x\x|' .. s:ns_word_char .. '|[#/;?:@&=+$.~*''()])'
 let s:c_named_tag_handle     = '\v\!' .. s:ns_word_char .. '+\!'
 let s:c_secondary_tag_handle = '\v\!\!'
 let s:c_primary_tag_handle   = '\v\!'
@@ -63,7 +63,7 @@
             \            '|' .. s:c_primary_tag_handle .. ')'
 let s:c_ns_shorthand_tag = '\v' .. s:c_tag_handle .. s:ns_tag_char .. '+'
 let s:c_non_specific_tag = '\v\!'
-let s:ns_uri_char  = '\v%(%\x\x|' .. s:ns_word_char .. '\v|[#/;?:@&=+$,.!~*''()[\]])'
+let s:ns_uri_char  = '\v%(\x\x|' .. s:ns_word_char .. '\v|[#/;?:@&=+$,.!~*''()[\]])'
 let s:c_verbatim_tag = '\v\!\<' .. s:ns_uri_char.. '+\>'
 let s:c_ns_tag_property = '\v' .. s:c_verbatim_tag.
             \               '\v|' .. s:c_ns_shorthand_tag.
diff --git a/runtime/syntax/gdresource.vim b/runtime/syntax/gdresource.vim
index eb500aa..7e1a251 100644
--- a/runtime/syntax/gdresource.vim
+++ b/runtime/syntax/gdresource.vim
@@ -2,12 +2,13 @@
 " Language:     gdresource
 " Maintainer:   Maxim Kim <habamax@gmail.com>
 " Filenames:    *.tscn, *.tres
+" Website:      https://github.com/habamax/vim-gdscript
 
 if exists("b:current_syntax")
     finish
 endif
 
-let s:keepcpo= &cpo
+let s:keepcpo = &cpo
 set cpo&vim
 
 syn match gdResourceNumber "\<0x\%(_\=\x\)\+\>"
diff --git a/runtime/syntax/gdscript.vim b/runtime/syntax/gdscript.vim
index bf6d47c..e9295a4 100644
--- a/runtime/syntax/gdscript.vim
+++ b/runtime/syntax/gdscript.vim
@@ -1,13 +1,14 @@
 " Vim syntax file for Godot gdscript
 " Language:     gdscript
 " Maintainer:   Maxim Kim <habamax@gmail.com>
+" Website:      https://github.com/habamax/vim-gdscript
 " Filenames:    *.gd
 
 if exists("b:current_syntax")
     finish
 endif
 
-let s:keepcpo= &cpo
+let s:keepcpo = &cpo
 set cpo&vim
 
 syntax sync maxlines=100
diff --git a/runtime/syntax/sh.vim b/runtime/syntax/sh.vim
index e44699f..822b1a9 100644
--- a/runtime/syntax/sh.vim
+++ b/runtime/syntax/sh.vim
@@ -2,8 +2,8 @@
 " Language:		shell (sh) Korn shell (ksh) bash (sh)
 " Maintainer:		Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
 " Previous Maintainer:	Lennart Schultz <Lennart.Schultz@ecmwf.int>
-" Last Change:		Jun 29, 2022
-" Version:		202
+" Last Change:		Jul 08, 2022
+" Version:		203
 " URL:		http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH
 " For options and settings, please use:      :help ft-sh-syntax
 " This file includes many ideas from Eric Brunet (eric.brunet@ens.fr) and heredoc fixes from Felipe Contreras
@@ -141,7 +141,7 @@
 syn cluster shArithParenList	contains=shArithmetic,shArithParen,shCaseEsac,shComment,shDeref,shDo,shDerefSimple,shEcho,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shExDoubleQuote,shHereString,shRedir,shSingleQuote,shDoubleQuote,shStatement,shVariable,shAlias,shTest,shCtrlSeq,shSpecial,shParen,bashSpecialVariables,bashStatement,shIf,shFor,shFunctionKey,shFunctionOne,shFunctionTwo
 syn cluster shArithList	contains=@shArithParenList,shParenError
 syn cluster shCaseEsacList	contains=shCaseStart,shCaseLabel,shCase,shCaseBar,shCaseIn,shComment,shDeref,shDerefSimple,shCaseCommandSub,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote,shCtrlSeq,@shErrorList,shStringSpecial,shCaseRange
-syn cluster shCaseList	contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSubBQ,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq
+syn cluster shCaseList	contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSubBQ,shComment,shDblBrace,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq
 if exists("b:is_kornshell") || exists("b:is_bash")
  syn cluster shCaseList	add=shForPP
 endif
diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index 3656bca..694b3a7 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	Vim 9.0 script
 " Maintainer:	Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
-" Last Change:	August 17, 2022
-" Version:	9.0-02
+" Last Change:	September 03, 2022
+" Version:	9.0-03
 " URL:	http://www.drchip.org/astronaut/vim/index.html#SYNTAX_VIM
 " Automatically generated keyword lists: {{{1
 
@@ -19,12 +19,13 @@
 syn cluster vimCommentGroup	contains=vimTodo,@Spell
 
 " regular vim commands {{{2
-syn keyword vimCommand contained	a al[l] arge[dit] bN[ext] bel[owright] bp[revious] bro[wse] cNf[ile] cadde[xpr] cbe[fore] cdo cg[etfile] checkt[ime] clo[se] co[py] con[tinue] cq[uit] cuna[bbrev] defc[ompile] deletl dep diffpu[t] dj[ump] dp earlier el[se] endenum ene[w] export filt[er] fo[ld] fu[nction] h[elp] hi if in iuna[bbrev] keepalt la[st] lan[guage] lbo[ttom] ld[o] lfdo lgrepa[dd] lma lo[adview] lop[en] lua m[ove] mes[sages] mod[e] nbs[tart] nor omapc[lear] packl[oadall] popu[p] profd[el] ptf[irst] pts[elect] py3f[ile] pyx r[ead] redrawt[abline] ri[ght] rundo sIl sal[l] sbf[irst] sc scp se[t] sg sgn sie sip sme snoremenu spelli[nfo] spr[evious] sri star[tinsert] sts[elect] sus[pend] syncbind tabN[ext] tabl[ast] tabr[ewind] tcld[o] tj[ump] tlu tno[remap] tu[nmenu] undol[ist] v vie[w] vne[w] win[size] wq xmapc[lear] xr[estore]
-syn keyword vimCommand contained	ab ar[gs] argg[lobal] b[uffer] bf[irst] br[ewind] bufdo c[hange] caddf[ile] cbel[ow] ce[nter] cgetb[uffer] chi[story] cmapc[lear] col[der] conf[irm] cr[ewind] cw[indow] delc[ommand] deletp di[splay] diffs[plit] dl dr[op] ec elsei[f] endf[unction] enum exu[sage] fin[d] foldc[lose] go[to] ha[rdcopy] hid[e] ij[ump] inor j[oin] keepj[umps] lab[ove] lat lc[d] le[ft] lfir[st] lh[elpgrep] lmak[e] loadk lp[revious] luado ma[rk] mk[exrc] mz[scheme] new nore on[ly] pc[lose] pp[op] promptf[ind] ptj[ump] pu[t] py[thon] pyxdo rec[over] reg[isters] rightb[elow] rv[iminfo] sIn san[dbox] sbl[ast] scI scr[iptnames] setf[iletype] sgI sgp sig sir smenu so[urce] spellr[are] sr srl startg[replace] substitutepattern sv[iew] syntime tabc[lose] tabm[ove] tabs tclf[ile] tl[ast] tlunmenu to[pleft] tunma[p] unh[ide] var vim9[cmd] vs[plit] winc[md] wqa[ll] xme xunme
-syn keyword vimCommand contained	abc[lear] arga[dd] argl[ocal] ba[ll] bl[ast] brea[k] buffers ca caf[ter] cbo[ttom] cex[pr] cgete[xpr] cl[ist] cn[ext] colo[rscheme] cons[t] cs d[elete] delel delf[unction] dif[fupdate] difft[his] dli[st] ds[earch] echoc[onsole] em[enu] endfo[r] eval f[ile] fina[lly] foldd[oopen] gr[ep] helpc[lose] his[tory] il[ist] interface ju[mps] keepp[atterns] lad[dexpr] later lch[dir] lefta[bove] lg[etfile] lhi[story] lmapc[lear] loadkeymap lpf[ile] luafile mak[e] mks[ession] mzf[ile] nmapc[lear] nos[wapfile] opt[ions] pe[rl] pre[serve] promptr[epl] ptl[ast] pw[d] pydo pyxfile red[o] res[ize] ru[ntime] sI sIp sav[eas] sbm[odified] sce scripte[ncoding] setg[lobal] sgc sgr sign sl[eep] smile sor[t] spellr[epall] srI srn startr[eplace] substituterepeat sw[apname] t tabd[o] tabn[ext] tags te[aroff] tlm tm[enu] tp[revious] type unl ve[rsion] vim9s[cript] wN[ext] windo wundo xmenu xunmenu
-syn keyword vimCommand contained	abo[veleft] argd[elete] argu[ment] bad[d] bm[odified] breaka[dd] bun[load] cabc[lear] cal[l] cc cf[ile] changes cla[st] cnew[er] com cope[n] cscope debug delep dell diffg[et] dig[raphs] do dsp[lit] echoe[rr] en[dif] endinterface ex files fini[sh] folddoc[losed] grepa[dd] helpf[ind] i imapc[lear] intro k lN[ext] laddb[uffer] lb[uffer] lcl[ose] leg[acy] lgetb[uffer] ll lne[xt] loc[kmarks] lr[ewind] lv[imgrep] marks mksp[ell] n[ext] noa nu[mber] ownsyntax ped[it] prev[ious] ps[earch] ptn[ext] py3 pyf[ile] q[uit] redi[r] ret[ab] rub[y] sIc sIr sbN[ext] sbn[ext] scg scriptv[ersion] setl[ocal] sge sh[ell] sil[ent] sla[st] sn[ext] sp[lit] spellr[rare] src srp static sun[hide] sy tN[ext] tabe[dit] tabnew tc[d] ter[minal] tlmenu tma[p] tr[ewind] u[ndo] unlo[ckvar] verb[ose] vim[grep] w[rite] winp[os] wv[iminfo] xnoreme xwininfo
-syn keyword vimCommand contained	abstract argded[upe] as[cii] balt bn[ext] breakd[el] bw[ipeout] cabo[ve] cat[ch] ccl[ose] cfdo chd[ir] class cnf[ile] comc[lear] cp[revious] cstag debugg[reedy] deletel delm[arks] diffo[ff] dir doau e[dit] echom[sg] endclass endt[ry] exi[t] filet fir[st] foldo[pen] gui helpg[rep] ia imp is[earch] kee[pmarks] lNf[ile] laddf[ile] lbe[fore] lcs lex[pr] lgete[xpr] lla[st] lnew[er] lockv[ar] ls lvimgrepa[dd] mat[ch] mkv[imrc] nb[key] noautocmd o[pen] p[rint] perld[o] pro ptN[ext] ptp[revious] py3do python3 qa[ll] redr[aw] retu[rn] rubyd[o] sIe sN[ext] sb[uffer] sbp[revious] sci scs sf[ind] sgi si sim[alt] sm[agic] sno[magic] spe[llgood] spellu[ndo] sre[wind] st[op] stj[ump] sunme syn ta[g] tabf[ind] tabo[nly] tch[dir] tf[irst] tln tmapc[lear] try una[bbreviate] uns[ilent] vert[ical] vimgrepa[dd] wa[ll] wn[ext] x[it] xnoremenu y[ank]
-syn keyword vimCommand contained	addd argdo au bd[elete] bo[tright] breakl[ist] cN[ext] cad[dbuffer] cb[uffer] cd cfir[st] che[ckpath] cle[arjumps] cnor comp[iler] cpf[ile] cun def deletep delp diffp[atch] disa[ssemble] doaut ea echon enddef endw[hile] exp filetype fix[del] for gvim helpt[ags] iabc[lear] import isp[lit] keepa l[ist] laf[ter] lbel[ow] lcscope lf[ile] lgr[ep] lli[st] lnf[ile] lol[der] lt[ag] lw[indow] menut[ranslate] mkvie[w] nbc[lose] noh[lsearch] ol[dfiles] pa[ckadd] po[p] prof[ile] pta[g] ptr[ewind] py3f[ile] pythonx quita[ll] redraws[tatus] rew[ind] rubyf[ile] sIg sa[rgument] sba[ll] sbr[ewind] scl scscope sfir[st] sgl sic sin sm[ap] snoreme spelld[ump] spellw[rong] srg sta[g] stopi[nsert] sunmenu sync tab tabfir[st] tabp[revious] tcl th[row] tlnoremenu tn[ext] ts[elect] undoj[oin] up[date] vi[sual] viu[sage] wh[ile] wp[revious] xa[ll] xprop z[^.=]
+syn keyword vimCommand contained	a ar[gs] argl[ocal] ba[ll] bl[ast] brea[k] buffers ca caf[ter] cbo[ttom] cex[pr] cgete[xpr] cl[ist] cn[ext] colo[rscheme] cons[t] cs d[elete] delel delf[unction] dif[fupdate] difft[his] dli[st] ds[earch] echoc[onsole] elsei[f] endf[unction] enum exu[sage] fin[d] foldc[lose] go[to] ha[rdcopy] hid[e] if in iuna[bbrev] keepalt la[st] lan[guage] lbo[ttom] ld[o] lfdo lgrepa[dd] lma lo[adview] lop[en] lua m[ove] mes[sages] mod[e] nbs[tart] nor omapc[lear] packl[oadall] popu[p] profd[el] ptf[irst] pts[elect] py3f[ile] pyx r[ead] redrawt[abline] ri[ght] rundo sIl sal[l] sbf[irst] sc scp se[t] sg sgn sie sip sme snoremenu spelli[nfo] spr[evious] sri star[tinsert] sts[elect] sus[pend] syncbind tabN[ext] tabl[ast] tabr[ewind] tcld[o] tj[ump] tlu tno[remap] tu[nmenu] undol[ist] v vie[w] vne[w] win[size] wq xmapc[lear] xr[estore]
+syn keyword vimCommand contained	ab arga[dd] argu[ment] bad[d] bm[odified] breaka[dd] bun[load] cabc[lear] cal[l] cc cf[ile] changes cla[st] cnew[er] com cope[n] cscope debug delep dell diffg[et] dig[raphs] do dsp[lit] echoe[rr] em[enu] endfo[r] eval f[ile] fina[lly] foldd[oopen] gr[ep] helpc[lose] his[tory] ij[ump] inor j[oin] keepj[umps] lab[ove] lat lc[d] le[ft] lfir[st] lh[elpgrep] lmak[e] loadk lp[revious] luado ma[rk] mk[exrc] mz[scheme] new nore on[ly] pc[lose] pp[op] promptf[ind] ptj[ump] pu[t] py[thon] pyxdo rec[over] reg[isters] rightb[elow] rv[iminfo] sIn san[dbox] sbl[ast] scI scr[iptnames] setf[iletype] sgI sgp sig sir smenu so[urce] spellr[are] sr srl startg[replace] substitutepattern sv[iew] syntime tabc[lose] tabm[ove] tabs tclf[ile] tl[ast] tlunmenu to[pleft] tunma[p] unh[ide] var vim9[cmd] vs[plit] winc[md] wqa[ll] xme xunme
+syn keyword vimCommand contained	abc[lear] argd[elete] as[cii] balt bn[ext] breakd[el] bw[ipeout] cabo[ve] cat[ch] ccl[ose] cfdo chd[ir] class cnf[ile] comc[lear] cp[revious] cstag debugg[reedy] deletel delm[arks] diffo[ff] dir doau e[dit] echom[sg] en[dif] endinterface ex files fini[sh] folddoc[losed] grepa[dd] helpf[ind] hor[izontal] il[ist] interface ju[mps] keepp[atterns] lad[dexpr] later lch[dir] lefta[bove] lg[etfile] lhi[story] lmapc[lear] loadkeymap lpf[ile] luafile mak[e] mks[ession] mzf[ile] nmapc[lear] nos[wapfile] opt[ions] pe[rl] pre[serve] promptr[epl] ptl[ast] pw[d] pydo pyxfile red[o] res[ize] ru[ntime] sI sIp sav[eas] sbm[odified] sce scripte[ncoding] setg[lobal] sgc sgr sign sl[eep] smile sor[t] spellr[epall] srI srn startr[eplace] substituterepeat sw[apname] t tabd[o] tabn[ext] tags te[aroff] tlm tm[enu] tp[revious] type unl ve[rsion] vim9s[cript] wN[ext] windo wundo xmenu xunmenu
+syn keyword vimCommand contained	abo[veleft] argded[upe] au bd[elete] bo[tright] breakl[ist] cN[ext] cad[dbuffer] cb[uffer] cd cfir[st] che[ckpath] cle[arjumps] cnor comp[iler] cpf[ile] cun def deletep delp diffp[atch] disa[ssemble] doaut ea echon endclass endt[ry] exi[t] filet fir[st] foldo[pen] gui helpg[rep] i imapc[lear] intro k lN[ext] laddb[uffer] lb[uffer] lcl[ose] leg[acy] lgetb[uffer] ll lne[xt] loc[kmarks] lr[ewind] lv[imgrep] marks mksp[ell] n[ext] noa nu[mber] ownsyntax ped[it] prev[ious] ps[earch] ptn[ext] py3 pyf[ile] q[uit] redi[r] ret[ab] rub[y] sIc sIr sbN[ext] sbn[ext] scg scriptv[ersion] setl[ocal] sge sh[ell] sil[ent] sla[st] sn[ext] sp[lit] spellr[rare] src srp static sun[hide] sy tN[ext] tabe[dit] tabnew tc[d] ter[minal] tlmenu tma[p] tr[ewind] u[ndo] unlo[ckvar] verb[ose] vim[grep] w[rite] winp[os] wv[iminfo] xnoreme xwininfo
+syn keyword vimCommand contained	abstract argdo bN[ext] bel[owright] bp[revious] bro[wse] cNf[ile] cadde[xpr] cbe[fore] cdo cg[etfile] checkt[ime] clo[se] co[py] con[tinue] cq[uit] cuna[bbrev] defc[ompile] deletl dep diffpu[t] dj[ump] dp earlier echow[indow] enddef endw[hile] exp filetype fix[del] for gvim helpt[ags] ia imp is[earch] kee[pmarks] lNf[ile] laddf[ile] lbe[fore] lcs lex[pr] lgete[xpr] lla[st] lnew[er] lockv[ar] ls lvimgrepa[dd] mat[ch] mkv[imrc] nb[key] noautocmd o[pen] p[rint] perld[o] pro ptN[ext] ptp[revious] py3do python3 qa[ll] redr[aw] retu[rn] rubyd[o] sIe sN[ext] sb[uffer] sbp[revious] sci scs sf[ind] sgi si sim[alt] sm[agic] sno[magic] spe[llgood] spellu[ndo] sre[wind] st[op] stj[ump] sunme syn ta[g] tabf[ind] tabo[nly] tch[dir] tf[irst] tln tmapc[lear] try una[bbreviate] uns[ilent] vert[ical] vimgrepa[dd] wa[ll] wn[ext] x[it] xnoremenu y[ank]
+syn keyword vimCommand contained	addd arge[dit] b[uffer] bf[irst] br[ewind] bufdo c[hange] caddf[ile] cbel[ow] ce[nter] cgetb[uffer] chi[story] cmapc[lear] col[der] conf[irm] cr[ewind] cw[indow] delc[ommand] deletp di[splay] diffs[plit] dl dr[op] ec el[se] endenum ene[w] export filt[er] fo[ld] fu[nction] h[elp] hi iabc[lear] import isp[lit] keepa l[ist] laf[ter] lbel[ow] lcscope lf[ile] lgr[ep] lli[st] lnf[ile] lol[der] lt[ag] lw[indow] menut[ranslate] mkvie[w] nbc[lose] noh[lsearch] ol[dfiles] pa[ckadd] po[p] prof[ile] pta[g] ptr[ewind] py3f[ile] pythonx quita[ll] redraws[tatus] rew[ind] rubyf[ile] sIg sa[rgument] sba[ll] sbr[ewind] scl scscope sfir[st] sgl sic sin sm[ap] snoreme spelld[ump] spellw[rong] srg sta[g] stopi[nsert] sunmenu sync tab tabfir[st] tabp[revious] tcl th[row] tlnoremenu tn[ext] ts[elect] undoj[oin] up[date] vi[sual] viu[sage] wh[ile] wp[revious] xa[ll] xprop z[^.=]
+syn keyword vimCommand contained	al[l] argg[lobal]
 syn match   vimCommand contained	"\<z[-+^.=]\=\>"
 syn keyword vimStdPlugin contained	Arguments Asm Break Cfilter Clear Continue DiffOrig Evaluate Finish Gdb Lfilter Man N[ext] Over P[rint] Program Run S Source Step Stop Termdebug TermdebugCommand TOhtml Until Winbar XMLent XMLns
 
@@ -73,17 +74,17 @@
 syn keyword vimGroup contained	Comment Constant String Character Number Boolean Float Identifier Function Statement Conditional Repeat Label Operator Keyword Exception PreProc Include Define Macro PreCondit Type StorageClass Structure Typedef Special SpecialChar Tag Delimiter SpecialComment Debug Underlined Ignore Error Todo
 
 " Default highlighting groups {{{2
-syn keyword vimHLGroup contained	ColorColumn CurSearch Cursor CursorColumn CursorIM CursorLine CursorLineFold CursorLineNr CursorLineSign DiffAdd DiffChange DiffDelete DiffText Directory EndOfBuffer ErrorMsg FoldColumn Folded IncSearch LineNr LineNrAbove LineNrBelow MatchParen Menu ModeMsg MoreMsg NonText Normal Pmenu PmenuSbar PmenuSel PmenuThumb Question QuickFixLine Scrollbar Search SignColumn SpecialKey SpellBad SpellCap SpellLocal SpellRare StatusLine StatusLineNC StatusLineTerm StatusLineTermNC TabLine TabLineFill TabLineSel Terminal Title Tooltip VertSplit Visual VisualNOS WarningMsg WildMenu
+syn keyword vimHLGroup contained	ColorColumn CurSearch Cursor CursorColumn CursorIM CursorLine CursorLineFold CursorLineNr CursorLineSign DiffAdd DiffChange DiffDelete DiffText Directory EndOfBuffer ErrorMsg FoldColumn Folded IncSearch LineNr LineNrAbove LineNrBelow MatchParen Menu MessageWindow ModeMsg MoreMsg NonText Normal Pmenu PmenuSbar PmenuSel PmenuThumb Question QuickFixLine Scrollbar Search SignColumn SpecialKey SpellBad SpellCap SpellLocal SpellRare StatusLine StatusLineNC StatusLineTerm StatusLineTermNC TabLine TabLineFill TabLineSel Terminal Title Tooltip VertSplit Visual VisualNOS WarningMsg WildMenu
 syn match vimHLGroup contained	"Conceal"
 syn case match
 
 " Function Names {{{2
-syn keyword vimFuncName contained	abs argc assert_equal assert_match atan balloon_show bufexists bufwinid ceil ch_canread ch_getbufnr ch_read ch_status complete_check count deletebufline digraph_set eval exists_compiled extendnew findfile fnameescape foldtextresult get getcharmod getcmdpos getcursorcharpos getftime getmarklist getreg gettagstack getwinvar haslocaldir hlexists indent inputrestore isabsolutepath job_getchannel join keys line2byte listener_flush luaeval mapnew matcharg matchlist min nr2char popup_beval popup_filter_menu popup_getpos popup_move pow prompt_setinterrupt prop_find prop_type_delete py3eval readblob reg_executing remote_expr remote_startserver reverse screenchars search searchpos setcellwidths setenv setpos settagstack sign_define sign_placelist sin soundfold spellsuggest str2float strchars string strtrans swapname synstack tabpagewinnr tempname term_getansicolors term_getscrolled terminalprops term_setapi term_wait test_garbagecollect_soon test_null_channel test_null_partial test_setmouse timer_info tolower type values winbufnr win_getid win_id2win winnr win_splitmove
-syn keyword vimFuncName contained	acos argidx assert_equalfile assert_nobeep atan2 balloon_split buflisted bufwinnr changenr ch_close ch_getjob ch_readblob cindent complete_info cscope_connection did_filetype digraph_setlist eventhandler exp feedkeys flatten fnamemodify foreground getbufinfo getcharpos getcmdscreenpos getcwd getftype getmatches getreginfo gettext glob hasmapto hlget index inputsave isdirectory job_info js_decode len lispindent listener_remove map mapset matchdelete matchstr mkdir or popup_clear popup_filter_yesno popup_hide popup_notification prevnonblank prompt_setprompt prop_list prop_type_get pyeval readdir reg_recording remote_foreground remove round screencol searchcount server2client setcharpos setfperm setqflist setwinvar sign_getdefined sign_undefine sinh sound_playevent split str2list strdisplaywidth strlen strwidth synconcealed system tagfiles term_dumpdiff term_getattr term_getsize term_list term_setkill test_alloc_fail test_getvalue test_null_dict test_null_string test_settime timer_pause toupper typename virtcol wincol win_gettype winlayout winrestcmd winwidth
-syn keyword vimFuncName contained	add arglistid assert_exception assert_notequal autocmd_add blob2list bufload byte2line char2nr ch_close_in ch_info ch_readraw clearmatches confirm cursor diff_filler echoraw executable expand filereadable flattennew foldclosed fullcommand getbufline getcharsearch getcmdtype getenv getimstatus getmousepos getregtype getwininfo glob2regpat histadd hlID indexof inputsecret isinf job_setoptions js_encode libcall list2blob localtime maparg match matchend matchstrpos mode pathshorten popup_close popup_findinfo popup_list popup_setoptions printf prop_add prop_remove prop_type_list pyxeval readdirex reltime remote_peek rename rubyeval screenpos searchdecl serverlist setcharsearch setline setreg sha256 sign_getplaced sign_unplace slice sound_playfile sqrt str2nr strftime strpart submatch synID systemlist taglist term_dumpload term_getcursor term_getstatus term_scrape term_setrestore test_autochdir test_gui_event test_null_function test_option_not_set test_srand_seed timer_start tr undofile virtcol2col windowsversion win_gotoid winline winrestview wordcount
-syn keyword vimFuncName contained	and argv assert_fails assert_notmatch autocmd_delete browse bufloaded byteidx charclass chdir ch_log ch_sendexpr col copy debugbreak diff_hlID empty execute expandcmd filewritable float2nr foldclosedend funcref getbufvar getcharstr getcmdwintype getfontname getjumplist getpid gettabinfo getwinpos globpath histdel hlset input insert islocked job_start json_decode libcallnr list2str log mapcheck matchadd matchfuzzy max mzeval perleval popup_create popup_findpreview popup_locate popup_settext prompt_getprompt prop_add_list prop_type_add pum_getpos rand readfile reltimefloat remote_read repeat screenattr screenrow searchpair setbufline setcmdpos setloclist settabvar shellescape sign_jump sign_unplacelist sort sound_stop srand strcharlen strgetchar strptime substitute synIDattr tabpagebuflist tan term_dumpwrite term_getjob term_gettitle term_sendkeys term_setsize test_feedinput test_ignore_error test_null_job test_override test_unknown timer_stop trim undotree visualmode win_execute winheight win_move_separator winsaveview writefile
-syn keyword vimFuncName contained	append asin assert_false assert_report autocmd_get browsedir bufname byteidxcomp charcol ch_evalexpr ch_logfile ch_sendraw complete cos deepcopy digraph_get environ exepath expr10 filter floor foldlevel function getchangelist getcmdcompltype getcompletion getfperm getline getpos gettabvar getwinposx has histget hostname inputdialog interrupt isnan job_status json_encode line listener_add log10 maplist matchaddpos matchfuzzypos menu_info nextnonblank popup_atcursor popup_dialog popup_getoptions popup_menu popup_show prompt_setcallback prop_clear prop_type_change pumvisible range reduce reltimestr remote_send resolve screenchar screenstring searchpairpos setbufvar setcursorcharpos setmatches settabwinvar shiftwidth sign_place simplify sound_clear spellbadword state strcharpart stridx strridx swapinfo synIDtrans tabpagenr tanh term_getaltscreen term_getline term_gettty term_setansicolors term_start test_garbagecollect_now test_null_blob test_null_list test_refcount test_void timer_stopall trunc uniq wildmenumode win_findbuf win_id2tabwin win_move_statusline win_screenpos xor
-syn keyword vimFuncName contained	appendbufline assert_beeps assert_inrange assert_true balloon_gettext bufadd bufnr call charidx ch_evalraw ch_open ch_setoptions complete_add cosh delete digraph_getlist escape exists extend finddir fmod foldtext garbagecollect getchar getcmdline getcurpos getfsize getloclist getqflist gettabwinvar getwinposy has_key histnr iconv inputlist invert items job_stop
+syn keyword vimFuncName contained	abs argc assert_equal assert_match atan balloon_show bufexists bufwinid ceil ch_canread ch_getbufnr ch_read ch_status complete_check count deletebufline digraph_set eval exists_compiled extendnew findfile fnameescape foldtextresult get getcharmod getcmdpos getcursorcharpos getftime getmarklist getreg gettabwinvar getwinposy has_key histnr iconv inputlist invert items job_stop keys lispindent listener_remove map mapset matchdelete matchstr mkdir or popup_clear popup_filter_yesno popup_hide popup_notification prevnonblank prompt_setprompt prop_list prop_type_get pyeval readdir reg_recording remote_foreground remove round screencol searchcount server2client setcharpos setenv setpos settagstack sign_define sign_placelist sin soundfold spellsuggest str2float strchars string strtrans swapname synstack tabpagewinnr tempname term_getansicolors term_getscrolled terminalprops term_setapi term_wait test_garbagecollect_soon test_null_channel test_null_partial test_setmouse timer_info tolower type values winbufnr win_getid win_id2win winnr win_splitmove
+syn keyword vimFuncName contained	acos argidx assert_equalfile assert_nobeep atan2 balloon_split buflisted bufwinnr changenr ch_close ch_getjob ch_readblob cindent complete_info cscope_connection did_filetype digraph_setlist eventhandler exp feedkeys flatten fnamemodify foreground getbufinfo getcharpos getcmdscreenpos getcwd getftype getmatches getreginfo gettagstack getwinvar haslocaldir hlexists indent inputrestore isabsolutepath job_getchannel join len list2blob localtime maparg match matchend matchstrpos mode pathshorten popup_close popup_findinfo popup_list popup_setoptions printf prop_add prop_remove prop_type_list pyxeval readdirex reltime remote_peek rename rubyeval screenpos searchdecl serverlist setcharsearch setfperm setqflist setwinvar sign_getdefined sign_undefine sinh sound_playevent split str2list strdisplaywidth strlen strwidth synconcealed system tagfiles term_dumpdiff term_getattr term_getsize term_list term_setkill test_alloc_fail test_getvalue test_null_dict test_null_string test_settime timer_pause toupper typename virtcol wincol win_gettype winlayout winrestcmd winwidth
+syn keyword vimFuncName contained	add arglistid assert_exception assert_notequal autocmd_add blob2list bufload byte2line char2nr ch_close_in ch_info ch_readraw clearmatches confirm cursor diff_filler echoraw executable expand filereadable flattennew foldclosed fullcommand getbufline getcharsearch getcmdtype getenv getimstatus getmousepos getregtype gettext glob hasmapto hlget index inputsave isdirectory job_info js_decode libcall list2str log mapcheck matchadd matchfuzzy max mzeval perleval popup_create popup_findpreview popup_locate popup_settext prompt_getprompt prop_add_list prop_type_add pum_getpos rand readfile reltimefloat remote_read repeat screenattr screenrow searchpair setbufline setcmdline setline setreg sha256 sign_getplaced sign_unplace slice sound_playfile sqrt str2nr strftime strpart submatch synID systemlist taglist term_dumpload term_getcursor term_getstatus term_scrape term_setrestore test_autochdir test_gui_event test_null_function test_option_not_set test_srand_seed timer_start tr undofile virtcol2col windowsversion win_gotoid winline winrestview wordcount
+syn keyword vimFuncName contained	and argv assert_fails assert_notmatch autocmd_delete browse bufloaded byteidx charclass chdir ch_log ch_sendexpr col copy debugbreak diff_hlID empty execute expandcmd filewritable float2nr foldclosedend funcref getbufvar getcharstr getcmdwintype getfontname getjumplist getpid getscriptinfo getwininfo glob2regpat histadd hlID indexof inputsecret isinf job_setoptions js_encode libcallnr listener_add log10 maplist matchaddpos matchfuzzypos menu_info nextnonblank popup_atcursor popup_dialog popup_getoptions popup_menu popup_show prompt_setcallback prop_clear prop_type_change pumvisible range reduce reltimestr remote_send resolve screenchar screenstring searchpairpos setbufvar setcmdpos setloclist settabvar shellescape sign_jump sign_unplacelist sort sound_stop srand strcharlen strgetchar strptime substitute synIDattr tabpagebuflist tan term_dumpwrite term_getjob term_gettitle term_sendkeys term_setsize test_feedinput test_ignore_error test_null_job test_override test_unknown timer_stop trim undotree visualmode win_execute winheight win_move_separator winsaveview writefile
+syn keyword vimFuncName contained	append asin assert_false assert_report autocmd_get browsedir bufname byteidxcomp charcol ch_evalexpr ch_logfile ch_sendraw complete cos deepcopy digraph_get environ exepath expr10 filter floor foldlevel function getchangelist getcmdcompltype getcompletion getfperm getline getpos gettabinfo getwinpos globpath histdel hlset input insert islocked job_start json_decode line listener_flush luaeval mapnew matcharg matchlist min nr2char popup_beval popup_filter_menu popup_getpos popup_move pow prompt_setinterrupt prop_find prop_type_delete py3eval readblob reg_executing remote_expr remote_startserver reverse screenchars search searchpos setcellwidths setcursorcharpos setmatches settabwinvar shiftwidth sign_place simplify sound_clear spellbadword state strcharpart stridx strridx swapinfo synIDtrans tabpagenr tanh term_getaltscreen term_getline term_gettty term_setansicolors term_start test_garbagecollect_now test_null_blob test_null_list test_refcount test_void timer_stopall trunc uniq wildmenumode win_findbuf win_id2tabwin win_move_statusline win_screenpos xor
+syn keyword vimFuncName contained	appendbufline assert_beeps assert_inrange assert_true balloon_gettext bufadd bufnr call charidx ch_evalraw ch_open ch_setoptions complete_add cosh delete digraph_getlist escape exists extend finddir fmod foldtext garbagecollect getchar getcmdline getcurpos getfsize getloclist getqflist gettabvar getwinposx has histget hostname inputdialog interrupt isnan job_status json_encode line2byte
 
 "--- syntax here and above generated by mkvimvim ---
 " Special Vim Highlighting (not automatic) {{{1
