changeset 29403:03e3b0034e31

Update runtime files Commit: https://github.com/vim/vim/commit/5ed11535e0695163cec71033b98bb97356cf0113 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Jul 6 13:18:11 2022 +0100 Update runtime files
author Bram Moolenaar <Bram@vim.org>
date Wed, 06 Jul 2022 14:30:05 +0200
parents cc9945ae0971
children 87980a7936e7
files runtime/doc/builtin.txt runtime/doc/intro.txt runtime/doc/map.txt runtime/doc/options.txt runtime/doc/tags runtime/doc/term.txt runtime/doc/todo.txt runtime/doc/vim9.txt runtime/filetype.vim runtime/ftplugin/vim.vim runtime/lang/menu_zh_cn.utf-8.vim runtime/syntax/fetchmail.vim runtime/syntax/sh.vim runtime/syntax/vim.vim
diffstat 14 files changed, 506 insertions(+), 336 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/builtin.txt
+++ b/runtime/doc/builtin.txt
@@ -2872,6 +2872,10 @@ fnamemodify({fname}, {mods})				*fnamemo
 			/home/user/vim/vim/src
 <		If {mods} is empty or an unsupported modifier is used then
 		{fname} is returned.
+		When {fname} is empty then with {mods} ":h" returns ".", so
+		that `:cd` can be used with it.  This is different from
+		expand('%:h') without a buffer name, which returns an empty
+		string.
 		Note: Environment variables don't work in {fname}, use
 		|expand()| first then.
 
--- a/runtime/doc/intro.txt
+++ b/runtime/doc/intro.txt
@@ -697,7 +697,8 @@ Q			Switch to "Ex" mode.  This is a bit 
 			line-input editing commands (<Del> or <BS> to erase,
 			CTRL-U to kill the whole line).
 			Vim will enter this mode by default if it's invoked as
-			"ex" on the command-line.
+			"ex" on the command-line or the |-e| command line
+			argument was used.
 			Use the ":vi" command |:visual| to exit "Ex" mode.
 			Note: In older versions of Vim "Q" formatted text,
 			that is now done with |gq|.  But if you use the
@@ -708,7 +709,7 @@ Q			Switch to "Ex" mode.  This is a bit 
 gQ			Switch to "Ex" mode like with "Q", but really behave
 			like typing ":" commands after another.  All command
 			line editing, completion etc. is available.
-			Use the ":vi" command |:visual| to exit "Ex" mode.
+			Use the `:vi` command (`:visual`) to exit "Ex" mode.
 
 ==============================================================================
 7. The window contents					*window-contents*
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -374,15 +374,17 @@ command: it is executed as if an (unrest
 <ScriptCmd> is like <Cmd> but sets the context to the script the mapping was
 defined in, for the duration of the command execution.  This is especially
 useful for |Vim9| script.  It also works to access an import, which is useful
-in a plugin using an autoload script: >
+in a plugin using a, possibly autoloaded, script: >
 	vim9script
 	import autoload 'implementation.vim' as impl
 	nnoremap <F4> <ScriptCmd>impl.DoTheWork()<CR>
-
+<
 No matter where <F4> is typed, the "impl" import will be found in the script
-context of where the mapping was defined.  And since it's an autoload import,
-the "implementation.vim" script will only be loaded once <F4> is typed, not
-when the mapping is defined.
+context of where the mapping was defined.  When it's an autoload import, as in
+the example, the "implementation.vim" script will only be loaded once <F4> is
+typed, not when the mapping is defined.
+
+Without <ScriptCmd> using "s:impl" would result in "E121: Undefined variable".
 
 Note:
 - Because <Cmd> and <ScriptCmd> avoid mode-changes it does not trigger
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1677,7 +1677,7 @@ A jump table for the options with a shor
 			feature is included}
 	This option is a list of comma-separated names.
 	Note: if one of the items is "exclude:", then you can't add an item
-	after that.  Therefore do append an item with += but use ^= to
+	after that.  Therefore do not append an item with += but use ^= to
 	prepend, e.g.: >
 		set clipboard^=unnamed
 <	These names are recognized:
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -7881,6 +7881,7 @@ if_sniff.txt	if_sniff.txt	/*if_sniff.txt
 if_tcl.txt	if_tcl.txt	/*if_tcl.txt*
 ignore-errors	eval.txt	/*ignore-errors*
 ignore-timestamp	editing.txt	/*ignore-timestamp*
+import-legacy	vim9.txt	/*import-legacy*
 improved-autocmds-5.4	version5.txt	/*improved-autocmds-5.4*
 improved-quickfix	version5.txt	/*improved-quickfix*
 improved-sessions	version5.txt	/*improved-sessions*
@@ -8070,6 +8071,7 @@ lcs-space	options.txt	/*lcs-space*
 lcs-tab	options.txt	/*lcs-tab*
 lcs-trail	options.txt	/*lcs-trail*
 left-right-motions	motion.txt	/*left-right-motions*
+legacy-import	vim9.txt	/*legacy-import*
 len()	builtin.txt	/*len()*
 less	various.txt	/*less*
 letter	print.txt	/*letter*
--- a/runtime/doc/term.txt
+++ b/runtime/doc/term.txt
@@ -633,10 +633,13 @@ When the GUI is running 't_Co' is set to
 				*termcap-cursor-shape* *termcap-cursor-color*
 When Vim enters Insert mode the 't_SI' escape sequence is sent.  When Vim
 enters Replace mode the 't_SR' escape sequence is sent if it is set, otherwise
-'t_SI' is sent.  When leaving Insert mode or Replace mode 't_EI' is used. This
-can be used to change the shape or color of the cursor in Insert or Replace
-mode. These are not standard termcap/terminfo entries, you need to set them
-yourself.
+'t_SI' is sent.  When leaving Insert mode or Replace mode 't_EI' is used.
+Note: When 't_EI' is not set then 't_SI' and 't_SR' will not be sent.  And
+when 't_SI' or 't_SR' is not set then 't_EI' is sent only once.
+
+This can be used to change the shape or color of the cursor in Insert or
+Replace mode. These are not standard termcap/terminfo entries, you need to set
+them yourself.
 Example for an xterm, this changes the color of the cursor: >
     if &term =~ "xterm"
 	let &t_SI = "\<Esc>]12;purple\x7"
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -68,6 +68,12 @@ Further Vim9 improvements, possibly afte
 - Implement as part of an expression: ++expr, --expr, expr++, expr--.
 
 Update list of features to vote on:
+- Remove Athena item (won't happen)
+- Remove "add open mode" (won't happen)
+- Remove "editing of a hidden buffer" (done)
+- Change "add IDE features" to "improve terminal debugger"
+- Change "diff/merge capability for CVS" to "CVS and git"
+- Remove "pre-compile them" from "improve the performance of Vim scripts"
 - multiple cursors
 - built-in LSP support
 - virtual text, using text properties
@@ -117,8 +123,6 @@ Text properties:
   if the priority is above a certain value?  (#7392)
   Combining text property with 'cursorline' does not always work (Billie
   Cleek, #5533)
-- "C" works OK.  "dd" fails to delete text property in a buffer with a single
-  line.
 - Add text property that shifts text to make room for annotation (e.g.
   variable type).  Like the opposite of conceal.  Requires fixing the cursor
   positioning and mouse clicks as with conceal mode.
@@ -200,9 +204,6 @@ Terminal emulator window:
 Patches considered for including:
 - Add "-n" option to xxd. #10599  needs a test
 - allow for nesting of timeout, sketch in #10595
-- Patch to implement the vimtutor with a plugin: #6414
-  Was originally written by Felipe Morales.
-- Patch to make fillchars global-local. (#5206)
 
 Autoconf: must use autoconf 2.69, later version generates lots of warnings
 - try using autoconf 2.71 and fix all "obsolete" warnings
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -145,6 +145,17 @@ Do not start a comment with #{, it looks
 and produces an error where this might be confusing.  #{{ or #{{{ are OK,
 these can be used to start a fold.
 
+When starting to read a script file Vim doesn't know it is |Vim9| script until
+the `vim9script` command is found.  Until that point you would need to use
+legacy comments: >
+	" legacy comment
+	vim9script
+	# Vim9 comment
+
+That looks ugly, better put `vim9script` in the very first line: >
+	vim9script
+	# Vim9 comment
+
 In legacy Vim script # is also used for the alternate file name.  In Vim9
 script you need to use %% instead.  Instead of ## use %%% (stands for all
 arguments).
@@ -1687,21 +1698,34 @@ be exported. {not implemented yet: class
 Import ~
 					*:import* *:imp* *E1094* *E1047* *E1262*
 					*E1048* *E1049* *E1053* *E1071* *E1236*
-The exported items can be imported in another Vim9 script: >
+The exported items can be imported in another script. The import syntax has
+two forms. The simple form: >
+	import {filename}
+<
+Where {filename} is an expression that must evaluate to a string.  In this
+form the filename should end in ".vim" and the portion before ".vim" will
+become the script local name of the namespace. For example: >
 	import "myscript.vim"
-
-This makes each item available as "myscript.item".
+<
+This makes each exported item in "myscript.vim" available as "myscript.item".
 						*:import-as* *E1257* *E1261*
-In case the name is long or ambiguous, another name can be specified: >
-	import "thatscript.vim" as that
+In case the name is long or ambiguous, this form can be used to specify
+another name: >
+	import {longfilename} as {name}
+<
+In this form {name} becomes a specific script local name for the imported
+namespace.  Therefore {name} must consist of letters, digits and '_', like
+|internal-variables|.  The {longfilename} expression must evaluate to any
+filename.  For example: >
+	import "thatscript.vim.v2" as that
 <						*E1060* *E1258* *E1259* *E1260*
-Then you can use "that.EXPORTED_CONST", "that.someValue", etc.  You are free
-to choose the name "that".  Use something that will be recognized as referring
-to the imported script.  Avoid command names, command modifiers and builtin
-function names, because the name will shadow them.
-If the name starts with a capital letter it can also shadow global user
-commands and functions.  Also, you cannot use the name for something else in
-the script, such as a function or variable name.
+Then you can use "that.item", etc.  You are free to choose the name "that".
+Use something that will be recognized as referring to the imported script.
+Avoid command names, command modifiers and builtin function names, because the
+name will shadow them.  Better not start the name starts with a capital
+letter, since it can then also shadow global user commands and functions.
+Also, you cannot use the name for something else in the script, such as a
+function or variable name.
 
 In case the dot in the name is undesired, a local reference can be made for a
 function: >
@@ -1714,15 +1738,6 @@ This does not work for variables, since 
 when changing the variable the copy will change, not the original variable.
 You will need to use the full name, with the dot.
 
-The full syntax of the command is:
-	import {filename} [as {name}]
-Where {filename} is an expression that must evaluate to a string.  Without the
-"as {name}" part it must end in ".vim".  {name} must consist of letters,
-digits and '_', like |internal-variables|.
-
-`:import` can also be used in legacy Vim script.  The imported items still
-become script-local, even when the "s:" prefix is not given.
-
 `:import` can not be used in a function.  Imported items are intended to exist
 at the script level and only imported once.
 
@@ -1752,14 +1767,38 @@ line, there can be no line break: >
 	echo that
 		.name  # Error!
 
-To refer to a function in an imported script in a mapping, |<SID>| can be
-used: >
+When you've imported a function from one script into a vim9 script you can
+refer to the imported function in a mapping by prefixing it with |<SID>|: >
 	noremap <silent> ,a :call <SID>name.Function()<CR>
 
 When the mapping is defined "<SID>name." will be replaced with <SNR> and the
 script ID of the imported script.
 An even simpler solution is using |<ScriptCmd>|: >
 	noremap ,a <ScriptCmd>name.Function()<CR>
+
+Note that this does not work for variables, only for functions.
+
+					    *import-legacy* *legacy-import*
+`:import` can also be used in legacy Vim script.  The imported namespace still
+becomes script-local, even when the "s:" prefix is not given. For example: >
+        import "myfile.vim"
+	call s:myfile.MyFunc()
+
+And using the "as name" form: >
+	import "otherfile.vim9script" as that
+	call s:that.OtherFunc()
+
+However, the namespace cannot be resolved on it's own: >
+	import "that.vim"
+	echo s:that
+	" ERROR: E1060: Expected dot after name: s:that
+<
+This also affects the use of |<SID>| in the legacy mapping context.  Since
+|<SID>| is only a valid prefix for a function and NOT for a namespace, you
+cannot use it
+to scope a function in a script local namespace. Instead of prefixing the
+function with |<SID>| you should use|<ScriptCmd>|. For example: >
+	noremap ,a <ScriptCmd>:call s:that.OtherFunc()<CR>
 <
 							*:import-cycle*
 The `import` commands are executed when encountered.  If script A imports
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
 " Vim support file to detect file types
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2022 Jun 03
+" Last Change:	2022 Jul 5
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
--- a/runtime/ftplugin/vim.vim
+++ b/runtime/ftplugin/vim.vim
@@ -16,7 +16,7 @@ set cpo&vim
 
 if !exists('*VimFtpluginUndo')
   func VimFtpluginUndo()
-    setl fo< isk< com< tw< commentstring<
+    setl fo< isk< com< tw< commentstring< include< define<
     if exists('b:did_add_maps')
       silent! nunmap <buffer> [[
       silent! vunmap <buffer> [[
@@ -59,6 +59,11 @@ else
   setlocal commentstring=\"%s
 endif
 
+" set 'include' to recognize import commands
+setlocal include=\\v^\\s*import\\s*(autoload)?
+
+" set 'define' to recognize export commands
+setlocal define=\\v^\\s*export\\s*(def\|const\|var\|final)
 
 " Format comments to be up to 78 characters long
 if &tw == 0
--- a/runtime/lang/menu_zh_cn.utf-8.vim
+++ b/runtime/lang/menu_zh_cn.utf-8.vim
@@ -1,10 +1,15 @@
 " Menu Translations:    Simplified Chinese
-" Maintainer:           Shun Bai <baishunde@gmail.com>
-" Previous Maintainer:  Yuheng Xie <elephant@linux.net.cn>
-" Last Change:          2022 Feb 19
+" Maintainer:           Ada (Haowen) Yu <me@yuhaowen.com>
+" Previous Maintainer:  Shun Bai <baishunde@gmail.com>, Yuheng Xie <elephant@linux.net.cn>
+" Last Change:          2022 July 6
 " Original translations
+"
+" Generated with the scripts from:
+"
+"       https://github.com/adaext/vim-menutrans-helper
 
 " Quit when menu translations have already been done.
+
 if exists("did_menu_trans")
   finish
 endif
@@ -15,18 +20,18 @@ set cpo&vim
 scriptencoding utf-8
 
 " Help menu
-menutrans &Help		帮助(&H)
+menutrans &Help 帮助(&H)
 " Help menuitems and dialog {{{1
-menutrans &Overview<Tab><F1>	概述(&O)<Tab><F1>
-menutrans &User\ Manual			用户手册(&U)
-menutrans &How-to\ Links		如何使用(&H)
-menutrans &Find\.\.\.			查找(&F)\.\.\.
-menutrans &Credits				致谢(&C)
-menutrans Co&pying				版权(&P)
-menutrans &Sponsor/Register		赞助/注册(&S)
-menutrans O&rphans				拯救孤儿(&R)
-menutrans &Version				版本(&V)
-menutrans &About				关于(&A)
+menutrans &Overview<Tab><F1> 概述(&O)<Tab><F1>
+menutrans &User\ Manual 用户手册(&U)
+menutrans &How-to\ Links 如何使用(&H)
+menutrans &Find\.\.\. 查找(&F)\.\.\.
+menutrans &Credits 致谢(&C)
+menutrans Co&pying 版权(&P)
+menutrans &Sponsor/Register 赞助/注册(&S)
+menutrans O&rphans 拯救孤儿(&R)
+menutrans &Version 版本(&V)
+menutrans &About 关于(&A)
 
 " fun! s:Helpfind()
 if !exists("g:menutrans_help_dialog")
@@ -35,67 +40,68 @@ endif
 " }}}
 
 " File menu
-menutrans &File		文件(&F)
+menutrans &File 文件(&F)
 " File menuitems {{{1
-menutrans &Open\.\.\.<Tab>:e			打开(&O)\.\.\.<Tab>:e
-menutrans Sp&lit-Open\.\.\.<Tab>:sp		在拆分窗口打开(&L)\.\.\.<Tab>:sp
-menutrans Open\ Tab\.\.\.<Tab>:tabnew	在标签页打开\.\.\.<Tab>:tabnew
-menutrans &New<Tab>:enew				新建(&N)<Tab>:enew
-menutrans &Close<Tab>:close				关闭(&C)<Tab>:close
-menutrans &Save<Tab>:w					保存(&S)<Tab>:w
-menutrans Save\ &As\.\.\.<Tab>:sav		另存为(&A)\.\.\.<Tab>:sav
-menutrans Split\ &Diff\ With\.\.\.		拆分窗口以对比差异(Diff)(&D)\.\.\.
-menutrans Split\ Patched\ &By\.\.\.		拆分窗口以进行修补(Patch)(&B)\.\.\.
-menutrans &Print						打印(&P)
-menutrans Sa&ve-Exit<Tab>:wqa			保存并退出(&V)<Tab>:wqa
-menutrans E&xit<Tab>:qa					退出(&X)<Tab>:qa
+menutrans &Open\.\.\.<Tab>:e 打开(&O)\.\.\.<Tab>:e
+menutrans Sp&lit-Open\.\.\.<Tab>:sp 在拆分窗口打开(&L)\.\.\.<Tab>:sp
+menutrans Open\ Tab\.\.\.<Tab>:tabnew 在标签页打开\.\.\.<Tab>:tabnew
+menutrans &New<Tab>:enew 新建(&N)<Tab>:enew
+menutrans &Close<Tab>:close 关闭(&C)<Tab>:close
+menutrans &Save<Tab>:w 保存(&S)<Tab>:w
+menutrans Save\ &As\.\.\.<Tab>:sav 另存为(&A)\.\.\.<Tab>:sav
+menutrans Split\ &Diff\ With\.\.\. 拆分窗口以对比差异(Diff)(&D)\.\.\.
+menutrans Split\ Patched\ &By\.\.\. 拆分窗口以进行修补(Patch)(&B)\.\.\.
+menutrans &Print 打印(&P)
+menutrans Sa&ve-Exit<Tab>:wqa 保存并退出(&V)<Tab>:wqa
+menutrans E&xit<Tab>:qa 退出(&X)<Tab>:qa
 " }}}
 
 " Edit menu
-menutrans &Edit		编辑(&E)
+menutrans &Edit 编辑(&E)
 " Edit menuitems {{{1
-menutrans &Undo<Tab>u						撤销(&U)<Tab>u
-menutrans &Redo<Tab>^R						恢复(&R)<Tab>^R
-menutrans Rep&eat<Tab>\.					重复(&E)<Tab>\.
-menutrans Cu&t<Tab>"+x						剪切(&T)<Tab>"+x
-menutrans &Copy<Tab>"+y						复制(&C)<Tab>"+y
-menutrans &Paste<Tab>"+gP					粘贴(&P)<Tab>"+gP
-menutrans Put\ &Before<Tab>[p				粘贴到光标前(&B)<Tab>[p
-menutrans Put\ &After<Tab>]p				粘贴到光标后(&A)<Tab>]p
-menutrans &Delete<Tab>x						删除(&D)<Tab>x
-menutrans &Select\ All<Tab>ggVG				全选(&S)<Tab>ggVG
-menutrans &Find\.\.\.						查找(&F)\.\.\.
-menutrans Find\ and\ Rep&lace\.\.\.			查找和替换(&L)\.\.\.
-menutrans &Find<Tab>/						查找(&F)<Tab>/
-menutrans Find\ and\ Rep&lace<Tab>:%s		查找和替换(&L)<Tab>:%s
-menutrans Settings\ &Window					设置窗口(&W)
-menutrans Startup\ &Settings				启动设置(&S)
+menutrans &Undo<Tab>u 撤销(&U)<Tab>u
+menutrans &Redo<Tab>^R 恢复(&R)<Tab>^R
+menutrans Rep&eat<Tab>\. 重复(&E)<Tab>\.
+menutrans Cu&t<Tab>"+x 剪切(&T)<Tab>"+x
+menutrans &Copy<Tab>"+y 复制(&C)<Tab>"+y
+menutrans &Paste<Tab>"+gP 粘贴(&P)<Tab>"+gP
+menutrans Put\ &Before<Tab>[p 粘贴到光标前(&B)<Tab>[p
+menutrans Put\ &After<Tab>]p 粘贴到光标后(&A)<Tab>]p
+menutrans &Delete<Tab>x 删除(&D)<Tab>x
+menutrans &Select\ All<Tab>ggVG 全选(&S)<Tab>ggVG
+menutrans &Find\.\.\. 查找(&F)\.\.\.
+menutrans Find\ and\ Rep&lace\.\.\. 查找和替换(&L)\.\.\.
+menutrans &Find<Tab>/ 查找(&F)<Tab>/
+menutrans Find\ and\ Rep&lace<Tab>:%s 查找和替换(&L)<Tab>:%s
+menutrans Find\ and\ Rep&lace<Tab>:s 查找和替换(&L)<Tab>:s
+menutrans Settings\ &Window 设置窗口(&W)
+menutrans Startup\ &Settings 启动设置(&S)
 
 " Edit/Global Settings
-menutrans &Global\ Settings					全局设置(&G)
+menutrans &Global\ Settings 全局设置(&G)
 " Edit.Global Settings menuitems and dialogs {{{2
-menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!		开/关高亮查找内容(&H)<Tab>:set\ hls!
-menutrans Toggle\ &Ignoring\ Case<Tab>:set\ ic!				开/关忽略大小写(&I)<Tab>:set\ ic!
-menutrans Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm!	开/关显示括号匹配(&S)<Tab>:set\ sm!
-menutrans &Context\ Lines									上下文行数(&C)
-menutrans &Virtual\ Edit									虚拟编辑(&V)
+menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! 开/关高亮查找内容(&H)<Tab>:set\ hls!
+menutrans Toggle\ &Ignoring\ Case<Tab>:set\ ic! 开/关忽略大小写(&I)<Tab>:set\ ic!
+menutrans Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm! 开/关显示括号匹配(&S)<Tab>:set\ sm!
+menutrans &Context\ Lines 上下文行数(&C)
+menutrans &Virtual\ Edit 虚拟编辑(&V)
 " Edit.Global Settings.Virtual Edit menuitems {{{3
-menutrans Never					从不
-menutrans Block\ Selection		只在选定矩形块时
-menutrans Insert\ Mode			只在插入模式时
-menutrans Block\ and\ Insert	在选定矩形块和插入模式时
-menutrans Always				始终
+menutrans Never 从不
+menutrans Block\ Selection 只在选定矩形块时
+menutrans Insert\ Mode 只在插入模式时
+menutrans Block\ and\ Insert 在选定矩形块和插入模式时
+menutrans Always 始终
 " }}}
-menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!				开/关插入模式(&M)<Tab>:set\ im!
-menutrans Toggle\ Vi\ C&ompatibility<Tab>:set\ cp!			开/关\ Vi\ 兼容性(&O)<Tab>:set\ cp!
-menutrans Search\ &Path\.\.\.								搜索路径(&P)\.\.\.
-menutrans Ta&g\ Files\.\.\.									标记文件(Tags)(&G)\.\.\.
+menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! 开/关插入模式(&M)<Tab>:set\ im!
+menutrans Toggle\ Vi\ C&ompatibility<Tab>:set\ cp! 开/关\ Vi\ 兼容性(&O)<Tab>:set\ cp!
+menutrans Search\ &Path\.\.\. 搜索路径(&P)\.\.\.
+menutrans Ta&g\ Files\.\.\. 标记文件(Tags)(&G)\.\.\.
 
 " GUI options
-menutrans Toggle\ &Toolbar									开/关工具栏(&T)
-menutrans Toggle\ &Bottom\ Scrollbar						开/关底部滚动条(&B)
-menutrans Toggle\ &Left\ Scrollbar							开/关左侧滚动条(&L)
-menutrans Toggle\ &Right\ Scrollbar							开/关右侧滚动条(&R)
+menutrans Toggle\ &Toolbar 开/关工具栏(&T)
+menutrans Toggle\ &Bottom\ Scrollbar 开/关底部滚动条(&B)
+menutrans Toggle\ &Left\ Scrollbar 开/关左侧滚动条(&L)
+menutrans Toggle\ &Right\ Scrollbar 开/关右侧滚动条(&R)
 
 " fun! s:SearchP()
 if !exists("g:menutrans_path_dialog")
@@ -109,23 +115,23 @@ endif
 " }}}
 
 " Edit/File Settings
-menutrans F&ile\ Settings					文件设置(&I)
+menutrans F&ile\ Settings 文件设置(&I)
 " Edit.File Settings menuitems and dialogs {{{2
 " Boolean options
-menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!			开/关行号(&N)<Tab>:set\ nu!
-menutrans Toggle\ Relati&ve\ Line\ Numbering<Tab>:set\ rnu!	开/关相对行号(&V)<Tab>:set\ rnu!
-menutrans Toggle\ &List\ Mode<Tab>:set\ list!				开/关列表模式(&L)<Tab>:set\ list!
-menutrans Toggle\ Line\ &Wrapping<Tab>:set\ wrap!			开/关换行(&W)<Tab>:set\ wrap!
-menutrans Toggle\ W&rapping\ at\ Word<Tab>:set\ lbr!		开/关词尾换行(&R)<Tab>:set\ lbr!
-menutrans Toggle\ Tab\ &Expanding<Tab>:set\ et!				开/关制表符扩展(&E)<Tab>:set\ et!
-menutrans Toggle\ &Auto\ Indenting<Tab>:set\ ai!			开/关自动缩进(&A)<Tab>:set\ ai!
-menutrans Toggle\ &C-Style\ Indenting<Tab>:set\ cin!		开/关\ C\ 语言式缩进(&C)<Tab>:set\ cin!
+menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu! 开/关行号(&N)<Tab>:set\ nu!
+menutrans Toggle\ Relati&ve\ Line\ Numbering<Tab>:set\ rnu! 开/关相对行号(&V)<Tab>:set\ rnu!
+menutrans Toggle\ &List\ Mode<Tab>:set\ list! 开/关列表模式(&L)<Tab>:set\ list!
+menutrans Toggle\ Line\ &Wrapping<Tab>:set\ wrap! 开/关换行(&W)<Tab>:set\ wrap!
+menutrans Toggle\ W&rapping\ at\ Word<Tab>:set\ lbr! 开/关词尾换行(&R)<Tab>:set\ lbr!
+menutrans Toggle\ Tab\ &Expanding<Tab>:set\ et! 开/关制表符扩展(&E)<Tab>:set\ et!
+menutrans Toggle\ &Auto\ Indenting<Tab>:set\ ai! 开/关自动缩进(&A)<Tab>:set\ ai!
+menutrans Toggle\ &C-Style\ Indenting<Tab>:set\ cin! 开/关\ C\ 语言式缩进(&C)<Tab>:set\ cin!
 
 " other options
-menutrans &Shiftwidth										缩进宽度(&S)
-menutrans Soft\ &Tabstop									软制表位宽度(Soft\ Tabstop)(&T)
-menutrans Te&xt\ Width\.\.\.								文本宽度(&X)\.\.\.
-menutrans &File\ Format\.\.\.								文件格式(&F)\.\.\.
+menutrans &Shiftwidth 缩进宽度(&S)
+menutrans Soft\ &Tabstop 软制表位宽度(Soft\ Tabstop)(&T)
+menutrans Te&xt\ Width\.\.\. 文本宽度(&X)\.\.\.
+menutrans &File\ Format\.\.\. 文件格式(&F)\.\.\.
 
 " fun! s:TextWidth()
 if !exists("g:menutrans_textwidth_dialog")
@@ -140,36 +146,36 @@ if !exists("g:menutrans_fileformat_choic
   let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n取消(&C)"
 endif
 " }}}
-menutrans Show\ C&olor\ Schemes\ in\ Menu	在菜单中显示配色方案(&O)
-menutrans C&olor\ Scheme					配色方案(&O)
-menutrans Show\ &Keymaps\ in\ Menu			在菜单中显示键盘映射(&K)
-menutrans &Keymap							键盘映射(&K)
-menutrans Select\ Fo&nt\.\.\.				选择字体(&N)\.\.\.
+menutrans Show\ C&olor\ Schemes\ in\ Menu 在菜单中显示配色方案(&O)
+menutrans C&olor\ Scheme 配色方案(&O)
+menutrans Show\ &Keymaps\ in\ Menu 在菜单中显示键盘映射(&K)
+menutrans &Keymap 键盘映射(&K)
+menutrans Select\ Fo&nt\.\.\. 选择字体(&N)\.\.\.
 " }}}
 
 " Programming menu
-menutrans &Tools	工具(&T)
+menutrans &Tools 工具(&T)
 " Tools menuitems {{{1
-menutrans &Jump\ to\ This\ Tag<Tab>g^]			跳转到这个标记(Tag)(&J)<Tab>g^]
-menutrans Jump\ &Back<Tab>^T					跳转回(&B)<Tab>^T
-menutrans Build\ &Tags\ File					生成标记文件(Tags)(&T)
+menutrans &Jump\ to\ This\ Tag<Tab>g^] 跳转到这个标记(Tag)(&J)<Tab>g^]
+menutrans Jump\ &Back<Tab>^T 跳转回(&B)<Tab>^T
+menutrans Build\ &Tags\ File 生成标记文件(Tags)(&T)
 
 " Tools.Spelling Menu
-menutrans &Spelling								拼写检查(&S)
+menutrans &Spelling 拼写检查(&S)
 " Tools.Spelling menuitems and dialog {{{2
-menutrans &Spell\ Check\ On						打开拼写检查(&S)
-menutrans Spell\ Check\ &Off					关闭拼写检查(&O)
-menutrans To\ &Next\ Error<Tab>]s				上一个错误(&N)<Tab>]s
-menutrans To\ &Previous\ Error<Tab>[s			下一个错误(&P)<Tab>[s
-menutrans Suggest\ &Corrections<Tab>z=			更正建议(&C)<Tab>z=
-menutrans &Repeat\ Correction<Tab>:spellrepall	更正全部同类错误(&R)<Tab>:spellrepall
-menutrans Set\ Language\ to\ "en"				设置语言为\ "en"
-menutrans Set\ Language\ to\ "en_au"			设置语言为\ "en_au"
-menutrans Set\ Language\ to\ "en_ca"			设置语言为\ "en_ca"
-menutrans Set\ Language\ to\ "en_gb"			设置语言为\ "en_gb"
-menutrans Set\ Language\ to\ "en_nz"			设置语言为\ "en_nz"
-menutrans Set\ Language\ to\ "en_us"			设置语言为\ "en_us"
-menutrans &Find\ More\ Languages				查找更多语言(&F)
+menutrans &Spell\ Check\ On 打开拼写检查(&S)
+menutrans Spell\ Check\ &Off 关闭拼写检查(&O)
+menutrans To\ &Next\ Error<Tab>]s 上一个错误(&N)<Tab>]s
+menutrans To\ &Previous\ Error<Tab>[s 下一个错误(&P)<Tab>[s
+menutrans Suggest\ &Corrections<Tab>z= 更正建议(&C)<Tab>z=
+menutrans &Repeat\ Correction<Tab>:spellrepall 更正全部同类错误(&R)<Tab>:spellrepall
+menutrans Set\ Language\ to\ "en" 设置语言为\ "en"
+menutrans Set\ Language\ to\ "en_au" 设置语言为\ "en_au"
+menutrans Set\ Language\ to\ "en_ca" 设置语言为\ "en_ca"
+menutrans Set\ Language\ to\ "en_gb" 设置语言为\ "en_gb"
+menutrans Set\ Language\ to\ "en_nz" 设置语言为\ "en_nz"
+menutrans Set\ Language\ to\ "en_us" 设置语言为\ "en_us"
+menutrans &Find\ More\ Languages 查找更多语言(&F)
 
 " func! s:SpellLang()
 if !exists("g:menutrans_set_lang_to")
@@ -178,113 +184,113 @@ endif
 " }}}
 
 " Tools.Fold Menu
-menutrans &Folding								折叠(&F)
+menutrans &Folding 折叠(&F)
 " Tools.Fold menuitems {{{2
 " open close folds
-menutrans &Enable/Disable\ Folds<Tab>zi			启用/禁用折叠(&E)<Tab>zi
-menutrans &View\ Cursor\ Line<Tab>zv			展开光标所在行(&V)<Tab>zv
-menutrans Vie&w\ Cursor\ Line\ Only<Tab>zMzx	只展开光标所在行(&W)<Tab>zMzx
-menutrans C&lose\ More\ Folds<Tab>zm			折叠一级(&L)<Tab>zm
-menutrans &Close\ All\ Folds<Tab>zM				折叠全部(&C)<Tab>zM
-menutrans O&pen\ More\ Folds<Tab>zr				展开一级(&P)<Tab>zr
-menutrans &Open\ All\ Folds<Tab>zR				展开全部(&O)<Tab>zR
+menutrans &Enable/Disable\ Folds<Tab>zi 启用/禁用折叠(&E)<Tab>zi
+menutrans &View\ Cursor\ Line<Tab>zv 展开光标所在行(&V)<Tab>zv
+menutrans Vie&w\ Cursor\ Line\ Only<Tab>zMzx 只展开光标所在行(&W)<Tab>zMzx
+menutrans C&lose\ More\ Folds<Tab>zm 折叠一级(&L)<Tab>zm
+menutrans &Close\ All\ Folds<Tab>zM 折叠全部(&C)<Tab>zM
+menutrans O&pen\ More\ Folds<Tab>zr 展开一级(&P)<Tab>zr
+menutrans &Open\ All\ Folds<Tab>zR 展开全部(&O)<Tab>zR
 " fold method
-menutrans Fold\ Met&hod							折叠方式(&H)
+menutrans Fold\ Met&hod 折叠方式(&H)
 " Tools.Fold.Fold Method menuitems {{{3
-menutrans M&anual		手动(&A)
-menutrans I&ndent		缩进(&N)
-menutrans E&xpression	表达式(&X)
-menutrans S&yntax		语法(&Y)
-menutrans &Diff			差异(Diff)(&D)
-menutrans Ma&rker		记号(Marker)(&R)
+menutrans M&anual 手动(&A)
+menutrans I&ndent 缩进(&N)
+menutrans E&xpression 表达式(&X)
+menutrans S&yntax 语法(&Y)
+menutrans &Diff 差异(Diff)(&D)
+menutrans Ma&rker 记号(Marker)(&R)
 " }}}
 " create and delete folds
-menutrans Create\ &Fold<Tab>zf					创建折叠(&F)<Tab>zf
-menutrans &Delete\ Fold<Tab>zd					删除折叠(&D)<Tab>zd
-menutrans Delete\ &All\ Folds<Tab>zD			删除全部折叠(&A)<Tab>zD
+menutrans Create\ &Fold<Tab>zf 创建折叠(&F)<Tab>zf
+menutrans &Delete\ Fold<Tab>zd 删除折叠(&D)<Tab>zd
+menutrans Delete\ &All\ Folds<Tab>zD 删除全部折叠(&A)<Tab>zD
 " moving around in folds
-menutrans Fold\ Col&umn\ Width					折叠操作栏宽度(&W)
+menutrans Fold\ Col&umn\ Width 折叠操作栏宽度(&W)
 " }}}
 
 " Tools.Diff Menu
-menutrans &Diff									差异(Diff)(&D)
+menutrans &Diff 差异(Diff)(&D)
 " Tools.Diff menuitems {{{2
-menutrans &Update		刷新(&U)
-menutrans &Get\ Block	采用对侧文本块(&G)
-menutrans &Put\ Block	采用本侧文本块(&P)
+menutrans &Update 刷新(&U)
+menutrans &Get\ Block 采用对侧文本块(&G)
+menutrans &Put\ Block 采用本侧文本块(&P)
 " }}}
 
-menutrans &Make<Tab>:make						生成(Make)(&M)<Tab>:make
-menutrans &List\ Errors<Tab>:cl					列出错误(&L)<Tab>:cl
-menutrans L&ist\ Messages<Tab>:cl!				列出消息(&I)<Tab>:cl!
-menutrans &Next\ Error<Tab>:cn					下一个错误(&N)<Tab>:cn
-menutrans &Previous\ Error<Tab>:cp				上一个错误(&P)<Tab>:cp
-menutrans &Older\ List<Tab>:cold				较旧的错误列表(&O)<Tab>:cold
-menutrans N&ewer\ List<Tab>:cnew				较新的错误列表(&E)<Tab>:cnew
-menutrans Error\ &Window						错误窗口(&W)
+menutrans &Make<Tab>:make 生成(Make)(&M)<Tab>:make
+menutrans &List\ Errors<Tab>:cl 列出错误(&L)<Tab>:cl
+menutrans L&ist\ Messages<Tab>:cl! 列出消息(&I)<Tab>:cl!
+menutrans &Next\ Error<Tab>:cn 下一个错误(&N)<Tab>:cn
+menutrans &Previous\ Error<Tab>:cp 上一个错误(&P)<Tab>:cp
+menutrans &Older\ List<Tab>:cold 较旧的错误列表(&O)<Tab>:cold
+menutrans N&ewer\ List<Tab>:cnew 较新的错误列表(&E)<Tab>:cnew
+menutrans Error\ &Window 错误窗口(&W)
 " Tools.Error Window menuitems {{{2
-menutrans &Update<Tab>:cwin		刷新(&U)<Tab>:cwin
-menutrans &Open<Tab>:copen		打开(&O)<Tab>:copen
-menutrans &Close<Tab>:cclose	关闭(&C)<Tab>:cclose
+menutrans &Update<Tab>:cwin 刷新(&U)<Tab>:cwin
+menutrans &Open<Tab>:copen 打开(&O)<Tab>:copen
+menutrans &Close<Tab>:cclose 关闭(&C)<Tab>:cclose
 " }}}
-menutrans Show\ Compiler\ Se&ttings\ in\ Menu	在菜单中显示编译器设置(&T)
-menutrans Se&t\ Compiler						设置编译器(&T)
-menutrans &Convert\ to\ HEX<Tab>:%!xxd			转换成十六进制(&C)<Tab>:%!xxd
-menutrans Conve&rt\ Back<Tab>:%!xxd\ -r			转换回(&R)<Tab>:%!xxd\ -r
+menutrans Show\ Compiler\ Se&ttings\ in\ Menu 在菜单中显示编译器设置(&T)
+menutrans Se&t\ Compiler 设置编译器(&T)
+menutrans &Convert\ to\ HEX<Tab>:%!xxd 转换成十六进制(&C)<Tab>:%!xxd
+menutrans Conve&rt\ Back<Tab>:%!xxd\ -r 转换回(&R)<Tab>:%!xxd\ -r
 " }}}
 
 " Buffer menu
-menutrans &Buffers	缓冲区(&B)
+menutrans &Buffers 缓冲区(&B)
 " Buffer menuitems and dialog {{{1
-menutrans &Refresh\ Menu	刷新本菜单(&R)
-menutrans &Delete			删除(&D)
-menutrans &Alternate		切换(&A)
-menutrans &Next				下一个(&N)
-menutrans &Previous			上一个(&P)
+menutrans &Refresh\ Menu 刷新本菜单(&R)
+menutrans &Delete 删除(&D)
+menutrans &Alternate 切换(&A)
+menutrans &Next 下一个(&N)
+menutrans &Previous 上一个(&P)
 
-" func! s:BMMunge(fname, bnum) 
+" func! s:BMMunge(fname, bnum)
 if !exists("g:menutrans_no_file")
   let g:menutrans_no_file = "[无文件]"
 endif
 " }}}
 
 " Window menu
-menutrans &Window	窗口(&W)
+menutrans &Window 窗口(&W)
 " Window menuitems {{{1
-menutrans &New<Tab>^Wn					新建(&N)<Tab>^Wn
-menutrans S&plit<Tab>^Ws				拆分(&P)<Tab>^Ws
-menutrans Sp&lit\ To\ #<Tab>^W^^		拆分并显示缓冲区\ #(&L)<Tab>^W^^
-menutrans Split\ &Vertically<Tab>^Wv	垂直拆分(&V)<Tab>^Wv
-menutrans Split\ File\ E&xplorer		拆分并打开文件浏览器(&X)
-menutrans &Close<Tab>^Wc				关闭(&C)<Tab>^Wc
-menutrans Close\ &Other(s)<Tab>^Wo		除此之外全部关闭(&O)<Tab>^Wo
-menutrans Move\ &To						移动到(&T)
-menutrans &Top<Tab>^WK					顶端(&T)<Tab>^WK
-menutrans &Bottom<Tab>^WJ				底端(&B)<Tab>^WJ
-menutrans &Left\ Side<Tab>^WH			左边(&L)<Tab>^WH
-menutrans &Right\ Side<Tab>^WL			右边(&R)<Tab>^WL
-menutrans Rotate\ &Up<Tab>^WR			向上轮换(&U)<Tab>^WR
-menutrans Rotate\ &Down<Tab>^Wr			向下轮换(&D)<Tab>^Wr
-menutrans &Equal\ Size<Tab>^W=			平均分布(&E)<Tab>^W=
-menutrans &Max\ Height<Tab>^W_			最大高度(&M)<Tab>^W
-menutrans M&in\ Height<Tab>^W1_			最小高度(&I)<Tab>^W1_
-menutrans Max\ &Width<Tab>^W\|			最大宽度(&W)<Tab>^W\|
-menutrans Min\ Widt&h<Tab>^W1\|			最小宽度(&H)<Tab>^W1\|
+menutrans &New<Tab>^Wn 新建(&N)<Tab>^Wn
+menutrans S&plit<Tab>^Ws 拆分(&P)<Tab>^Ws
+menutrans Sp&lit\ To\ #<Tab>^W^^ 拆分并显示缓冲区\ #(&L)<Tab>^W^^
+menutrans Split\ &Vertically<Tab>^Wv 垂直拆分(&V)<Tab>^Wv
+menutrans Split\ File\ E&xplorer 拆分并打开文件浏览器(&X)
+menutrans &Close<Tab>^Wc 关闭(&C)<Tab>^Wc
+menutrans Close\ &Other(s)<Tab>^Wo 除此之外全部关闭(&O)<Tab>^Wo
+menutrans Move\ &To 移动到(&T)
+menutrans &Top<Tab>^WK 顶端(&T)<Tab>^WK
+menutrans &Bottom<Tab>^WJ 底端(&B)<Tab>^WJ
+menutrans &Left\ Side<Tab>^WH 左边(&L)<Tab>^WH
+menutrans &Right\ Side<Tab>^WL 右边(&R)<Tab>^WL
+menutrans Rotate\ &Up<Tab>^WR 向上轮换(&U)<Tab>^WR
+menutrans Rotate\ &Down<Tab>^Wr 向下轮换(&D)<Tab>^Wr
+menutrans &Equal\ Size<Tab>^W= 平均分布(&E)<Tab>^W=
+menutrans &Max\ Height<Tab>^W_ 最大高度(&M)<Tab>^W
+menutrans M&in\ Height<Tab>^W1_ 最小高度(&I)<Tab>^W1_
+menutrans Max\ &Width<Tab>^W\| 最大宽度(&W)<Tab>^W\|
+menutrans Min\ Widt&h<Tab>^W1\| 最小宽度(&H)<Tab>^W1\|
 " }}}
 
 " The popup menu {{{1
-menutrans &Undo					撤销(&U)
-menutrans Cu&t					剪切(&T)
-menutrans &Copy					复制(&C)
-menutrans &Paste				粘贴(&P)
-menutrans &Delete				删除(&D)
-menutrans Select\ Blockwise		改为选定矩形块
-menutrans Select\ &Word			选定单词(&W)
-menutrans Select\ &Sentence		选定句(&S)
-menutrans Select\ Pa&ragraph	选定段落(&R)
-menutrans Select\ &Line			选定行(&L)
-menutrans Select\ &Block		选定矩形块(&B)
-menutrans Select\ &All			全选(&A)
+menutrans &Undo 撤销(&U)
+menutrans Cu&t 剪切(&T)
+menutrans &Copy 复制(&C)
+menutrans &Paste 粘贴(&P)
+menutrans &Delete 删除(&D)
+menutrans Select\ Blockwise 改为选定矩形块
+menutrans Select\ &Word 选定单词(&W)
+menutrans Select\ &Sentence 选定句(&S)
+menutrans Select\ Pa&ragraph 选定段落(&R)
+menutrans Select\ &Line 选定行(&L)
+menutrans Select\ &Block 选定矩形块(&B)
+menutrans Select\ &All 全选(&A)
 
 " func! <SID>SpellPopup()
 if !exists("g:menutrans_spell_change_ARG_to")
@@ -305,148 +311,255 @@ if has("toolbar")
   endif
   fun Do_toolbar_tmenu()
     let did_toolbar_tmenu = 1
-    tmenu ToolBar.Open			打开文件
-    tmenu ToolBar.Save			保存当前文件
-    tmenu ToolBar.SaveAll		全部保存
-    tmenu ToolBar.Print			打印
-    tmenu ToolBar.Undo			撤销
-    tmenu ToolBar.Redo			恢复
-    tmenu ToolBar.Cut			剪切到剪贴板
-    tmenu ToolBar.Copy			复制到剪贴板
-    tmenu ToolBar.Paste			从剪贴板粘贴
+    tmenu ToolBar.Open 打开文件
+    tmenu ToolBar.Save 保存当前文件
+    tmenu ToolBar.SaveAll 全部保存
+    tmenu ToolBar.Print 打印
+    tmenu ToolBar.Undo 撤销
+    tmenu ToolBar.Redo 恢复
+    tmenu ToolBar.Cut 剪切到剪贴板
+    tmenu ToolBar.Copy 复制到剪贴板
+    tmenu ToolBar.Paste 从剪贴板粘贴
     if !has("gui_athena")
-      tmenu ToolBar.Replace		查找和替换...
-      tmenu ToolBar.FindNext	查找下一个
-      tmenu ToolBar.FindPrev	查找上一个
+      tmenu ToolBar.Replace 查找和替换...
+      tmenu ToolBar.FindNext 查找下一个
+      tmenu ToolBar.FindPrev 查找上一个
     endif
-    tmenu ToolBar.LoadSesn		加载会话
-    tmenu ToolBar.SaveSesn		保存当前会话
-    tmenu ToolBar.RunScript		运行 Vim 脚本
-    tmenu ToolBar.Make			生成当前项目 (:make)
-    tmenu ToolBar.RunCtags		在当前目录生成标记(Tags) (!ctags -R .)
-    tmenu ToolBar.TagJump		跳转到光标所在标记(Tag)
-    tmenu ToolBar.Help			Vim 帮助
-    tmenu ToolBar.FindHelp		在 Vim 帮助中查找
+    tmenu ToolBar.LoadSesn 加载会话
+    tmenu ToolBar.SaveSesn 保存当前会话
+    tmenu ToolBar.RunScript 运行 Vim 脚本
+    tmenu ToolBar.Make 生成当前项目 (:make)
+    tmenu ToolBar.RunCtags 在当前目录生成标记(Tags) (!ctags -R .)
+    tmenu ToolBar.TagJump 跳转到光标所在标记(Tag)
+    tmenu ToolBar.Help Vim 帮助
+    tmenu ToolBar.FindHelp 在 Vim 帮助中查找
   endfun
 endif
 " }}}
 
 " Syntax menu
-menutrans &Syntax	语法(&S)
+menutrans &Syntax 语法(&S)
 " Syntax menuitems {{{1
-menutrans &Show\ File\ Types\ in\ Menu	在菜单中显示文件类型(&S)
-menutrans &Off							关闭(&O)
-menutrans &Manual						手动(&M)
-menutrans A&utomatic					自动(&U)
-menutrans On/Off\ for\ &This\ File		只对这个文件开/关(&T)
-menutrans Co&lor\ Test					色彩测试(&L)
-menutrans &Highlight\ Test				高亮测试(&H)
-menutrans &Convert\ to\ HTML			转换成\ HTML(&C)
+menutrans &Show\ File\ Types\ in\ Menu 在菜单中显示文件类型(&S)
+menutrans &Off 关闭(&O)
+menutrans &Manual 手动(&M)
+menutrans A&utomatic 自动(&U)
+menutrans On/Off\ for\ &This\ File 只对这个文件开/关(&T)
+menutrans Co&lor\ Test 色彩测试(&L)
+menutrans &Highlight\ Test 高亮测试(&H)
+menutrans &Convert\ to\ HTML 转换成\ HTML(&C)
+
 " From synmenu.vim
-menutrans Set\ '&syntax'\ Only			只设置\ 'syntax'(&S)
-menutrans Set\ '&filetype'\ Too			也设置\ 'filetype'(&F)
+menutrans Set\ '&syntax'\ Only 只设置\ 'syntax'(&S)
+menutrans Set\ '&filetype'\ Too 也设置\ 'filetype'(&F)
+menutrans Oracle\ config Oracle\ 配置文件
+menutrans Vim\ help\ file Vim\ 帮助文件
+menutrans Vim\ script Vim\ 脚本
+menutrans Viminfo\ file Vim\ 信息文件
+menutrans Virata\ config Virata\ 配置文件
 " }}}
 
 " Netrw menu {{{1
 " Plugin loading may be after menu translation
 " So giveup testing if Netrw Plugin is loaded
 " if exists("g:loaded_netrwPlugin")
-  menutrans Help<tab><F1>					帮助<tab><F1>
-  menutrans Bookmarks						书签
-  menutrans History							历史记录
-  menutrans Go\ Up\ Directory<tab>-			向上一级<tab>-
-  menutrans Apply\ Special\ Viewer<tab>x	用默认程序打开<tab>x
-  menutrans Bookmarks\ and\ History			书签和历史记录
+  menutrans Help<tab><F1> 帮助<tab><F1>
+  menutrans Bookmarks 书签
+  menutrans History 历史记录
+  menutrans Go\ Up\ Directory<tab>- 向上一级<tab>-
+  menutrans Apply\ Special\ Viewer<tab>x 用默认程序打开<tab>x
+  menutrans Bookmarks\ and\ History 书签和历史记录
   " Netrw.Bookmarks and History menuitems {{{2
-  menutrans Bookmark\ Current\ Directory<tab>mb		添加书签<tab>mb
-  menutrans Bookmark\ Delete						移除书签
-  menutrans Goto\ Prev\ Dir\ (History)<tab>u		后退(历史记录)<tab>u
-  menutrans Goto\ Next\ Dir\ (History)<tab>U		前进(历史记录)<tab>U
-  menutrans List<tab>qb								完整列表<tab>qb
+  menutrans Bookmark\ Current\ Directory<tab>mb 添加书签<tab>mb
+  menutrans Bookmark\ Delete 移除书签
+  menutrans Goto\ Prev\ Dir\ (History)<tab>u 后退(历史记录)<tab>u
+  menutrans Goto\ Next\ Dir\ (History)<tab>U 前进(历史记录)<tab>U
+  menutrans List<tab>qb 完整列表<tab>qb
   " }}}
-  menutrans Browsing\ Control				控制
+  menutrans Browsing\ Control 控制
   " Netrw.Browsing Control menuitems {{{2
-  menutrans Horizontal\ Split<tab>o					在拆分窗口打开<tab>o
-  menutrans Vertical\ Split<tab>v					在垂直拆分窗口打开<tab>v
-  menutrans New\ Tab<tab>t							在标签页打开<tab>t	
-  menutrans Preview<tab>p							预览<tab>p
-  menutrans Edit\ File\ Hiding\ List<tab><ctrl-h>	编辑隐藏条件(Hiding\ List)<tab><ctrl-h>
-  menutrans Edit\ Sorting\ Sequence<tab>S			编辑排序条件(Sorting\ Sequence)<tab>S
-  menutrans Quick\ Hide/Unhide\ Dot\ Files<tab>gh	快速隐藏/显示以\.开头的文件<tab>gh
-  menutrans Refresh\ Listing<tab><ctrl-l>			刷新<tab><ctrl-l>
-  menutrans Settings/Options<tab>:NetrwSettings		设置/选项<tab>:NetrwSettings
+  menutrans Horizontal\ Split<tab>o 在拆分窗口打开<tab>o
+  menutrans Vertical\ Split<tab>v 在垂直拆分窗口打开<tab>v
+  menutrans New\ Tab<tab>t 在标签页打开<tab>t
+  menutrans Preview<tab>p 预览<tab>p
+  menutrans Edit\ File\ Hiding\ List<tab><ctrl-h> 编辑隐藏条件(Hiding\ List)<tab><ctrl-h>
+  menutrans Edit\ Sorting\ Sequence<tab>S 编辑排序条件(Sorting\ Sequence)<tab>S
+  menutrans Quick\ Hide/Unhide\ Dot\ Files<tab>gh 快速隐藏/显示以\.开头的文件<tab>gh
+  menutrans Refresh\ Listing<tab><ctrl-l> 刷新<tab><ctrl-l>
+  menutrans Settings/Options<tab>:NetrwSettings 设置/选项<tab>:NetrwSettings
   " }}}
-  menutrans Delete\ File/Directory<tab>D	删除文件/目录<tab>D
-  menutrans Edit\ File/Dir					编辑文件/目录
+  menutrans Delete\ File/Directory<tab>D 删除文件/目录<tab>D
+  menutrans Edit\ File/Dir 编辑文件/目录
   " Netrw.Edit File menuitems {{{2
-  menutrans Create\ New\ File<tab>%				新建文件<tab>%
-  menutrans In\ Current\ Window<tab><cr>		在当前窗口<tab><cr>
-  menutrans Preview\ File/Directory<tab>p		预览文件/目录<tab>p
-  menutrans In\ Previous\ Window<tab>P			在上一个窗口<tab>P
-  menutrans In\ New\ Window<tab>o				在新窗口<tab>o
-  menutrans In\ New\ Tab<tab>t					在新标签页<tab>t
-  menutrans In\ New\ Vertical\ Window<tab>v		在新垂直窗口<tab>v
+  menutrans Create\ New\ File<tab>% 新建文件<tab>%
+  menutrans In\ Current\ Window<tab><cr> 在当前窗口<tab><cr>
+  menutrans Preview\ File/Directory<tab>p 预览文件/目录<tab>p
+  menutrans In\ Previous\ Window<tab>P 在上一个窗口<tab>P
+  menutrans In\ New\ Window<tab>o 在新窗口<tab>o
+  menutrans In\ New\ Tab<tab>t 在新标签页<tab>t
+  menutrans In\ New\ Vertical\ Window<tab>v 在新垂直窗口<tab>v
   " }}}
-  menutrans Explore							浏览
+  menutrans Explore 浏览
   " Netrw.Explore menuitems {{{2
-  menutrans Directory\ Name															指定目录名
-  menutrans Filenames\ Matching\ Pattern\ (curdir\ only)<tab>:Explore\ */			匹配指定文件名模式(当前目录)<tab>:Explore\ */
-  menutrans Filenames\ Matching\ Pattern\ (+subdirs)<tab>:Explore\ **/				匹配指定文件名模式(含子目录)<tab>:Explore\ **/
-  menutrans Files\ Containing\ String\ Pattern\ (curdir\ only)<tab>:Explore\ *//	内容包含指定字符串模式(当前目录)<tab>:Explore\ *//
-  menutrans Files\ Containing\ String\ Pattern\ (+subdirs)<tab>:Explore\ **//		内容包含指定字符串模式(含子目录)<tab>:Explore\ **//
-  menutrans Next\ Match<tab>:Nexplore												下一个匹配项<tab>:Nexplore
-  menutrans Prev\ Match<tab>:Pexplore												上一个匹配项<tab>:Pexplore
+  menutrans Directory\ Name 指定目录名
+  menutrans Filenames\ Matching\ Pattern\ (curdir\ only)<tab>:Explore\ */ 匹配指定文件名模式(当前目录)<tab>:Explore\ */
+  menutrans Filenames\ Matching\ Pattern\ (+subdirs)<tab>:Explore\ **/ 匹配指定文件名模式(含子目录)<tab>:Explore\ **/
+  menutrans Files\ Containing\ String\ Pattern\ (curdir\ only)<tab>:Explore\ *// 内容包含指定字符串模式(当前目录)<tab>:Explore\ *//
+  menutrans Files\ Containing\ String\ Pattern\ (+subdirs)<tab>:Explore\ **// 内容包含指定字符串模式(含子目录)<tab>:Explore\ **//
+  menutrans Next\ Match<tab>:Nexplore 下一个匹配项<tab>:Nexplore
+  menutrans Prev\ Match<tab>:Pexplore 上一个匹配项<tab>:Pexplore
   " }}}
-  menutrans Make\ Subdirectory<tab>d		新建子目录<tab>d
-  menutrans Marked\ Files					选定的(Marked)文件
+  menutrans Make\ Subdirectory<tab>d 新建子目录<tab>d
+  menutrans Marked\ Files 选定的(Marked)文件
   " Netrw.Marked Files menuitems {{{2
-  menutrans Mark\ File<tab>mf						选定(Mark)/取消<tab>mf
-  menutrans Mark\ Files\ by\ Regexp<tab>mr			用正则表达式(Regexp)选定<tab>mr
-  menutrans Hide-Show-List\ Control<tab>a			隐藏/显示<tab>a
-  menutrans Copy\ To\ Target<tab>mc					复制到目标<tab>mc
-  menutrans Delete<tab>D							删除<tab>D
-  menutrans Diff<tab>md								差异(Diff)<tab>md
-  menutrans Edit<tab>me								编辑<tab>me
-  menutrans Exe\ Cmd<tab>mx							作为参数运行命令<tab>mx
-  menutrans Move\ To\ Target<tab>mm					移动到目标<tab>mm
-  menutrans Obtain<tab>O							获取<tab>O
-  menutrans Print<tab>mp							打印<tab>mp
-  menutrans Replace<tab>R							替换<tab>R
-  menutrans Set\ Target<tab>mt						设置目标<tab>mt
-  menutrans Tag<tab>mT								生成标记文件(Tags)<tab>mT
-  menutrans Zip/Unzip/Compress/Uncompress<tab>mz	压缩/解压缩<tab>mz
+  menutrans Mark\ File<tab>mf 选定(Mark)/取消<tab>mf
+  menutrans Mark\ Files\ by\ Regexp<tab>mr 用正则表达式(Regexp)选定<tab>mr
+  menutrans Hide-Show-List\ Control<tab>a 隐藏/显示<tab>a
+  menutrans Copy\ To\ Target<tab>mc 复制到目标<tab>mc
+  menutrans Delete<tab>D 删除<tab>D
+  menutrans Diff<tab>md 差异(Diff)<tab>md
+  menutrans Edit<tab>me 编辑<tab>me
+  menutrans Exe\ Cmd<tab>mx 作为参数运行命令<tab>mx
+  menutrans Move\ To\ Target<tab>mm 移动到目标<tab>mm
+  menutrans Obtain<tab>O 获取<tab>O
+  menutrans Print<tab>mp 打印<tab>mp
+  menutrans Replace<tab>R 替换<tab>R
+  menutrans Set\ Target<tab>mt 设置目标<tab>mt
+  menutrans Tag<tab>mT 生成标记文件(Tags)<tab>mT
+  menutrans Zip/Unzip/Compress/Uncompress<tab>mz 压缩/解压缩<tab>mz
   " }}}
-  menutrans Obtain\ File<tab>O				获取文件<tab>O
-  menutrans Style							显示风格
+  menutrans Obtain\ File<tab>O 获取文件<tab>O
+  menutrans Style 显示风格
   " Netrw.Style menuitems {{{2
-  menutrans Listing							列表形式
+  menutrans Listing 列表形式
   " Netrw.Style.Listing menuitems {{{3
-  menutrans thin<tab>i	紧凑<thin)<tab>i
-  menutrans long<tab>i	详细(long)<tab>i
-  menutrans wide<tab>i	多列(wide)<tab>i
-  menutrans tree<tab>i	树状(tree)<tab>i
+  menutrans thin<tab>i 紧凑<thin)<tab>i
+  menutrans long<tab>i 详细(long)<tab>i
+  menutrans wide<tab>i 多列(wide)<tab>i
+  menutrans tree<tab>i 树状(tree)<tab>i
   " }}}
-  menutrans Normal-Hide-Show				显示/隐藏
+  menutrans Normal-Hide-Show 显示/隐藏
   " Netrw.Style.Normal-Hide_show menuitems {{{3
-  menutrans Show\ All<tab>a		显示全部
-  menutrans Normal<tab>a		不显示隐藏文件
-  menutrans Hidden\ Only<tab>a	只显示隐藏文件
+  menutrans Show\ All<tab>a 显示全部
+  menutrans Normal<tab>a 不显示隐藏文件
+  menutrans Hidden\ Only<tab>a 只显示隐藏文件
   " }}}
-  menutrans Reverse\ Sorting\ Order<tab>r	升序/降序<tab>r
-  menutrans Sorting\ Method					排序方式
+  menutrans Reverse\ Sorting\ Order<tab>r 升序/降序<tab>r
+  menutrans Sorting\ Method 排序方式
   " Netrw.Style.Sorting Method menuitems {{{3
-  menutrans Name<tab>s		文件名<tab>s
-  menutrans Time<tab>s		修改时间<tab>s
-  menutrans Size<tab>s		大小<tab>s
-  menutrans Exten<tab>s		扩展名<tab>s
+  menutrans Name<tab>s 文件名<tab>s
+  menutrans Time<tab>s 修改时间<tab>s
+  menutrans Size<tab>s 大小<tab>s
+  menutrans Exten<tab>s 扩展名<tab>s
   " }}}
   " }}}
-  menutrans Rename\ File/Directory<tab>R	重命名文件/目录<tab>R
-  menutrans Set\ Current\ Directory<tab>c	设置\ Vim\ 工作目录<tab>c
-  menutrans Targets							目标
+  menutrans Rename\ File/Directory<tab>R 重命名文件/目录<tab>R
+  menutrans Set\ Current\ Directory<tab>c 设置\ Vim\ 工作目录<tab>c
+  menutrans Targets 目标
 " endif
 " }}}
 
+" Shellmenu menu
+" Shellmenu menuitems {{{1
+" From shellmenu.vim
+menutrans Stmts 语句
+menutrans Test 测试
+menutrans existence 存在
+menutrans existence\ -\ file 存在\ -\ 文件
+menutrans existence\ -\ file\ (not\ empty) 存在\ -\ 文件(非空)
+menutrans existence\ -\ directory 存在\ -\ 目录
+menutrans existence\ -\ executable 存在\ -\ 可执行
+menutrans existence\ -\ readable 存在\ -\ 可读
+menutrans existence\ -\ writable 存在\ -\ 可写
+menutrans String\ is\ empty 字符串为空
+menutrans String\ is\ not\ empty 字符串非空
+menutrans Strings\ is\ equal 字符串值相等
+menutrans Strings\ is\ not\ equal 字符串值不相等
+menutrans Values\ is\ greater\ than 值大于
+menutrans Values\ is\ greater\ equal 值大于等于
+menutrans Values\ is\ equal 值相等
+menutrans Values\ is\ not\ equal 值不相等
+menutrans Values\ is\ less\ than 值小于
+menutrans Values\ is\ less\ equal 值小于等于
+menutrans ParmSub 参数替换
+menutrans Substitute\ word\ if\ parm\ not\ set 如果参数没设置就替换该词
+menutrans Set\ parm\ to\ word\ if\ not\ set 参数未设置就设为该词
+menutrans Substitute\ word\ if\ parm\ set\ else\ nothing 如果参数设置就替换该词,否则什么都不做
+menutrans If\ parm\ not\ set\ print\ word\ and\ exit 如果参数没有设置就打印该词并退出
+menutrans SpShVars Shell\ 特殊变量
+menutrans Number\ of\ positional\ parameters 位置参数的数目
+menutrans All\ positional\ parameters\ (quoted\ spaces) 所有位置参数(quoted\ spaces)
+menutrans All\ positional\ parameters\ (unquoted\ spaces) 所有位置参数(unquoted\ spaces)
+menutrans Flags\ set 设置标志
+menutrans Return\ code\ of\ last\ command 返回前一条命令的代码
+menutrans Process\ number\ of\ this\ shell shell\ 自身进程号
+menutrans Process\ number\ of\ last\ background\ command 前一条后台命令的进程号
+menutrans Environ 环境变量
+menutrans exit\ when\ command\ returns\ non-zero\ exit\ code 当命令返回非零代码时退出
+menutrans Disable\ file\ name\ generation 禁用文件名生成
+menutrans Read\ commands\ but\ do\ not\ execute\ them 读命令但是不要执行
+menutrans Exit\ after\ reading\ and\ executing\ one\ command 读并执行一个命令之后退出
+menutrans Treat\ unset\ variables\ as\ an\ error\ when\ substituting 替换时把未设置命令视为错误
+menutrans Print\ shell\ input\ lines\ as\ they\ are\ read 读\ shell\ 输入行的时候打印
+menutrans Print\ commands\ and\ their\ arguments\ as\ they\ are\ executed 被执行时打印命令和参数
+" }}}
+
+" termdebug menu
+" termdebug menuitems {{{1
+" From termdebug.vim
+menutrans Set\ breakpoint 设置断点
+menutrans Clear\ breakpoint 清除断点
+menutrans Run\ until 运行到
+menutrans Evaluate 求值
+menutrans WinBar 工具条
+menutrans Step 单步
+menutrans Next 下一个
+menutrans Finish 结束
+menutrans Cont 继续
+menutrans Stop 停止
+" }}}
+
+" debchangelog menu
+" debchangelog menuitems {{{1
+" From debchangelog.vim
+menutrans &Changelog 更新日志(&C)
+menutrans &New\ Version 新版本(&N)
+menutrans &Add\ Entry 添加条目(&A)
+menutrans &Close\ Bug 关闭\ Bug(&C)
+menutrans Set\ &Distribution 设置发行版(&D)
+menutrans &unstable 不稳定(&U)
+menutrans Set\ &Urgency 设置紧急(&U)
+menutrans &low 低(&L)
+menutrans &medium 中(&M)
+menutrans &high 高(&H)
+menutrans U&nfinalise 未完成(&N)
+menutrans &Finalise 完成(&F)
+" }}}
+
+" ada menu
+" ada menuitems {{{1
+" From ada.vim
+menutrans Tag 标签
+menutrans List 列表
+menutrans Jump 跳转
+menutrans Create\ File 创建文件
+menutrans Create\ Dir 创建目录
+menutrans Highlight 高亮
+menutrans Toggle\ Space\ Errors 切换空格错误
+menutrans Toggle\ Lines\ Errors 切换行错误
+menutrans Toggle\ Rainbow\ Color 切换彩虹颜色
+menutrans Toggle\ Standard\ Types 切换标准类型
+" }}}
+
+" gnat menu
+" gnat menuitems {{{1
+" From gnat.vim
+menutrans Build 构建
+menutrans Pretty\ Print 重新格式化代码
+menutrans Find 查找
+menutrans Set\ Projectfile\.\.\. 设置项目文件\.\.\.
+" }}}
+
 let &cpo = s:keepcpo
 unlet s:keepcpo
 
--- a/runtime/syntax/fetchmail.vim
+++ b/runtime/syntax/fetchmail.vim
@@ -2,7 +2,7 @@
 " Language:		fetchmail(1) RC File
 " Maintainer:		Doug Kearns <dougkearns@gmail.com>
 " Previous Maintainer:	Nikolai Weibull <now@bitwi.se>
-" Latest Revision:	2022 Jun 30
+" Latest Revision:	2022 Jul 02
 
 " Version 6.4.3
 
@@ -62,7 +62,7 @@ syn match   fetchmailNoise	display '[:;,
 syn keyword fetchmailSet	nextgroup=fetchmailOptions skipwhite skipnl set
 
 syn keyword fetchmailOptions	daemon postmaster bouncemail spambounce
-				\ softbounce logfile idfile syslog properties
+				\ softbounce logfile pidfile idfile syslog properties
 syn match   fetchmailOptions	'\<no\_s\+\(bouncemail\|spambounce\|softbounce\|syslog\)'
 
 hi def link fetchmailComment	Comment
--- 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 09, 2022
-" Version:		201
+" Last Change:		Jun 29, 2022
+" Version:		202
 " 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
@@ -350,7 +350,7 @@ if exists("b:is_bash")
  syn cluster shCommandSubList add=bashSpecialVariables,bashStatement
  syn cluster shCaseList add=bashAdminStatement,bashStatement
  syn keyword bashSpecialVariables contained auto_resume BASH BASH_ALIASES BASH_ALIASES BASH_ARGC BASH_ARGC BASH_ARGV BASH_ARGV BASH_CMDS BASH_CMDS BASH_COMMAND BASH_COMMAND BASH_ENV BASH_EXECUTION_STRING BASH_EXECUTION_STRING BASH_LINENO BASH_LINENO BASHOPTS BASHOPTS BASHPID BASHPID BASH_REMATCH BASH_REMATCH BASH_SOURCE BASH_SOURCE BASH_SUBSHELL BASH_SUBSHELL BASH_VERSINFO BASH_VERSION BASH_XTRACEFD BASH_XTRACEFD CDPATH COLUMNS COLUMNS COMP_CWORD COMP_CWORD COMP_KEY COMP_KEY COMP_LINE COMP_LINE COMP_POINT COMP_POINT COMPREPLY COMPREPLY COMP_TYPE COMP_TYPE COMP_WORDBREAKS COMP_WORDBREAKS COMP_WORDS COMP_WORDS COPROC COPROC DIRSTACK EMACS EMACS ENV ENV EUID FCEDIT FIGNORE FUNCNAME FUNCNAME FUNCNEST FUNCNEST GLOBIGNORE GROUPS histchars HISTCMD HISTCONTROL HISTFILE HISTFILESIZE HISTIGNORE HISTSIZE HISTTIMEFORMAT HISTTIMEFORMAT HOME HOSTFILE HOSTNAME HOSTTYPE IFS IGNOREEOF INPUTRC LANG LC_ALL LC_COLLATE LC_CTYPE LC_CTYPE LC_MESSAGES LC_NUMERIC LC_NUMERIC LINENO LINES LINES MACHTYPE MAIL MAILCHECK MAILPATH MAPFILE MAPFILE OLDPWD OPTARG OPTERR OPTIND OSTYPE PATH PIPESTATUS POSIXLY_CORRECT POSIXLY_CORRECT PPID PROMPT_COMMAND PS1 PS2 PS3 PS4 PWD RANDOM READLINE_LINE READLINE_LINE READLINE_POINT READLINE_POINT REPLY SECONDS SHELL SHELL SHELLOPTS SHLVL TIMEFORMAT TIMEOUT TMPDIR TMPDIR UID
- syn keyword bashStatement chmod clear complete du egrep expr fgrep find gnufind gnugrep grep less ls mkdir mv rm rmdir rpm sed sleep sort strip tail
+ syn keyword bashStatement chmod clear complete du egrep expr fgrep find gnufind gnugrep grep head less ls mkdir mv rm rmdir rpm sed sleep sort strip tail
  syn keyword bashAdminStatement daemon killall killproc nice reload restart start status stop
  syn keyword bashStatement	command compgen
 endif
@@ -359,7 +359,7 @@ if exists("b:is_kornshell") || exists("b
  syn cluster shCommandSubList add=kshSpecialVariables,kshStatement
  syn cluster shCaseList add=kshStatement
  syn keyword kshSpecialVariables contained CDPATH COLUMNS EDITOR ENV ERRNO FCEDIT FPATH HISTFILE HISTSIZE HOME IFS LINENO LINES MAIL MAILCHECK MAILPATH OLDPWD OPTARG OPTIND PATH PPID PS1 PS2 PS3 PS4 PWD RANDOM REPLY SECONDS SHELL TMOUT VISUAL
- syn keyword kshStatement cat chmod clear cp du egrep expr fgrep find grep killall less ls mkdir mv nice printenv rm rmdir sed sort strip stty tail tput
+ syn keyword kshStatement cat chmod clear cp du egrep expr fgrep find grep head killall less ls mkdir mv nice printenv rm rmdir sed sort strip stty tail tput
  syn keyword kshStatement command setgroups setsenv
 endif
 
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -1,8 +1,8 @@
 " Vim syntax file
-" Language:	Vim 8.2 script
+" Language:	Vim 9.0 script
 " Maintainer:	Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
-" Last Change:	Jun 16, 20222
-" Version:	8.2-46
+" Last Change:	July 01, 2022
+" Version:	9.0-01
 " URL:	http://www.drchip.org/astronaut/vim/index.html#SYNTAX_VIM
 " Automatically generated keyword lists: {{{1
 
@@ -49,8 +49,8 @@ syn keyword vimOption contained	invai in
 syn keyword vimOption contained	invakm invanti invarab invari invautochdir invautoshelldir invaw invballooneval invbevalterm invbk invbreakindent invcf invcindent invcopyindent invcscoperelative invcsre invcuc invcursorcolumn invdelcombine invdigraph inved invemo inveol invesckeys invexpandtab invfic invfixeol invfoldenable invgd invhid invhkmap invhls invicon invimc invimdisable invinfercase invjoinspaces invlangremap invlinebreak invlnr invlrm invmacatsui invml invmodeline invmodified
 
 " termcap codes (which can also be set) {{{2
-syn keyword vimOption contained	t_8b t_8u t_AF t_AL t_bc t_BE t_ce t_cl t_Co t_Cs t_CV t_db t_DL t_EI t_F2 t_F4 t_F6 t_F8 t_fd t_fs t_IE t_k1 t_k2 t_K3 t_K4 t_K5 t_K6 t_K7 t_K8 t_K9 t_kb t_KB t_kd t_KD t_KE t_KG t_kh t_KH t_kI t_KI t_KJ t_KK t_kl t_KL t_kN t_kP t_kr t_ks t_ku t_le t_mb t_md t_me t_mr t_ms t_nd t_op t_PE t_PS t_RB t_RC t_RF t_Ri t_RI t_RS t_RT t_RV t_Sb t_SC t_se t_Sf t_SH t_Si t_SI t_so t_sr t_SR t_ST t_te t_Te t_TE t_ti t_TI t_ts t_Ts t_u7 t_ue t_us t_ut t_vb t_ve t_vi t_vs t_VS t_WP t_WS t_xn t_xs t_ZH t_ZR
-syn keyword vimOption contained	t_8f t_AB t_al t_AU t_BD t_cd t_Ce t_cm t_cs t_CS t_da t_dl t_EC t_F1 t_F3 t_F5 t_F7 t_F9 t_fe t_GP t_IS t_K1 t_k3 t_k4 t_k5 t_k6 t_k7 t_k8 t_k9 t_KA t_kB t_KC t_kD t_ke t_KF
+syn keyword vimOption contained	t_8b t_8u t_AF t_AL t_bc t_BE t_ce t_cl t_Co t_Cs t_CV t_db t_DL t_Ds t_EI t_F2 t_F4 t_F6 t_F8 t_fd t_fs t_IE t_k1 t_k2 t_K3 t_K4 t_K5 t_K6 t_K7 t_K8 t_K9 t_kb t_KB t_kd t_KD t_KE t_KG t_KH t_KI t_KJ t_KK t_kl t_KL t_kN t_kP t_kr t_ks t_ku t_le t_mb t_md t_me t_mr t_ms t_nd t_op t_PE t_PS t_RB t_RC t_RF t_Ri t_RI t_RS t_RT t_RV t_Sb t_SC t_se t_Sf t_SH t_Si t_SI t_so t_sr t_SR t_ST t_te t_Te t_TE t_ti t_TI t_ts t_Ts t_u7 t_ue t_us t_Us t_ut t_vb t_ve t_vi t_vs t_VS t_WP t_WS t_xn t_xs t_ZH t_ZR
+syn keyword vimOption contained	t_8f t_AB t_al t_AU t_BD t_cd t_Ce t_cm t_cs t_CS t_da t_dl t_ds t_EC t_F1 t_F3 t_F5 t_F7 t_F9 t_fe t_GP t_IS t_K1 t_k3 t_k4 t_k5 t_k6 t_k7 t_k8 t_k9 t_KA t_kB t_KC t_kD t_ke t_KF t_kh t_kI
 syn match   vimOption contained	"t_%1"
 syn match   vimOption contained	"t_#2"
 syn match   vimOption contained	"t_#4"
@@ -400,7 +400,7 @@ syn match	vimSetMod	contained	"&vim\=\|[
 " Let: {{{2
 " ===
 syn keyword	vimLet	let	unl[et]	skipwhite nextgroup=vimVar,vimFuncVar,vimLetHereDoc
-VimFoldh syn region vimLetHereDoc	matchgroup=vimLetHereDocStart start='=<<\s\+\%(trim\%(\s\+eval\)\=\|eval\%(\s\+trim\)\=\)\=\s*\z(\L\S*\)'	matchgroup=vimLetHereDocStop end='^\s*\z1\s*$'
+VimFoldh syn region vimLetHereDoc	matchgroup=vimLetHereDocStart start='=<<\s\+\%(trim\|eval\>\)\=\s*\z(\L\S*\)'	matchgroup=vimLetHereDocStop end='^\s*\z1\s*$'
 
 " Abbreviations: {{{2
 " =============