changeset 29066:f8e9d5023bf6

Update runtime files Commit: https://github.com/vim/vim/commit/cfa8f9a3f285060152ebbdbf86fbc7aecf1dd756 Author: Bram Moolenaar <Bram@vim.org> Date: Fri Jun 3 21:59:47 2022 +0100 Update runtime files
author Bram Moolenaar <Bram@vim.org>
date Fri, 03 Jun 2022 23:00:05 +0200
parents ec0d9747e834
children 87c00c420d27
files .github/CODEOWNERS runtime/doc/autocmd.txt runtime/doc/builtin.txt runtime/doc/change.txt runtime/doc/eval.txt runtime/doc/map.txt runtime/doc/options.txt runtime/doc/os_win32.txt runtime/doc/popup.txt runtime/doc/sponsor.txt runtime/doc/syntax.txt runtime/doc/tags runtime/doc/terminal.txt runtime/doc/todo.txt runtime/doc/undo.txt runtime/doc/usr_41.txt runtime/doc/usr_50.txt runtime/doc/usr_51.txt runtime/doc/usr_52.txt runtime/doc/usr_toc.txt runtime/filetype.vim runtime/ftplugin/confini.vim runtime/ftplugin/fortran.vim runtime/indent/confini.vim runtime/syntax/confini.vim runtime/syntax/vim.vim src/po/de.po src/po/es.po src/po/pt_BR.po src/po/uk.cp1251.po src/po/uk.po
diffstat 31 files changed, 1514 insertions(+), 2103 deletions(-) [+]
line wrap: on
line diff
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -309,8 +309,16 @@ runtime/tutor/tutor.fr			@dpelle
 runtime/tutor/tutor.fr.utf-8		@dpelle
 src/iscygpty.*				@k-takata
 src/libvterm/				@leonerd
+src/po/ca.po				@nfdisco
 src/po/de.po				@chrisbra
 src/po/eo.po				@dpelle
+src/po/es.po				@victorhck
+src/po/fi.po				@flammie
 src/po/fr.po				@dpelle
 src/po/ga.po				@kscanne
+src/po/it.po				@azc100
+src/po/ja.po				@k-takata
+src/po/sr.po				@eevan78
+src/po/tr.po				@bitigchi
+src/po/uk.po				@sakhnik
 src/xxd/				@jnweiger
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 8.2.  Last change: 2022 Apr 17
+*autocmd.txt*   For Vim version 8.2.  Last change: 2022 May 24
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -50,7 +50,7 @@ effects.  Be careful not to destroy your
 Recommended use:
 - Always use a group, so that it's easy to delete the autocommand.
 - Keep the command itself short, call a function to do more work.
-- Make it so that the script it is defined it can be sourced several times
+- Make it so that the script it is defined in can be sourced several times
   without the autocommand being repeated.
 
 Example in Vim9 script: >
--- a/runtime/doc/builtin.txt
+++ b/runtime/doc/builtin.txt
@@ -1,4 +1,4 @@
-*builtin.txt*	For Vim version 8.2.  Last change: 2022 May 21
+*builtin.txt*	For Vim version 8.2.  Last change: 2022 May 27
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,4 +1,4 @@
-*change.txt*    For Vim version 8.2.  Last change: 2022 May 07
+*change.txt*    For Vim version 8.2.  Last change: 2022 May 26
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1272,7 +1272,7 @@ to their previous contents.  When the '>
 a line break is inserted before the appended text.
 
 5. Read-only registers ":, ". and "%
-These are '%', '#', ':' and '.'.  You can use them only with the "p", "P",
+These are '%', ':' and '.'.  You can use them only with the "p", "P",
 and ":put" commands and with CTRL-R.
 						*quote_.* *quote.* *E29*
 	".	Contains the last inserted text (the same as what is inserted
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 8.2.  Last change: 2022 May 13
+*eval.txt*	For Vim version 8.2.  Last change: 2022 Jun 03
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -183,10 +183,15 @@ You will not get an error if you try to 
 1.2 Function references ~
 				*Funcref* *E695* *E718* *E1192*
 A Funcref variable is obtained with the |function()| function, the |funcref()|
-function or created with the lambda expression |expr-lambda|.  It can be used
-in an expression in the place of a function name, before the parenthesis
-around the arguments, to invoke the function it refers to.  Example: >
-
+function, (in |Vim9| script) the name of a function, or created with the
+lambda expression |expr-lambda|.  It can be used in an expression in the place
+of a function name, before the parenthesis around the arguments, to invoke the
+function it refers to.  Example in |Vim9| script: >
+
+	:var Fn = MyFunc
+	:echo Fn()
+
+Legacy script: >
 	:let Fn = function("MyFunc")
 	:echo Fn()
 <							*E704* *E705* *E707*
@@ -1544,7 +1549,7 @@ to be doubled.  These two commands are e
 	if a =~ '\s*'
 
 
-interpolated-string					*interp-string* *E256*
+interpolated-string				*$quote* *interp-string* *E256*
 --------------------
 $"string"		interpolated string constant		*expr-$quote*
 $'string'		interpolated literal string constant	*expr-$'*
@@ -2998,7 +3003,7 @@ The file "~/vim/bufnetfuncs.vim" should 
 
 Using an autoload script ~
 							*autoload* *E746*
-This is introduced in the user manual, section |51.5|.
+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
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt*       For Vim version 8.2.  Last change: 2022 May 16
+*map.txt*       For Vim version 8.2.  Last change: 2022 Jun 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -63,6 +63,7 @@ modes.
 			allows for nested and recursive use of mappings.
 			Note: Trailing spaces are included in the {rhs},
 			because space is a valid Normal mode command.
+			See |map-trailing-white|.
 
 						*:nore* *:norem*
 :no[remap]  {lhs} {rhs}		|mapmode-nvo|	*:no*  *:noremap* *:nor*
@@ -100,10 +101,8 @@ modes.
 			for other modes where it applies.
 			It also works when {lhs} matches the {rhs} of a
 			mapping. This is for when an abbreviation applied.
-			Note: Trailing spaces are included in the {lhs}.  This
-			unmap does NOT work: >
-				:map @@ foo
-				:unmap @@ | print
+			Note: Trailing spaces are included in the {lhs}.
+			See |map-trailing-white|.
 
 :mapc[lear]			|mapmode-nvo|		*:mapc*   *:mapclear*
 :nmapc[lear]			|mapmode-n|		*:nmapc*  *:nmapclear*
@@ -168,6 +167,27 @@ that mapping won't get expanded yet, Vim
 If you type a space, then "foo" will get inserted, plus the space.  If you
 type "a", then "bar" will get inserted.
 
+Trailing white space ~
+							*map-trailing-white*
+This unmap command does NOT work: >
+	:map @@ foo
+	:unmap @@ | print
+
+Because it tries to unmap "@@ ", including the white space before the command
+separator "|".  Other examples with trailing white space: >
+	unmap @@ 
+	unmap @@     # Vim9 script comment
+	unmap @@     " legacy comment
+
+An error will be issued, which is very hard to identify, because the ending
+whitespace character in `unmap @@ ` is not visible.
+
+A generic solution is to put the command separator "|" right after the mapped
+keys.  After that white space and a comment may follow: >
+
+	unmap @@|    # Vim9 scriptcomment
+	unmap @@|    " legacy scriptcomment
+
 
 1.2 SPECIAL ARGUMENTS					*:map-arguments*
 
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 8.2.  Last change: 2022 May 21
+*options.txt*	For Vim version 8.2.  Last change: 2022 Jun 02
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -4264,7 +4264,8 @@ A jump table for the options with a shor
 	The type of highlighting used can be set with the 'l' occasion in the
 	'highlight' option.  This uses the "Search" highlight group by
 	default.  Note that only the matching text is highlighted, any offsets
-	are not applied.
+	are not applied.  If the "CurSearch" highlight group is set then the
+	current match is highlighted with that.
 	See also: 'incsearch' and |:match|.
 	When you get bored looking at the highlighted matches, you can turn it
 	off with |:nohlsearch|.  This does not change the option value, as
@@ -7624,10 +7625,9 @@ A jump table for the options with a shor
 
 	If the statusline is not updated when you want it (e.g., after setting
 	a variable that's used in an expression), you can force an update by
-	setting an option without changing its value.  Example: >
-		:let &ro = &ro
-
-<	A result of all digits is regarded a number for display purposes.
+	using `:redrawstatus`.
+
+	A result of all digits is regarded a number for display purposes.
 	Otherwise the result is taken as flag text and applied to the rules
 	described above.
 
--- a/runtime/doc/os_win32.txt
+++ b/runtime/doc/os_win32.txt
@@ -1,4 +1,4 @@
-*os_win32.txt*  For Vim version 8.2.  Last change: 2022 May 22
+*os_win32.txt*  For Vim version 8.2.  Last change: 2022 May 24
 
 
 		  VIM REFERENCE MANUAL    by George Reilly
@@ -7,7 +7,7 @@
 						*win32* *Win32* *MS-Windows*
 This file documents the idiosyncrasies of the Win32 version of Vim.
 
-The Win32 version of Vim works on Windows XP, Vista, 7, 8 and 10.  There are
+The Win32 version of Vim works on Windows XP, Vista, 7, 8, 10 and 11.  There are
 both console and GUI versions.
 
 The 32 bit version also runs on 64 bit MS-Windows systems.
--- a/runtime/doc/popup.txt
+++ b/runtime/doc/popup.txt
@@ -1,4 +1,4 @@
-*popup.txt*  For Vim version 8.2.  Last change: 2022 Apr 04
+*popup.txt*  For Vim version 8.2.  Last change: 2022 May 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -147,7 +147,8 @@ A special case is running a terminal in 
 different:						*E863*
 - The popup window always has focus, it is not possible to switch to another
   window.
-- When the job ends, the popup window closes.
+- When the job ends, the popup window shows the buffer in Terminal-Normal
+  mode.  Use `:q` to close it or use "term_finish" value "close".
 - The popup window can be closed with `popup_close()`, the terminal buffer
   then becomes hidden.
 - It is not possible to open a second popup window with a terminal. *E861*
@@ -998,20 +999,23 @@ To make the four corners transparent:
 ==============================================================================
 4. Examples						*popup-examples*
 
+These examplese use |Vim9| script.
+
 TODO: more interesting examples
+
 					*popup_dialog-example*
 Prompt the user to press y/Y or n/N: >
 
-	func MyDialogHandler(id, result)
-	   if a:result
-	      " ... 'y' or 'Y' was pressed
-	   endif
-	endfunc
-
-	call popup_dialog('Continue? y/n', #{
-		\ filter: 'popup_filter_yesno',
-		\ callback: 'MyDialogHandler',
-		\ })
+	popup_dialog('Continue? y/n', {
+		 filter: 'popup_filter_yesno',
+		 callback: (id, result) => {
+				if result == 1
+				  echomsg "'y' or 'Y' was pressed"
+				else
+				  echomsg "'y' or 'Y' was NOT pressed"
+				endif
+			     },
+		 })
 <
 					*popup_menu-shortcut-example*
 Extend popup_filter_menu() with shortcut keys: >
--- a/runtime/doc/sponsor.txt
+++ b/runtime/doc/sponsor.txt
@@ -1,4 +1,4 @@
-*sponsor.txt*   For Vim version 8.2.  Last change: 2021 Jul 07
+*sponsor.txt*   For Vim version 8.2.  Last change: 2022 May 26
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt*	For Vim version 8.2.  Last change: 2022 May 20
+*syntax.txt*	For Vim version 8.2.  Last change: 2022 Jun 03
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -4898,6 +4898,14 @@ color (can make it transparent in some t
 	  au Colorscheme pablo hi Normal ctermbg=NONE
 	augroup END
 
+Change a couple more colors: >
+	augroup my_colorschemes
+	  au!
+	  au Colorscheme pablo hi Normal ctermbg=NONE
+		      \ | higlight Special ctermfg=63
+		      \ | highlight Identifier ctermfg=44
+	augroup END
+
 If you make a lot of changes it might be better to copy the distributed
 colorscheme to your home directory and change it: >
 	:!cp $VIMRUNTIME/colors/pablo.vim ~/.vim/colors
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -12,6 +12,7 @@
 $VIM-use	version5.txt	/*$VIM-use*
 $VIMRUNTIME	starting.txt	/*$VIMRUNTIME*
 $VIM_POSIX	vi_diff.txt	/*$VIM_POSIX*
+$quote	eval.txt	/*$quote*
 %	motion.txt	/*%*
 %:.	cmdline.txt	/*%:.*
 %:8	cmdline.txt	/*%:8*
@@ -1948,16 +1949,16 @@ 45.3	usr_45.txt	/*45.3*
 45.4	usr_45.txt	/*45.4*
 45.5	usr_45.txt	/*45.5*
 50.1	usr_50.txt	/*50.1*
+50.2	usr_50.txt	/*50.2*
 51.1	usr_51.txt	/*51.1*
 51.2	usr_51.txt	/*51.2*
 51.3	usr_51.txt	/*51.3*
 51.4	usr_51.txt	/*51.4*
-51.5	usr_51.txt	/*51.5*
-51.6	usr_51.txt	/*51.6*
 52.1	usr_52.txt	/*52.1*
 52.2	usr_52.txt	/*52.2*
 52.3	usr_52.txt	/*52.3*
 52.4	usr_52.txt	/*52.4*
+52.5	usr_52.txt	/*52.5*
 8g8	various.txt	/*8g8*
 90.1	usr_90.txt	/*90.1*
 90.2	usr_90.txt	/*90.2*
@@ -4268,6 +4269,8 @@ E1276	builtin.txt	/*E1276*
 E1278	eval.txt	/*E1278*
 E128	eval.txt	/*E128*
 E1281	pattern.txt	/*E1281*
+E1282	eval.txt	/*E1282*
+E1283	eval.txt	/*E1283*
 E129	eval.txt	/*E129*
 E13	message.txt	/*E13*
 E131	eval.txt	/*E131*
@@ -5516,6 +5519,7 @@ W20	if_pyth.txt	/*W20*
 W21	if_pyth.txt	/*W21*
 W22	eval.txt	/*W22*
 WORD	motion.txt	/*WORD*
+WSL	os_win32.txt	/*WSL*
 WWW	intro.txt	/*WWW*
 Win32	os_win32.txt	/*Win32*
 WinBar	gui.txt	/*WinBar*
@@ -5846,6 +5850,7 @@ beval_winid-variable	eval.txt	/*beval_wi
 beval_winnr-variable	eval.txt	/*beval_winnr-variable*
 binary-number	eval.txt	/*binary-number*
 bitwise-function	usr_41.txt	/*bitwise-function*
+bitwise-shift	eval.txt	/*bitwise-shift*
 blob	eval.txt	/*blob*
 blob-functions	usr_41.txt	/*blob-functions*
 blob-identity	eval.txt	/*blob-identity*
@@ -6662,6 +6667,7 @@ expr-..	eval.txt	/*expr-..*
 expr-/	eval.txt	/*expr-\/*
 expr-<	eval.txt	/*expr-<*
 expr-<#	eval.txt	/*expr-<#*
+expr-<<	eval.txt	/*expr-<<*
 expr-<=	eval.txt	/*expr-<=*
 expr-<=#	eval.txt	/*expr-<=#*
 expr-<=?	eval.txt	/*expr-<=?*
@@ -6677,6 +6683,7 @@ expr->#	eval.txt	/*expr->#*
 expr->=	eval.txt	/*expr->=*
 expr->=#	eval.txt	/*expr->=#*
 expr->=?	eval.txt	/*expr->=?*
+expr->>	eval.txt	/*expr->>*
 expr->?	eval.txt	/*expr->?*
 expr-[:]	eval.txt	/*expr-[:]*
 expr-[]	eval.txt	/*expr-[]*
@@ -6704,6 +6711,7 @@ expr-unary--	eval.txt	/*expr-unary--*
 expr-variable	eval.txt	/*expr-variable*
 expr1	eval.txt	/*expr1*
 expr10	eval.txt	/*expr10*
+expr11	eval.txt	/*expr11*
 expr2	eval.txt	/*expr2*
 expr3	eval.txt	/*expr3*
 expr4	eval.txt	/*expr4*
@@ -7278,6 +7286,7 @@ g:tar_nomax	pi_tar.txt	/*g:tar_nomax*
 g:tar_readoptions	pi_tar.txt	/*g:tar_readoptions*
 g:tar_secure	pi_tar.txt	/*g:tar_secure*
 g:tar_writeoptions	pi_tar.txt	/*g:tar_writeoptions*
+g:termdebug_config	terminal.txt	/*g:termdebug_config*
 g:termdebugger	terminal.txt	/*g:termdebugger*
 g:terminal_ansi_colors	terminal.txt	/*g:terminal_ansi_colors*
 g:tex_comment_nospell	syntax.txt	/*g:tex_comment_nospell*
@@ -8177,6 +8186,7 @@ map-self-destroy	tips.txt	/*map-self-des
 map-space_in_lhs	map.txt	/*map-space_in_lhs*
 map-space_in_rhs	map.txt	/*map-space_in_rhs*
 map-table	map.txt	/*map-table*
+map-trailing-white	map.txt	/*map-trailing-white*
 map-typing	map.txt	/*map-typing*
 map-which-keys	map.txt	/*map-which-keys*
 map.txt	map.txt	/*map.txt*
@@ -10188,6 +10198,7 @@ underline	syntax.txt	/*underline*
 undo	undo.txt	/*undo*
 undo-blocks	undo.txt	/*undo-blocks*
 undo-branches	undo.txt	/*undo-branches*
+undo-break	undo.txt	/*undo-break*
 undo-commands	undo.txt	/*undo-commands*
 undo-persistence	undo.txt	/*undo-persistence*
 undo-redo	undo.txt	/*undo-redo*
@@ -10206,7 +10217,6 @@ unlisted-buffer	windows.txt	/*unlisted-b
 up-down-motions	motion.txt	/*up-down-motions*
 uppercase	change.txt	/*uppercase*
 urxvt-mouse	options.txt	/*urxvt-mouse*
-use-cpo-save	usr_51.txt	/*use-cpo-save*
 use-visual-cmds	version4.txt	/*use-visual-cmds*
 useful-mappings	tips.txt	/*useful-mappings*
 usenet	intro.txt	/*usenet*
@@ -10578,7 +10588,7 @@ vim9-const	vim9.txt	/*vim9-const*
 vim9-curly	vim9.txt	/*vim9-curly*
 vim9-debug	repeat.txt	/*vim9-debug*
 vim9-declaration	vim9.txt	/*vim9-declaration*
-vim9-declarations	usr_52.txt	/*vim9-declarations*
+vim9-declarations	usr_41.txt	/*vim9-declarations*
 vim9-differences	vim9.txt	/*vim9-differences*
 vim9-export	vim9.txt	/*vim9-export*
 vim9-final	vim9.txt	/*vim9-final*
@@ -10597,7 +10607,6 @@ vim9-rationale	vim9.txt	/*vim9-rationale
 vim9-reload	vim9.txt	/*vim9-reload*
 vim9-s-namespace	vim9.txt	/*vim9-s-namespace*
 vim9-scopes	vim9.txt	/*vim9-scopes*
-vim9-script-intro	usr_52.txt	/*vim9-script-intro*
 vim9-types	vim9.txt	/*vim9-types*
 vim9-unpack-ignore	vim9.txt	/*vim9-unpack-ignore*
 vim9-user-command	vim9.txt	/*vim9-user-command*
@@ -10654,6 +10663,7 @@ vimscript-version	eval.txt	/*vimscript-v
 vimscript-versions	eval.txt	/*vimscript-versions*
 vimtutor	usr_01.txt	/*vimtutor*
 virtcol()	builtin.txt	/*virtcol()*
+virtcol2col()	builtin.txt	/*virtcol2col()*
 visual-block	visual.txt	/*visual-block*
 visual-change	visual.txt	/*visual-change*
 visual-examples	visual.txt	/*visual-examples*
@@ -10784,11 +10794,11 @@ write-compiler-plugin	usr_51.txt	/*write
 write-device	editing.txt	/*write-device*
 write-fail	editing.txt	/*write-fail*
 write-filetype-plugin	usr_51.txt	/*write-filetype-plugin*
-write-library-script	usr_51.txt	/*write-library-script*
+write-library-script	usr_52.txt	/*write-library-script*
 write-local-help	usr_51.txt	/*write-local-help*
 write-permissions	editing.txt	/*write-permissions*
 write-plugin	usr_51.txt	/*write-plugin*
-write-plugin-quickload	usr_51.txt	/*write-plugin-quickload*
+write-plugin-quickload	usr_52.txt	/*write-plugin-quickload*
 write-quit	editing.txt	/*write-quit*
 write-readonly	editing.txt	/*write-readonly*
 writefile()	builtin.txt	/*writefile()*
--- a/runtime/doc/terminal.txt
+++ b/runtime/doc/terminal.txt
@@ -1,4 +1,4 @@
-*terminal.txt*	For Vim version 8.2.  Last change: 2022 Apr 06
+*terminal.txt*	For Vim version 8.2.  Last change: 2022 May 23
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.2.  Last change: 2022 May 22
+*todo.txt*      For Vim version 8.2.  Last change: 2022 Jun 03
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -39,20 +39,14 @@ browser use: https://github.com/vim/vim/
 -------------------- Known bugs and current work -----------------------
 
 Prepare for Vim 9.0 release:
+- Update the user manual:
+  - Add import/export example to 52.1
+  - Add more to usr_50.txt as an "advanced section" of usr_41.txt
+  - Move some from vim9.txt to the user manual?  Keep the specification.
 - Use Vim9 for more runtime files.
-- Check Vim9 code coverage, add more tests if needed.
-	vim9instr.c
-	vim9script.c
-	vim9type.c
+- Make popup-examples use Vim9 script  Issue #10499
 - Adjust intro message to say "help version9".
 
-Update the user manual:
-- Update usr_41.txt for Vim9 script
-- Fill usr_50.txt as an "advanced section" of usr_41.txt
-  Add links from usr_41 to usr_50.
-- Make usr_51.txt use Vim9 script.  Still need usr_52.txt?
-
-
 Further Vim9 improvements, possibly after launch:
 - Check performance with callgrind and kcachegrind.
     getline()/substitute()/setline() in #5632
@@ -89,9 +83,9 @@ Update list of features to vote on:
 Popup windows:
 - Preview popup not properly updated when it overlaps with completion menu.
     (Yegappan Lakshmanan, 2021 May 22
+- Srollbar thumb somtimes not visible  #10492
 - Add a function to redraw a specific popup window.  Esp. to be used when
   editing the command line, when screen updating doesn't happen. (Shougo)
-- In some cases prop_remove() does not work correctly. (#8261)
 - Add a flag to make a popup window focusable?
     CTRL-W P cycle over any preview window or focusable popup, end up back in
 	     current window.
@@ -152,6 +146,9 @@ Prompt buffer:
 - add prompt_addtext({buf}, {expr})	none	add text to a prompt buffer
 
 Terminal debugger:
+- Add a mechanism for configuration.  Instead of several global variables use
+  a dictionary.  Use callbacks for some things, e.g. opening a debug window in
+  a certain position.
 - Make prompt-buffer variant work better.
 - Add option to not open the program window.  It's not used when attaching to
   an already running program. (M. Kelly)
@@ -207,13 +204,8 @@ Terminal emulator window:
 - When 'encoding' is not utf-8, or the job is using another encoding, setup
   conversions.
 
-Add autocmd functions. PR #10291
-  a couple of outstanding comments, wait for Yegappan to respond
-
 Can deref_func_name() and deref_function_name() be merged?
 
-Add mode bits to maparg() dict?  PR #10356
-
 After patch 8.2.4915 w_botline is computed much more often. Can this be
 reduced?
 
@@ -228,11 +220,6 @@ entry separately. #6609
 Multiplexers (screen, tmux) can request it to the underlaying terminal, and
 pass it on with modifications.
 
-Test_communicate_ipv6(): is flaky on many systems
-Fails in line 64 of Ch_communicate, no exception is thrown.
-
-Rename getdigraphlist -> digraph_getlist() etc.
-
 Can "CSI nr X" be used instead of outputting spaces?  Is it faster?  #8002
 
 Valgrind reports memory leaks in test_options.
@@ -255,8 +242,6 @@ Memory leaks in test_channel? (or is it 
 
 PR to support %e and %k in 'errorformat'. #9624
 
-PR to add left and right bitwise shift. #8457
-
 Idea: when typing ":e /some/dir/" and "dir" does not exist, highlight in red.
 
 ":set &shellpipe" and ":set &shellredir" should use the logic from
@@ -276,8 +261,6 @@ Add support for "underdouble", "underdot
 
 test_arglist func Test_all_not_allowed_from_cmdwin() hangs on MS-Windows.
 
-Mapping with partial match not executed properly in GTK. (Ingo Karkat, #7082)
-
 Information for a specific terminal (e.g. gnome, tmux, konsole, alacritty) is
 spread out.  Make a section with copy/paste examples of script and pointers to
 more information.
@@ -294,6 +277,8 @@ Request to use "." for the cursor column
 
 ":filter set termcap" only filters terminal codes, not keys. (#9297)
 
+Add an option to restrict 'incsearch' to not scroll the view. (Tavis Ormandy)
+
 Remove SPACE_IN_FILENAME ? It is only used for completion.
 
 When 'term' starts with "foot" then default t_TI and t_TE to the values used
@@ -316,9 +301,6 @@ to tell which value from getvvcol() shou
 Value returned by virtcol() changes depending on how lines wrap.  This is
 inconsistent with the documentation.
 
-Making breakat support multibyte characters (Yasuhiro Matsumoto, #6598)
-Scroll doesn't work correctly, why?
-
 globpath() does not use 'wildignorecase' at all? (related to #8350)
 
 Add 'termguiattr' option, use "gui=" attributes in the terminal?  Would work
@@ -360,9 +342,6 @@ Should also work without any group:
 Should add a match/str/list/pos method that also returns the test and position
 of submatches.  #8355
 
-Syntax highlight for a region does not work with a "nextgroup" if the start
-match is empty. #8449
-
 Check out PR #543 (Roland Puntaier).
 Patch for multibyte characters in langmap and applying a mapping on them.
 (Christian Brabandt, 2015 Jun 12, update July 25)
@@ -485,9 +464,6 @@ Sound: support on Mac?  Or does libcanbe
 
 Python 3.8 doesn't work. (Antonios Hadjigeorgalis, #5509)
 
-The :syntax cchar value can only be a single character.  It would be useful to
-support combining characters. (Charles Campbell)  Also #4687
-
 "--cleanFOO" does not result in an error. (#5537)
 
 Output from assert_equalfile() doesn't give a hint about what's different.
@@ -803,13 +779,6 @@ Compiler warning (geeknik, 2017 Oct 26):
 Add Native language protocol server (LSP) support. (Yegappan Lakshmanan, 2018
 Oct 28)
 
-Add more testing of the GTK GUI.
-- gtk_test_widget_click() can be used to simulate a click in a widget.
-
-Tests failing for "make testgui" with GTK:
-- Test_setbufvar_options()
-- Test_exit_callback_interval()
-
 Patch to be able to use hex numbers with :digraph. (Lcd, 2015 Sep 6)
 Update Sep 7.  Update by Christian Brabandt, 2015 Sep 8, 2016 Feb 1.
 Patch to be able to disable default digraphs (incomplete) (Eric Pruitt, 2018
@@ -939,9 +908,6 @@ Patch to support hunspell. (Matej Cepl, 
 in #846)
 Doesn't work on Windows yet.  Not ready to included, hard coded paths.
 
-Win32 GUI: when running a fast timer, the cursor no longer blinks.
-Was reported: cursor blinks in terminal on widows with a timer. (xtal8, #2142)
-
 When a timer is running and typing CTRL-R on the command line, it is not
 redrawn properly. (xtal8, 2017 Oct 23, #2241)
 
@@ -1104,10 +1070,6 @@ Suggestion to improve pt-br spell checki
 
 Error in test_startup_utf8 on Solaris. (Danek Duvall, 2016 Aug 17)
 
-GTK: When adding a timer from 'balloonexpr' it won't fire, because
-g_main_context_iteration() doesn't return.  Need to trigger an event when the
-timer expires.
-
 Rule to use "^" for statusline does not work if a space is defined with
 highlighting for both stl and stlnc.  Patch by Ken Hamada (itchyny, 2016 Dec 11)
 
@@ -1507,8 +1469,6 @@ Result of systemlist() does not show whe
 When in 'comments' "n:x" follows after three-part comment directly it repeats
 any one-character from the previous line. (Kartik Agaram, 2014 Sep 19)
 
-Syntax highlighting slow (hangs) in SASS file. (Niek Bosch, 2013 Aug 21)
-
 Adding "~" to 'cdpath' doesn't work for completion?  (Davido, 2013 Aug 19)
 
 Patch: Let rare word highlighting overrule good word highlighting.
@@ -1630,9 +1590,6 @@ Also see #2034.
 
 Patch to define macros for hardcoded values. (Elias Diem, 2013 Dec 14)
 
-Several syntax file match "^\s*" which may get underlined if that's in the
-highlight group.  Add a "\zs" after it?
-
 Updated spec ftplugin. (MatΔ›j Cepl, 2013 Oct 16)
 
 Patch to handle integer overflow. (Aaron Burrow, 2013 Dec 12)
@@ -1654,9 +1611,6 @@ When evaluating expression in backticks,
 Using <nr>ifoobar<esc> can slow down Vim.  Patch by Christian Brabandt, 2013
 Dec 13.  Only helps a bit, 10000ii<Esc> is still too slow.
 
-GTK: problem with 'L' in 'guioptions' changing the window width.
-(Aaron Cornelius, 2012 Feb 6)
-
 Javascript file where indent gets stuck on: GalaxyMaster, 2012 May 3.
 
 The BufUnload event is triggered when re-using the empty buffer.
@@ -1682,9 +1636,6 @@ 2013 Mar 19, later message)
 
 Patch to view coverage of the tests. (Nazri Ramliy, 2013 Feb 15)
 
-Patch to invert characters differently in GTK. (Yukihiro Nakadaira, 2013 May
-5)
-
 Patch to add "Q" and "A" responses to interactive :substitute. They are
 carried over when using :global. (Christian Brabandt, 2013 Jun 19)
 
@@ -1704,13 +1655,6 @@ Patch by Christian Brabandt, 2013 Apr 20
 
 Bug: findfile("any", "file:///tmp;") does not work.
 
-patch to add "combine" flag to  syntax commands. (so8res, 2012 Dec 6)
-Patch to add "combine" to :syntax, combines highlight attributes. (Nate
-Soares, 2012 Dec 3)
-
-Syntax update problem in one buffer opened in two windows, bottom window is
-not correctly updated. (Paul Harris, 2012 Feb 27)
-
 Patch to add getsid(). (Tyru, 2011 Oct 2)  Do we want this?  Update Oct 4.
 Or use expand('<sid>')?
 
@@ -1814,10 +1758,6 @@ 2012 Jun 19)
 Patch 7.3.116 was the wrong solution.
 Christian Brabandt has another incomplete patch. (2011 Jul 13)
 
-Syntax region with 'concealends' and a 'cchar' value, 'conceallevel' set to 2,
-only one of the two ends gets the cchar displayed. (Brett Stahlman, 2010 Aug
-21, Ben Fritz, 2010 Sep 14)
-
 Win32: Patch to use task dialogs when available. (Sergiu Dotenco, 2011 Sep 17)
 New feature, requires testing.  Made some remarks.
 
@@ -1879,18 +1819,12 @@ the help file.
 After patch 7.3.097 still get E15. (Yukihiro Nakadaira, 2011 Jan 18)
 Also for another example (ZyX, 2011 Jan 24)
 
-Build problem with small features on Mac OS X 10.6. (Rainer, 2011 Jan 24)
-
 "0g@$" puts '] on last byte of multibyte. (ZyX, 2011 Jan 22)
 
 Patch for :tabrecently. (Hirokazu Yoshida, 2012 Jan 30)
 
 Problem with "syn sync grouphere". (Gustavo Niemeyer, 2011 Jan 27)
 
-Using "syn sync breaklines=2" works for when text is changed, but not when
-scrolling or redrawing.  Should start search for syntax patterns above the
-first drawn line. (#8103)
-
 Loading autoload script even when usage is inside "if 0". (Christian Brabandt,
 2010 Dec 18)
 
@@ -1923,19 +1857,12 @@ In the sandbox it's not allowed to do ma
 or set variables.  Add a way to prevent variables from being changed in the
 sandbox?  E.g.: ":protect g:restore_settings".
 
-GTK: drawing a double-width combining character over single-width characters
-doesn't look right. (Dominique Pelle, 2010 Aug 8)
-
-GTK: tear-off menu does not work. (Kurt Sonnenmoser, 2010 Oct 25)
-
 Win32: tear-off menu does not work when menu language is German. (Markus
 Bossler, 2011 Mar 2)  Fixed by 7.3.095?
 
 Wish for NetBeans commands:
     - make it possible to have 'defineAnnoType' also handle terminal colors.
 
-Version of netbeans.c for use with MacVim. (Kazuki Sakamoto, 2010 Nov 18)
-
 7.3.014 changed how backslash at end of line works, but still get a NUL when
 there is one backslash. (Ray Frush, 2010 Nov 18)  What does the original ex
 do?
@@ -2009,8 +1936,6 @@ C-indenting: A matching { in a comment i
 checked to be in a comment.  Implement FM_SKIPCOMM flag of findmatchlimit().
 Issue 46.
 
-Mac with X11: clipboard doesn't work properly. (Raf, 2010 Aug 16)
-
 Using CompilerSet doesn't record where an option was set from.  E.g., in the
 gcc compiler plugin. (Gary Johnson, 2010 Dec 13)
 
@@ -2082,8 +2007,6 @@ Problem with stop directory in findfile(
 Using ']' as the end of a range in a pattern requires double escaping:
      /[@-\\]]  (Andy Wokula, 2011 Jun 28)
 
-Syntax priority problem. (Charles Campbell, 2011 Sep 15)
-
 For running gvim on a USB stick: avoid the OLE registration.  Use a command
 line argument -noregister.
 
@@ -2139,8 +2062,6 @@ J.  Wang, 2009 Mar 31)
 When $VIMRUNTIME is set in .vimrc, need to reload lang files.  Already done
 for GTK, how about others? (Ron Aaron, 2010 Apr 10)
 
-Patch for GTK buttons X1Mouse and X2Mouse. (Christian J. Robinson, 2010 Aug 9)
-
 ":tab split fname" doesn't set the alternate file in the original window,
 because win_valid() always returns FALSE.  Below win_new_tabpage() in
 ex_docmd.c.
@@ -2174,9 +2095,6 @@ displayed in a window should return the 
 
 Diff mode out of sync. (Gary Johnson, 2010 Aug 4)
 
-Win32 GUI: last message from startup doesn't show up when there is an echoerr
-command. (Cyril Slobin, 2009 Mar 13)
-
 Win32: completion of file name ":e c:\!test" results in ":e c:\\!test", which
 does not work. (Nieko Maatjes, 2009 Jan 8, Ingo Karkat, 2009 Jan 22)
 
@@ -2316,10 +2234,6 @@ Win32: Using "gvim --remote-tab-silent elŝuti.txt" doesn't work, the
 multibyte character isn't passed and edits elsuti.txt.
 (RaΓΊl NΓΊΓ±ez de Arenas Coronado, 2015 Dec 18)
 
-Problem with 'langmap' being used on the rhs of a mapping. (Nikolai Weibull,
-2008 May 14)
-Possibly related problem: Alexey Muranov, 2015 Apr 2
-
 Problem with CTRL-F. (Charles Campbell, 2008 March 21)
 Only happens with "gvim -geometry "160x26+4+27" -u NONE -U NONE prop.c".
 'lines' is 54. (2008 March 27)
@@ -2346,21 +2260,6 @@ line doesn't fit. (Dasn, 2008 May 1)
 GUI: In Normal mode can't yank the modeless selection.  Make "gy" do this?
 Works like CTRL-Y in Command line mode.
 
-Mac: Move Carbon todo items to os_mac.txt.  Note that this version is frozen,
-try the Cocoa version.
-
-Mac: After a ":vsplit" the left scrollbar doesn't appear until 'columns' is
-changed or the window is resized.
-
-GTK: when setting 'columns' in a startup script and doing ":vertical diffsplit"
-the window isn't redrawn properly, see two vertical bars.
-
-Mac: Patch for configure: remove arch from ruby link args. (Knezevic, 2008
-Mar 5)  Alternative: Kazuki Sakamoto, Mar 7.
-
-Mac: trouble compiling with Motif, requires --disable-darwin. (Raf, 2008 Aug
-1)  Reply by Ben Schmidt.
-
 C't: On utf-8 system, editing file with umlaut through Gnome results in URL
 with %nn%nn, which is taken as two characters instead of one.
 Try to reproduce at work.
@@ -2380,10 +2279,6 @@ Would be more consistent when an existin
 Using Aap to build Vim: add remarks about how to set personal preferences.
 Example on http://www.calmar.ws/tmp/aap.html
 
-Syntax highlighting wrong for transparent region. (Doug Kearns, 2007 Feb 26)
-Bug in using a transparent syntax region. (Hanlen in vim-dev maillist, 2007
-Jul 31)
-
 When 'diffopt' has "context:0" a single deleted line causes two folds to merge
 and mess up syncing. (Austin Jennings, 2008 Jan 31)
 
@@ -2592,8 +2487,6 @@ Jul 22)
 
 There should be something about spell checking in the user manual.
 
-Mac: Using gvim: netrw window disappears. (Nick Lo, 2006 Jun 21)
-
 Add an option to specify the character to use when a double-width character is
 moved to the next line.  Default '>', set to a space to blank it out.  Check
 that char is single width when it's set (compare with 'listchars').
@@ -2644,8 +2537,6 @@ Only skip shortening for ":cc"?
 Problem with ":call" and dictionary function. Hari Krishna Dara, Charles
 Campbell 2006 Jul 06.
 
-Syntax HL error caused by "containedin". (Peter Hodge, 2006 Oct 6)
-
 A custom completion function in a ":command" cannot be a Funcref. (Andy
 Wokula, 2007 Aug 25)
 
@@ -2678,18 +2569,9 @@ and <notisdir> to autocommand patterns? 
 Add command modifier that skips wildcard expansion, so that you don't need to
 put backslashes before special chars, only for white space.
 
-Syntax HL: open two windows on the same C code, delete a ")" in one window,
-resulting in highlighted "{" in that window, not in the other.
-
 In mswin.vim: Instead of mapping <C-V> for Insert mode in a complicated way,
 can it be done like ":imap <C-V> <MiddleMouse>" without negative side effects?
 
-GTK: when the Tab pages bar appears or disappears while the window is
-maximized the window is no longer maximized.  Patch that has some idea but
-doesn't work from Geoffrey Antos, 2008 May 5.
-Also: the window may no longer fit on the screen, thus the command line is not
-visible.
-
 When right after "vim file", "M" then CTRL-W v the windows are scrolled
 differently and unexpectedly.  Caused by patch 7.2.398?
 
@@ -2718,9 +2600,6 @@ When completing from another file that u
 text has the wrong encoding.  E.g., when 'encoding' is utf-8 and file is
 latin1.  Example from Gombault Damien, 2007 Mar 24.
 
-Syntax HL: When using "nextgroup" and the group has an empty match, there is
-no search at that position for another match. (Lukas Mai, 2008 April 11)
-
 In gvim the backspace key produces a backspace character, but on Linux the
 VERASE key is Delete.  Set VERASE to Backspace? (patch by Stephane Chazelas,
 2007 Oct 16)
@@ -2741,9 +2620,6 @@ When switching between windows the curso
 Remember the relative position and restore that, just like lnum and col are
 restored. (Luc St-Louis)
 
-Patch to support horizontal scroll wheel in GTK. Untested. (Bjorn Winckler,
-2010 Jun 30)
-
 Add an option for a minimal text length before inserting a line break for
 'textwidth'.  Avoids very short lines when a very long word follows.
 (Kartik Agaram)
@@ -2982,7 +2858,7 @@ 6   Vi compatibility (optional): make "i
     thing.  (only repeat insert for the first line).
 
 
-GTK+ GUI known bugs:
+GTK+ GUI:
 9   Crash with X command server over ssh. (Ciaran McCreesh, 2006 Feb 6)
 8   GTK 2: Combining UTF-8 characters not displayed properly in menus (Mikolaj
     Machowski)  They are displayed as separate characters.  Problem in
@@ -2997,6 +2873,33 @@ 9   Can't paste a Visual selection from 
 -   Gnome2: When moving the toolbar out of the dock, so that it becomes
     floating, it can no longer be moved.  Therefore making it float has been
     blocked for now.
+-   Mapping with partial match not executed properly in GTK. (Ingo Karkat,
+    #7082)
+-   Add more testing of the GTK GUI.
+    - gtk_test_widget_click() can be used to simulate a click in a widget.
+-   Tests failing for "make testgui" with GTK:
+    - Test_setbufvar_options()
+    - Test_exit_callback_interval()
+-   When adding a timer from 'balloonexpr' it won't fire, because
+    g_main_context_iteration() doesn't return.  Need to trigger an event when
+    the timer expires.
+-   problem with 'L' in 'guioptions' changing the window width.  (Aaron
+    Cornelius, 2012 Feb 6)
+-   Patch to invert characters differently in GTK. (Yukihiro Nakadaira, 2013
+    May 5)
+-   drawing a double-width combining character over single-width characters
+    doesn't look right. (Dominique Pelle, 2010 Aug 8)
+-   tear-off menu does not work. (Kurt Sonnenmoser, 2010 Oct 25)
+-   Patch for GTK buttons X1Mouse and X2Mouse. (Christian J. Robinson, 2010
+    Aug 9)
+-   When setting 'columns' in a startup script and doing ":vertical diffsplit"
+    the window isn't redrawn properly, see two vertical bars.
+-   when the Tab pages bar appears or disappears while the window is maximized
+    the window is no longer maximized.  Patch that has some idea but doesn't
+    work from Geoffrey Antos, 2008 May 5.  Also: the window may no longer fit
+    on the screen, thus the command line is not visible.
+-   Patch to support horizontal scroll wheel in GTK. Untested. (Bjorn
+    Winckler, 2010 Jun 30)
 
 
 Win32 GUI known bugs:
@@ -3062,6 +2965,10 @@ 8   When gui_init_font() is called with 
     still be used somewhere.  This is too tricky, do the font selection first,
     then set the new font by name (requires putting all logfont parameters in
     the font name).
+-   When running a fast timer, the cursor no longer blinks.  Was reported:
+    cursor blinks in terminal on widows with a timer. (xtal8, #2142)
+-   Last message from startup doesn't show up when there is an echoerr
+    command. (Cyril Slobin, 2009 Mar 13)
 
 
 Motif:
@@ -3242,6 +3149,18 @@ 8   Define mch_writable() for Macintosh.
 9   When DiskLock is running, using a swap file causes a crash.  Appears to be
     a problem with writing a file that starts with a dot. (Giacalone)
 9   In mac_expandpath() check that handling of backslashes is done properly.
+-   Build problem with small features on Mac OS X 10.6. (Rainer, 2011 Jan 24)
+-   Version of netbeans.c for use with MacVim. (Kazuki Sakamoto, 2010 Nov 18)
+-   Mac with X11: clipboard doesn't work properly. (Raf, 2010 Aug 16)
+-   Move Carbon todo items to os_mac.txt.  Note that this version is frozen,
+    try the Cocoa version.
+-   After a ":vsplit" the left scrollbar doesn't appear until 'columns' is
+    changed or the window is resized.
+-   Patch for configure: remove arch from ruby link args. (Knezevic, 2008 Mar
+    5)  Alternative: Kazuki Sakamoto, Mar 7.
+-   trouble compiling with Motif, requires --disable-darwin. (Raf, 2008 Aug 1)
+    Reply by Ben Schmidt.
+-   Using gvim: netrw window disappears. (Nick Lo, 2006 Jun 21)
 
 
 "Small" problems:
@@ -3899,6 +3818,8 @@ 7   Use ideas for nl_langinfo() from Mar
     table anymore (breakat_flags[]).
     Simplistic solution: when 'formatoptions' contains "m" also break a line
     at a multibyte character >= 0x100.
+    Making breakat support multibyte characters (Yasuhiro Matsumoto, #6598)
+    Scroll doesn't work correctly, why?
 -   Add the possibility to enter mappings which are used whenever normal text
     could be entered.  E.g., for "f" command.  But not in Normal mode.  Sort
     of opposite of 'langmap'.  Use ":amap" command?
@@ -3906,6 +3827,9 @@ 7   Use ideas for nl_langinfo() from Mar
     account.  The "linebreak" program from Bruno Haible can do it:
     ftp://ftp.ilog.fr/pub/Users/haible/gnu/linebreak-0.1.tar.gz
     But it's very complicated...
+-   Problem with 'langmap' being used on the rhs of a mapping. (Nikolai
+    Weibull, 2008 May 14).
+    Possibly related problem: Alexey Muranov, 2015 Apr 2
 
 
 Printing:
@@ -3929,8 +3853,8 @@ 8   Make the foreground color darkening 
 
 Syntax highlighting:
     Long term goal: faster, better, etc.  Options:
-    - use treesitter, NeoVim uses it
-    - use TextMate, vscode uses it.  #9087
+    - use treesitter, NeoVim uses it - Many people don't like it.
+    - use TextMate, vscode uses it.  #9087 - possibly a long term solution
 8   Make ":syn off" use 'runtimepath' instead of $VIMRUNTIME. (Gary Johnson)
     Should do the same for ":syn on" and ":syn manual".
 8   Support "containedin" argument for ":syn include", so that the defined
@@ -4079,6 +4003,34 @@ 8   Make a version that works like less,
     text, exit at end of file, don't allow editing, etc.  moreim?  lessim?
 7   SpecialKey highlighting overrules syntax highlighting.  Can't give an
     unprintable char another color.  Would be useful for ^M at end of line.
+-   Syntax highlight for a region does not work with a "nextgroup" if the
+    start match is empty. #8449
+-   The :syntax cchar value can only be a single character.  It would be
+    useful to support combining characters. (Charles Campbell)  Also #4687
+-   Syntax highlighting slow (hangs) in SASS file. (Niek Bosch, 2013 Aug 21)
+-   Several syntax file match "^\s*" which may get underlined if that's in the
+    highlight group.  Add a "\zs" after it?
+-   patch to add "combine" flag to  syntax commands. (so8res, 2012 Dec 6)
+    Patch to add "combine" to :syntax, combines highlight attributes. (Nate
+    Soares, 2012 Dec 3)
+-   Syntax update problem in one buffer opened in two windows, bottom window
+    is not correctly updated. (Paul Harris, 2012 Feb 27)
+-   Syntax region with 'concealends' and a 'cchar' value, 'conceallevel' set
+    to 2, only one of the two ends gets the cchar displayed. (Brett Stahlman,
+    2010 Aug 21, Ben Fritz, 2010 Sep 14)
+-   Using "syn sync breaklines=2" works for when text is changed, but not when
+    scrolling or redrawing.  Should start search for syntax patterns above the
+    first drawn line. (#8103)
+-   Syntax priority problem. (Charles Campbell, 2011 Sep 15)
+-   Syntax highlighting wrong for transparent region. (Doug Kearns, 2007 Feb
+    26)
+-   Bug in using a transparent syntax region. (Hanlen in vim-dev maillist,
+    2007 Jul 31)
+-   Syntax HL error caused by "containedin". (Peter Hodge, 2006 Oct 6)
+-   Open two windows on the same C code, delete a ")" in one window, resulting
+    in highlighted "{" in that window, not in the other.
+-   When using "nextgroup" and the group has an empty match, there is no
+    search at that position for another match. (Lukas Mai, 2008 April 11)
 
 
 Vim script language:
--- a/runtime/doc/undo.txt
+++ b/runtime/doc/undo.txt
@@ -1,4 +1,4 @@
-*undo.txt*      For Vim version 8.2.  Last change: 2020 Nov 30
+*undo.txt*      For Vim version 8.2.  Last change: 2022 Jun 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -105,12 +105,16 @@ change again.  But you can do something 
 
 After this a "u" command will undo the delete command and the previous
 change.
-
+							*undo-break*
 To do the opposite, break a change into two undo blocks, in Insert mode use
 CTRL-G u.  This is useful if you want an insert command to be undoable in
 parts.  E.g., for each sentence.  |i_CTRL-G_u|
+
 Setting the value of 'undolevels' also breaks undo.  Even when the new value
-is equal to the old value.
+is equal to the old value.  In |Vim9| script: >
+	&undolevels = &undolevels
+In legacy script: >
+	let &undolevels = &undolevels
 
 ==============================================================================
 4. Undo branches				*undo-branches* *undo-tree*
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt*	For Vim version 8.2.  Last change: 2022 May 21
+*usr_41.txt*	For Vim version 8.2.  Last change: 2022 Jun 03
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -7,7 +7,7 @@
 
 The Vim script language is used for the startup vimrc file, syntax files, and
 many other things.  This chapter explains the items that can be used in a Vim
-script.  There are a lot of them, thus this is a long chapter.
+script.  There are a lot of them, therefore this is a long chapter.
 
 |41.1|	Introduction
 |41.2|	Variables
@@ -28,9 +28,10 @@ Table of contents: |usr_toc.txt|
 *41.1*	Introduction				*vim-script-intro* *script*
 
 Your first experience with Vim scripts is the vimrc file.  Vim reads it when
-it starts up and executes the commands.  You can set options to values you
-prefer.  And you can use any colon command in it (commands that start with a
-":"; these are sometimes referred to as Ex commands or command-line commands).
+it starts up and executes the commands.  You can set options to the values you
+prefer, define mappings, select plugins and much more.   You can use any colon
+command in it (commands that start with a ":"; these are sometimes referred to
+as Ex commands or command-line commands).
 
 Syntax files are also Vim scripts.  As are files that set options for a
 specific file type.  A complicated macro can be defined by a separate Vim
@@ -38,8 +39,8 @@ script file.  You can think of other use
 
 Vim script comes in two flavors: legacy and |Vim9|.  Since this help file is
 for new users, we'll teach you the newer and more convenient |Vim9| syntax.
-While legacy script is particular for Vim, |Vim9| script looks more like other
-languages, such as JavaScript and TypeScript.
+While legacy script is particularly for Vim, |Vim9| script looks more like
+other languages, such as JavaScript and TypeScript.
 
 To try out Vim script the best way is to edit a script file and source it.
 Basically: >
@@ -66,7 +67,7 @@ The output of the example code is:
 
 In the first line the `vim9script` command makes clear this is a new, |Vim9|
 script file.  That matters for how the rest of the file is used.
-
+							*vim9-declarations*
 The `var i = 1` command declares the "i" variable and initializes it.  The
 generic form is: >
 
@@ -100,29 +101,53 @@ The example was given to explain the com
 make such a loop, it can be written much more compact: >
 
 	for i in range(1, 4)
-	  echo "count is" i
+	  echo $"count is {i}"
 	endfor
 
-We won't explain how `for` and `range()` work until later.  Follow the links
-if you are impatient.
+We won't explain how `for`, `range()`and `$"string"` work until later.  Follow
+the links if you are impatient.
+
+
+TRYING OUT EXAMPLES
+
+You can easily try out most examples in these help files without saving the
+commands in a file.  For example, to try out the "for" loop above do this:
+1. position the cursor on the "for"
+2. start Visual mode with "v"
+3. move down to the "endfor"
+4. press colon, then "so" and Enter
+
+After pressing colon you will see ":'<,'>", which is the range of the Visually
+selected text.
+
+For some commands it matters they are executed as in |Vim9| script.  But typed
+commands normally use legacy script syntax, such as the example below that
+causes the E1004 error.  For that use this fourth step:
+4. press colon, then "vim9 so" and Enter
+
+"vim9" is short for `vim9cmd`, which is a command modifier to execute the
+following command in |Vim9| syntax.
+
+Note that this won't work for examples that require a script context.
 
 
 FOUR KINDS OF NUMBERS
 
-Numbers can be decimal, hexadecimal, octal or binary.
+Numbers can be decimal, hexadecimal, octal and binary.
 
 A hexadecimal number starts with "0x" or "0X".  For example "0x1f" is decimal
-31.
+31 and 0x1234 is decimal 4660.
 
 An octal number starts with "0o", "0O".  "0o17" is decimal 15.
 
 A binary number starts with "0b" or "0B".  For example "0b101" is decimal 5.
 
 A decimal number is just digits.  Careful: In legacy script don't put a zero
-before a decimal number, it will be interpreted as an octal number!
+before a decimal number, it will be interpreted as an octal number!  That's
+one reason to use |Vim9| script.
 
-The `echo` command evaluates its argument and always prints decimal numbers.
-Example: >
+The `echo` command evaluates its argument and when it is a number always
+prints the decimal form.  Example: >
 
 	echo 0x7f 0o36
 <	127 30 ~
@@ -155,6 +180,7 @@ To actually have the minus sign be used 
 expression in parentheses: >
 
 	echo -0x7f (-0o36)
+<	-127 -30 ~
 
 ==============================================================================
 *41.2*	Variables
@@ -165,7 +191,7 @@ cannot start with a digit.  Valid variab
 	counter
 	_aap3
 	very_long_variable_name_with_underscores
-	FuncLength
+	CamelCaseName
 	LENGTH
 
 Invalid names are "foo+bar" and "6var".
@@ -175,9 +201,9 @@ variables type this command: >
 
 	:let
 
-You can use global variables everywhere.  However, it is easy to use the same
-name in two unrelated scripts.  Therefore variables declared in a script are
-local to that script.  For example, if you have this in "script1.vim": >
+You can use global variables everywhere.  However, it is too easy to use the
+same name in two unrelated scripts.  Therefore variables declared in a script
+are local to that script.  For example, if you have this in "script1.vim": >
 
 	vim9script
 	var counter = 5
@@ -194,19 +220,24 @@ Using a script-local variable means you 
 that script and not elsewhere.
 
 If you do want to share variables between scripts, use the "g:" prefix and
-assign the value directly, do not use `var`.  Thus in "script1.vim": >
+assign the value directly, do not use `var`.  And use a specific name to avoid
+mistakes.  Thus in "script1.vim": >
 
 	vim9script
-	g:counter = 5
-	echo g:counter
+	g:mash_counter = 5
+	echo g:mash_counter
 <	5 ~
 
 And then in "script2.vim": >
 
 	vim9script
-	echo g:counter
+	echo g:mash_counter
 <	5 ~
 
+Global variables can also be accessed on the command line, E.g. typing this: >
+	echo g:mash_counter
+That will not work for a script-local variable.
+
 More about script-local variables here: |script-variable|.
 
 There are more kinds of variables, see |internal-variables|.  The most often
@@ -231,7 +262,7 @@ when it doesn't, append !: >
 
 	unlet! g:counter
 
-You cannot `unlet` script-local variables in |Vim9| script.  You can in legacy
+You cannot `unlet` script-local variables in |Vim9| script, only in legacy
 script.
 
 When a script finishes, the local variables declared there will not be
@@ -251,12 +282,15 @@ Every time you call the function it will
 	:echo g:GetCount()
 <	2 ~
 
-If you are worried a script-local variable is consuming too much
-memory, set it to an empty value after you no longer need it.
+If you are worried a script-local variable is consuming too much memory, set
+it to an empty or null value after you no longer need it.  Example: >
+	var lines = readfile(...)
+	...
+	lines = []
 
-Note: below we'll leave out the `vim9script` line, so we can concentrate on
-the relevant commands, but you'll still need to put it at the top of your
-script file.
+Note: below we'll leave out the `vim9script` line from examples, so we can
+concentrate on the relevant commands, but you'll still need to put it at the
+top of your script file.
 
 
 STRING VARIABLES AND CONSTANTS
@@ -275,9 +309,13 @@ want to give the variable a value yet, y
 
 	var name: string
 	var age: number
-	...
-	name = "Peter"
-	age = 42
+	if male
+	   name = "Peter"
+	   age = 42
+	else
+	   name = "Elisa"
+	   age = 45
+	endif
 
 If you make a mistake and try to assign the wrong type of value you'll get an
 error: >
@@ -287,8 +325,8 @@ error: >
 
 More about types in |41.8|.
 
-To assign a string value to a variable, you need to use a string constant.
-There are two types of these.  First the string in double quotes, as we used
+To assign a string value to a variable, you can use a string constant.  There
+are two types of these.  First the string in double quotes, as we used
 already.  If you want to include a double quote inside the string, put a
 backslash in front of it: >
 
@@ -296,7 +334,7 @@ backslash in front of it: >
 	echo name
 <	he is "Peter" ~
 
-To avoid the need for a backslash, you can use a string in single quotes: >
+To avoid the need for backslashes, you can use a string in single quotes: >
 
 	var name = 'he is "Peter"'
 	echo name
@@ -341,8 +379,8 @@ themselves.  Thus everywhere an expressi
 string or variable.  Other basic items in an expression are:
 
 	$NAME		environment variable
-	&name		option
-	@r		register
+	&name		option value
+	@r		register contents
 
 Examples: >
 
@@ -384,15 +422,24 @@ Grouping is done with parentheses.  No s
 	echo (10 + 5) * 2
 <	30 ~
 
+
+OTHERS
+
 Strings can be concatenated with ".." (see |expr6|).  Example: >
 
-	echo "foo" .. "bar"
-<	foobar ~
+	echo "Name: " .. name
+	Name: Peter
 
 When the "echo" command gets multiple arguments, it separates them with a
 space.  In the example the argument is a single expression, thus no space is
 inserted.
 
+If you don't like the concatenation you can use the $"string" form, which
+accepts an expression in curly braces: >
+	echo $"Name: {name}"
+
+See |interp-string| for more information.
+
 Borrowed from the C language is the conditional expression: >
 
 	a ? b : c
@@ -408,6 +455,10 @@ see it works as: >
 
 	(a) ? (b) : (c)
 
+There is also the falsy operator: >
+	echo name ?? "No name given"
+See |??|.
+
 ==============================================================================
 *41.4*	Conditionals
 
@@ -472,16 +523,17 @@ ones:
 
 The result is true if the condition is met and false otherwise.  An example: >
 
-	if v:version >= 700
+	if v:version >= 800
 	  echo "congratulations"
 	else
 	  echo "you are using an old version, upgrade!"
 	endif
 
 Here "v:version" is a variable defined by Vim, which has the value of the Vim
-version.  600 is for version 6.0, version 6.1 has the value 601.  This is
-very useful to write a script that works with multiple versions of Vim.
-|v:version|
+version.  800 is for version 8.0, version 8.1 has the value 801.  This is
+useful to write a script that works with multiple versions of Vim.
+See |v:version|.  You can also check for a specific feature with `has()` or a
+specific patch, see |has-patch|.
 
 The logic operators work both for numbers and strings.  When comparing two
 strings, the mathematical difference is used.  This compares byte values,
@@ -505,8 +557,8 @@ pattern, like what's used for searching.
 	endif
 
 Notice the use of a single-quote string for the pattern.  This is useful,
-because backslashes would need to be doubled in a double-quote string and
-patterns tend to contain many backslashes.
+because patterns tend to contain many backslashes and backslashes need to be
+doubled in a double-quote string.
 
 The match is not anchored, if you want to match the whole string start with
 "^" and end with "$".
@@ -543,6 +595,7 @@ Example: >
 The `sleep` command makes Vim take a nap.  The "50m" specifies fifty
 milliseconds.  Another example is `sleep 4`, which sleeps for four seconds.
 
+`continue` and `break` can also be used in between `for` and `endfor`.
 Even more looping can be done with the `for` command, see below in |41.8|.
 
 ==============================================================================
@@ -579,9 +632,9 @@ Example: >
 This will move the cursor "count" lines down.
 
 Make sure that the argument for `normal` is a complete command.  Otherwise
-Vim will run into the end of the argument and abort the command.  For example,
-if you start the delete operator, you must give the movement command also.
-This works: >
+Vim will run into the end of the argument and silently abort the command.  For
+example, if you start the delete operator, you must give the movement command
+also.  This works: >
 	
 	normal d$
 
@@ -604,8 +657,8 @@ Notice the use of the special key "\<Esc
 real <Esc> character in your script.  That is where `execute` with a
 double-quote string comes in handy.
 
-If you don't want to execute a string but evaluate it to get its expression
-value, you can use the eval() function: >
+If you don't want to execute a string as a command but evaluate it to get the
+result of the expression, you can use the eval() function: >
 
 	var optname = "path"
 	var optvalue = eval('&' .. optname)
@@ -620,19 +673,20 @@ Vim defines many functions and provides 
 way.  A few examples will be given in this section.  You can find the whole
 list below: |function-list|.
 
-A function is called with the `call` command.  The parameters are passed in
-between parentheses separated by commas.  Example: >
+A function is called with the parameters in between parentheses, separated by
+commas.  Example: >
 
-	call search("Date: ", "W")
+	search("Date: ", "W")
 
 This calls the search() function, with arguments "Date: " and "W".  The
 search() function uses its first argument as a search pattern and the second
 one as flags.  The "W" flag means the search doesn't wrap around the end of
 the file.
 
-Using `call` is optional in |Vim9| script, this works the same way: >
+Using the  `call` command is optional in |Vim9| script.  This works the same
+way and also works in legacy script and on the command line: >
 
-	search("Date: ", "W")
+	call search("Date: ", "W")
 
 A function can be called in an expression.  Example: >
 
@@ -644,10 +698,10 @@ The getline() function obtains a line fr
 is a specification of the line number.  In this case "." is used, which means
 the line where the cursor is.
 
-The substitute() function does something similar to the `substitute` command.
-The first argument is the string on which to perform the substitution.  The
-second argument is the pattern, the third the replacement string.  Finally,
-the last arguments are the flags.
+The substitute() function does something similar to the `:substitute` command.
+The first argument "line" is the string on which to perform the substitution.
+The second argument '\a' is the pattern, the third "*" is the replacement
+string.  Finally, the last argument "g" is the flags.
 
 The setline() function sets the line, specified by the first argument, to a
 new string, the second argument.  In this example the line under the cursor is
@@ -1404,15 +1458,19 @@ functions in the script: >
 
 	defcompile
 
-For a function that does not return anything leave out the return type: >
+Compiling functions takes a little time, but does report errors early.  You
+could use `:defcompile` at the end of your script while working on it, and
+comment it out when everything is fine.
+
+For a function that does not return anything simply leave out the return type: >
 
 	def SayIt(text: string)
 	  echo text
 	enddef
 
 It is also possible to define a legacy function with `function` and
-`endfunction`.  These do not have types and are not compiled.  They execute
-much slower.
+`endfunction`.  These do not have types and are not compiled.  Therefore they
+execute much slower.
 
 
 USING A RANGE
@@ -1440,15 +1498,15 @@ argument (start) and can have up to 20 a
 
 	def Show(start: string, ...items: list<string>)
 
-The variable "items" will be a list containing the extra arguments.  You can
-use it like any list, for example: >
+The variable "items" will be a list in the function containing the extra
+arguments.  You can use it like any list, for example: >
 
 	def Show(start: string, ...items: list<string>)
 	  echohl Title
 	  echo "start is " .. start
 	  echohl None
 	  for index in range(len(items))
-	    echon "  Arg " .. index .. " is " .. items[index]
+	    echon $"  Arg {index} is {items[index]}"
 	  endfor
 	  echo
 	enddef
@@ -1489,12 +1547,11 @@ To see what a function does, use its nam
 	3     endif ~
 	   endfunction ~
 
-To see the "Show" function you need to include the script prefix, since a
-"Show" function can be defined multiple times in different scripts.  To find
+To see the "Show" function you need to include the script prefix, since
+multiple "Show" functions can be defined in different scripts.  To find
 the exact name you can use `function`, but the result may be a very long list.
 To only get the functions matching a pattern you can use the `filter` prefix:
 >
-
 	:filter Show function
 <	def <SNR>86_Show(start: string, ...items: list<string>) ~
 >
@@ -1528,21 +1585,21 @@ You get an error when the function doesn
 FUNCTION REFERENCES
 
 Sometimes it can be useful to have a variable point to one function or
-another.  You can do it with function reference variable.  Often shortened to
-"funcref".  Example: >
+another.  You can do it with a function reference variable.  Often shortened
+to "funcref".  Example: >
 
-	def Right()
+	def Right(): string
 	  return 'Right!'
 	enddef
-	def Wrong()
+	def Wrong(): string
 	  return 'Wrong!'
 	enddef
 	
 	var Afunc = g:result == 1 ? Right : Wrong
-	Afunc()
+	echo Afunc()
 <	Wrong! ~
 
-This assumes "g:result" is not one.
+This assumes "g:result" is not one.  See |Funcref| for details.
 
 Note that the name of a variable that holds a function reference must start
 with a capital.  Otherwise it could be confused with the name of a builtin
@@ -1560,7 +1617,7 @@ A List is an ordered sequence of items. 
 thus you can make a List of numbers, a List of Lists and even a List of mixed
 items.  To create a List with three strings: >
 
-	var alist = ['aap', 'mies', 'noot']
+	var alist = ['aap', 'noot', 'mies']
 
 The List items are enclosed in square brackets and separated by commas.  To
 create an empty List: >
@@ -1582,14 +1639,14 @@ List concatenation is done with +: >
 	echo alist
 <	['foo', 'bar', 'and', 'more'] ~
 
-Or, if you want to extend a List with a function: >
+Or, if you want to extend a List with a function, use `extend()`: >
 
 	var alist = ['one']
 	extend(alist, ['two', 'three'])
 	echo alist
 <	['one', 'two', 'three'] ~
 
-Notice that using `add()` will have a different effect: >
+Notice that using `add()` will have a different effect than `extend()`: >
 
 	var alist = ['one']
 	add(alist, ['two', 'three'])
@@ -1614,7 +1671,7 @@ One of the nice things you can do with a
 This will loop over each element in List "alist", assigning each value to
 variable "n".  The generic form of a for loop is: >
 
-	for {varname} in {listexpression}
+	for {varname} in {list-expression}
 	  {commands}
 	endfor
 
@@ -1629,7 +1686,10 @@ range() function creates one for you: >
 	2 ~
 
 Notice that the first item of the List that range() produces is zero, thus the
-last item is one less than the length of the list.
+last item is one less than the length of the list.  Detail: Internally range()
+does not actually create the list, so that a large range used in a for loop
+works efficiently.  When used elsewhere, the range is turned into an actual
+list, which takes more time for a long ist.
 
 You can also specify the maximum value, the stride and even go backwards: >
 
@@ -1640,15 +1700,17 @@ You can also specify the maximum value, 
 	6 ~
 	4 ~
 
-A more useful example, looping over lines in the buffer: >
+A more useful example, looping over all the lines in the buffer: >
 
-	for line in getline(1, 20)
+	for line in getline(1, 50)
 	  if line =~ "Date: "
 	    echo line
 	  endif
 	endfor
 
-This looks into lines 1 to 20 (inclusive) and echoes any date found in there.
+This looks into lines 1 to 50 (inclusive) and echoes any date found in there.
+
+For further reading see |Lists|.
 
 
 DICTIONARIES
@@ -1700,8 +1762,7 @@ specific order: >
 But you can never get back the order in which items are defined.  For that you
 need to use a List, it stores items in an ordered sequence.
 
-
-For further reading see |Lists| and |Dictionaries|.
+For further reading see |Dictionaries|.
 
 ==============================================================================
 *41.9*	Exceptions
@@ -1716,7 +1777,7 @@ Let's start with an example: >
 
 The `read` command will fail if the file does not exist.  Instead of
 generating an error message, this code catches the error and gives the user a
-nice message.
+message with more information.
 
 For the commands in between `try` and `endtry` errors are turned into
 exceptions.  An exception is a string.  In the case of an error the string
@@ -1725,12 +1786,12 @@ case, the error we catch contains "E484:
 the same (the text may change, e.g., it may be translated).
 
 Besides being able to give a nice error message, Vim will also continue
-executing commands.  Otherwise, once an uncaught error is encountered,
-execution will be aborted.
+executing commands after the `:endtry`.  Otherwise, once an uncaught error is
+encountered, execution of the script/function/mapping will be aborted.
 
 When the `read` command causes another error, the pattern "E484:" will not
 match in it.  Thus this exception will not be caught and result in the usual
-error message.
+error message and excecution is aborted.
 
 You might be tempted to do this: >
 
@@ -1742,7 +1803,7 @@ You might be tempted to do this: >
 
 This means all errors are caught.  But then you will not see an error that
 would indicate a completely different problem, such as "E21: Cannot make
-changes, 'modifiable' is off".
+changes, 'modifiable' is off".  Think twice before you catch any error!
 
 Another useful mechanism is the `finally` command: >
 
@@ -1753,25 +1814,31 @@ Another useful mechanism is the `finally
 	   :.,$delete
 	   exe ":$read " .. tmp
 	finally
-	   call delete(tmp)
+	   delete(tmp)
 	endtry
 
 This filters the lines from the cursor until the end of the file through the
 "filter" command, which takes a file name argument.  No matter if the
-filtering works, something goes wrong in between `try` and `finally` or the
-user cancels the filtering by pressing CTRL-C, the `call delete(tmp)` is
+filtering works, if something goes wrong in between `try` and `finally` or the
+user cancels the filtering by pressing CTRL-C, the `delete(tmp)` call is
 always executed.  This makes sure you don't leave the temporary file behind.
 
+The `finally` does not catch the exception, the error will still abort
+further execution.
+
 More information about exception handling can be found in the reference
 manual: |exception-handling|.
 
 ==============================================================================
 *41.10*	Various remarks
 
-Here is a summary of items that are useful to know when writing Vim scripts.
+Here are a few items that are useful to know when writing Vim scripts.
+
+
+FILEFORMAT
 
 The end-of-line character depends on the system.  For Vim scripts it is
-recommended to always use the Unix fileformat, this also works on any other
+recommended to always use the Unix fileformat.  This also works on any other
 system.  That way you can copy your Vim scripts from MS-Windows to Unix and
 they still work.  See |:source_crnl|.  To be sure it is set right, do this
 before writing the file: >
@@ -1793,11 +1860,11 @@ escaped by a "\" (backslash)  as in the 
 
 	:set tags=my\ nice\ file
 
-The same example written as: >
+If it would be written as: >
 
 	:set tags=my nice file
 
-will issue an error, because it is interpreted as: >
+This will issue an error, because it is interpreted as: >
 
 	:set tags=my
 	:set nice
@@ -1805,17 +1872,21 @@ will issue an error, because it is inter
 
 |Vim9| script is very picky when it comes to white space.  This was done
 intentionally to make sure scripts are easy to read and to avoid mistakes.
+If you use white space sensibly it will just work.  When not you will get an
+error message telling you where white space is missing or should be removed.
 
 
 COMMENTS
 
-In |Vim9| script the character # starts a comment.  Everything after
-and including this character until the end-of-line is considered a comment and
+In |Vim9| script the character # starts a comment.  That character and
+everything after it until the end-of-line is considered a comment and
 is ignored, except for commands that don't consider comments, as shown in
 examples below.  A comment can start on any character position on the line,
-but not when it is part of the command, e.g. in a string.
+but not when it is part of the command, e.g. inside a string.
 
 The character " (the double quote mark) starts a comment in legacy script.  
+This involves some cleverness to make sure double quoted strings are not
+recognized as comments (just one reason to prefer |Vim9| script).
 
 There is a little "catch" with comments for some commands.  Examples: >
 
@@ -1824,11 +1895,12 @@ There is a little "catch" with comments 
 	execute cmd		# do it
 	!ls *.c			# list C files
 
-The abbreviation 'dev' will be expanded to 'development  # shorthand'.  The
-mapping of <F3> will actually be the whole line after the 'o# ....' including
-the '# insert include'.  The `execute` command will give an error.  The `!`
-command will send everything after it to the shell, most likely causing an
-error.
+- The abbreviation 'dev' will be expanded to 'development  # shorthand'.
+- The mapping of <F3> will actually be the whole line after the 'o# ....'
+  including the '# insert include'.
+- The `execute` command will give an error.
+- The `!` command will send everything after it to the shell, most likely
+  causing an error.
 
 There can be no comment after `map`, `abbreviate`, `execute` and `!` commands
 (there are a few more commands with this restriction).  For the `map`,
@@ -1850,7 +1922,8 @@ trailing whitespace is included: >
 
 	map <F4> o#include  
 
-To spot these problems, you can highlight trailing spaces: >
+Here it is intended, in other cases it might be accidental.  To spot these
+problems, you can highlight trailing spaces: >
 	match Search /\s\+$/
 
 For Unix there is one special way to comment a line, that allows making a Vim
@@ -1860,71 +1933,7 @@ script executable, and it also works in 
 	quit
 
 
-PITFALLS
-
-An even bigger problem arises in the following example: >
-
-	map ,ab o#include
-	unmap ,ab 
-
-Here the unmap command will not work, because it tries to unmap ",ab ".  This
-does not exist as a mapped sequence.  An error will be issued, which is very
-hard to identify, because the ending whitespace character in `unmap ,ab ` is
-not visible.
-
-And this is the same as what happens when one uses a comment after an 'unmap'
-command: >
-
-	unmap ,ab     # comment
-
-Here the comment part will be ignored.  However, Vim will try to unmap
-',ab     ', which does not exist.  Rewrite it as: >
-
-	unmap ,ab|    # comment
-
-
-RESTORING THE VIEW
-
-Sometimes you want to make a change and go back to where the cursor was.
-Restoring the relative position would also be nice, so that the same line
-appears at the top of the window.
-
-This example yanks the current line, puts it above the first line in the file
-and then restores the view: >
-
-	map ,p ma"aYHmbgg"aP`bzt`a
-
-What this does: >
-	ma"aYHmbgg"aP`bzt`a
-<	ma			set mark a at cursor position
-	  "aY			yank current line into register a
-	     Hmb		go to top line in window and set mark b there
-		gg		go to first line in file
-		  "aP		put the yanked line above it
-		     `b		go back to top line in display
-		       zt	position the text in the window as before
-			 `a	go back to saved cursor position
-
-
-PACKAGING
-
-Sometimes you will want to use global variables or functions, so that they can
-be used anywhere.  A good example is a global variable that passes a
-preference to a  plugin.  To avoid other scripts using the same name, use a
-prefix that is very unlikely to be used elsewhere.  For example, if you have a
-"mytags" plugin, you could use: >
-
-	g:mytags_location = '$HOME/project'
-	g:mytags_style = 'fast'
-
-To minimize interference between plugins keep as much as possible local to the
-script.  |Vim9| script helps you with that, by default functions and variables
-are script-local.
-
-If you split your plugin into parts, you can use `import` and `export` to
-share items between those parts.  See `:export` for the details.
-
-More information about writing plugins is in |usr_51.txt|.
+Advance information about writing Vim script is in |usr_50.txt|.
 
 ==============================================================================
 
--- a/runtime/doc/usr_50.txt
+++ b/runtime/doc/usr_50.txt
@@ -1,22 +1,71 @@
-*usr_50.txt*	For Vim version 8.2.  Last change: 2022 May 13
+*usr_50.txt*	For Vim version 8.2.  Last change: 2022 Jun 03
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
 			 Advanced Vim script writing
 
 
-TODO - this chapter is to be written
-
-|50.1|	Writing stuff
+|50.1|	Line continuation
+|50.2|	Restoring the view
 
      Next chapter: |usr_51.txt|  Create a plugin
  Previous chapter: |usr_45.txt|  Select your language (local)
 Table of contents: |usr_toc.txt|
 
 ==============================================================================
-*50.1*	Writing stuff
+*50.1*	Line continuation
+
+In legacy Vim script line contination is done by preceding a contination line
+with a backslash: >
+	let mylist = [
+			\ 'one',
+			\ 'two',
+			\ ]
+
+This requires the 'cpo' option to exclude the "C" flag.  Normally this is done
+by putting this at the start of the script: >
+	let s:save_cpo = &cpo
+	set cpo&vim
+
+And restore the option at the end of the script: >
+	let &cpo = s:save_cpo
+	unlet s:save_cpo
+
+A few more details can be found here: |line-continuation|.
+
+In |Vim9| script the backslash can still be used, but in most places it is not
+needed: >
+	var mylist = [
+			'one',
+			'two',
+			]
 
-TODO
+Also, the 'cpo' option does not need to be changed.  See
+|vim9-line-continuation| for details.
+
+==============================================================================
+*50.2*	Restoring the view
+
+Sometimes you want to make a change and go back to where the cursor was.
+Restoring the relative position would also be nice, so that the same line
+appears at the top of the window.
+
+This example yanks the current line, puts it above the first line in the file
+and then restores the view: >
+
+	map ,p ma"aYHmbgg"aP`bzt`a
+
+What this does: >
+	ma"aYHmbgg"aP`bzt`a
+<	ma			set mark a at cursor position
+	  "aY			yank current line into register a
+	     Hmb		go to top line in window and set mark b there
+		gg		go to first line in file
+		  "aP		put the yanked line above it
+		     `b		go back to top line in display
+		       zt	position the text in the window as before
+			 `a	go back to saved cursor position
+
 
 ==============================================================================
 
--- a/runtime/doc/usr_51.txt
+++ b/runtime/doc/usr_51.txt
@@ -1,4 +1,4 @@
-*usr_51.txt*	For Vim version 8.2.  Last change: 2022 May 14
+*usr_51.txt*	For Vim version 8.2.  Last change: 2022 Jun 03
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -12,11 +12,9 @@ most common Vim plugins.
 |51.1|	Writing a generic plugin
 |51.2|	Writing a filetype plugin
 |51.3|	Writing a compiler plugin
-|51.4|	Writing a plugin that loads quickly
-|51.5|	Writing library scripts
-|51.6|	Distributing Vim scripts
+|51.4|	Distributing Vim scripts
 
-     Next chapter: |usr_52.txt|  Write plugins using Vim9 script
+     Next chapter: |usr_52.txt|  Write large plugins
  Previous chapter: |usr_50.txt|  Advanced Vim script writing
 Table of contents: |usr_toc.txt|
 
@@ -36,6 +34,9 @@ In this section the first type is explai
 writing filetype plugins.  The specifics for filetype plugins are in the next
 section |write-filetype-plugin|.
 
+We will use |Vim9| syntax here, the recommended way to write new plugins.
+Make sure the file starts with the `vim9script` command.
+
 
 NAME
 
@@ -55,11 +56,11 @@ BODY
 
 Let's start with the body of the plugin, the lines that do the actual work: >
 
- 14	iabbrev teh the
- 15	iabbrev otehr other
- 16	iabbrev wnat want
- 17	iabbrev synchronisation
- 18		\ synchronization
+ 12	iabbrev teh the
+ 13	iabbrev otehr other
+ 14	iabbrev wnat want
+ 15	iabbrev synchronisation
+ 16		\ synchronization
 
 The actual list should be much longer, of course.
 
@@ -98,28 +99,6 @@ the top of the plugin should be sufficie
   5	# License:	This file is placed in the public domain.
 
 
-LINE CONTINUATION AND AVOIDING SIDE EFFECTS		 *use-cpo-save*
-
-In line 18 above, the line-continuation mechanism is used |line-continuation|.
-Users with 'compatible' set will run into trouble here, they will get an error
-message.  We can't just reset 'compatible', because that has a lot of side
-effects.  Instead, we will set the 'cpoptions' option to its Vim default
-value and restore it later.  That will allow the use of line-continuation and
-make the script work for most people.  It is done like this: >
-
- 11	var save_cpo = &cpo
- 12	set cpo&vim
- ..
- 42	&cpo = save_cpo
-
-We first store the old value of 'cpoptions' in the "save_cpo" variable.  At
-the end of the plugin this value is restored.
-
-Notice that "save_cpo" is a script-local variable.  A global variable could
-already be in use for something else.  Always use script-local variables for
-things that are only used in the script.
-
-
 NOT LOADING
 
 It is possible that a user doesn't always want to load this plugin.  Or the
@@ -153,7 +132,7 @@ for this mapping, but the user might alr
 allow the user to define which keys a mapping in a plugin uses, the <Leader>
 item can be used: >
 
- 22	  map <unique> <Leader>a  <Plug>TypecorrAdd;
+ 20	  map <unique> <Leader>a  <Plug>TypecorrAdd;
 
 The "<Plug>TypecorrAdd;" thing will do the work, more about that further on.
 
@@ -171,9 +150,9 @@ already happened to exist. |:map-<unique
 But what if the user wants to define his own key sequence?  We can allow that
 with this mechanism: >
 
- 21	if !hasmapto('<Plug>TypecorrAdd;')
- 22	  map <unique> <Leader>a  <Plug>TypecorrAdd;
- 23	endif
+ 19	if !hasmapto('<Plug>TypecorrAdd;')
+ 20	  map <unique> <Leader>a  <Plug>TypecorrAdd;
+ 21	endif
 
 This checks if a mapping to "<Plug>TypecorrAdd;" already exists, and only
 defines the mapping from "<Leader>a" if it doesn't.  The user then has a
@@ -196,11 +175,11 @@ would need to prefix the name with "s:".
 
 We will define a function that adds a new typing correction: >
 
- 30	def Add(from: string, correct: bool)
- 31	  var to = input($"type the correction for {from}: ")
- 32	  exe $":iabbrev {from} {to}"
- ..
- 36	enddef
+ 28	def Add(from: string, correct: bool)
+ 29	  var to = input($"type the correction for {from}: ")
+ 30	  exe $":iabbrev {from} {to}"
+ ...
+ 34	enddef
 
 Now we can call the function Add() from within this script.  If another
 script also defines Add(), it will be local to that script and can only
@@ -210,9 +189,9 @@ which is again another function.
 <SID> can be used with mappings.  It generates a script ID, which identifies
 the current script.  In our typing correction plugin we use it like this: >
 
- 24	noremap <unique> <script> <Plug>TypecorrAdd;  <SID>Add
- ..
- 28	noremap <SID>Add  :call <SID>Add(expand("<cword>"), true)<CR>
+ 22	noremap <unique> <script> <Plug>TypecorrAdd;  <SID>Add
+ ...
+ 26	noremap <SID>Add  :call <SID>Add(expand("<cword>"), true)<CR>
 
 Thus when a user types "\a", this sequence is invoked: >
 
@@ -232,7 +211,7 @@ Add() in other places (the script itself
 
 We can also add a menu entry to do the same as the mapping: >
 
- 26	noremenu <script> Plugin.Add\ Correction      <SID>Add
+ 24	noremenu <script> Plugin.Add\ Correction      <SID>Add
 
 The "Plugin" menu is recommended for adding menu items for plugins.  In this
 case only one item is used.  When adding more items, creating a submenu is
@@ -276,9 +255,9 @@ USER COMMAND
 
 Now let's add a user command to add a correction: >
 
- 38	if !exists(":Correct")
- 39	  command -nargs=1  Correct  :call Add(<q-args>, false)
- 40	endif
+ 36	if !exists(":Correct")
+ 37	  command -nargs=1  Correct  :call Add(<q-args>, false)
+ 38	endif
 
 The user command is defined only if no command with the same name already
 exists.  Otherwise we would get an error here.  Overriding the existing user
@@ -299,20 +278,21 @@ the same script again. |s:var|
 
 The nice thing about |Vim9| script is that variables are local to the script
 by default.  You can prepend "s:" if you like, but you do not need to.  And
-functions in the script can also use the script variables without a prefix.
+functions in the script can also use the script variables without a prefix
+(they must be declared before the function for this to work).
 
 Script-local variables can also be used in functions, autocommands and user
 commands that are defined in the script.  Thus they are the perfect way to
 share information between parts of your plugin, without it leaking out.  In
 our example we can add a few lines to count the number of corrections: >
 
- 19	var count = 4
- ..
- 30	def Add(from: string, correct: bool)
- ..
- 34	  count += 1
- 35	  echo "you now have " .. count .. " corrections"
- 36	enddef
+ 17	var count = 4
+ ...
+ 28	def Add(from: string, correct: bool)
+ ...
+ 32	  count += 1
+ 33	  echo "you now have " .. count .. " corrections"
+ 34	enddef
 
 "count" is declared and initialized to 4 in the script itself.  When later
 the Add() function is called, it increments "count".  It doesn't matter from
@@ -334,40 +314,36 @@ Here is the resulting complete example: 
   8	  finish
   9	endif
  10	g:loaded_typecorrect = 1
- 11	var save_cpo = &cpo
- 12	set cpo&vim
- 13
- 14	iabbrev teh the
- 15	iabbrev otehr other
- 16	iabbrev wnat want
- 17	iabbrev synchronisation
- 18		\ synchronization
- 19	var count = 4
- 20
- 21	if !hasmapto('<Plug>TypecorrAdd;')
- 22	  map <unique> <Leader>a  <Plug>TypecorrAdd;
- 23	endif
- 24	noremap <unique> <script> <Plug>TypecorrAdd;  <SID>Add
+ 11
+ 12	iabbrev teh the
+ 13	iabbrev otehr other
+ 14	iabbrev wnat want
+ 15	iabbrev synchronisation
+ 16		\ synchronization
+ 17	var count = 4
+ 18
+ 19	if !hasmapto('<Plug>TypecorrAdd;')
+ 20	  map <unique> <Leader>a  <Plug>TypecorrAdd;
+ 21	endif
+ 22	noremap <unique> <script> <Plug>TypecorrAdd;  <SID>Add
+ 23
+ 24	noremenu <script> Plugin.Add\ Correction      <SID>Add
  25
- 26	noremenu <script> Plugin.Add\ Correction      <SID>Add
+ 26	noremap <SID>Add  :call <SID>Add(expand("<cword>"), true)<CR>
  27
- 28	noremap <SID>Add  :call <SID>Add(expand("<cword>"), true)<CR>
- 29
- 30	def Add(from: string, correct: bool)
- 31	  var to = input("type the correction for " .. from .. ": ")
- 32	  exe ":iabbrev " .. from .. " " .. to
- 33	  if correct | exe "normal viws\<C-R>\" \b\e" | endif
- 34	  count += 1
- 35	  echo "you now have " .. count .. " corrections"
- 36	enddef
- 37
- 38	if !exists(":Correct")
- 39	  command -nargs=1  Correct  call Add(<q-args>, false)
- 40	endif
- 41
- 42	&cpo = save_cpo
+ 28	def Add(from: string, correct: bool)
+ 29	  var to = input("type the correction for " .. from .. ": ")
+ 30	  exe ":iabbrev " .. from .. " " .. to
+ 31	  if correct | exe "normal viws\<C-R>\" \b\e" | endif
+ 32	  count += 1
+ 33	  echo "you now have " .. count .. " corrections"
+ 34	enddef
+ 35
+ 36	if !exists(":Correct")
+ 37	  command -nargs=1  Correct  call Add(<q-args>, false)
+ 38	endif
 
-Line 33 wasn't explained yet.  It applies the new correction to the word under
+Line 31 wasn't explained yet.  It applies the new correction to the word under
 the cursor.  The |:normal| command is used to use the new abbreviation.  Note
 that mappings and abbreviations are expanded here, even though the function
 was called from a mapping defined with ":noremap".
@@ -413,24 +389,6 @@ Using references to other parts of the h
 it easy for the user to find associated help.
 
 
-FILETYPE DETECTION					*plugin-filetype*
-
-If your filetype is not already detected by Vim, you should create a filetype
-detection snippet in a separate file.  It is usually in the form of an
-autocommand that sets the filetype when the file name matches a pattern.
-Example: >
-
-	au BufNewFile,BufRead *.foo		setlocal filetype=foofoo
-
-Write this single-line file as "ftdetect/foofoo.vim" in the first directory
-that appears in 'runtimepath'.  For Unix that would be
-"~/.vim/ftdetect/foofoo.vim".  The convention is to use the name of the
-filetype for the script name.
-
-You can make more complicated checks if you like, for example to inspect the
-contents of the file to recognize the language.  Also see |new-filetype|.
-
-
 SUMMARY							*plugin-special*
 
 Summary of special things to use in a plugin:
@@ -497,7 +455,7 @@ you can write the different setting in a
 Now write this in the "after" directory, so that it gets sourced after the
 distributed "vim.vim" ftplugin |after-directory|.  For Unix this would be
 "~/.vim/after/ftplugin/vim.vim".  Note that the default plugin will have set
-"b:did_ftplugin", but it is ignored here.
+"b:did_ftplugin", it is ignored here.
 
 
 OPTIONS
@@ -591,6 +549,9 @@ This construct makes sure the function i
 	  enddef
 	endif
 <
+Don't forget to use "noclear" with the `vim9script` command to avoid that the
+function is deleted when the script is sourced a second time.
+
 
 UNDO						*undo_indent* *undo_ftplugin*
 
@@ -598,15 +559,12 @@ When the user does ":setfiletype xyz" th
 should be undone.  Set the b:undo_ftplugin variable to the commands that will
 undo the settings in your filetype plugin.  Example: >
 
-	let b:undo_ftplugin = "setlocal fo< com< tw< commentstring<"
+	b:undo_ftplugin = "setlocal fo< com< tw< commentstring<"
 		\ .. "| unlet b:match_ignorecase b:match_words b:match_skip"
 
 Using ":setlocal" with "<" after the option name resets the option to its
 global value.  That is mostly the best way to reset the option value.
 
-This does require removing the "C" flag from 'cpoptions' to allow line
-continuation, as mentioned above |use-cpo-save|.
-
 For undoing the effect of an indent script, the b:undo_indent variable should
 be set accordingly.
 
@@ -625,6 +583,24 @@ these three forms:
 "stuff" is the filetype, "foo" and "bar" are arbitrary names.
 
 
+FILETYPE DETECTION					*plugin-filetype*
+
+If your filetype is not already detected by Vim, you should create a filetype
+detection snippet in a separate file.  It is usually in the form of an
+autocommand that sets the filetype when the file name matches a pattern.
+Example: >
+
+	au BufNewFile,BufRead *.foo		setlocal filetype=foofoo
+
+Write this single-line file as "ftdetect/foofoo.vim" in the first directory
+that appears in 'runtimepath'.  For Unix that would be
+"~/.vim/ftdetect/foofoo.vim".  The convention is to use the name of the
+filetype for the script name.
+
+You can make more complicated checks if you like, for example to inspect the
+contents of the file to recognize the language.  Also see |new-filetype|.
+
+
 SUMMARY							*ftplugin-special*
 
 Summary of special things to use in a filetype plugin:
@@ -693,149 +669,7 @@ last, thus it should be in a directory a
 that could be ~/.vim/after/compiler.
 
 ==============================================================================
-*51.4*	Writing a plugin that loads quickly	*write-plugin-quickload*
-
-A plugin may grow and become quite long.  The startup delay may become
-noticeable, while you hardly ever use the plugin.  Then it's time for a
-quickload plugin.
-
-The basic idea is that the plugin is loaded twice.  The first time user
-commands and mappings are defined that offer the functionality.  The second
-time the functions that implement the functionality are defined.
-
-It may sound surprising that quickload means loading a script twice.  What we
-mean is that it loads quickly the first time, postponing the bulk of the
-script to the second time, which only happens when you actually use it.  When
-you always use the functionality it actually gets slower!
-
-This uses a FuncUndefined autocommand.  Since Vim 7 there is an alternative:
-use the |autoload| functionality |51.5|.  That will also use |Vim9| script
-instead of legacy script that is used here.
-
-The following example shows how it's done: >
-
-	" Vim global plugin for demonstrating quick loading
-	" Last Change:	2005 Feb 25
-	" Maintainer:	Bram Moolenaar <Bram@vim.org>
-	" License:	This file is placed in the public domain.
-
-	if !exists("s:did_load")
-		command -nargs=* BNRead  call BufNetRead(<f-args>)
-		map <F19> :call BufNetWrite('something')<CR>
-
-		let s:did_load = 1
-		exe 'au FuncUndefined BufNet* source ' .. expand('<sfile>')
-		finish
-	endif
-
-	function BufNetRead(...)
-		echo 'BufNetRead(' .. string(a:000) .. ')'
-		" read functionality here
-	endfunction
-
-	function BufNetWrite(...)
-		echo 'BufNetWrite(' .. string(a:000) .. ')'
-		" write functionality here
-	endfunction
-
-When the script is first loaded "s:did_load" is not set.  The commands between
-the "if" and "endif" will be executed.  This ends in a |:finish| command, thus
-the rest of the script is not executed.
-
-The second time the script is loaded "s:did_load" exists and the commands
-after the "endif" are executed.  This defines the (possible long)
-BufNetRead() and BufNetWrite() functions.
-
-If you drop this script in your plugin directory Vim will execute it on
-startup.  This is the sequence of events that happens:
-
-1. The "BNRead" command is defined and the <F19> key is mapped when the script
-   is sourced at startup.  A |FuncUndefined| autocommand is defined.  The
-   ":finish" command causes the script to terminate early.
-
-2. The user types the BNRead command or presses the <F19> key.  The
-   BufNetRead() or BufNetWrite() function will be called.
-
-3. Vim can't find the function and triggers the |FuncUndefined| autocommand
-   event.  Since the pattern "BufNet*" matches the invoked function, the
-   command "source fname" will be executed.  "fname" will be equal to the name
-   of the script, no matter where it is located, because it comes from
-   expanding "<sfile>" (see |expand()|).
-
-4. The script is sourced again, the "s:did_load" variable exists and the
-   functions are defined.
-
-Notice that the functions that are loaded afterwards match the pattern in the
-|FuncUndefined| autocommand.  You must make sure that no other plugin defines
-functions that match this pattern.
-
-==============================================================================
-*51.5*	Writing library scripts			*write-library-script*
-
-Some functionality will be required in several places.  When this becomes more
-than a few lines you will want to put it in one script and use it from many
-scripts.  We will call that one script a library script.
-
-Manually loading a library script is possible, so long as you avoid loading it
-when it's already done.  You can do this with the |exists()| function.
-Example: >
-
-	if !exists('*MyLibFunction')
-	   runtime library/mylibscript.vim
-	endif
-	MyLibFunction(arg)
-
-Here you need to know that MyLibFunction() is defined in a script
-"library/mylibscript.vim" in one of the directories in 'runtimepath'.
-
-To make this a bit simpler Vim offers the autoload mechanism.  Then the
-example looks like this: >
-
-	mylib#myfunction(arg)
-
-That's a lot simpler, isn't it?  Vim will recognize the function name by the
-embedded "#" character and when it's not defined search for the script
-"autoload/mylib.vim" in 'runtimepath'.  That script must define the
-"mylib#myfunction()" function.
-
-You can put many other functions in the mylib.vim script, you are free to
-organize your functions in library scripts.  But you must use function names
-where the part before the '#' matches the script name.  Otherwise Vim would
-not know what script to load.
-
-If you get really enthusiastic and write lots of library scripts, you may
-want to use subdirectories.  Example: >
-
-	netlib#ftp#read('somefile')
-
-For Unix the library script used for this could be:
-
-	~/.vim/autoload/netlib/ftp.vim
-
-Where the function is defined like this: >
-
-	def netlib#ftp#read(fname: string)
-		#  Read the file fname through ftp
-	enddef
-
-Notice that the name the function is defined with is exactly the same as the
-name used for calling the function.  And the part before the last '#'
-exactly matches the subdirectory and script name.
-
-You can use the same mechanism for variables: >
-
-	var weekdays = dutch#weekdays
-
-This will load the script "autoload/dutch.vim", which should contain something
-like: >
-
-	var dutch#weekdays = ['zondag', 'maandag', 'dinsdag', 'woensdag',
-		\ 'donderdag', 'vrijdag', 'zaterdag']
-
-Further reading: |autoload|.
-
-==============================================================================
-*51.6*	Distributing Vim scripts			*distribute-script*
+*51.4*	Distributing Vim scripts			*distribute-script*
 
 Vim users will look for scripts on the Vim website: http://www.vim.org.
 If you made something that is useful for others, share it!
@@ -855,6 +689,6 @@ It's good if you add a line to allow aut
 
 ==============================================================================
 
-Next chapter: |usr_52.txt|  Write plugins using Vim9 script
+Next chapter: |usr_52.txt|  Write large plugins
 
 Copyright: see |manual-copyright|  vim:tw=78:ts=8:noet:ft=help:norl:
--- a/runtime/doc/usr_52.txt
+++ b/runtime/doc/usr_52.txt
@@ -1,25 +1,27 @@
-*usr_52.txt*	For Vim version 8.2.  Last change: 2022 May 21
+*usr_52.txt*	For Vim version 8.2.  Last change: 2022 Jun 03
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
-		       Write plugins using Vim9 script
+		       Write larger plugins
 
+TODO: this file needs to be updated
 
-The Vim9 script language is used for writing plugins, especially larger ones
-that use multiple files.  This chapter explains how to split up a plugin into
-modules, import and export items and keep the rest local.
+When plugins do more than simple things, they tend to grow big.  This file
+explains how to make sure they still load fast and how to split them up in
+smaller parts
 
-|52.1|	Introduction
-|52.2|	Variable declarations
-|52.3|	Functions and types
-|52.4|	Using a Vim9 script from legacy script
+|52.1|	Export and import
+|52.2|	Autoloading
+|52.3|	Autoloading without import/export
+|52.4|	Other mechanisms to use
+|52.5|	Using a Vim9 script from legacy script
 
      Next chapter: |usr_90.txt|  Installing Vim
  Previous chapter: |usr_51.txt|  Create a plugin
 Table of contents: |usr_toc.txt|
 
 ==============================================================================
-*52.1*	Introduction				*vim9-script-intro*
+*52.1*	Export and import
 
 Vim9 script was designed to make it easier to write large Vim scripts.  It
 looks more like other script languages, especially Typescript.  Also,
@@ -65,104 +67,190 @@ the return type.  Vim9 functions, define
 type of arguments and the return type.  That way Vim can compile the code
 efficiently.  The GetPart function defines an argument "nr" of type "number".
 
-Notice that the assignment `result = GetPart(count)` does not use the `let`
-command.  That is explained in the next section.
+TODO: import/export example
+
+USING GLOBALS
+
+Sometimes you will want to use global variables or functions, so that they can
+be used anywhere.  A good example is a global variable that passes a
+preference to a plugin.  To avoid other scripts using the same name, use a
+prefix that is very unlikely to be used elsewhere.  For example, if you have a
+"mytags" plugin, you could use: >
+
+	g:mytags_location = '$HOME/project'
+	g:mytags_style = 'fast'
 
 ==============================================================================
-*52.2*	Variable declarations				*vim9-declarations*
+*52.2*	Autoloading
 
-In Vim9 script variables are declared once with a `:let` or `:const` command.
-Assigning a value is done without `:let` and it is not possible to `:unlet`
-the variable.
+TODO: autoloading with import/export
 
-In most cases you will want to declare the variable and initialize it at the
-same time: >
-	let myText = 'some text'
-	...
-	myText = 'other text'
+After splitting your large script into pieces, all the lines will still be
+loaded and executed the moment the script is used.  Every `import` loads the
+imported script to find the items defined there.  Although that is good for
+finding errors early, it also takes time.  Which is wasted if the
+functionality is not often used.
 
-The type of the variable will be inferred from the expression.  In this case
-it is a string.  If you initialize with a number, then the type is number: >
-	let myNumber = 1234
-	...
-	myNumber = 0
+Instead of having `import` load the script immediately, it can be postponed
+until needed. >
+	import autoload "./LoadLater.vim"
 
-If you try to assign a string to this variable, you will get an error: >
-	let myNumber = 'this fails!'
-
-In the rare case you want a variable that can take values of any type, you
-have to specify the type: >
-	let myVar: any = 1234
-	myVar = 'text also works'
+Now you can use exported items as usual: "LoadLater.GetMonth(4)".
+However, the type will not be checked. Not even the existence of the
+GetMonth() function is checked until it is used.  You will have to decide what
+is more important for your script.  You can also add the "autoload" argument
+later, after you have checked everything works.
 
-You can also declare a variable without assigning a value.  In that case Vim
-will initialize it to zero or empty: >
-	let word: string
-	if condition
-	  word = 'yes'
-	else
-	  word = 'no'
-	endif
+Another form is to use a script name that is not an absolute or relative
+path: >
+	import autload "monthlib.vim"
 
-Although it's shorter to do: >
-	let word = condition ? 'yes' : 'no'
+This will search for the script "monthlib.vim" in the autoload directories of
+'runtimepath'.  With Unix the directory often is "~/.vim/autoload".
+
+The main advantage of this is that this script can be shared with other
+scripts.  You do need to make sure that the script name is unique, since Vim
+will search all the "autoload" directories in 'runtimepath', and if you are
+using several plugins, these may add several directories to 'runtimepath',
+each of which might have an "autoload" directory.
 
 ==============================================================================
-*52.3*	Functions and types
+*52.3*	Autoloading without import/export
+
+						*write-library-script*
+A mechanism from before import/export is still useful and some users may find
+it a bit simpler.  The idea is that you call a function with a special name.
+That function is then in an autoload script.  We will call that one script a
+library script.
 
-Legacy Vim script only checks types at runtime, when the code is executed.
-And it's permissive, often a computation gives an unexpected value instead of
-reporting an error.  Thus you can define a function and think it's fine, but
-notice a problem only later when the function is called: >
-	func Concatenate(base, add)
-	   return a:base + a:add
-	endfunc
+The autoload mechanism is based on a funtion name that has "#" characters: >
+
+	mylib#myfunction(arg)
 
-Can you spot the error?  Try this: >
-	echo Concatenate('base', 'text')
-And you'll see zero.  Why?  Because in legacy Vim script "+" will convert the
-arguments to numbers, and any string without a number results in zero!  That's
-not what you expected.
+Vim will recognize the function name by the embedded "#" character and when
+it is not defined yet search for the script "autoload/mylib.vim" in
+'runtimepath'.  That script must define the "mylib#myfunction()" function.
+Obviously the name "mylib" is the part before the "#" and is used as the name
+of the script, adding ".vim".
 
-With `:def` the type checking happens when compiling the function.  You need
-to specify the argument types and the return type to make that possible.  Also
-notice that the argument names are used without the "a:" prefix: >
-	def Concatenate(base: string, add: string): string
-	   return base + add
-	enddef
-	defcompile Concatenate
+You can put many other functions in the mylib.vim script, you are free to
+organize your functions in library scripts.  But you must use function names
+where the part before the '#' matches the script name.  Otherwise Vim would
+not know what script to load.  This is where it differs from the import/export
+mechanism.
 
-Here we use `:defcompile` to do the compilation right away, without it the
-compilation would happen when the function is first called.  Vim will tell you
-what you did wrong: >
-	E1051: Wrong argument type for +
+If you get really enthusiastic and write lots of library scripts, you may
+want to use subdirectories.  Example: >
+
+	netlib#ftp#read('somefile')
 
-Side note: here the context is legacy script.  When using Vim9 script you
-would put `:defcompile` at the end of the script to check for errors in all
-the functions defined in it.
+Here the script name is taken from the function name up to the last "#". The
+"#" in the middle are replaced by a slash, the last one by ".vim".  Thus you
+get "netlib/ftp.vim".  For Unix the library script used for this could be:
 
-Vim9 script is strict, it uses the "+" operator only for numbers and floats.
-For string concatenation ".." must be used.  This avoids mistakes and avoids
-the automatic conversion that gave a surprising result above.  So you change
-the first line of the function to: >
-	   s:collected ..= add
-And now it works.
+	~/.vim/autoload/netlib/ftp.vim
 
-If the function does not return anything, just leave out the return type: >
-	def ReportResult(result: string)
-	   echo 'The result is: ' .. result
+Where the function is defined like this: >
+
+	def netlib#ftp#read(fname: string)
+		#  Read the file fname through ftp
 	enddef
 
-This is also checked, if you try to return a value you'll get an error.
+Notice that the name the function is defined with is exactly the same as the
+name used for calling the function.  And the part before the last '#'
+exactly matches the subdirectory and script name.
+
+You can use the same mechanism for variables: >
+
+	var weekdays = dutch#weekdays
 
-In case you don't care about types or have a function that does work with
-multiple types, you can use the "any" type: >
-	def Store(key: string, value: any)
-	  resultDict[key] = value
-	enddef
+This will load the script "autoload/dutch.vim", which should contain something
+like: >
+
+	var dutch#weekdays = ['zondag', 'maandag', 'dinsdag', 'woensdag',
+		\ 'donderdag', 'vrijdag', 'zaterdag']
+
+Further reading: |autoload|.
 
 ==============================================================================
-*52.4*	Using a Vim9 script from legacy script		*source-vim9-script*
+*52.4*	Other mechanisms to use
+
+Some may find the use of several files a hassle and prefer to keep everything
+together in one script.  To avoid this resulting in slow startup there is a
+mechanism that only defines a small part and postpones the rest to when it is
+actually used.  *write-plugin-quickload*
+
+The basic idea is that the plugin is loaded twice.  The first time user
+commands and mappings are defined that offer the functionality.  The second
+time the functions that implement the functionality are defined.
+
+It may sound surprising that quickload means loading a script twice.  What we
+mean is that it loads quickly the first time, postponing the bulk of the
+script to the second time, which only happens when you actually use it.  When
+you always use the functionality it actually gets slower!
+
+This uses a FuncUndefined autocommand.  This works differently from the
+|autoload| functionality explained above.
+
+The following example shows how it's done: >
+
+	" Vim global plugin for demonstrating quick loading
+	" Last Change:	2005 Feb 25
+	" Maintainer:	Bram Moolenaar <Bram@vim.org>
+	" License:	This file is placed in the public domain.
+
+	if !exists("s:did_load")
+		command -nargs=* BNRead  call BufNetRead(<f-args>)
+		map <F19> :call BufNetWrite('something')<CR>
+
+		let s:did_load = 1
+		exe 'au FuncUndefined BufNet* source ' .. expand('<sfile>')
+		finish
+	endif
+
+	function BufNetRead(...)
+		echo 'BufNetRead(' .. string(a:000) .. ')'
+		" read functionality here
+	endfunction
+
+	function BufNetWrite(...)
+		echo 'BufNetWrite(' .. string(a:000) .. ')'
+		" write functionality here
+	endfunction
+
+When the script is first loaded "s:did_load" is not set.  The commands between
+the "if" and "endif" will be executed.  This ends in a |:finish| command, thus
+the rest of the script is not executed.
+
+The second time the script is loaded "s:did_load" exists and the commands
+after the "endif" are executed.  This defines the (possible long)
+BufNetRead() and BufNetWrite() functions.
+
+If you drop this script in your plugin directory Vim will execute it on
+startup.  This is the sequence of events that happens:
+
+1. The "BNRead" command is defined and the <F19> key is mapped when the script
+   is sourced at startup.  A |FuncUndefined| autocommand is defined.  The
+   ":finish" command causes the script to terminate early.
+
+2. The user types the BNRead command or presses the <F19> key.  The
+   BufNetRead() or BufNetWrite() function will be called.
+
+3. Vim can't find the function and triggers the |FuncUndefined| autocommand
+   event.  Since the pattern "BufNet*" matches the invoked function, the
+   command "source fname" will be executed.  "fname" will be equal to the name
+   of the script, no matter where it is located, because it comes from
+   expanding "<sfile>" (see |expand()|).
+
+4. The script is sourced again, the "s:did_load" variable exists and the
+   functions are defined.
+
+Notice that the functions that are loaded afterwards match the pattern in the
+|FuncUndefined| autocommand.  You must make sure that no other plugin defines
+functions that match this pattern.
+
+==============================================================================
+*52.5*	Using a Vim9 script from legacy script		*source-vim9-script*
 
 In some cases you have a legacy Vim script where you want to use items from a
 Vim9 script.  For example in your .vimrc you want to initialize a plugin.  The
@@ -190,4 +278,5 @@ will have to make sure to use a unique n
 
 Next chapter: |usr_90.txt|  Installing Vim
 
+
 Copyright: see |manual-copyright|  vim:tw=78:ts=8:noet:ft=help:norl:
--- a/runtime/doc/usr_toc.txt
+++ b/runtime/doc/usr_toc.txt
@@ -1,4 +1,4 @@
-*usr_toc.txt*	For Vim version 8.2.  Last change: 2022 May 13
+*usr_toc.txt*	For Vim version 8.2.  Last change: 2022 Jun 03
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -341,21 +341,22 @@ Make Vim work as you like it.
 ==============================================================================
 Writing Vim script ~
 
-|usr_50.txt|  TODO
+|usr_50.txt|  Advanced Vim script writing
+		|50.1|	Line continuation
+		|50.2|	Restoring the view
 
 |usr_51.txt|  Write plugins
 		|51.1|	Writing a generic plugin
 		|51.2|	Writing a filetype plugin
 		|51.3|	Writing a compiler plugin
-		|51.4|	Writing a plugin that loads quickly
-		|51.5|	Writing library scripts
-		|51.6|	Distributing Vim scripts
+		|51.4|	Distributing Vim scripts
 
-|usr_52.txt|  Write plugins using Vim9 script
-		|52.1|	Introduction
-		|52.2|	Variable declarations
-		|52.3|	Functions and types
-		|52.4|	Using a Vim9 script from legacy script
+|usr_52.txt|  Write larger plugins
+		|52.1|	Export and import
+		|52.2|	Autoloading
+		|52.3|	Autoloading without import/export
+		|52.4|	Other mechanisms to use
+		|52.5|	Using a Vim9 script from legacy script
 
 ==============================================================================
 Making Vim Run ~
--- 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 Apr 25
+" Last Change:	2022 Jun 03
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
new file mode 100644
--- /dev/null
+++ b/runtime/ftplugin/confini.vim
@@ -0,0 +1,10 @@
+" Vim filetype plugin file
+" Language: confini
+
+" Quit if a ftplugin file was already loaded
+if exists("b:did_ftplugin")
+  finish
+endif
+
+" Use the cfg plugin, it's similar enough.
+runtime! ftplugin/cfg.vim
--- a/runtime/ftplugin/fortran.vim
+++ b/runtime/ftplugin/fortran.vim
@@ -1,6 +1,6 @@
 " Vim settings file
 " Language:	Fortran 2008 (and older: Fortran 2003, 95, 90, 77, 66)
-" Version:	(v53) 2021 April 06
+" Version:	(v53) 2021 April 06 (updated 2022 May 22)
 " Maintainer:	Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
 " Usage:	For instructions, do :help fortran-plugin from Vim
 " Credits:
@@ -105,12 +105,13 @@ if !exists("b:match_words")
   let s:notselect = '\%(\<select\s\+\)\@<!'
   let s:notelse = '\%(\<end\s\+\|\<else\s\+\)\@<!'
   let s:notprocedure = '\%(\s\+procedure\>\)\@!'
+  let s:nothash = '\%(^\s*#\s*\)\@<!'
   let b:match_ignorecase = 1
   let b:match_words =
     \ '(:),' .
     \ '\<select\s*case\>:' . s:notselect. '\<case\>:\<end\s*select\>,' .
     \ s:notelse . '\<if\s*(.\+)\s*then\>:' .
-    \ '\<else\s*\%(if\s*(.\+)\s*then\)\=\>:\<end\s*if\>,'.
+    \ s:nothash . '\<else\s*\%(if\s*(.\+)\s*then\)\=\>:' . s:nothash . '\<end\s*if\>,'.
     \ 'do\s\+\(\d\+\):\%(^\s*\)\@<=\1\s,'.
     \ s:notend . '\<do\>:\<end\s*do\>,'.
     \ s:notelse . '\<where\>:\<elsewhere\>:\<end\s*where\>,'.
@@ -122,7 +123,8 @@ if !exists("b:match_words")
     \ s:notend . '\<subroutine\>:\<end\s*subroutine\>,'.
     \ s:notend . '\<function\>:\<end\s*function\>,'.
     \ s:notend . '\<module\>' . s:notprocedure . ':\<end\s*module\>,'.
-    \ s:notend . '\<program\>:\<end\s*program\>'
+    \ s:notend . '\<program\>:\<end\s*program\>,'.
+    \ '\%(^\s*\)\@<=#\s*if\%(def\|ndef\)\=\>:\%(^\s*\)\@<=#\s*\%(elif\|else\)\>:\%(^\s*\)\@<=#\s*endif\>'
 endif
 
 " File filters for :browse e
new file mode 100644
--- /dev/null
+++ b/runtime/indent/confini.vim
@@ -0,0 +1,10 @@
+" Vim indent file
+" Language: confini
+
+" Quit if an indent file was already loaded.
+if exists("b:did_indent")
+  finish
+endif
+
+" Use the cfg indenting, it's similar enough.
+runtime! indent/cfg.vim
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/confini.vim
@@ -0,0 +1,12 @@
+" Vim syntax file
+" Language: confini
+
+" Quit if a syntax file was already loaded
+if exists("b:current_syntax")
+  finish
+endif
+
+" Use the cfg syntax for now, it's similar.
+runtime! syntax/cfg.vim
+
+let b:current_syntax = 'confini'
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	Vim 8.2 script
 " Maintainer:	Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
-" Last Change:	May 19, 2022
-" Version:	8.2-39
+" Last Change:	May 27, 2022
+" Version:	8.2-42
 " URL:	http://www.drchip.org/astronaut/vim/index.html#SYNTAX_VIM
 " Automatically generated keyword lists: {{{1
 
@@ -79,12 +79,12 @@ 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 feedkeys flatten fnamemodify foreground getbufinfo getcharpos getcmdscreenpos getcwd getftype getmatches getreginfo gettext glob hasmapto hlget index inputsecret isdirectory job_getchannel job_stop 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 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 filereadable flattennew foldclosed fullcommand getbufline getcharsearch getcmdtype getenv getimstatus getmousepos getregtype getwininfo glob2regpat histadd hlID input insert isinf job_info 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 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 filewritable float2nr foldclosedend funcref getbufvar getcharstr getcmdwintype getfontname getjumplist getpid gettabinfo getwinpos globpath histdel hlset inputdialog interrupt islocked job_setoptions 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 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 filter floor foldlevel function getchangelist getcmdcompltype getcompletion getfperm getline getpos gettabvar getwinposx has histget hostname inputlist invert isnan job_start 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 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 extend finddir fmod foldtext garbagecollect getchar getcmdline getcurpos getfsize getloclist getqflist gettabwinvar getwinposy has_key histnr iconv inputrestore isabsolutepath items job_status 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 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 extendnew findfile fnameescape foldtextresult get getcharmod getcmdpos getcursorcharpos getftime getmarklist getreg gettagstack getwinvar haslocaldir hlexists indent inputsave
+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 inputsave isdirectory job_info 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 inputsecret isinf job_setoptions 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 input insert islocked job_start 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 inputdialog interrupt isnan job_status 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 inputlist invert items job_stop 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 inputrestore isabsolutepath job_getchannel
 
 "--- syntax here and above generated by mkvimvim ---
 " Special Vim Highlighting (not automatic) {{{1
@@ -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*\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
 " =============
--- a/src/po/de.po
+++ b/src/po/de.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Vim\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-21 15:36+0100\n"
+"POT-Creation-Date: 2022-05-21 19:01+0200\n"
 "PO-Revision-Date: 2008-05-24 17:26+0200\n"
 "Last-Translator: Christian Brabandt <cb@256bit.org>\n"
 "Language-Team: German\n"
@@ -806,10 +806,12 @@ msgstr "Achtung"
 
 msgid ""
 "&OK\n"
-"&Load File"
+"&Load File\n"
+"Load File &and Options"
 msgstr ""
 "&OK\n"
-"&Lies Datei"
+"&Lade Datei\n"
+"Lade D&atei und Optionen"
 
 msgid "<empty>"
 msgstr "<leer>"
@@ -844,24 +846,6 @@ msgstr[1] "+-%s%3ld Zeilen: "
 msgid "No match at cursor, finding next"
 msgstr "Kein Treffer beim Cursor, finde den nδchsten"
 
-msgid "<cannot open> "
-msgstr "<kann nicht φffnen> "
-
-msgid "Pathname:"
-msgstr "Pfadname:"
-
-msgid "OK"
-msgstr "OK"
-
-msgid "Cancel"
-msgstr "Abbrechen"
-
-msgid "Scrollbar Widget: Could not get geometry of thumb pixmap."
-msgstr "Scrollbar Widget: Geometrie des Bildchens kann nicht ermittelt werden."
-
-msgid "Vim dialog"
-msgstr "Vim-Dialog"
-
 msgid "_Save"
 msgstr "_Speichern"
 
@@ -883,12 +867,18 @@ msgstr ""
 "&Nein\n"
 "&Abbrechen"
 
+msgid "OK"
+msgstr "OK"
+
 msgid "Yes"
 msgstr "Ja"
 
 msgid "No"
 msgstr "Nein"
 
+msgid "Cancel"
+msgstr "Abbrechen"
+
 msgid "Input _Methods"
 msgstr "Eingabe _Methoden"
 
@@ -970,6 +960,9 @@ msgstr "&OK"
 msgid "Selection"
 msgstr "Auswahl"
 
+msgid "Vim dialog"
+msgstr "Vim-Dialog"
+
 msgid "Find &Next"
 msgstr "&Nδchste"
 
@@ -1737,6 +1730,9 @@ msgstr "--servername <Name>\tBenutze den
 msgid "--startuptime <file>\tWrite startup timing messages to <file>"
 msgstr "--startuptime <Datei>\tSchreibe Start Zeitmessung in <Datei>"
 
+msgid "--log <file>\tStart logging to <file> early"
+msgstr "--log <Datei>\tLogge frόhzeitig in <Datei>"
+
 msgid "-i <viminfo>\t\tUse <viminfo> instead of .viminfo"
 msgstr "-i <viminfo>\t\tBenutze <viminfo> statt .viminfo"
 
@@ -1757,20 +1753,6 @@ msgstr ""
 "\n"
 "Argumente fόr den gvim (Motif Version):\n"
 
-msgid ""
-"\n"
-"Arguments recognised by gvim (neXtaw version):\n"
-msgstr ""
-"\n"
-"Argumente fόr den gvim (neXtaw Version):\n"
-
-msgid ""
-"\n"
-"Arguments recognised by gvim (Athena version):\n"
-msgstr ""
-"\n"
-"Argumente fόr den gvim (Athena Version):\n"
-
 msgid "-display <display>\tRun Vim on <display>"
 msgstr "-display <display>\tStarte Vim auf <display>"
 
@@ -1810,10 +1792,6 @@ msgstr ""
 "-scrollbarwidth <Breite>  Benutze eine Scrollbar der Breite <Breite> (auch "
 "mit: -sw)"
 
-msgid "-menuheight <height>\tUse a menu bar height of <height> (also: -mh)"
-msgstr ""
-"-menuheight <Hφhe>\tBenutze einen Menό-Balken der Hφhe <Hφhe> (auch mit: -mh)"
-
 msgid "-reverse\t\tUse reverse video (also: -rv)"
 msgstr "-reverse\t\tBenutze invertierte Farben (auch mit: -rv)"
 
@@ -2575,6 +2553,10 @@ msgid "XSMP lost ICE connection"
 msgstr "XSMP verlor ICE Verbindung"
 
 #, c-format
+msgid "Could not load gpm library: %s"
+msgstr "Konnte GPM-Bibliothek nicht laden: %s"
+
+#, c-format
 msgid "dlerror = \"%s\""
 msgstr "dlerror = \"%s\""
 
@@ -3165,38 +3147,6 @@ msgstr "Keine Syntax-Elemente fόr diesen Buffer definiert"
 msgid "'redrawtime' exceeded, syntax highlighting disabled"
 msgstr "'redrawtime' όberschritten, Syntaxhighlighting deaktiviert"
 
-msgid "syntax conceal on"
-msgstr "Syntax conceal aktiviert"
-
-msgid "syntax conceal off"
-msgstr "Syntax conceal deaktiviert"
-
-msgid "syntax case ignore"
-msgstr "Syntax ignoriere Groί-/Kleinschreibung"
-
-msgid "syntax case match"
-msgstr "Syntax unterscheide Groί-/Kleinschreibung"
-
-msgid "syntax foldlevel start"
-msgstr "Syntax foldlevel Start"
-
-msgid "syntax foldlevel minimum"
-msgstr "Syntax foldlevel Minimum"
-
-msgid "syntax spell toplevel"
-msgstr "Prόfe Rechtschreibung von Text ohne zugehφrige Syntaxgruppe"
-
-msgid "syntax spell notoplevel"
-msgstr "Prόfe keine Rechtschreibung von Text ohne zugehφrige Syntaxgruppe"
-
-msgid "syntax spell default"
-msgstr ""
-"Prόfe Rechtschreibung von Text ohne zugehφrige Syntaxgruppen nur bei @Spell/"
-"@NoSpell Attribut"
-
-msgid "syntax iskeyword "
-msgstr "syntax iskeyword "
-
 msgid "syntax iskeyword not set"
 msgstr "syntax iskeyword nicht gesetzt"
 
@@ -3283,16 +3233,16 @@ msgstr ""
 "\n"
 "  # NACH TAG       VON Zeile  in Datei/Text"
 
-#, c-format
-msgid "Searching tags file %s"
-msgstr "Tag-Datei %s wird durchsucht"
+msgid "Ignoring long line in tags file"
+msgstr "Ignoriere zu lange Zeile in Tag-Datei"
 
 #, c-format
 msgid "Before byte %ld"
 msgstr "Vor Byte %ld"
 
-msgid "Ignoring long line in tags file"
-msgstr "Ignoriere zu lange Zeile in Tag-Datei"
+#, c-format
+msgid "Searching tags file %s"
+msgstr "Tag-Datei %s wird durchsucht"
 
 #, c-format
 msgid "Duplicate field name: %s"
@@ -3460,6 +3410,10 @@ msgid "%s returning %s"
 msgstr "%s lieferte \"%s\" zurόck"
 
 #, c-format
+msgid "Function %s does not need compiling"
+msgstr "Funktion %s muss nicht kompiliert werden"
+
+#, c-format
 msgid "%s (%s, compiled %s)"
 msgstr "%s (%s kompiliert am %s)"
 
@@ -3606,12 +3560,6 @@ msgstr "mit GTK2 GUI."
 msgid "with X11-Motif GUI."
 msgstr "mit X11-Motif GUI."
 
-msgid "with X11-neXtaw GUI."
-msgstr "mit X11-neXtaw GUI."
-
-msgid "with X11-Athena GUI."
-msgstr "mit X11-Athena GUI."
-
 msgid "with Haiku GUI."
 msgstr "mit Haiku GUI."
 
@@ -3908,9 +3856,6 @@ msgstr ""
 "Dieser Befehl ist nicht verfόgbar, da die Perl-Bibliothek nicht geladen "
 "werden konnte"
 
-msgid "E299: Perl evaluation forbidden in sandbox without the Safe module"
-msgstr "E299: Perl-Evaluierung in der Sandbox ohne dem 'Safe' Modul"
-
 msgid "Edit with Vim using &tabpages"
 msgstr "Φffne Datei mit Vim in einem neuen Reiter"
 
@@ -4103,8 +4048,8 @@ msgstr "E54: %s( ohne Gegenstόck"
 msgid "E55: Unmatched %s)"
 msgstr "E55: %s) ohne Gegenstόck"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E59: Invalid character after %s@"
 msgstr "E59: Ungόltiges Zeichen nach %s@"
 
@@ -4532,8 +4477,8 @@ msgstr "E177: Zδhler kann nicht zweimal angegeben werden"
 msgid "E178: Invalid default value for count"
 msgstr "E178: Ungόltige Voreinstellung fόr den Zδhler"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E179: Argument required for %s"
 msgstr "E179: Argument benφtigt fόr %s"
 
@@ -4693,29 +4638,30 @@ msgid "E221: Marker cannot start with lo
 msgstr "E221: Markierung darf nicht mit Kleinbuchstaben beginnen"
 
 msgid "E222: Add to internal buffer that was already read from"
-msgstr "E222: zu einem internen Puffer hinzugefόgt, von dem bereits gelesen wurde"
+msgstr ""
+"E222: zu einem internen Puffer hinzugefόgt, von dem bereits gelesen wurde"
 
 # TODO: Capitalise first word of message?
 msgid "E223: Recursive mapping"
 msgstr "E223: rekursives Mapping"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E224: Global abbreviation already exists for %s"
 msgstr "E224: Globale Kurzform fόr %s existiert bereits"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E225: Global mapping already exists for %s"
 msgstr "E225: Globales Mapping fόr %s existiert bereits"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E226: Abbreviation already exists for %s"
 msgstr "E226: Kurzform %s existiert bereits"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E227: Mapping already exists for %s"
 msgstr "E227: Mapping fόr %s existiert bereits"
 
@@ -4790,8 +4736,8 @@ msgstr "E245: Unzulδssiges Zeichen '%c' in der Schriftart \"%s\""
 msgid "E246: FileChangedShell autocommand deleted buffer"
 msgstr "E246: FileChangedShell-Autokommando lφschte Buffer"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E247: No registered server named \"%s\""
 msgstr "E247: Kein registrierter Servername \"%s\""
 
@@ -4832,21 +4778,21 @@ msgstr "E257: cstag: Tag nicht gefunden"
 msgid "E258: Unable to send to client"
 msgstr "E258: Kann nicht zum Client senden"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E259: No matches found for cscope query %s of %s"
 msgstr "E259: keine άbereinstimmungen gefunden fόr cscope Abfrage %s aus %s"
 
 msgid "E260: Missing name after ->"
 msgstr "E260: Fehlende Name nach ->"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E261: Cscope connection %s not found"
 msgstr "E261: cscope Verbindung %s nicht gefunden"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E262: Error reading cscope connection %d"
 msgstr "E262: Fehler beim Lesen der cscope Verbindung %d"
 
@@ -4893,8 +4839,8 @@ msgstr "E271: 'retry' auίerhalb der 'rescue clause'"
 msgid "E272: Unhandled exception"
 msgstr "E272: Unbehandelte Exception"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E273: Unknown longjmp status %d"
 msgstr "E273: Unbekannter longjmp Status %d"
 
@@ -4981,6 +4927,9 @@ msgstr "E298: Block Nr. 1 nicht erhalten
 msgid "E298: Didn't get block nr 2?"
 msgstr "E298: Block Nr. 2 nicht erhalten?"
 
+msgid "E299: Perl evaluation forbidden in sandbox without the Safe module"
+msgstr "E299: Perl-Evaluierung in der Sandbox ohne dem 'Safe' Modul"
+
 msgid "E300: Swap file already exists (symlink attack?)"
 msgstr "E300: Auslagerungsdatei ist bereits vorhanden (symlink Attacke?)"
 
@@ -5037,13 +4986,13 @@ msgstr "E313: Kann nicht absichern, es g
 msgid "E314: Preserve failed"
 msgstr "E314: Absicherung fehlgeschlagen"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E315: ml_get: Invalid lnum: %ld"
 msgstr "E315: ml_get: unzulδssige Zeilennummer: %ld"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E316: ml_get: Cannot find line %ld in buffer %d %s"
 msgstr "E316: ml_get: kann Zeile %ld in Buffer %d %s nicht finden"
 
@@ -5077,13 +5026,13 @@ msgstr "E320: Kann Zeile %ld nicht finde
 msgid "E321: Could not reload \"%s\""
 msgstr "E321: \"%s\" konnte nicht neu geladen werden"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E322: Line number out of range: %ld past the end"
 msgstr "E322: Zeilennummer nicht im zulδssigen Bereich: %ld nach dem Ende"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E323: Line count wrong in block %ld"
 msgstr "E323: Zeilenanzahl falsch in Block %ld"
 
@@ -5240,13 +5189,13 @@ msgstr "E366: Popup-Fenster zu betreten 
 msgid "E367: No such group: \"%s\""
 msgstr "E367: Keine solche Gruppe: \"%s\""
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E368: Got SIG%s in libcall()"
 msgstr "E368: erhielt SIG%s in libcall()"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E369: Invalid item in %s%%[]"
 msgstr "E369: Ungόltiges Element in %s%%[]"
 
@@ -5299,13 +5248,13 @@ msgstr "E382: Kann nicht schreiben, 'buf
 msgid "E383: Invalid search string: %s"
 msgstr "E383: Unzulδssiges Suchmuster: %s"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E384: Search hit TOP without match for: %s"
 msgstr "E384: Suche erreichte den ANFANG ohne Treffer fόr: %s"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E385: Search hit BOTTOM without match for: %s"
 msgstr "E385: Suche erreichte das ENDE ohne Treffer fόr: %s"
 
@@ -5399,8 +5348,8 @@ msgstr "E409: Unbekannter Gruppenname: %
 msgid "E410: Invalid :syntax subcommand: %s"
 msgstr "E410: Ungόltiger :syntax Befehl: %s"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E411: Highlight group not found: %s"
 msgstr "E411: Hervorhebungsgruppe nicht gefunden: %s"
 
@@ -5416,18 +5365,18 @@ msgstr "E413: Zu viele Argumente: \":hig
 msgid "E414: Group has settings, highlight link ignored"
 msgstr "E414: Gruppe hat Einstellungen, highlight link ignoriert"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E415: Unexpected equal sign: %s"
 msgstr "E415: Unerwartetes Gleichheitszeichen: %s"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E416: Missing equal sign: %s"
 msgstr "E416: fehlendes Gleichheitszeichen: %s"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E417: Missing argument: %s"
 msgstr "E417: Fehlendes Argument: %s"
 
@@ -5445,8 +5394,8 @@ msgstr "E420: Hintergrundfarbe unbekannt
 msgid "E421: Color name or number not recognized: %s"
 msgstr "E421: Unbekannte Farbbezeichnung oder -Nummer: %s"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E422: Terminal code too long: %s"
 msgstr "E422: Terminal-Code zu lang: %s"
 
@@ -5460,8 +5409,8 @@ msgstr "E424: Zu viele verschieden Hervo
 msgid "E425: Cannot go before first matching tag"
 msgstr "E425: Kann nicht vor den ersten passenden Tag hinausgehen"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E426: Tag not found: %s"
 msgstr "E426: Konnte Tag \"%s\" nicht finden"
 
@@ -5626,8 +5575,8 @@ msgstr ""
 "E468: Argument fόr Vervollstδndigung nur fόr benutzerdefinierte "
 "Vervollstδndigung erlaubt"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E469: Invalid cscopequickfix flag %c for %c"
 msgstr "E469: Unzulδssiges cscopequickfix Flag %c fόr %c"
 
@@ -5720,8 +5669,8 @@ msgstr "E489: kein CallStack zur Ersetzu
 msgid "E490: No fold found"
 msgstr "E490: Keine Faltung gefunden"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E491: JSON decode error at '%s'"
 msgstr "E491: JSON Dekodierungsfehler in Zeile '%s'"
 
@@ -5807,13 +5756,12 @@ msgstr ""
 
 #, c-format
 msgid ""
-"E513: write error, conversion failed in line %ld (make 'fenc' empty to "
+"E513: Write error, conversion failed in line %ld (make 'fenc' empty to "
 "override)"
 msgstr ""
-"E513: Schreibfehler, Konvertierung in Zeile %ld fehlgeschlagen (leere 'fenc' "
-"um es zu erzwingen)"
-
-# TODO: Capitalise first word of message?
+"E513: Schreibfehler, Konvertierung fόr Zeile %ld fehlgeschlagen (leere 'fenc' "
+"zum Erzwingen)"
+
 msgid "E514: Write error (file system full?)"
 msgstr "E514: Schreibfehler (Dateisystem voll?)"
 
@@ -5897,6 +5845,10 @@ msgid "E537: 'commentstring' must be emp
 msgstr "E537: 'commentstring' muss leer sein oder %s enthalten"
 
 #, c-format
+msgid "E538: Pattern found in every line: %s"
+msgstr "E538: Muster in jeder Zeile gefunden: %s"
+
+#, c-format
 msgid "E539: Illegal character <%s>"
 msgstr "E539: Unzulδssiges Zeichen <%s>"
 
@@ -6006,8 +5958,8 @@ msgstr ""
 "E571: Dieser Befehl ist nicht verfόgbar: die Tcl Bibliothek konnte nicht "
 "geladen werden."
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E572: Exit code %d"
 msgstr "E572: Exit-Code %d"
 
@@ -6152,26 +6104,16 @@ msgstr "E612: Zu viele Zeichen definiert
 msgid "E613: Unknown printer font: %s"
 msgstr "E613: Unbekannte Druckerschriftart: %s"
 
-msgid "E614: vim_SelFile: can't return to current directory"
-msgstr "E614: vim_SelFile: kann nicht zum aktuellen Verzeichnis zurόckkehren"
-
-msgid "E615: vim_SelFile: can't get current directory"
-msgstr "E615: vim_SelFile: aktuelles Verzeichnis kann nicht ermittelt werden"
-
-#, c-format
-msgid "E616: vim_SelFile: can't get font %s"
-msgstr "E616: vim_SelFile: kann Schriftart %s nicht erhalten"
-
 msgid "E617: Cannot be changed in the GTK GUI"
 msgstr "E617: Kann in der GTK+ GUI nicht verδndert werden"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E618: File \"%s\" is not a PostScript resource file"
 msgstr "E618: Datei \"%s\" ist keine PostScript Ressource-Datei"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E619: File \"%s\" is not a supported PostScript resource file"
 msgstr "E619: Datei \"%s\" ist keine unterstόtzte PostScript Ressource-Datei"
 
@@ -6194,8 +6136,8 @@ msgstr "E623: Konnte cscope Prozess nich
 msgid "E624: Can't open file \"%s\""
 msgstr "E624: Datei \"%s\" kann nicht geφffnet werden"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E625: Cannot open cscope database: %s"
 msgstr "E625: Kann cscope Datenbank nicht φffnen: %s"
 
@@ -6203,18 +6145,18 @@ msgstr "E625: Kann cscope Datenbank nicht φffnen: %s"
 msgid "E626: Cannot get cscope database information"
 msgstr "E626: Kann cscope Datenbank-Informationen nicht bekommen"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E630: %s(): Write while not connected"
 msgstr "E630: %s(): geschrieben ohne eine Verbindung hergestellt zu haben"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E631: %s(): Write failed"
 msgstr "E631: %s(): Schreiben fehlgeschlagen"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E654: Missing delimiter after search pattern: %s"
 msgstr "E654: Fehlendes Trennzeichen nach Suchmuster: %s"
 
@@ -6251,8 +6193,8 @@ msgstr "E664: Liste der Δnderungen ist leer"
 msgid "E665: Cannot start GUI, no valid font found"
 msgstr "E665: GUI kann nicht gestartet werden, keine gόltige Schrift gefunden"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E666: Compiler not supported: %s"
 msgstr "E666: Compiler nicht unterstόtzt: %s"
 
@@ -6316,8 +6258,8 @@ msgstr "E682: Ungόltiges Suchmuster oder Trennzeichen"
 msgid "E683: File name missing or invalid pattern"
 msgstr "E683: Dateiname fehlt oder ungόltiges Muster"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E684: List index out of range: %ld"
 msgstr "E684: Index der Liste auίerhalb des zulδssigen Bereichs: %ld"
 
@@ -6657,8 +6599,8 @@ msgstr "E780: .sug Datei ist fόr eine neuere Version von Vim: %s"
 msgid "E781: .sug file doesn't match .spl file: %s"
 msgstr "E781: .sug Datei passt nicht zur .spl Datei: %s"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E782: Error while reading .sug file: %s"
 msgstr "E782: Fehler beim Lesen der .sug Datei: %s"
 
@@ -6833,8 +6775,8 @@ msgstr "E827: Undo-Datei ist verschlόsselt: %s"
 msgid "E828: Cannot open undo file for writing: %s"
 msgstr "E828: Undo-Datei kann nicht zum Schreiben geφffnet werden: %s"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E829: Write error in undo file: %s"
 msgstr "E829: Fehler beim Schreiben in Undo-Datei: %s"
 
@@ -7018,7 +6960,8 @@ msgid "E877: (NFA regexp) Invalid charac
 msgstr "E877: (NFA Regexp) Ungόltige Zeichenklasse: %d"
 
 msgid "E878: (NFA regexp) Could not allocate memory for branch traversal!"
-msgstr "E878: (NFA Regexp) Konnte nicht Speicher allokieren um Δste zu durchlaufen!"
+msgstr ""
+"E878: (NFA Regexp) Konnte nicht Speicher allokieren um Δste zu durchlaufen!"
 
 msgid "E879: (NFA regexp) Too many \\z("
 msgstr "E879: (NFA Regexp) Zu viele \\z("
@@ -7033,10 +6976,10 @@ msgid "E882: Uniq compare function faile
 msgstr "E882: Die Uniq Vergleichsfunktion ist fehlgeschlagen"
 
 msgid ""
-"E883: search pattern and expression register may not contain two or more "
+"E883: Search pattern and expression register may not contain two or more "
 "lines"
 msgstr ""
-"E883: Suchmuster- und Ausdrucksregister dόrfen nicht mehr als 1 Zeile "
+"E883: Suchmuster- und Ausdrucksregister dόrfen nicht mehr als 2 Zeilen "
 "enthalten"
 
 #, c-format
@@ -7065,8 +7008,8 @@ msgstr "E888: (NFA regexp) kann nicht wi
 msgid "E889: Number required"
 msgstr "E889: Zahl erforderlich"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E890: Trailing char after ']': %s]%s"
 msgstr "E890: άberschόssige Zeichen nach ']': %s]%s"
 
@@ -7128,8 +7071,8 @@ msgstr "E904: Letztes Argument fόr expr/call muss eine Zahl sein"
 msgid "E904: Third argument for call must be a list"
 msgstr "E904: Drittes Argument fόr call muss eine Liste sein"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E905: Received unknown command: %s"
 msgstr "E905: Unbekannter Befehl empfangen: %s"
 
@@ -7140,8 +7083,8 @@ msgstr "E906: Kein offener Channel"
 msgid "E907: Using a special value as a Float"
 msgstr "E907: Benutze Spezialvariable als Float"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E908: Using an invalid value as a String: %s"
 msgstr "E908: Ungόltiger Wert als Zeichenkette verwendet: %s"
 
@@ -7177,8 +7120,8 @@ msgstr "E916: kein gόltiger Job"
 msgid "E917: Cannot use a callback with %s()"
 msgstr "E917: Kann keinen Callback mit %s() durchfόhren"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E918: Buffer must be loaded: %s"
 msgstr "E918: Buffer muss geladen sein: %s"
 
@@ -7239,8 +7182,8 @@ msgstr "E933: Funktion wurde gelφscht: %s"
 msgid "E934: Cannot jump to a buffer that does not have a name"
 msgstr "E934: Kann nicht zu einem Buffer ohne Namen springen"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E935: Invalid submatch number: %d"
 msgstr "E935: Ungόltige Submatch Nummer: %d"
 
@@ -7339,8 +7282,8 @@ msgstr "E961: Keine Zeilennummer fόr  \"<slnum>\" vorhanden"
 msgid "E962: Invalid action: '%s'"
 msgstr "E962: Ungόltige Aktion '%s'"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E963: Setting %s to value with wrong type"
 msgstr "E963: %s auf Wert mit falschem Typ gesetzt"
 
@@ -7448,8 +7391,8 @@ msgstr ""
 "E992: Nicht erlaubt innerhalb einer Modeline, da die Option 'modelineexpr' "
 "deaktiviert ist"
 
-#, c-format
-# TODO: Capitalise first word of message?
+# TODO: Capitalise first word of message?
+#, c-format
 msgid "E993: Window %d is not a popup window"
 msgstr "E993: Fenster %d ist kein Popup-Fenster"
 
@@ -7642,8 +7585,8 @@ msgid "E1040: Cannot use :scriptversion 
 msgstr "E1040: :scriptversion kann nicht nach :vim9script verwendet werden"
 
 #, c-format
-msgid "E1041: Redefining script item %s"
-msgstr "E1041: Neudefinition von Scriptelement %s"
+msgid "E1041: Redefining script item: \"%s\""
+msgstr "E1041: Neudefinition von Scriptelement \"%s\""
 
 msgid "E1042: Export can only be used in vim9script"
 msgstr "E1042: Export kann nur fόr Vim9script verwendet werden"
@@ -7720,6 +7663,10 @@ msgid "E1064: Yank register changed whil
 msgstr "E1064: Kopier-Register wurde wδhrend der Nutzung verδndert"
 
 #, c-format
+msgid "E1065: Command cannot be shortened: %s"
+msgstr "E1065: Befehl kann nicht gekόrzt werden: %s"
+
+#, c-format
 msgid "E1066: Cannot declare a register: %s"
 msgstr "E1066: Kann kein Register deklarieren: %s"
 
@@ -7761,10 +7708,22 @@ msgstr "E1076: Vim wurde nicht mit der \"float\"-Eigenschaft όbersetzt"
 msgid "E1077: Missing argument type for %s"
 msgstr "E1077: Fehlender Argumenttyp fόr %s"
 
+msgid "E1078: Invalid command \"nested\", did you mean \"++nested\"?"
+msgstr "E1078: Ungόltiger Befehl \"nested\", war \"++nested\" gemeint?"
+
+msgid "E1079: Cannot declare a variable on the command line"
+msgstr "E1079: Kann Variable nicht in der Befehlszeile deklarieren"
+
+msgid "E1080: Invalid assignment"
+msgstr "E1080: Ungόltiges Argument"
+
 #, c-format
 msgid "E1081: Cannot unlet %s"
 msgstr "E1081: Kann Variable nicht entfernen %s"
 
+msgid "E1082: Command modifier without command"
+msgstr "E1082: Befehlsmodifier ohne Befehl"
+
 msgid "E1083: Missing backtick"
 msgstr "E1083: Fehlender Backtick:"
 
@@ -7776,12 +7735,12 @@ msgstr "E1084: Vim9 Funktion %s kann nicht gelφscht werden"
 msgid "E1085: Not a callable type: %s"
 msgstr "E1085: Kein aufrufbarer Typ: %s"
 
-msgid "E1086: Function reference invalid"
-msgstr "E1086: Funktionsreferenz ungόltig"
-
 msgid "E1087: Cannot use an index when declaring a variable"
 msgstr "E1087: Kann Index nicht verwenden, wenn eine Variable deklariert wird"
 
+msgid "E1088: Script cannot import itself"
+msgstr "E1088: Script kann sich nicht selbst importieren"
+
 #, c-format
 msgid "E1089: Unknown variable: %s"
 msgstr "E1089: Unbekannte Variable: %s"
@@ -7794,6 +7753,9 @@ msgstr "E1090: Kann dem Argument nicht z
 msgid "E1091: Function is not compiled: %s"
 msgstr "E1091: Funktion ist nicht kompiliert: %s"
 
+msgid "E1092: Cannot nest :redir"
+msgstr "E1092: Kann :redir nicht verschachteln"
+
 #, c-format
 msgid "E1093: Expected %d items but got %d"
 msgstr "E1093: Erwartete %d Eintrδge, aber erhielt %d"
@@ -7886,11 +7848,11 @@ msgstr "E1116: \"assert_fails()\" fόnftes Argument muss eine Zahl sein"
 msgid "E1117: Cannot use ! with nested :def"
 msgstr "E1117: Kann nicht ! innerhalb verschachtelter :def verwenden"
 
-msgid "E1118: Cannot change list"
-msgstr "E1118: Kann Liste nicht δndern"
-
-msgid "E1119: Cannot change list item"
-msgstr "E1119: Kann Listenwert nicht δndern"
+msgid "E1118: Cannot change locked list"
+msgstr "E1118: Kann gesperrte Liste nicht δndern"
+
+msgid "E1119: Cannot change locked list item"
+msgstr "E1119: Kann gesperrten Listenwert nicht δndern"
 
 msgid "E1120: Cannot change dict"
 msgstr "E1120: Kann Dictionary nicht δndern"
@@ -7964,6 +7926,10 @@ msgstr "E1140: :for Argument muss eine F
 msgid "E1141: Indexable type required"
 msgstr "E1141: indexierbarer Typ erforderlich"
 
+msgid "E1142: Calling test_garbagecollect_now() while v:testing is not set"
+msgstr "E1142: Rufe test_garbagecollect_now() auf, obwohl v:testing nicht"
+"definiert wurde"
+
 #, c-format
 msgid "E1143: Empty expression: \"%s\""
 msgstr "E1143: Leerer Ausdruck: \"%s\""
@@ -8016,8 +7982,9 @@ msgstr "E1156: Die Argumentenliste kann nicht rekursiv geδndert werden"
 msgid "E1157: Missing return type"
 msgstr "E1157: Fehlender Rόckgabetyp"
 
-msgid "E1158: Cannot use flatten() in Vim9 script"
+msgid "E1158: Cannot use flatten() in Vim9 script, use flattennew()"
 msgstr "E1158: flatten() kann nicht in Vim9 Script verwendet werden"
+"Benutze flattennew()"
 
 msgid "E1159: Cannot split a window when closing the buffer"
 msgstr ""
@@ -8061,6 +8028,10 @@ msgstr "E1167: Argumentname verdeckt bes
 msgid "E1168: Argument already declared in the script: %s"
 msgstr "E1168: Argument bereits in Script %s deklariert"
 
+#, c-format
+msgid "E1169: Expression too recursive: %s"
+msgstr "E1169: Ausdruck zu rekursiv: %s"
+
 msgid "E1170: Cannot use #{ to start a comment"
 msgstr "E1170: Kann #{ nicht als Beginn eines Kommentars verwenden"
 
@@ -8107,8 +8078,9 @@ msgstr "E1180: der Typ der variablen Arg
 msgid "E1181: Cannot use an underscore here"
 msgstr "E1181: Unterstrich kann hier nicht genutzt werden"
 
-msgid "E1182: Blob required"
-msgstr "E1182: Blob erforderlich"
+#, c-format
+msgid "E1182: Cannot define a dict function in Vim9 script: %s"
+msgstr "E1182: Kann eine Dict-Function nicht in Vim9 Scrfipt definieren: %s"
 
 #, c-format
 msgid "E1183: Cannot use a range with an assignment operator: %s"
@@ -8117,9 +8089,6 @@ msgstr "E1183: Kann einen Bereich nicht 
 msgid "E1184: Blob not set"
 msgstr "E1184: Blob nicht gesetzt"
 
-msgid "E1185: Cannot nest :redir"
-msgstr "E1185: Kann :redir nicht verschachteln"
-
 msgid "E1185: Missing :redir END"
 msgstr "E1185: Fehlendes :redir END"
 
@@ -8311,9 +8280,6 @@ msgstr ""
 msgid "E1234: legacy must be followed by a command"
 msgstr "E1234: legacy muss von einem Befehl gefolgt werden"
 
-msgid "E1235: Function reference is not set"
-msgstr "E1235: Funktionsreferenz nicht gesetzt"
-
 #, c-format
 msgid "E1236: Cannot use %s itself, it is imported"
 msgstr "E1236: Kann %s nicht verwenden, es wurde import"
@@ -8395,7 +8361,8 @@ msgstr "E1256: Zeichenkette oder Funktion erforderlich fόr Argument %d"
 
 #, c-format
 msgid "E1257: Imported script must use \"as\" or end in .vim: %s"
-msgstr "E1257: Importiertes Script muss \"as\" verwenden oder mit .vim enden: %s"
+msgstr ""
+"E1257: Importiertes Script muss \"as\" verwenden oder mit .vim enden: %s"
 
 #, c-format
 msgid "E1258: No '.' after imported name: %s"
@@ -8416,13 +8383,79 @@ msgstr "E1261: Kann .vim ohne \"as\" nic
 msgid "E1262: Cannot import the same script twice: %s"
 msgstr "E1262: Kann das gleich Script nicht mehrmals importieren: %s"
 
+msgid "E1263: Cannot use name with # in Vim9 script, use export instead"
+msgstr "E1263: Kann Namen mit # nicht in Vim9 Script benutzen, benutze export"
+
 #, c-format
 msgid "E1264: Autoload import cannot use absolute or relative path: %s"
-msgstr "E1264: Autoload import kann keinen absoluten oder relativen Pfad nutzen: %s"
+msgstr ""
+"E1264: Autoload import kann keinen absoluten oder relativen Pfad nutzen: %s"
 
 msgid "E1265: Cannot use a partial here"
 msgstr "E1265: Kann Partial hier nicht verwenden"
 
+msgid ""
+"E1266: Critical error in python3 initialization, check your python3 "
+"installation"
+msgstr ""
+"E1266: Kritischer Fehler bei der Python3 Initializierierung, bitte "
+"prόfe Python3 Installation"
+
+#, c-format
+msgid "E1267: Function name must start with a capital: %s"
+msgstr "E1267: Funktion muss mit einem Groίbuchstaben anfangen: %s"
+
+#, c-format
+msgid "E1268: Cannot use s: in Vim9 script: %s"
+msgstr "E1268: Kann s: nicht mit Vim9 Script verwenden: %s"
+
+#, c-format
+msgid "E1269: Cannot create a Vim9 script variable in a function: %s"
+msgstr "E1269: Kann Vim9 Script Variable nicht in Funktion: %s verwenden"
+
+msgid "E1270: Cannot use :s\\/sub/ in Vim9 script"
+msgstr "E1270: Kann :s\\/sub/ nicht in Vim9 Script verwenden"
+
+#, c-format
+msgid "E1271: Compiling closure without context: %s"
+msgstr "E1271: Kompiliere Closure ohne Kontext: %s"
+
+#, c-format
+msgid "E1272: Using type not in a script context: %s"
+msgstr "E1272: Typ wurde nicht in Skript-Kontext benutzt: %s"
+
+#, c-format
+msgid "E1273: (NFA regexp) missing value in '\\%%%c'"
+msgstr "E1273: (NFA Regexp) fehlender Wert in '\\%%%c'"
+
+msgid "E1274: No script file name to substitute for \"<script>\""
+msgstr "E1274: Script Dateiname zum Ersetzen fόr \"<sfile>\" fehlt"
+
+msgid "E1275: String or function required for ->(expr)"
+msgstr "E1275: Zeichenkette oder Funktion erforderlich fόr ->(expr)"
+
+#, c-format
+msgid "E1276: Illegal map mode string: '%s'"
+msgstr "E1276: Ungόltige Map-Mode Zeichenkette '%s'"
+
+msgid "E1277: Channel and job feature is not available"
+msgstr "E1277: Channel und Job Eigenschaft nicht verfόgbar"
+
+#, c-format
+msgid "E1278: Stray '}' without a matching '{': %s"
+msgstr "E1278: '}' ohne zugehφrige '{': %s"
+
+#, c-format
+msgid "E1279: Missing '}': %s"
+msgstr "E1279: Fehlende '}': %s"
+
+msgid "E1280: Illegal character in word"
+msgstr "E1280: Ungόltiges Zeichen in Wort"
+
+#, c-format
+msgid "E1281: Atom '\\%%#=%c' must be at the start of the pattern"
+msgstr "E1281: Atom '\\%%#=%c' muss am Anfang des Muster stehen"
+
 msgid "--No lines in buffer--"
 msgstr "--Keine Zeilen im Buffer--"
 
@@ -9271,6 +9304,9 @@ msgstr "das Fenster mit dem Mauszeiger w
 msgid "hide the mouse pointer while typing"
 msgstr "den Mauszeiger beim Tippen verstecken"
 
+msgid "report mouse movement events"
+msgstr "Mausbewegungsereignisse mitteilen"
+
 msgid ""
 "\"extend\", \"popup\" or \"popup_setpos\"; what the right\n"
 "mouse button is used for"
@@ -9612,6 +9648,9 @@ msgstr "Tasten, die C-Code Einrόcken im Einfόge-Modus auslφsen"
 msgid "list of words that cause more C-indent"
 msgstr "Liste an Wφrtern, die ein eweiteres C-Code Einrόcken auslφsen"
 
+msgid "list of scope declaration names used by cino-g"
+msgstr "Liste von Scope Deklaration genutzt fόr cino-g"
+
 msgid "expression used to obtain the indent of a line"
 msgstr "Ausdruck um den Einzug einer Zeile zu erhalten"
 
--- a/src/po/es.po
+++ b/src/po/es.po
@@ -12,8 +12,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Vim 7.2.284 (rev 1692)\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-05-05 18:59+0200\n"
-"PO-Revision-Date: 2022-05-12 20:18+0200\n"
+"POT-Creation-Date: 2022-05-24 22:01+1000\n"
+"PO-Revision-Date: 2022-05-24 22:18+1000\n"
 "Last-Translator: victorhck <victorhck@mailbox.org>\n"
 "Language-Team: Spanish <>\n"
 "Language: es_ES\n"
@@ -267,8 +267,8 @@ msgstr "Advertencia: uso de un mΓ©todo de cifrado dΓ©bil. Consultar :help 'cm'"
 
 msgid "Note: Encryption of swapfile not supported, disabling swap file"
 msgstr ""
-"Nota: No se admite el cifrado del archivo de intercambio, se deshabilita el"
-" archivo de intercambio"
+"Nota: No se admite el cifrado del archivo de intercambio, se deshabilita el "
+"archivo de intercambio"
 
 msgid "Enter encryption key: "
 msgstr "Introduzca la clave de cifrado: "
@@ -329,11 +329,8 @@ msgstr "argumento extend()"
 #, c-format
 msgid "Not enough memory to use internal diff for buffer \"%s\""
 msgstr ""
-"No hay suficiente memoria para usar la diferencia interna para el bΓΊfer \"%s\""
-
-# TODO: Capitalise first word of message?
-msgid "E684: List index out of range: %ld"
-msgstr "E684: Γ­ndice de lista fuera de rango: %ld"
+"No hay suficiente memoria para usar la diferencia interna para el bΓΊfer \"%s"
+"\""
 
 msgid "Patch file"
 msgstr "Archivo de parches"
@@ -415,8 +412,8 @@ msgstr "Bopomofo"
 
 msgid "Not enough memory to set references, garbage collection aborted!"
 msgstr ""
-"No hay suficiente memoria para establecer referencias, Β‘se cancelΓ³ la"
-" recolecciΓ³n de elementos no utilizados!"
+"No hay suficiente memoria para establecer referencias, Β‘se cancelΓ³ la "
+"recolecciΓ³n de elementos no utilizados!"
 
 msgid ""
 "\n"
@@ -428,11 +425,6 @@ msgstr ""
 msgid "&Ok"
 msgstr "&Aceptar"
 
-# TODO: Capitalise first word of message?
-msgid "E743: Variable nested too deep for (un)lock"
-msgstr "E743: La variable estΓ‘ anidada muy profundamente para (des)bloquear"
-
-
 msgid ""
 "&OK\n"
 "&Cancel"
@@ -443,30 +435,6 @@ msgstr ""
 msgid "called inputrestore() more often than inputsave()"
 msgstr "Se invocΓ³ \"inputrestore()\" mΓ‘s veces que \"inputsave()\""
 
-msgid "Save As"
-msgstr "Guardar como"
-
-#, c-format
-msgid "Save changes to \"%s\"?"
-msgstr "ΒΏGuardar los cambios en \"%s\"?"
-
-msgid "Warning: Entered other buffer unexpectedly (check autocommands)"
-msgstr ""
-"Advertencia: se ha entrado en otro bΓΊfer de forma inesperada (verifique las "
-"auto-Γ³rdenes)"
-
-#, c-format
-msgid "W20: Required python version 2.x not supported, ignoring file: %s"
-msgstr ""
-"W20: La versiΓ³n 2.x de Python requerida no es compatible, se ignora el"
-" archivo: %s"
-
-#, c-format
-msgid "W21: Required python version 3.x not supported, ignoring file: %s"
-msgstr ""
-"W21: La versiΓ³n 3.x de Python requerida no es compatible, se ignora el"
-" archivo: %s"
-
 #, fuzzy, c-format
 #~ msgid "<%s>%s%s  %d,  Hex %02x,  Oct %03o, Digr %s"
 #~ msgstr "<%s>%s%s  %d,  Hex %02x,  Octal %03o, Digr %s"
@@ -504,6 +472,9 @@ msgstr "%ld lΓ­neas filtradas"
 msgid "[No write since last change]\n"
 msgstr "[No se ha escrito nada al disco desde el ΓΊltimo cambio]\n"
 
+msgid "Save As"
+msgstr "Guardar como"
+
 msgid "Write partial file?"
 msgstr "ΒΏEscribir un archivo parcial?"
 
@@ -537,11 +508,6 @@ msgstr ""
 msgid "Edit File"
 msgstr "Editar archivo"
 
-# TODO: Capitalise first word of message?
-msgid "E724: Variable nested too deep for displaying"
-msgstr "E724: La variable estΓ‘ anidada demasiado profundamente para mostrarla"
-
-
 #, c-format
 msgid "replace with %s (y/n/a/q/l/^E/^Y)?"
 msgstr "ΒΏReemplazar con %s (y/n/a/q/l/^E/^Y)?"
@@ -584,6 +550,27 @@ msgstr "PatrΓ³n no encontrado: %s"
 msgid "No old files"
 msgstr "No hay archivos antiguos"
 
+#, c-format
+msgid "Save changes to \"%s\"?"
+msgstr "ΒΏGuardar los cambios en \"%s\"?"
+
+msgid "Warning: Entered other buffer unexpectedly (check autocommands)"
+msgstr ""
+"Advertencia: se ha entrado en otro bΓΊfer de forma inesperada (verifique las "
+"auto-Γ³rdenes)"
+
+#, c-format
+msgid "W20: Required python version 2.x not supported, ignoring file: %s"
+msgstr ""
+"W20: La versiΓ³n 2.x de Python requerida no es compatible, se ignora el "
+"archivo: %s"
+
+#, c-format
+msgid "W21: Required python version 3.x not supported, ignoring file: %s"
+msgstr ""
+"W21: La versiΓ³n 3.x de Python requerida no es compatible, se ignora el "
+"archivo: %s"
+
 msgid "Entering Ex mode.  Type \"visual\" to go to Normal mode."
 msgstr "Entrando al modo Ex. Escriba \"visual\" para ir al modo Normal."
 
@@ -603,8 +590,8 @@ msgstr "Se devolviΓ³ un rango invertido, OK para cambiar"
 msgid ""
 "INTERNAL: Cannot use EX_DFLALL with ADDR_NONE, ADDR_UNSIGNED or ADDR_QUICKFIX"
 msgstr ""
-"INTERNO: no se puede usar EX_DFLALL con ADDR_NONE, ADDR_UNSIGNED o"
-" ADDR_QUICKFIX"
+"INTERNO: no se puede usar EX_DFLALL con ADDR_NONE, ADDR_UNSIGNED o "
+"ADDR_QUICKFIX"
 
 #, c-format
 msgid "%d more file to edit.  Quit anyway?"
@@ -694,11 +681,6 @@ msgstr "Error"
 msgid "Interrupt"
 msgstr "InterrupciΓ³n"
 
-# TODO: Capitalise first word of message?
-msgid "E806: Using Float as a String"
-msgstr "E806: Usando \"Float\" como \"String\""
-
-
 msgid "[Command Line]"
 msgstr "[LΓ­nea de Γ³rdenes]"
 
@@ -723,10 +705,6 @@ msgstr "[El archivo es demasiado grande]
 msgid "[Permission Denied]"
 msgstr "[Permiso denegado]"
 
-# TODO: Capitalise first word of message?
-msgid "E698: Variable nested too deep for making a copy"
-msgstr "E698: La variable estΓ‘ anidada muy profundamente para hacer una copia"
-
 msgid "Vim: Reading from stdin...\n"
 msgstr "Vim: Leyendo desde la entrada estΓ‘ndar...\n"
 
@@ -835,8 +813,8 @@ msgstr "Consulte \":help W16\" para mΓ‘s informaciΓ³n."
 #, c-format
 msgid "W13: Warning: File \"%s\" has been created after editing started"
 msgstr ""
-"W13: Advertencia: el archivo \"%s\" ha sido creado despuΓ©s de que comenzΓ³ la"
-" ediciΓ³n"
+"W13: Advertencia: el archivo \"%s\" ha sido creado despuΓ©s de que comenzΓ³ la "
+"ediciΓ³n"
 
 msgid "Warning"
 msgstr "Advertencia"
@@ -974,11 +952,6 @@ msgstr "Nueva pestaΓ±a"
 msgid "Open Tab..."
 msgstr "Abrir pestaΓ±a..."
 
-# TODO: Capitalise first word of message?
-msgid "E144: Non-numeric argument to :z"
-msgstr "E144: Argumento no numΓ©rico para \":z\""
-
-
 msgid "Vim: Main window unexpectedly destroyed\n"
 msgstr "Vim: La ventana principal fue destruida inesperadamente.\n"
 
@@ -1137,11 +1110,6 @@ msgstr "Mostrar este mensaje"
 msgid "Kill a connection"
 msgstr "Matar una conexiΓ³n"
 
-#, c-format
-# TODO: Capitalise first word of message?
-msgid "E666: Compiler not supported: %s"
-msgstr "E666: El compilador no es compatible en esta versiΓ³n: %s"
-
 msgid "Reinit all connections"
 msgstr "Reiniciar todas las conexiones"
 
@@ -1304,10 +1272,6 @@ msgstr "fila %d columna %d"
 msgid "cannot insert/append line"
 msgstr "no se puede insertar/aΓ±adir lΓ­nea"
 
-# TODO: Capitalise first word of message?
-msgid "E179: Argument required for -complete"
-msgstr "E179: se necesita un argumento para \"-complete\""
-
 msgid "line number out of range"
 msgstr "el nΓΊmero de la lΓ­nea estΓ‘ fuera del rango"
 
@@ -1424,26 +1388,6 @@ msgstr "Buscando etiquetas."
 msgid "match in file"
 msgstr "coincidencia en el archivo"
 
-# TODO: Capitalise first word of message?
-msgid "E495: No autocommand file name to substitute for \"<afile>\""
-msgstr ""
-"E495: No se ha dado un nombre de archivo de auto-Γ³rdenes para sustituir a  "
-"\"<afile>\""
-
-# TODO: Capitalise first word of message?
-msgid "E496: No autocommand buffer number to substitute for \"<abuf>\""
-msgstr "E496: No existe un bΓΊfer de auto-Γ³rdenes para sustituir por \"<abuf>\""
-
-# TODO: Capitalise first word of message?
-msgid "E497: No autocommand match name to substitute for \"<amatch>\""
-msgstr ""
-"E497: NingΓΊn nombre de auto-orden concuerda para sustituir \"<amatch>\""
-
-# TODO: Capitalise first word of message?
-msgid "E498: No :source file name to substitute for \"<sfile>\""
-msgstr ""
-"E498: No hay un nombre de archivo \":source\" que sustituya a \"<sfile>\""
-
 msgid " Adding"
 msgstr " AΓ±adiendo"
 
@@ -1518,10 +1462,6 @@ msgid "Too many \"+command\", \"-c comma
 msgstr ""
 "Demasiados argumentos tales como: \"+orden\", \"-c orden\" o \"--cmd orden\""
 
-# TODO: Capitalise first word of message?
-msgid "E583: Multiple :else"
-msgstr "E583: Β‘\":else\" mΓΊltiple!"
-
 msgid "Invalid argument for"
 msgstr "Argumento no vΓ‘lido para"
 
@@ -1530,7 +1470,7 @@ msgid "%d files to edit\n"
 msgstr "%d archivos que editar\n"
 
 msgid "netbeans is not supported with this GUI\n"
-msgstr "netbeans no es compatible con esta GUI\n"
+msgstr "NetBeans no es compatible con esta GUI\n"
 
 msgid "'-nb' cannot be used: not enabled at compile time\n"
 msgstr "'-nb' no se puede usar: no se ha activado al compilar\n"
@@ -1556,11 +1496,6 @@ msgstr "Vim: Error: esta versiΓ³n de Vim no se ejecuta en una terminal Cygwin\n"
 msgid "Vim: Warning: Output is not to a terminal\n"
 msgstr "Vim: Advertencia: la salida no es un terminal\n"
 
-# Give up for a multiple ":finally" and ignore it.
-# TODO: Capitalise first word of message?
-msgid "E607: Multiple :finally"
-msgstr "E607: Β‘\":finally\" mΓΊltiple!"
-
 msgid "Vim: Warning: Input is not from a terminal\n"
 msgstr "Vim: Advertencia: la entrada no es desde un terminal\n"
 
@@ -1611,9 +1546,8 @@ msgid ""
 "Where case is ignored prepend / to make flag upper case"
 msgstr ""
 "\n"
-"Cuando mayΓΊscula y minΓΊscula son ignoradas anteponga \"/\" para cambiar la"
-" marca "
-"(\"flag\") a mayΓΊscula"
+"Cuando mayΓΊscula y minΓΊscula son ignoradas anteponga \"/\" para cambiar la "
+"marca (\"flag\") a mayΓΊscula"
 
 msgid ""
 "\n"
@@ -1804,11 +1738,6 @@ msgstr ""
 "--remote-wait-silent <archivos> Lo mismo, pero no se queja si no hay un "
 "servidor disponible"
 
-# TODO: Capitalise first word of message?
-msgid "E514: Write error (file system full?)"
-msgstr "E514: Error de escritura (ΒΏSistema de archivos lleno?)"
-
-
 msgid ""
 "--remote-tab[-wait][-silent] <files>  As --remote but use tab page per file"
 msgstr ""
@@ -1829,8 +1758,7 @@ msgstr ""
 
 msgid "--servername <name>\tSend to/become the Vim server <name>"
 msgstr ""
-"--servername <nombre>\tEnvΓ­ar a/se convierte en el servidor Vim con "
-"<nombre>"
+"--servername <nombre>\tEnvΓ­ar a/se convierte en el servidor Vim con <nombre>"
 
 msgid "--startuptime <file>\tWrite startup timing messages to <file>"
 msgstr ""
@@ -1845,16 +1773,12 @@ msgstr "-i <viminfo>\t\tUsar <viminfo> e
 
 msgid "--clean\t\t'nocompatible', Vim defaults, no plugins, no viminfo"
 msgstr ""
-"--clean\t\t'nocompatible', valores predeterminados de Vim, sin complementos,"
-" sin viminfo"
+"--clean\t\t'nocompatible', valores predeterminados de Vim, sin complementos, "
+"sin viminfo"
 
 msgid "-h  or  --help\tPrint Help (this message) and exit"
 msgstr "-h  o  --help\tMuestra la ayuda (este mensaje) y sale"
 
-# TODO: Capitalise first word of message?
-msgid "E206: Patchmode: can't touch empty original file"
-msgstr "E206: Modo de parcheo: no se puede tocar el archivo original vacΓ­o"
-
 msgid "--version\t\tPrint version information and exit"
 msgstr "--version\t\tMuestra la informaciΓ³n de la versiΓ³n y sale"
 
@@ -1926,8 +1850,8 @@ msgstr "--socketid <xid>\tAbre Vim dentr
 
 msgid "--echo-wid\t\tMake gvim echo the Window ID on stdout"
 msgstr ""
-"--echo-wid\t\tHacer que gvim haga eco del ID de la ventana en la salida"
-" estΓ‘ndar"
+"--echo-wid\t\tHacer que gvim haga eco del ID de la ventana en la salida "
+"estΓ‘ndar"
 
 msgid "-P <parent title>\tOpen Vim inside parent application"
 msgstr "-P <tΓ­tulo ventana padre>\tAbre Vim dentro de la aplicaciΓ³n padre"
@@ -1980,7 +1904,8 @@ msgid ""
 "Maybe no changes were made or Vim did not update the swap file."
 msgstr ""
 "\n"
-"Tal vez no se realizaron cambios o Vim no actualizΓ³ el archivo de intercambio."
+"Tal vez no se realizaron cambios o Vim no actualizΓ³ el archivo de "
+"intercambio."
 
 msgid " cannot be used with this version of Vim.\n"
 msgstr " no puede usarse con esta versiΓ³n de Vim.\n"
@@ -2037,8 +1962,8 @@ msgid ""
 "If you wrote the text file after changing the crypt key press enter"
 msgstr ""
 "\n"
-"Si escribiΓ³ el archivo de texto despuΓ©s de cambiar la clave de cifrado,"
-" presione intro"
+"Si escribiΓ³ el archivo de texto despuΓ©s de cambiar la clave de cifrado, "
+"presione intro"
 
 msgid ""
 "\n"
@@ -2050,10 +1975,6 @@ msgstr ""
 msgid "???MANY LINES MISSING"
 msgstr "???FALTAN MUCHAS LÍNEAS"
 
-# TODO: Capitalise first word of message?
-msgid "E218: Autocommand nesting too deep"
-msgstr "E218: La auto-orden se anida en exceso"
-
 msgid "???LINE COUNT WRONG"
 msgstr "???RECUENTO DE LÍNEAS EQUIVOCADO"
 
@@ -2095,8 +2016,8 @@ msgstr ""
 
 msgid "Recovery completed. Buffer contents equals file contents."
 msgstr ""
-"RecuperaciΓ³n completada. El contenido del bΓΊfer es igual al contenido del"
-" archivo."
+"RecuperaciΓ³n completada. El contenido del bΓΊfer es igual al contenido del "
+"archivo."
 
 msgid ""
 "\n"
@@ -2114,32 +2035,8 @@ msgstr ""
 
 msgid "Using crypt key from swap file for the text file.\n"
 msgstr ""
-"Usando la clave de cifrado del archivo de intercambio para el archivo de"
-" texto.\n"
-
-# TODO: Capitalise first word of message?
-msgid "E223: Recursive mapping"
-msgstr "E223: AsociaciΓ³n recursiva"
-
-#, c-format
-# TODO: Capitalise first word of message?
-msgid "E224: Global abbreviation already exists for %s"
-msgstr "E224: Ya existe una abreviatura global para %s"
-
-#, c-format
-# TODO: Capitalise first word of message?
-msgid "E225: Global mapping already exists for %s"
-msgstr "E225: Ya existe una asociaciΓ³n global para %s"
-
-#, c-format
-# TODO: Capitalise first word of message?
-msgid "E226: Abbreviation already exists for %s"
-msgstr "E226: Ya existe una abreviatura para %s"
-
-#, c-format
-# TODO: Capitalise first word of message?
-msgid "E227: Mapping already exists for %s"
-msgstr "E227: Ya existe una asociaciΓ³n para %s"
+"Usando la clave de cifrado del archivo de intercambio para el archivo de "
+"texto.\n"
 
 # use msg() to start the scrolling properly
 msgid "Swap files found:"
@@ -2450,8 +2347,8 @@ msgstr "Advertencia: la terminal no pued
 
 msgid "Type  :qa!  and press <Enter> to abandon all changes and exit Vim"
 msgstr ""
-"Escriba  :qa!  y presione <Intro> para abandonar todos los cambios y salir de"
-" Vim"
+"Escriba  :qa!  y presione <Intro> para abandonar todos los cambios y salir "
+"de Vim"
 
 msgid "Type  :qa  and press <Enter> to exit Vim"
 msgstr "Escriba  :qa  y pulse <Intro>\" para salir de Vim"
@@ -2498,9 +2395,8 @@ msgid ""
 "Selected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Chars; %lld of "
 "%lld Bytes"
 msgstr ""
-"SelecciΓ³n %s%ld de %ld LΓ­neas; %lld de %lld Palabras; %lld de %lld"
-" Caracteres; "
-"%lld de %lld Bytes"
+"SelecciΓ³n %s%ld de %ld LΓ­neas; %lld de %lld Palabras; %lld de %lld "
+"Caracteres; %lld de %lld Bytes"
 
 #, c-format
 msgid "Col %s of %s; Line %ld of %ld; Word %lld of %lld; Byte %lld of %lld"
@@ -2512,9 +2408,8 @@ msgid ""
 "Col %s of %s; Line %ld of %ld; Word %lld of %lld; Char %lld of %lld; Byte "
 "%lld of %lld"
 msgstr ""
-"Col %s de %s; LΓ­nea %ld de %ld; Palabra %lld de %lld; CarΓ‘cter %lld de %lld"
-" Byte "
-"%lld de %lld"
+"Col %s de %s; LΓ­nea %ld de %ld; Palabra %lld de %lld; CarΓ‘cter %lld de %lld "
+"Byte %lld de %lld"
 
 #, c-format
 msgid "(+%lld for BOM)"
@@ -2778,16 +2673,16 @@ msgstr "No se pudo abrir el archivo \"%s
 msgid "cannot have both a list and a \"what\" argument"
 msgstr "no puede tener una lista y un argumento \"what\""
 
-msgid "External submatches:\n"
-msgstr "Sub-coincidencias externas:\n"
-
 msgid "Switching to backtracking RE engine for pattern: "
 msgstr "Cambiar al motor RE de retroceso para el patrΓ³n:"
 
+msgid "External submatches:\n"
+msgstr "Sub-coincidencias externas:\n"
+
 msgid "Could not open temporary log file for writing, displaying on stderr... "
 msgstr ""
-"No se pudo abrir el archivo de registro temporal para escribir, mostrar en"
-" stderr..."
+"No se pudo abrir el archivo de registro temporal para escribir, mostrar en "
+"stderr..."
 
 #, c-format
 msgid " into \"%c"
@@ -3001,8 +2896,8 @@ msgstr " (no compatible)"
 #, c-format
 msgid "Warning: Cannot find word list \"%s_%s.spl\" or \"%s_ascii.spl\""
 msgstr ""
-"Advertencia: No se pudo hallar la lista de palabras \"%s_%s.spl\" o \"%s_"
-"ascii.spl\""
+"Advertencia: No se pudo hallar la lista de palabras \"%s_%s.spl\" o "
+"\"%s_ascii.spl\""
 
 #, c-format
 msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
@@ -4006,8 +3901,8 @@ msgstr "E370: No se pudo cargar la bibli
 
 msgid "Sorry, this command is disabled: the Perl library could not be loaded."
 msgstr ""
-"Lo siento, esta orden estΓ‘ desactivada: no se pudo cargar la biblioteca de"
-" Perl."
+"Lo siento, esta orden estΓ‘ desactivada: no se pudo cargar la biblioteca de "
+"Perl."
 
 msgid "Edit with Vim using &tabpages"
 msgstr "Editar con Vim utilizando pes&taΓ±as"
@@ -4203,7 +4098,7 @@ msgid "E55: Unmatched %s)"
 msgstr "E55: %s) sin pareja"
 
 #, c-format
-msgid "E59: invalid character after %s@"
+msgid "E59: Invalid character after %s@"
 msgstr "E59: CarΓ‘cter invΓ‘lido despuΓ©s de %s@"
 
 #, c-format
@@ -4218,7 +4113,7 @@ msgstr "E61: Anidado %s*"
 msgid "E62: Nested %s%c"
 msgstr "E62: Anidado %s%c"
 
-msgid "E63: invalid use of \\_"
+msgid "E63: Invalid use of \\_"
 msgstr "E63: Uso invΓ‘lido de \\_"
 
 #, c-format
@@ -4253,7 +4148,7 @@ msgstr "E71: CarΓ‘cter ilegal despuΓ©s de %s%%"
 msgid "E72: Close error on swap file"
 msgstr "E72: Error de cierre en el archivo de intercambio"
 
-msgid "E73: tag stack empty"
+msgid "E73: Tag stack empty"
 msgstr "E73: La pila de etiquetas ('tagstack') estΓ‘ vacΓ­a"
 
 msgid "E74: Command too complex"
@@ -4306,8 +4201,8 @@ msgstr "E88: No se pudo regresar antes del primer bΓΊfer"
 #, c-format
 msgid "E89: No write since last change for buffer %d (add ! to override)"
 msgstr ""
-"E89: No se guardΓ³ el archivo desde el ΓΊltimo cambio del bΓΊfer %d (aΓ±ada !\""
-" para sobreescribir)"
+"E89: No se guardΓ³ el archivo desde el ΓΊltimo cambio del bΓΊfer %d (aΓ±ada !\" "
+"para sobreescribir)"
 
 msgid "E90: Cannot unload last buffer"
 msgstr "E90: No se pudo descargar el ΓΊltimo bΓΊfer"
@@ -4503,7 +4398,7 @@ msgstr ""
 msgid "E143: Autocommands unexpectedly deleted new buffer %s"
 msgstr "E143: Las auto-Γ³rdenes han eliminado al nuevo bΓΊfer %s"
 
-msgid "E144: non-numeric argument to :z"
+msgid "E144: Non-numeric argument to :z"
 msgstr "E144: Argumento no numΓ©rico para :z"
 
 msgid "E145: Shell commands and some functionality not allowed in rvim"
@@ -4634,7 +4529,7 @@ msgid "E178: Invalid default value for c
 msgstr "E178: El valor predeterminado para el recuento no es vΓ‘lido"
 
 #, c-format
-msgid "E179: argument required for %s"
+msgid "E179: Argument required for %s"
 msgstr "E179: Se necesita un argumento para %s"
 
 #, c-format
@@ -4731,10 +4626,10 @@ msgstr ""
 "E204: La auto-orden ha cambiado el nΓΊmero de lΓ­neas en forma inesperada"
 
 msgid "E205: Patchmode: can't save original file"
-msgstr "E205: Modo de parcheo: no se puede guardar el archivo original"
-
-msgid "E206: patchmode: can't touch empty original file"
-msgstr "E206: Modo de parcheo: no se puede tocar el archivo original vacΓ­o"
+msgstr "E205: Modo de parcheo: No se puede guardar el archivo original"
+
+msgid "E206: Patchmode: can't touch empty original file"
+msgstr "E206: Modo de parcheo: No se puede tocar el archivo original vacΓ­o"
 
 msgid "E207: Can't delete backup file"
 msgstr "E207: No se pudo borrar el archivo de respaldo"
@@ -4760,8 +4655,7 @@ msgstr "E212: No se pudo abrir el archivo para escribir en Γ©l"
 
 msgid "E213: Cannot convert (add ! to write without conversion)"
 msgstr ""
-"E213: No se pudo convertir (aΓ±ada ! para escribir el archivo sin "
-"conversiΓ³n)"
+"E213: No se pudo convertir (aΓ±ada ! para escribir el archivo sin conversiΓ³n)"
 
 msgid "E214: Can't find temp file for writing"
 msgstr "E214: No se pudo encontrar el archivo temporal para escribir en Γ©l"
@@ -4781,7 +4675,7 @@ msgstr "E216: No existe tal grupo o even
 msgid "E217: Can't execute autocommands for ALL events"
 msgstr "E217: No se pueden ejecutar las auto-Γ³rdenes para TODOS los eventos"
 
-msgid "E218: autocommand nesting too deep"
+msgid "E218: Autocommand nesting too deep"
 msgstr "E218: La auto-orden se anida en exceso"
 
 msgid "E219: Missing {."
@@ -4796,23 +4690,23 @@ msgstr "E221: El marcador no puede comenzar con letra minΓΊscula"
 msgid "E222: Add to internal buffer that was already read from"
 msgstr "E222: Agregar al bΓΊfer interno que ya se leyΓ³"
 
-msgid "E223: recursive mapping"
+msgid "E223: Recursive mapping"
 msgstr "E223: AsociaciΓ³n recursiva"
 
 #, c-format
-msgid "E224: global abbreviation already exists for %s"
+msgid "E224: Global abbreviation already exists for %s"
 msgstr "E224: Ya existe una abreviatura global para %s"
 
 #, c-format
-msgid "E225: global mapping already exists for %s"
+msgid "E225: Global mapping already exists for %s"
 msgstr "E225: Ya existe una asociaciΓ³n global para %s"
 
 #, c-format
-msgid "E226: abbreviation already exists for %s"
+msgid "E226: Abbreviation already exists for %s"
 msgstr "E226: Ya existe una abreviatura para %s"
 
 #, c-format
-msgid "E227: mapping already exists for %s"
+msgid "E227: Mapping already exists for %s"
 msgstr "E227: Ya existe una asociaciΓ³n para %s"
 
 msgid "E228: makemap: Illegal mode"
@@ -4833,7 +4727,7 @@ msgstr ""
 "E232: No se pudo crear un \"BalloonEval\" que contenga tanto el mensaje como "
 "la llamada de retorno"
 
-msgid "E233: cannot open display"
+msgid "E233: Cannot open display"
 msgstr "E233: No se pudo abrir la pantalla"
 
 #, c-format
@@ -4886,13 +4780,13 @@ msgid "E246: FileChangedShell autocomman
 msgstr "E246: La auto-orden \"FileChangedShell\" ha borrado el bΓΊfer"
 
 #, c-format
-msgid "E247: no registered server named \"%s\""
+msgid "E247: No registered server named \"%s\""
 msgstr "E247: El servidor llamado \"%s\" no estΓ‘ registrado"
 
 msgid "E248: Failed to send command to the destination program"
 msgstr "E248: No pude enviar la orden al programa de destino"
 
-msgid "E249: window layout changed unexpectedly"
+msgid "E249: Window layout changed unexpectedly"
 msgstr "E249: El diseΓ±o de la ventana cambiΓ³ inesperadamente"
 
 #, c-format
@@ -4907,8 +4801,8 @@ msgstr "E251: La propiedad de registro de VIM es incorrecta. Β‘Eliminada!"
 #, c-format
 msgid "E252: Fontset name: %s - Font '%s' is not fixed-width"
 msgstr ""
-"E252: La tipografΓ­a de impresiΓ³n de nombre: %s - el tipo de letra '%s' no es"
-" de ancho fijo"
+"E252: La tipografΓ­a de impresiΓ³n de nombre: %s - el tipo de letra '%s' no es "
+"de ancho fijo"
 
 #, c-format
 msgid "E253: Fontset name: %s"
@@ -4921,14 +4815,14 @@ msgstr "E254: No se pudo asignar el colo
 msgid "E255: Couldn't read in sign data"
 msgstr "E255: No se pudieron leer los datos de la seΓ±al"
 
-msgid "E257: cstag: tag not found"
+msgid "E257: cstag: Tag not found"
 msgstr "E257: cstag: etiqueta no encontrada"
 
 msgid "E258: Unable to send to client"
 msgstr "E258: Incapaz de enviar al cliente"
 
 #, c-format
-msgid "E259: no matches found for cscope query %s of %s"
+msgid "E259: No matches found for cscope query %s of %s"
 msgstr ""
 "E259: No se encontraron coincidencias para la bΓΊsqueda \"cscope\" %s de %s"
 
@@ -4936,11 +4830,11 @@ msgid "E260: Missing name after ->"
 msgstr "E260: Falta el nombre despuΓ©s de ->"
 
 #, c-format
-msgid "E261: cscope connection %s not found"
+msgid "E261: Cscope connection %s not found"
 msgstr "E261: No se ha encontrado la conexiΓ³n \"cscope\" %s"
 
 #, c-format
-msgid "E262: error reading cscope connection %d"
+msgid "E262: Error reading cscope connection %d"
 msgstr "E262: Error al leer la conexiΓ³n %d con \"cscope\""
 
 msgid ""
@@ -4962,26 +4856,26 @@ msgstr ""
 "E266: Lo siento, esta orden estΓ‘ desactivada, no se pudo cargar la "
 "biblioteca de Ruby"
 
-msgid "E267: unexpected return"
+msgid "E267: Unexpected return"
 msgstr "E267: \"return\" inesperado"
 
-msgid "E268: unexpected next"
+msgid "E268: Unexpected next"
 msgstr "E268: \"next\" inesperado"
 
-msgid "E269: unexpected break"
+msgid "E269: Unexpected break"
 msgstr "E269: \"break\" inesperado"
 
-msgid "E270: unexpected redo"
+msgid "E270: Unexpected redo"
 msgstr "E270: \"redo\" inesperado"
 
-msgid "E271: retry outside of rescue clause"
+msgid "E271: Retry outside of rescue clause"
 msgstr "E271: \"retry\" fuera de una clΓ‘usula \"rescue\""
 
-msgid "E272: unhandled exception"
+msgid "E272: Unhandled exception"
 msgstr "E272: ExcepciΓ³n sin manejar"
 
 #, c-format
-msgid "E273: unknown longjmp status %d"
+msgid "E273: Unknown longjmp status %d"
 msgstr "E273: El estado %d de \"longjmp\" es desconocido"
 
 msgid "E274: No white space allowed before parenthesis"
@@ -5029,10 +4923,10 @@ msgid "E287: Warning: Could not set dest
 msgstr ""
 "E287: Advertencia: No pude crear una llamada de retorno de destrucciΓ³n al IM"
 
-msgid "E288: input method doesn't support any style"
+msgid "E288: Input method doesn't support any style"
 msgstr "E288: El mΓ©todo de entrada no admite ningΓΊn estilo"
 
-msgid "E289: input method doesn't support my preedit type"
+msgid "E289: Input method doesn't support my preedit type"
 msgstr "E289: El mΓ©todo de entrada no soporta mi tipo de pre-ediciΓ³n"
 
 msgid "E290: List or number required"
@@ -5042,7 +4936,7 @@ msgstr "E290: Lista o nΓΊmero requerido"
 msgid "E292: Invalid count for del_bytes(): %ld"
 msgstr "E292: Recuento no vΓ‘lido para del_bytes(): %ld"
 
-msgid "E293: block was not locked"
+msgid "E293: Block was not locked"
 msgstr "E293: El bloque no estaba asegurado"
 
 msgid "E294: Seek error in swap file read"
@@ -5068,8 +4962,8 @@ msgstr "E298: ΒΏNo se obtuvo el bloque NΒΊ 2?"
 
 msgid "E299: Perl evaluation forbidden in sandbox without the Safe module"
 msgstr ""
-"E299: No se permite la evaluaciΓ³n de cΓ³digo Perl en \"sandbox\" sin el "
-"uso del mΓ³dulo \"Safe\""
+"E299: No se permite la evaluaciΓ³n de cΓ³digo Perl en \"sandbox\" sin el uso "
+"del mΓ³dulo \"Safe\""
 
 msgid "E300: Swap file already exists (symlink attack?)"
 msgstr ""
@@ -5130,23 +5024,23 @@ msgid "E314: Preserve failed"
 msgstr "E314: FallΓ³ la preservaciΓ³n del archivo"
 
 #, c-format
-msgid "E315: ml_get: invalid lnum: %ld"
-msgstr "E315: \"ml_get\": nΓΊmero de lΓ­nea no vΓ‘lido: %ld"
-
-#, c-format
-msgid "E316: ml_get: cannot find line %ld in buffer %d %s"
-msgstr "E316: \"ml_get\": no se pudo encontrar la lΓ­nea %ld en el bΓΊfer %d %s"
-
-msgid "E317: pointer block id wrong"
+msgid "E315: ml_get: Invalid lnum: %ld"
+msgstr "E315: \"ml_get\": NΓΊmero de lΓ­nea no vΓ‘lido: %ld"
+
+#, c-format
+msgid "E316: ml_get: Cannot find line %ld in buffer %d %s"
+msgstr "E316: \"ml_get\": No se pudo encontrar la lΓ­nea %ld en el bΓΊfer %d %s"
+
+msgid "E317: Pointer block id wrong"
 msgstr "E317: El id del bloque de punteros es incorrecto"
 
-msgid "E317: pointer block id wrong 2"
+msgid "E317: Pointer block id wrong 2"
 msgstr "E317: El id del bloque de punteros es incorrecto 2"
 
-msgid "E317: pointer block id wrong 3"
+msgid "E317: Pointer block id wrong 3"
 msgstr "E317: El id del bloque de punteros es incorrecto 3"
 
-msgid "E317: pointer block id wrong 4"
+msgid "E317: Pointer block id wrong 4"
 msgstr "E317: El id del bloque de punteros es incorrecto 4"
 
 msgid "E318: Updated too many blocks?"
@@ -5164,11 +5058,11 @@ msgid "E321: Could not reload \"%s\""
 msgstr "E321: No pude recargar \"%s\""
 
 #, c-format
-msgid "E322: line number out of range: %ld past the end"
+msgid "E322: Line number out of range: %ld past the end"
 msgstr "E322: NΓΊmero de lΓ­nea fuera de rango: %ld mΓ‘s allΓ‘ del final"
 
 #, c-format
-msgid "E323: line count wrong in block %ld"
+msgid "E323: Line count wrong in block %ld"
 msgstr "E323: Recuento de lΓ­neas errΓ³neo en el bloque %ld"
 
 msgid "E324: Can't open PostScript output file"
@@ -5303,7 +5197,7 @@ msgstr "E360: No se pudo ejecutar el intΓ©rprete de Γ³rdenes con la opciΓ³n -f"
 msgid "E362: Using a boolean value as a Float"
 msgstr "E362: Uso de un valor booleano como un flotante"
 
-msgid "E363: pattern uses more memory than 'maxmempattern'"
+msgid "E363: Pattern uses more memory than 'maxmempattern'"
 msgstr "E363: El patrΓ³n usa mΓ‘s memoria que 'maxmempattern'"
 
 #, c-format
@@ -5322,11 +5216,11 @@ msgid "E367: No such group: \"%s\""
 msgstr "E367: No existe el grupo: \"%s\""
 
 #, c-format
-msgid "E368: got SIG%s in libcall()"
+msgid "E368: Got SIG%s in libcall()"
 msgstr "E368: Obtuve SIG%s en libcall()"
 
 #, c-format
-msgid "E369: invalid item in %s%%[]"
+msgid "E369: Invalid item in %s%%[]"
 msgstr "E369: El elemento en %s%%[] no es vΓ‘lido"
 
 #, c-format
@@ -5379,11 +5273,11 @@ msgid "E383: Invalid search string: %s"
 msgstr "E383: La cadena de bΓΊsqueda no es vΓ‘lida: %s"
 
 #, c-format
-msgid "E384: search hit TOP without match for: %s"
+msgid "E384: Search hit TOP without match for: %s"
 msgstr "E384: La bΓΊsqueda ha llegado al PRINCIPIO sin coincidir con: %s"
 
 #, c-format
-msgid "E385: search hit BOTTOM without match for: %s"
+msgid "E385: Search hit BOTTOM without match for: %s"
 msgstr "E385: La bΓΊsqueda ha llegado al FINAL sin coincidir con: %s"
 
 msgid "E386: Expected '?' or '/'  after ';'"
@@ -5417,7 +5311,7 @@ msgstr "E393: \"grouphere\" y \"groupthere\" no son vΓ‘lidos aquΓ­"
 msgid "E394: Didn't find region item for %s"
 msgstr "E394: No se encuentra el elemento de la regiΓ³n para %s"
 
-msgid "E395: contains argument not accepted here"
+msgid "E395: Contains argument not accepted here"
 msgstr "E395: El contenido del argumento no se acepta aquΓ­"
 
 msgid "E397: Filename required"
@@ -5442,7 +5336,7 @@ msgstr "E401: No hay un delimitador de patrΓ³n: %s"
 msgid "E402: Garbage after pattern: %s"
 msgstr "E402: Basura despuΓ©s del patrΓ³n: %s"
 
-msgid "E403: syntax sync: line continuations pattern specified twice"
+msgid "E403: syntax sync: Line continuations pattern specified twice"
 msgstr ""
 "E403: SincronizaciΓ³n de sintaxis: Se especificΓ³ dos veces un patrΓ³n de "
 "continuaciΓ³n de lΓ­nea"
@@ -5476,7 +5370,7 @@ msgid "E410: Invalid :syntax subcommand:
 msgstr "E410: Suborden \":syntax\" no vΓ‘lido: %s"
 
 #, c-format
-msgid "E411: highlight group not found: %s"
+msgid "E411: Highlight group not found: %s"
 msgstr "E411: Grupo de resaltado no encontrado: %s"
 
 #, c-format
@@ -5487,19 +5381,19 @@ msgstr "E412: Argumentos insuficientes: 
 msgid "E413: Too many arguments: \":highlight link %s\""
 msgstr "E413: Demasiados argumentos: \":highlight link %s\""
 
-msgid "E414: group has settings, highlight link ignored"
+msgid "E414: Group has settings, highlight link ignored"
 msgstr "E414: El grupo tiene configuraciones, enlace resaltado ignorado"
 
 #, c-format
-msgid "E415: unexpected equal sign: %s"
+msgid "E415: Unexpected equal sign: %s"
 msgstr "E415: Signo igual inesperado: %s"
 
 #, c-format
-msgid "E416: missing equal sign: %s"
+msgid "E416: Missing equal sign: %s"
 msgstr "E416: Falta el signo igual: %s"
 
 #, c-format
-msgid "E417: missing argument: %s"
+msgid "E417: Missing argument: %s"
 msgstr "E417: Falta el argumento: %s"
 
 #, c-format
@@ -5517,7 +5411,7 @@ msgid "E421: Color name or number not re
 msgstr "E421: Nombre o nΓΊmero de color desconocido: %s"
 
 #, c-format
-msgid "E422: terminal code too long: %s"
+msgid "E422: Terminal code too long: %s"
 msgstr "E422: CΓ³digo de terminal demasiado largo: %s"
 
 #, c-format
@@ -5531,7 +5425,7 @@ msgid "E425: Cannot go before first matc
 msgstr "E425: No se pudo ir antes de la primer etiqueta coincidente"
 
 #, c-format
-msgid "E426: tag not found: %s"
+msgid "E426: Tag not found: %s"
 msgstr "E426: No se encontrΓ³ la etiqueta: %s"
 
 msgid "E427: There is only one matching tag"
@@ -5570,16 +5464,16 @@ msgstr "E435: No se pudo encontrar la etiqueta, Β‘solo estaba adivinando!"
 msgid "E436: No \"%s\" entry in termcap"
 msgstr "E436: La entrada \"%s\" no existe en \"termcap\""
 
-msgid "E437: terminal capability \"cm\" required"
+msgid "E437: Terminal capability \"cm\" required"
 msgstr "E437: Se necesita la capacidad \"cm\" en el terminal"
 
-msgid "E438: u_undo: line numbers wrong"
-msgstr "E438: \"u_undo\": nΓΊmeros de lΓ­nea errΓ³neos"
-
-msgid "E439: undo list corrupt"
+msgid "E438: u_undo: Line numbers wrong"
+msgstr "E438: \"u_undo\": NΓΊmeros de lΓ­nea errΓ³neos"
+
+msgid "E439: Undo list corrupt"
 msgstr "E439: La lista de deshacer se ha daΓ±ado"
 
-msgid "E440: undo line missing"
+msgid "E440: Undo line missing"
 msgstr "E440: Falta la lΓ­nea deshacer"
 
 msgid "E441: There is no preview window"
@@ -5611,7 +5505,7 @@ msgstr "E448: No pude cargar la bibliote
 msgid "E449: Invalid expression received"
 msgstr "E449: Se recibiΓ³ una expresiΓ³n invΓ‘lida"
 
-msgid "E450: buffer number, text or a list required"
+msgid "E450: Buffer number, text or a list required"
 msgstr "E450: Se necesita un nΓΊmero de bΓΊfer, texto o una lista"
 
 #, c-format
@@ -5624,7 +5518,7 @@ msgstr "E452: Duplicado ; en la lista de
 msgid "E453: UL color unknown"
 msgstr "E453: Color en primer plano desconocido"
 
-msgid "E454: function list was modified"
+msgid "E454: Function list was modified"
 msgstr "E454: La lista de funciones fue modificada"
 
 msgid "E455: Error writing to PostScript output file"
@@ -5644,13 +5538,13 @@ msgstr "E457: No se pudo leer el archivo
 
 msgid "E458: Cannot allocate colormap entry, some colors may be incorrect"
 msgstr ""
-"E458: No se puede asignar la entrada del mapa de colores, "
-"algunos colores pueden ser incorrectos"
+"E458: No se puede asignar la entrada del mapa de colores, algunos colores "
+"pueden ser incorrectos"
 
 msgid "E459: Cannot go back to previous directory"
 msgstr "E459: No se pudo regresar al directorio previo"
 
-msgid "E460: entries missing in mapset() dict argument"
+msgid "E460: Entries missing in mapset() dict argument"
 msgstr "E460: Faltan entradas en el argumento dict mapset()"
 
 #, c-format
@@ -5678,17 +5572,15 @@ msgid "E466: :winpos requires two number
 msgstr "E466: \":winpos\" requiere dos argumentos numΓ©ricos"
 
 msgid "E467: Custom completion requires a function argument"
-msgstr ""
-"E467: Los completados personalizados requieren un argumento "
-"de funciΓ³n"
+msgstr "E467: Los completados personalizados requieren un argumento de funciΓ³n"
 
 msgid "E468: Completion argument only allowed for custom completion"
 msgstr ""
-"E468: El argumento de completado solo se permite en completados"
-" personalizados"
-
-#, c-format
-msgid "E469: invalid cscopequickfix flag %c for %c"
+"E468: El argumento de completado solo se permite en completados "
+"personalizados"
+
+#, c-format
+msgid "E469: Invalid cscopequickfix flag %c for %c"
 msgstr "E469: La marca \"cscopequickfix\" %c para %c no es vΓ‘lida"
 
 #
@@ -5777,15 +5669,15 @@ msgstr "E488: Caracteres en exceso al final de la lΓ­nea"
 msgid "E488: Trailing characters: %s"
 msgstr "E488: Caracteres en exceso al final de la lΓ­nea: %s"
 
-msgid "E489: no call stack to substitute for \"<stack>\""
+msgid "E489: No call stack to substitute for \"<stack>\""
 msgstr "E489: No hay pila de llamadas para sustituir \"<stack>\""
 
 msgid "E490: No fold found"
 msgstr "E490: No se encontrΓ³ ningΓΊn pliegue"
 
 #, c-format
-msgid "E491: json decode error at '%s'"
-msgstr "E491: Error de decodificaciΓ³n json en '%s'"
+msgid "E491: JSON decode error at '%s'"
+msgstr "E491: Error de decodificaciΓ³n JSON en '%s'"
 
 msgid "E492: Not an editor command"
 msgstr "E492: No es una orden del editor"
@@ -5796,26 +5688,27 @@ msgstr "E493: Me ha dado un rango invert
 msgid "E494: Use w or w>>"
 msgstr "E494: Use \"w\" o \"w>>\""
 
-msgid "E495: no autocommand file name to substitute for \"<afile>\""
+msgid "E495: No autocommand file name to substitute for \"<afile>\""
 msgstr ""
 "E495: No se ha dado un nombre de archivo de auto-Γ³rdenes para sustituir a  "
 "\"<afile>\""
 
-msgid "E496: no autocommand buffer number to substitute for \"<abuf>\""
+msgid "E496: No autocommand buffer number to substitute for \"<abuf>\""
 msgstr "E496: No existe un bΓΊfer de auto-Γ³rdenes para sustituir por \"<abuf>\""
 
-msgid "E497: no autocommand match name to substitute for \"<amatch>\""
+msgid "E497: No autocommand match name to substitute for \"<amatch>\""
 msgstr ""
 "E497: NingΓΊn nombre de auto-orden concuerda para sustituir \"<amatch>\""
 
-msgid "E498: no :source file name to substitute for \"<sfile>\""
+msgid "E498: No :source file name to substitute for \"<sfile>\""
 msgstr ""
 "E498: No hay un nombre de archivo \":source\" que sustituya a \"<sfile>\""
 
 #, no-c-format
 msgid "E499: Empty file name for '%' or '#', only works with \":p:h\""
 msgstr ""
-"E499: Un nombre de archivo vacΓ­o para \"%\" o \"#\" solo funciona con \":p:h\""
+"E499: Un nombre de archivo vacΓ­o para \"%\" o \"#\" solo funciona con \":p:h"
+"\""
 
 msgid "E500: Evaluates to an empty string"
 msgstr "E500: La expresiΓ³n evalΓΊa a una cadena vacΓ­a"
@@ -5849,13 +5742,13 @@ msgstr ""
 
 msgid "E507: Close error for backup file (add ! to write anyway)"
 msgstr ""
-"E507: Error de cierre del archivo de copia de seguridad "
-"(agregue ! para escribir de todos modos)"
+"E507: Error de cierre del archivo de copia de seguridad (agregue ! para "
+"escribir de todos modos)"
 
 msgid "E508: Can't read file for backup (add ! to write anyway)"
 msgstr ""
-"E508: No se puede leer el archivo para la copia de seguridad "
-"(agregue ! para escribir de todos modos)"
+"E508: No se puede leer el archivo para la copia de seguridad (agregue ! para "
+"escribir de todos modos)"
 
 msgid "E509: Cannot create backup file (add ! to override)"
 msgstr ""
@@ -5864,28 +5757,28 @@ msgstr ""
 
 msgid "E510: Can't make backup file (add ! to write anyway)"
 msgstr ""
-"E510: No se puede hacer el archivo de copia de seguridad "
-"(agregue ! para escribir de todos modos)"
-
-msgid "E511: netbeans already connected"
+"E510: No se puede hacer el archivo de copia de seguridad (agregue ! para "
+"escribir de todos modos)"
+
+msgid "E511: NetBeans already connected"
 msgstr "E511: NetBeans ya conectado"
 
 msgid "E512: Close failed"
 msgstr "E512: FallΓ³ el cierre del archivo"
 
-msgid "E513: write error, conversion failed (make 'fenc' empty to override)"
+msgid "E513: Write error, conversion failed (make 'fenc' empty to override)"
 msgstr ""
 "E513: Error de escritura, la conversiΓ³n fallΓ³ (vacΓ­e 'fenc' para forzar)."
 
 #, c-format
 msgid ""
-"E513: write error, conversion failed in line %ld (make 'fenc' empty to "
+"E513: Write error, conversion failed in line %ld (make 'fenc' empty to "
 "override)"
 msgstr ""
 "E513: Error de escritura, la conversiΓ³n fallΓ³ en la lΓ­nea %ld(vacΓ­e 'fenc' "
 "para forzar)"
 
-msgid "E514: write error (file system full?)"
+msgid "E514: Write error (file system full?)"
 msgstr "E514: Error de escritura (ΒΏSistema de archivos lleno?)"
 
 msgid "E515: No buffers were unloaded"
@@ -5944,13 +5837,12 @@ msgstr "E530: No se pudo cambiar \"term\" en la interfaz grΓ‘fica"
 msgid "E531: Use \":gui\" to start the GUI"
 msgstr "E531: Use \":gui\" para iniciar la interfaz grΓ‘fica"
 
-msgid "E532: highlighting color name too long in defineAnnoType"
+msgid "E532: Highlighting color name too long in defineAnnoType"
 msgstr "E532: Nombre del color de resaltado demasiado largo en defineAnnoType"
 
-msgid "E533: can't select wide font"
-msgstr ""
-"E533: No se pudo seleccionar el tipo de letra \"ancho\" (de "
-"\"byte\" doble)"
+msgid "E533: Can't select wide font"
+msgstr ""
+"E533: No se pudo seleccionar el tipo de letra \"ancho\" (de \"byte\" doble)"
 
 msgid "E534: Invalid wide font"
 msgstr "E534: Tipo de letra \"ancho\" invΓ‘lida"
@@ -5959,7 +5851,7 @@ msgstr "E534: Tipo de letra \"ancho\" invΓ‘lida"
 msgid "E535: Illegal character after <%c>"
 msgstr "E535: CarΓ‘cter ilegal despuΓ©s de <%c>"
 
-msgid "E536: comma required"
+msgid "E536: Comma required"
 msgstr "E536: Necesita una coma"
 
 #, c-format
@@ -5977,7 +5869,7 @@ msgstr "E539: CarΓ‘cter ilegal <%s>"
 msgid "E540: Unclosed expression sequence"
 msgstr "E540: Secuencia de expresiΓ³n sin cerrar"
 
-msgid "E542: unbalanced groups"
+msgid "E542: Unbalanced groups"
 msgstr "E542: Grupos sin equilibrar"
 
 msgid "E543: Not a valid codepage"
@@ -5995,7 +5887,7 @@ msgstr "E546: Modo de operaciΓ³n ilegal"
 msgid "E547: Illegal mouseshape"
 msgstr "E547: El \"mouseshape\" no es vΓ‘lido"
 
-msgid "E548: digit expected"
+msgid "E548: Digit expected"
 msgstr "E548: Se esperaba un dΓ­gito"
 
 msgid "E549: Illegal percentage"
@@ -6007,7 +5899,6 @@ msgstr "E550: Falta un sΓ­mbolo de dos puntos"
 msgid "E551: Illegal component"
 msgstr "E551: Componente ilegal"
 
-# TODO: Capitalise first word of message?
 msgid "E552: Digit expected"
 msgstr "E552: Se esperaba un dΓ­gito"
 
@@ -6018,10 +5909,10 @@ msgstr "E553: No hay mΓ‘s elementos"
 msgid "E554: Syntax error in %s{...}"
 msgstr "E554: Error de sintaxis en %s{...}"
 
-msgid "E555: at bottom of tag stack"
+msgid "E555: At bottom of tag stack"
 msgstr "E555: En el final de la pila de etiquetas"
 
-msgid "E556: at top of tag stack"
+msgid "E556: At top of tag stack"
 msgstr "E556: En el principio de la pila de etiquetas"
 
 msgid "E557: Cannot open termcap file"
@@ -6037,7 +5928,7 @@ msgstr "E559: No he encontrado la definiciΓ³n del terminal en \"termcap\""
 msgid "E560: Usage: cs[cope] %s"
 msgstr "E560: Forma de uso: cs[cope] %s"
 
-msgid "E561: unknown cscope search type"
+msgid "E561: Unknown cscope search type"
 msgstr "E561: Tipo de bΓΊsqueda desconocido para \"cscope\""
 
 msgid "E562: Usage: cstag <ident>"
@@ -6057,24 +5948,14 @@ msgstr "E565: No se permite cambiar text
 msgid "E566: Could not create cscope pipes"
 msgstr "E566: FallΓ³ la conexiΓ³n \"pipe\" para comunicarse con \"cscope\""
 
-#, c-format
-# TODO: Capitalise first word of message?
-msgid "E618: File \"%s\" is not a PostScript resource file"
-msgstr "E618: El archivo \"%s\" no es un archivo de recursos PostScript"
-
-#, c-format
-# TODO: Capitalise first word of message?
-msgid "E619: File \"%s\" is not a supported PostScript resource file"
-msgstr "E619: El archivo \"%s\" no es un recurso PostScript que pueda usar"
-
-msgid "E567: no cscope connections"
+msgid "E567: No cscope connections"
 msgstr "E567: No hay conexiones con \"cscope\""
 
-msgid "E568: duplicate cscope database not added"
+msgid "E568: Duplicate cscope database not added"
 msgstr "E568: IntentΓ³ aΓ±adir una base de datos de \"cscope\" duplicada"
 
 # should not reach here
-msgid "E570: fatal error in cs_manage_matches"
+msgid "E570: Fatal error in cs_manage_matches"
 msgstr "E570: Error fatal en \"cs_manage_matches\""
 
 msgid ""
@@ -6084,7 +5965,7 @@ msgstr ""
 "biblioteca de Tcl"
 
 #, c-format
-msgid "E572: exit code %d"
+msgid "E572: Exit code %d"
 msgstr "E572: CΓ³digo de salida %d"
 
 #, c-format
@@ -6110,7 +5991,7 @@ msgstr "E578: No se permite cambiar el texto aquΓ­"
 msgid "E579: :if nesting too deep"
 msgstr "E579: \":if\" anidado en exceso"
 
-msgid "E579: block nesting too deep"
+msgid "E579: Block nesting too deep"
 msgstr "E579: Anidado de bloque en exceso"
 
 msgid "E580: :endif without :if"
@@ -6122,7 +6003,7 @@ msgstr "E581: \":else\" sin un \":if\""
 msgid "E582: :elseif without :if"
 msgstr "E582: \":elseif\" sin un \":if\""
 
-msgid "E583: multiple :else"
+msgid "E583: Multiple :else"
 msgstr "E583: \":else\" mΓΊltiple"
 
 msgid "E584: :elseif after :else"
@@ -6143,11 +6024,6 @@ msgstr "E588: \":endwhile\" sin \":while
 msgid "E588: :endfor without :for"
 msgstr "E588: \":endfor\" sin un \":for\""
 
-# TODO: Capitalise first word of message?
-msgid "E257: cstag: Tag not found"
-msgstr "E257: cstag: no se encontrΓ³ la etiqueta"
-
-
 msgid "E589: 'backupext' and 'patchmode' are equal"
 msgstr "E589: \"backupext\" y \"patchmode\" son iguales"
 
@@ -6172,19 +6048,10 @@ msgid "E595: 'showbreak' contains unprin
 msgstr ""
 "E595: \"showbreak\" contiene un carΓ‘cter no imprimible o de mΓ‘s de un byte"
 
-# TODO: Capitalise first word of message?
-msgid "E262: Error reading cscope connection %ld"
-msgstr "E262: Error al leer la conexiΓ³n %ld con \"cscope\""
-
-# TODO: Capitalise first word of message?
-msgid "E561: Unknown cscope search type"
-msgstr "E561: Tipo de bΓΊsqueda desconocido para \"cscope\""
-
-
 msgid "E596: Invalid font(s)"
 msgstr "E596: La/s fuente/s no es/son vΓ‘lida/s"
 
-msgid "E597: can't select fontset"
+msgid "E597: Can't select fontset"
 msgstr "E597: No se pudo seleccionar ese \"fontset\""
 
 msgid "E598: Invalid fontset"
@@ -6214,26 +6081,11 @@ msgstr "E604: \":catch\" despuΓ©s de \":finally\""
 msgid "E605: Exception not caught: %s"
 msgstr "E605: ExcepciΓ³n no detectada: %s"
 
-# TODO: Capitalise first word of message?
-msgid "E567: No cscope connections"
-msgstr "E567: No hay conexiones con \"cscope\""
-
-#, c-format
-# TODO: Capitalise first word of message?
-msgid "E259: No matches found for cscope query %s of %s"
-msgstr ""
-"E259: No se encontraron coincidencias para la bΓΊsqueda \"cscope\" %s de %s"
-
-#, c-format
-# TODO: Capitalise first word of message?
-msgid "E469: Invalid cscopequickfix flag %c for %c"
-msgstr "E469: La marca \"cscopequickfix\" %c para %c no es vΓ‘lida"
-
 msgid "E606: :finally without :try"
 msgstr "E606: \":finally\" sin un \":try\""
 
 # Give up for a multiple ":finally" and ignore it.
-msgid "E607: multiple :finally"
+msgid "E607: Multiple :finally"
 msgstr "E607: \":finally\" mΓΊltiple"
 
 msgid "E608: Cannot :throw exceptions with 'Vim' prefix"
@@ -6253,24 +6105,6 @@ msgstr "E611: Usando un \"Special\" como
 msgid "E612: Too many signs defined"
 msgstr "E612: Demasiados signos definidos"
 
-# TODO: Capitalise first word of message?
-msgid "E625: Cannot open cscope database: %s"
-msgstr "E625: No se pudo abrir la base de datos \"cscope\": %s"
-
-# TODO: Capitalise first word of message?
-msgid "E626: Cannot get cscope database information"
-msgstr ""
-"E626: No se pudo obtener informaciΓ³n acerca de la base de datos \"cscope\""
-
-# TODO: Capitalise first word of message?
-msgid "E568: Duplicate cscope database not added"
-msgstr "E568: IntentΓ³ aΓ±adir una base de datos de \"cscope\" duplicada"
-
-#, c-format
-# TODO: Capitalise first word of message?
-msgid "E261: Cscope connection %s not found"
-msgstr "E261: No se ha encontrado la conexiΓ³n \"cscope\" %s"
-
 #, c-format
 msgid "E613: Unknown printer font: %s"
 msgstr "E613: Fuente de impresora desconocida: %s"
@@ -6278,17 +6112,12 @@ msgstr "E613: Fuente de impresora descon
 msgid "E617: Cannot be changed in the GTK GUI"
 msgstr "E617: No puede cambiarse en la interfaz grΓ‘fica de GTK"
 
-# should not reach here
-# TODO: Capitalise first word of message?
-msgid "E570: Fatal error in cs_manage_matches"
-msgstr "E570: Error fatal en \"cs_manage_matches\""
-
-#, c-format
-msgid "E618: file \"%s\" is not a PostScript resource file"
+#, c-format
+msgid "E618: File \"%s\" is not a PostScript resource file"
 msgstr "E618: El archivo \"%s\" no es un archivo de recursos PostScript"
 
 #, c-format
-msgid "E619: file \"%s\" is not a supported PostScript resource file"
+msgid "E619: File \"%s\" is not a supported PostScript resource file"
 msgstr ""
 "E619: El archivo \"%s\" no es un archivo de recursos de PostScript compatible"
 
@@ -6312,23 +6141,23 @@ msgid "E624: Can't open file \"%s\""
 msgstr "E624: No se pudo abrir el archivo \"%s\""
 
 #, c-format
-msgid "E625: cannot open cscope database: %s"
+msgid "E625: Cannot open cscope database: %s"
 msgstr "E625: No se pudo abrir la base de datos \"cscope\": %s"
 
-msgid "E626: cannot get cscope database information"
+msgid "E626: Cannot get cscope database information"
 msgstr ""
 "E626: No se pudo obtener informaciΓ³n acerca de la base de datos \"cscope\""
 
 #, c-format
-msgid "E630: %s(): write while not connected"
-msgstr "E630: %s(): escribir mientras no estΓ‘ conectado"
-
-#, c-format
-msgid "E631: %s(): write failed"
-msgstr "E631: %s(): error de escritura"
-
-#, c-format
-msgid "E654: missing delimiter after search pattern: %s"
+msgid "E630: %s(): Write while not connected"
+msgstr "E630: %s(): Escribir mientras no estΓ‘ conectado"
+
+#, c-format
+msgid "E631: %s(): Write failed"
+msgstr "E631: %s(): Error de escritura"
+
+#, c-format
+msgid "E654: Missing delimiter after search pattern: %s"
 msgstr "E654: Delimitador faltante despuΓ©s del patrΓ³n de bΓΊsqueda: %s"
 
 msgid "E655: Too many symbolic links (cycle?)"
@@ -6357,7 +6186,7 @@ msgstr "E662: Al comienzo de la lista de
 msgid "E663: At end of changelist"
 msgstr "E663: Al final de la lista de cambios"
 
-msgid "E664: changelist is empty"
+msgid "E664: Changelist is empty"
 msgstr "E664: La lista de cambios estΓ‘ vacΓ­a"
 
 msgid "E665: Cannot start GUI, no valid font found"
@@ -6366,7 +6195,7 @@ msgstr ""
 "tipografΓ­a vΓ‘lida"
 
 #, c-format
-msgid "E666: compiler not supported: %s"
+msgid "E666: Compiler not supported: %s"
 msgstr "E666: El compilador no es compatible: %s"
 
 msgid "E667: Fsync failed"
@@ -6376,8 +6205,8 @@ msgstr "E667: FallΓ³ \"fsync\" (sincronizaciΓ³n de archivo)"
 #, c-format
 msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
 msgstr ""
-"E668: Modo de acceso incorrecto para el archivo de informaciΓ³n "
-"de conexiΓ³n de NetBeans: \"%s\""
+"E668: Modo de acceso incorrecto para el archivo de informaciΓ³n de conexiΓ³n "
+"de NetBeans: \"%s\""
 
 msgid "E669: Unprintable character in group name"
 msgstr "E669: CarΓ‘cter no imprimible en el nombre del grupo"
@@ -6416,7 +6245,7 @@ msgstr "E677: Error al escribir el archi
 msgid "E678: Invalid character after %s%%[dxouU]"
 msgstr "E678: CarΓ‘cter no vΓ‘lido despuΓ©s de %s%%[dxouU]"
 
-msgid "E679: recursive loop loading syncolor.vim"
+msgid "E679: Recursive loop loading syncolor.vim"
 msgstr "E679: Bucle recursivo al cargar \"syncolor.vim\""
 
 #, c-format
@@ -6433,7 +6262,7 @@ msgid "E683: File name missing or invali
 msgstr "E683: Falta el nombre del archivo o el patrΓ³n no es vΓ‘lido"
 
 #, c-format
-msgid "E684: list index out of range: %ld"
+msgid "E684: List index out of range: %ld"
 msgstr "E684: Índice de lista fuera de rango: %ld"
 
 #, c-format
@@ -6476,36 +6305,7 @@ msgstr "E696: Falta una coma en la lista
 msgid "E697: Missing end of List ']': %s"
 msgstr "E697: Falta una marca de final de lista ']': %s"
 
-# TODO: Capitalise first word of message?
-msgid "E267: Unexpected return"
-msgstr "E267: \"return\" inesperado"
-
-# TODO: Capitalise first word of message?
-msgid "E268: Unexpected next"
-msgstr "E268: \"next\" inesperado"
-
-# TODO: Capitalise first word of message?
-msgid "E269: Unexpected break"
-msgstr "E269: \"break\" inesperado"
-
-# TODO: Capitalise first word of message?
-msgid "E270: Unexpected redo"
-msgstr "E270: \"redo\" inesperado"
-
-# TODO: Capitalise first word of message?
-msgid "E271: Retry outside of rescue clause"
-msgstr "E271: \"retry\" fuera de una clΓ‘usula \"rescue\""
-
-# TODO: Capitalise first word of message?
-msgid "E272: Unhandled exception"
-msgstr "E272: excepciΓ³n sin manejar"
-
-#, c-format
-# TODO: Capitalise first word of message?
-msgid "E273: Unknown longjmp status %d"
-msgstr "E273: El estado %d de \"longjmp\" es desconocido"
-
-msgid "E698: variable nested too deep for making a copy"
+msgid "E698: Variable nested too deep for making a copy"
 msgstr "E698: Variable anidada demasiado profunda para hacer una copia"
 
 msgid "E699: Too many arguments"
@@ -6567,10 +6367,6 @@ msgstr "E715: Se requiere de un dicciona
 msgid "E716: Key not present in Dictionary: \"%s\""
 msgstr "E716: Clave no presente en diccionario: \"%s\""
 
-# TODO: Capitalise first word of message?
-msgid "E572: Exit code %d"
-msgstr "E572: cΓ³digo de salida %d"
-
 msgid "E717: Dictionary entry already exists"
 msgstr "E717: Esta entrada ya existe en el diccionario"
 
@@ -6597,7 +6393,7 @@ msgstr "E722: Falta una coma en el dicci
 msgid "E723: Missing end of Dictionary '}': %s"
 msgstr "E723: Falta una marca de cierre '}' en el diccionario: %s"
 
-msgid "E724: variable nested too deep for displaying"
+msgid "E724: Variable nested too deep for displaying"
 msgstr "E724: Variable anidada demasiado profunda para mostrar"
 
 #, c-format
@@ -6668,7 +6464,7 @@ msgstr "E742: No se pudo cambiar el valo
 msgid "E742: Cannot change value of %s"
 msgstr "E742: No se pudo cambiar el valor de %s"
 
-msgid "E743: variable nested too deep for (un)lock"
+msgid "E743: Variable nested too deep for (un)lock"
 msgstr "E743: Variable anidada demasiado profunda para (des)bloquear"
 
 msgid "E744: NetBeans does not allow changes in read-only files"
@@ -6689,7 +6485,7 @@ msgstr ""
 msgid "E748: No previously used register"
 msgstr "E748: NingΓΊn registro utilizado anteriormente"
 
-msgid "E749: empty buffer"
+msgid "E749: Empty buffer"
 msgstr "E749: BΓΊfer vacΓ­o"
 
 msgid "E750: First use \":profile start {fname}\""
@@ -6757,8 +6553,8 @@ msgstr "E767: Demasiados argumentos para
 #, c-format
 msgid "E768: Swap file exists: %s (:silent! overrides)"
 msgstr ""
-"E768: El archivo de intercambio ya existe: %s (\":silent!\" para"
-" sobreescribir)"
+"E768: El archivo de intercambio ya existe: %s (\":silent!\" para "
+"sobreescribir)"
 
 #, c-format
 msgid "E769: Missing ] after %s["
@@ -6806,10 +6602,10 @@ msgid "E781: .sug file doesn't match .sp
 msgstr "E781: El archivo .sug no corresponde al archivo .spl: %s"
 
 #, c-format
-msgid "E782: error while reading .sug file: %s"
+msgid "E782: Error while reading .sug file: %s"
 msgstr "E782: Error al leer archivo .sug: %s"
 
-msgid "E783: duplicate char in MAP entry"
+msgid "E783: Duplicate char in MAP entry"
 msgstr "E783: CarΓ‘cter duplicado en entrada MAP"
 
 msgid "E784: Cannot close last tab page"
@@ -6895,7 +6691,7 @@ msgstr "E804: No se puede usar '%' con \
 msgid "E805: Using a Float as a Number"
 msgstr "E805: Usando \"Float\" como un \"Number\""
 
-msgid "E806: using Float as a String"
+msgid "E806: Using Float as a String"
 msgstr "E806: Usando \"Float\" como \"String\""
 
 msgid "E807: Expected Float argument for printf()"
@@ -6977,7 +6773,7 @@ msgid "E828: Cannot open undo file for w
 msgstr "E828: No se puede abrir el archivo de deshacer para escribir: %s"
 
 #, c-format
-msgid "E829: write error in undo file: %s"
+msgid "E829: Write error in undo file: %s"
 msgstr "E829: Error de escritura en archivo de deshacer: %s"
 
 #, c-format
@@ -7008,7 +6804,7 @@ msgstr "E836: Este Vim no puede ejecutar :python despuΓ©s de usar :py3"
 msgid "E837: This Vim cannot execute :py3 after using :python"
 msgstr "E837: Este Vim no puede ejecutar :py3 despuΓ©s de usar :python"
 
-msgid "E838: netbeans is not supported with this GUI"
+msgid "E838: NetBeans is not supported with this GUI"
 msgstr "E838: NetBeans no es compatible con esta interfaz grΓ‘fica (GUI)"
 
 msgid "E840: Completion function deleted text"
@@ -7016,16 +6812,16 @@ msgstr "E840: Texto eliminado de la funciΓ³n de completado"
 
 msgid "E841: Reserved name, cannot be used for user defined command"
 msgstr ""
-"E841: Nombre reservado, no se puede usar para el comando definido por el"
-" usuario"
-
-msgid "E842: no line number to use for \"<slnum>\""
+"E841: Nombre reservado, no se puede usar para el comando definido por el "
+"usuario"
+
+msgid "E842: No line number to use for \"<slnum>\""
 msgstr "E842: No hay nΓΊmero de lΓ­nea para usar para \"<slnum>\""
 
 msgid "E843: Error while updating swap file crypt"
 msgstr "E843: Error al actualizar el cifrado del archivo de intercambio"
 
-msgid "E844: invalid cchar value"
+msgid "E844: Invalid cchar value"
 msgstr "E844: Valor de cchar no vΓ‘lido"
 
 msgid "E845: Insufficient memory, word list will be incomplete"
@@ -7056,7 +6852,7 @@ msgstr "E852: El proceso secundario no pudo iniciar la interfaz grΓ‘fica (GUI)"
 msgid "E853: Duplicate argument name: %s"
 msgstr "E853: Nombre de argumento duplicado: %s"
 
-msgid "E854: path too long for completion"
+msgid "E854: Path too long for completion"
 msgstr "E854: Ruta demasiado larga para completar"
 
 msgid "E855: Autocommands caused command to abort"
@@ -7066,8 +6862,8 @@ msgid ""
 "E856: \"assert_fails()\" second argument must be a string or a list with one "
 "or two strings"
 msgstr ""
-"E856: El segundo argumento \"assert_fails()\" debe ser una cadena o una lista"
-" con una o dos cadenas"
+"E856: El segundo argumento \"assert_fails()\" debe ser una cadena o una "
+"lista con una o dos cadenas"
 
 #, c-format
 msgid "E857: Dictionary key \"%s\" required"
@@ -7096,23 +6892,12 @@ msgid ""
 "E864: \\%#= can only be followed by 0, 1, or 2. The automatic engine will be "
 "used"
 msgstr ""
-"E864: \\%#= solo puede ir seguido de 0, 1 o 2. El motor automΓ‘tico serΓ‘"
-" utilizado"
+"E864: \\%#= solo puede ir seguido de 0, 1 o 2. El motor automΓ‘tico serΓ‘ "
+"utilizado"
 
 msgid "E865: (NFA) Regexp end encountered prematurely"
 msgstr "E865: (NFA) Fin de Regexp encontrado prematuramente"
 
-"E287: Advertencia: No pude crear una llamada de retorno "
-"de destrucciΓ³n al IM"
-
-# TODO: Capitalise first word of message?
-msgid "E288: Input method doesn't support any style"
-msgstr "E288: el mΓ©todo de entrada no admite ningΓΊn estilo"
-
-# TODO: Capitalise first word of message?
-msgid "E289: Input method doesn't support my preedit type"
-msgstr "E289: El mΓ©todo de entrada no soporta mi tipo de pre-ediciΓ³n"
-
 #, c-format
 msgid "E866: (NFA regexp) Misplaced %c"
 msgstr "E866: (NFA regexp) %c fuera de lugar"
@@ -7121,10 +6906,6 @@ msgstr "E866: (NFA regexp) %c fuera de l
 msgid "E867: (NFA regexp) Unknown operator '\\z%c'"
 msgstr "E867: (NFA regexp) Operador desconocido '\\z%c'"
 
-# TODO: Capitalise first word of message?
-msgid "E293: Block was not locked"
-msgstr "E293: El bloque no estaba bloqueado"
-
 #, c-format
 msgid "E867: (NFA regexp) Unknown operator '\\%%%c'"
 msgstr "E867: (NFA regexp) Operador desconocido '\\%%%c'"
@@ -7156,8 +6937,8 @@ msgid ""
 "E875: (NFA regexp) (While converting from postfix to NFA), too many states "
 "left on stack"
 msgstr ""
-"E875: (NFA regexp) (Al convertir de postfix a NFA), quedan demasiados estados"
-" en la pila"
+"E875: (NFA regexp) (Al convertir de postfix a NFA), quedan demasiados "
+"estados en la pila"
 
 msgid "E876: (NFA regexp) Not enough space to store the whole NFA"
 msgstr ""
@@ -7183,11 +6964,11 @@ msgid "E882: Uniq compare function faile
 msgstr "E882: FallΓ³ la funciΓ³n de comparaciΓ³n de Uniq"
 
 msgid ""
-"E883: search pattern and expression register may not contain two or more "
+"E883: Search pattern and expression register may not contain two or more "
 "lines"
 msgstr ""
-"E883: El patrΓ³n de bΓΊsqueda y el registro de expresiΓ³n no pueden "
-"contener dos o mΓ‘s lΓ­neas"
+"E883: El patrΓ³n de bΓΊsqueda y el registro de expresiΓ³n no pueden contener "
+"dos o mΓ‘s lΓ­neas"
 
 #, c-format
 msgid "E884: Function name cannot contain a colon: %s"
@@ -7206,8 +6987,8 @@ msgid ""
 "E887: Sorry, this command is disabled, the Python's site module could not be "
 "loaded."
 msgstr ""
-"E887: Lo siento, este comando estΓ‘ deshabilitado, el mΓ³dulo del sitio de"
-" Python no pudo ser cargado."
+"E887: Lo siento, este comando estΓ‘ deshabilitado, el mΓ³dulo del sitio de "
+"Python no pudo ser cargado."
 
 #, c-format
 msgid "E888: (NFA regexp) cannot repeat %s"
@@ -7217,7 +6998,7 @@ msgid "E889: Number required"
 msgstr "E889: NΓΊmero requerido"
 
 #, c-format
-msgid "E890: trailing char after ']': %s]%s"
+msgid "E890: Trailing char after ']': %s]%s"
 msgstr "E890: CarΓ‘cter final despuΓ©s de ']': %s]%s"
 
 msgid "E891: Using a Funcref as a Float"
@@ -7236,8 +7017,8 @@ msgid ""
 "E895: Sorry, this command is disabled, the MzScheme's racket/base module "
 "could not be loaded."
 msgstr ""
-"E895: Lo sentimos, este comando estΓ‘ deshabilitado, el mΓ³dulo racket/base de"
-" MzScheme no pudo ser cargado."
+"E895: Lo sentimos, este comando estΓ‘ deshabilitado, el mΓ³dulo racket/base de "
+"MzScheme no pudo ser cargado."
 
 #, c-format
 msgid "E896: Argument of %s must be a List, Dictionary or Blob"
@@ -7267,27 +7048,27 @@ msgstr "E901: gethostbyname() en channel
 msgid "E902: Cannot connect to port"
 msgstr "E902: No se puede conectar al puerto"
 
-msgid "E903: received command with non-string argument"
+msgid "E903: Received command with non-string argument"
 msgstr "E903: Comando recibido con argumento que no es una cadena"
 
-msgid "E904: last argument for expr/call must be a number"
+msgid "E904: Last argument for expr/call must be a number"
 msgstr "E904: El ΓΊltimo argumento para expr/call debe ser un nΓΊmero"
 
-msgid "E904: third argument for call must be a list"
+msgid "E904: Third argument for call must be a list"
 msgstr "E904: El tercer argumento para la llamada debe ser una lista"
 
 #, c-format
-msgid "E905: received unknown command: %s"
+msgid "E905: Received unknown command: %s"
 msgstr "E905: Comando desconocido recibido: %s"
 
-msgid "E906: not an open channel"
+msgid "E906: Not an open channel"
 msgstr "E906: No es un canal abierto"
 
 msgid "E907: Using a special value as a Float"
 msgstr "E907: Uso de un valor especial como \"Float\""
 
 #, c-format
-msgid "E908: using an invalid value as a String: %s"
+msgid "E908: Using an invalid value as a String: %s"
 msgstr "E908: Uso de un valor no vΓ‘lido como \"String\": %s"
 
 msgid "E909: Cannot index a special variable"
@@ -7299,7 +7080,7 @@ msgstr "E910: Usando \"Job\" como un \"N
 msgid "E911: Using a Job as a Float"
 msgstr "E911: Usando \"Job\" como un \"Float\""
 
-msgid "E912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channel"
+msgid "E912: Cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channel"
 msgstr ""
 "E912: No se puede usar ch_evalexpr()/ch_sendexpr() con un canal raw o nl"
 
@@ -7312,7 +7093,7 @@ msgstr "E914: Usando \"Channel\" como \"
 msgid "E915: in_io buffer requires in_buf or in_name to be set"
 msgstr "E915: El bΓΊfer in_io requiere que se configure in_buf o in_name"
 
-msgid "E916: not a valid job"
+msgid "E916: Not a valid job"
 msgstr "E916: No es un \"Job\" vΓ‘lido"
 
 #, c-format
@@ -7320,7 +7101,7 @@ msgid "E917: Cannot use a callback with 
 msgstr "E917: No se puede usar una devoluciΓ³n de llamada con %s()"
 
 #, c-format
-msgid "E918: buffer must be loaded: %s"
+msgid "E918: Buffer must be loaded: %s"
 msgstr "E918: Se debe cargar el bΓΊfer: %s"
 
 #, c-format
@@ -7333,7 +7114,7 @@ msgstr "E920: El archivo _io requiere qu
 msgid "E921: Invalid callback argument"
 msgstr "E921: Argumento de devoluciΓ³n de llamada no vΓ‘lido"
 
-msgid "E922: expected a dict"
+msgid "E922: Expected a dict"
 msgstr "E922: Esperaba un \"dict\""
 
 msgid "E923: Second argument of function() must be a list or a dict"
@@ -7378,7 +7159,7 @@ msgid "E934: Cannot jump to a buffer tha
 msgstr "E934: No se puede saltar a un bΓΊfer que no tiene nombre"
 
 #, c-format
-msgid "E935: invalid submatch number: %d"
+msgid "E935: Invalid submatch number: %d"
 msgstr "E935: NΓΊmero de subcoincidencia no vΓ‘lido: %d"
 
 msgid "E936: Cannot delete the current group"
@@ -7399,22 +7180,9 @@ msgstr "E939: Recuento positivo requerid
 msgid "E940: Cannot lock or unlock variable %s"
 msgstr "E940: No se puede bloquear o desbloquear la variable %s"
 
-msgid "E941: already started a server"
+msgid "E941: Already started a server"
 msgstr "E941: Ya iniciΓ³ un servidor"
 
-# TODO: Capitalise first word of message?
-msgid "E315: ml_get: Invalid lnum: %ld"
-msgstr "E315: \"ml_get\": nΓΊmero de lΓ­nea no vΓ‘lido: %ld"
-
-#, c-format
-# TODO: Capitalise first word of message?
-msgid "E316: ml_get: Cannot find line %ld"
-msgstr "E316: \"ml_get\": no se pudo encontrar la lΓ­nea %ld"
-
-# TODO: Capitalise first word of message?
-msgid "E317: Pointer block id wrong 3"
-msgstr "E317: El id del bloque de punteros es incorrecto. 3"
-
 msgid "E942: +clientserver feature not available"
 msgstr "E942: CaracterΓ­stica \"+clientserver\" no disponible"
 
@@ -7424,10 +7192,6 @@ msgstr "E943: La tabla de comandos debe 
 msgid "E944: Reverse range in character class"
 msgstr "E944: Rango inverso en la clase de caracteres"
 
-# TODO: Capitalise first word of message?
-msgid "E317: Pointer block id wrong 4"
-msgstr "E317: El id del bloque de punteros es incorrecto. 4"
-
 msgid "E945: Range too large in character class"
 msgstr "E945: Rango demasiado grande en la clase de caracteres"
 
@@ -7441,10 +7205,6 @@ msgstr "E947: El trabajo todavΓ­a se estΓ‘ ejecutando en el bΓΊfer \"%s\""
 msgid "E948: Job still running"
 msgstr "E948: Trabajo aΓΊn en ejecuciΓ³n"
 
-# TODO: Capitalise first word of message?
-msgid "E317: Pointer block id wrong"
-msgstr "E317: El id del bloque de punteros es incorrecto"
-
 msgid "E948: Job still running (add ! to end the job)"
 msgstr "E948: Trabajo aΓΊn en ejecuciΓ³n (aΓ±ada ! para finalizar el trabajo)"
 
@@ -7466,15 +7226,6 @@ msgstr "E952: Comando automΓ‘tico provocΓ³ un comportamiento recursivo"
 msgid "E953: File exists: %s"
 msgstr "E953: El archivo existe: %s"
 
-# TODO: Capitalise first word of message?
-msgid "E322: Line number out of range: %ld past the end"
-msgstr "E322: nΓΊmero de lΓ­nea fuera de rango: %ld mΓ‘s allΓ‘ del final"
-
-#, c-format
-# TODO: Capitalise first word of message?
-msgid "E323: Line count wrong in block %ld"
-msgstr "E323: recuento de lΓ­neas errΓ³neo en el bloque %ld"
-
 msgid "E954: 24-bit colors are not supported on this environment"
 msgstr "E954: Los colores de 24 bits no son compatibles con este entorno"
 
@@ -7496,33 +7247,29 @@ msgstr "E959: Formato de diferencia no vΓ‘lido."
 msgid "E960: Problem creating the internal diff"
 msgstr "E960: Problema al crear el \"diff\" interno"
 
-msgid "E961: no line number to use for \"<sflnum>\""
+msgid "E961: No line number to use for \"<sflnum>\""
 msgstr "E961: No hay nΓΊmero de lΓ­nea para usar para \"<sflnum>\""
 
-# TODO: Capitalise first word of message?
-msgid "E317: Pointer block id wrong 2"
-msgstr "E317: El id del bloque de punteros es incorrecto. 2"
-
 #, c-format
 msgid "E962: Invalid action: '%s'"
 msgstr "E962: AcciΓ³n invΓ‘lida: '%s'"
 
 #, c-format
-msgid "E963: setting %s to value with wrong type"
+msgid "E963: Setting %s to value with wrong type"
 msgstr "E963: ConfiguraciΓ³n de %s en valor con tipo incorrecto"
 
 #, c-format
 msgid "E964: Invalid column number: %ld"
 msgstr "E964: NΓΊmero de columna no vΓ‘lido: %ld"
 
-msgid "E965: missing property type name"
+msgid "E965: Missing property type name"
 msgstr "E965: Falta el nombre del tipo de propiedad"
 
 #, c-format
 msgid "E966: Invalid line number: %ld"
 msgstr "E966: NΓΊmero de lΓ­nea no vΓ‘lido: %ld"
 
-msgid "E967: text property info corrupted"
+msgid "E967: Text property info corrupted"
 msgstr "E967: InformaciΓ³n de propiedad de texto corrupta"
 
 msgid "E968: Need at least one of 'id' or 'type'"
@@ -7545,8 +7292,8 @@ msgstr "E972: El valor del \"blob\" no tiene el nΓΊmero correcto de bytes"
 
 msgid "E973: Blob literal should have an even number of hex characters"
 msgstr ""
-"E973: El literal del \"blob\" debe tener un nΓΊmero par "
-"de caracteres hexadecimales"
+"E973: El literal del \"blob\" debe tener un nΓΊmero par de caracteres "
+"hexadecimales"
 
 msgid "E974: Using a Blob as a Number"
 msgstr "E974: Usando \"Blob\" como un \"Number\""
@@ -7567,7 +7314,7 @@ msgstr "E978: OperaciΓ³n no vΓ‘lida para \"Blob\""
 msgid "E979: Blob index out of range: %ld"
 msgstr "E979: Índice de \"Blob\" fuera de rango: %ld"
 
-msgid "E980: lowlevel input not supported"
+msgid "E980: Lowlevel input not supported"
 msgstr "E980: Entrada de bajo nivel no admitida"
 
 msgid "E981: Command not allowed in rvim"
@@ -7586,16 +7333,16 @@ msgstr "E984: :scriptversion usado fuera
 msgid "E985: .= is not supported with script version >= 2"
 msgstr "E985: .= no es compatible con la versiΓ³n de script >= 2"
 
-msgid "E986: cannot modify the tag stack within tagfunc"
+msgid "E986: Cannot modify the tag stack within tagfunc"
 msgstr "E986: No se puede modificar la pila de etiquetas dentro de \"tagfunc\""
 
-msgid "E987: invalid return value from tagfunc"
+msgid "E987: Invalid return value from tagfunc"
 msgstr "E987: Valor de retorno no vΓ‘lido de \"tagfunc\""
 
 msgid "E988: GUI cannot be used. Cannot execute gvim.exe."
 msgstr ""
-"E988: No se puede utilizar la interfaz grΓ‘fica (GUI). "
-"No se puede ejecutar gvim.exe."
+"E988: No se puede utilizar la interfaz grΓ‘fica (GUI). No se puede ejecutar "
+"gvim.exe."
 
 msgid "E989: Non-default argument follows default argument"
 msgstr "E989: El argumento no predeterminado sigue al argumento predeterminado"
@@ -7604,16 +7351,16 @@ msgstr "E989: El argumento no predetermi
 msgid "E990: Missing end marker '%s'"
 msgstr "E990: Falta el marcador final '%s'"
 
-msgid "E991: cannot use =<< here"
+msgid "E991: Cannot use =<< here"
 msgstr "E991: No se puede usar =<< aquΓ­"
 
 msgid "E992: Not allowed in a modeline when 'modelineexpr' is off"
 msgstr ""
-"E992: No permitido en una \"modeline\" cuando \"modelineexpr\" estΓ‘"
-" desactivado"
-
-#, c-format
-msgid "E993: window %d is not a popup window"
+"E992: No permitido en una \"modeline\" cuando \"modelineexpr\" estΓ‘ "
+"desactivado"
+
+#, c-format
+msgid "E993: Window %d is not a popup window"
 msgstr "E993: La ventana %d no es una ventana emergente"
 
 msgid "E994: Not allowed in a popup window"
@@ -7704,8 +7451,8 @@ msgstr ""
 #, c-format
 msgid "E1013: Argument %d: type mismatch, expected %s but got %s in %s"
 msgstr ""
-"E1013: Argumento %d: tipo no coincidente, se esperaba %s pero se obtuvo %s en"
-" %s"
+"E1013: Argumento %d: tipo no coincidente, se esperaba %s pero se obtuvo %s "
+"en %s"
 
 #, c-format
 msgid "E1014: Invalid key: %s"
@@ -7848,10 +7595,6 @@ msgstr "E1052: No se puede declarar una opciΓ³n: %s"
 msgid "E1053: Could not import \"%s\""
 msgstr "E1053: No se pudo importar \"%s\""
 
-# TODO: Capitalise first word of message?
-msgid "E548: Digit expected"
-msgstr "E548: Se esperaba un dΓ­gito"
-
 #, c-format
 msgid "E1054: Variable already declared in the script: %s"
 msgstr "E1054: Variable ya declarada en el script: %s"
@@ -7947,10 +7690,6 @@ msgstr "E1079: No se puede declarar una variable en la lΓ­nea de comando"
 msgid "E1080: Invalid assignment"
 msgstr "E1080: AsignaciΓ³n no vΓ‘lida"
 
-# TODO: Capitalise first word of message?
-msgid "E664: Changelist is empty"
-msgstr "E664: La lista de cambios estΓ‘ vacΓ­a"
-
 #, c-format
 msgid "E1081: Cannot unlet %s"
 msgstr "E1081: No se puede deshabilitar %s"
@@ -8164,8 +7903,8 @@ msgstr "E1141: Se requiere un tipo index
 
 msgid "E1142: Calling test_garbagecollect_now() while v:testing is not set"
 msgstr ""
-"E1142: Llamada a test_garbagecollect_now() mientras v:testing no estΓ‘"
-" configurado"
+"E1142: Llamada a test_garbagecollect_now() mientras v:testing no estΓ‘ "
+"configurado"
 
 #, c-format
 msgid "E1143: Empty expression: \"%s\""
@@ -8226,10 +7965,6 @@ msgid "E1158: Cannot use flatten() in Vi
 msgstr ""
 "E1158: No se puede usar flatten() en el script de Vim9, use flattennew()"
 
-# TODO: Capitalise first word of message?
-msgid "E597: Can't select fontset"
-msgstr "E597: No se pudo seleccionar ese \"fontset\""
-
 msgid "E1159: Cannot split a window when closing the buffer"
 msgstr "E1159: No se puede dividir una ventana al cerrar el bΓΊfer"
 
@@ -8239,16 +7974,12 @@ msgstr ""
 
 #, c-format
 msgid "E1161: Cannot json encode a %s"
-msgstr "E1161: %s no se pudo codificar json"
+msgstr "E1161: %s no se pudo codificar JSON"
 
 #, c-format
 msgid "E1162: Register name must be one character: %s"
 msgstr "E1162: El nombre del registro debe tener un carΓ‘cter: %s"
 
-# TODO: Capitalise first word of message?
-msgid "E536: Comma required"
-msgstr "E536: necesita una coma"
-
 #, c-format
 msgid "E1163: Variable %d: type mismatch, expected %s but got %s"
 msgstr ""
@@ -8271,10 +8002,6 @@ msgstr "E1165: No se puede usar un rango con una asignaciΓ³n: %s"
 msgid "E1166: Cannot use a range with a dictionary"
 msgstr "E1166: No se puede usar un rango con un diccionario"
 
-# TODO: Capitalise first word of message?
-msgid "E542: Unbalanced groups"
-msgstr "E542: Grupos sin equilibrar"
-
 #, c-format
 msgid "E1167: Argument name shadows existing variable: %s"
 msgstr "E1167: El nombre del argumento sombrea la variable existente: %s"
@@ -8323,9 +8050,8 @@ msgid ""
 "E1179: Failed to extract PWD from %s, check your shell's config related to "
 "OSC 7"
 msgstr ""
-"E1179: No se pudo extraer PWD de %s, verifique la configuraciΓ³n de su shell"
-" relacionada "
-"con OSC 7"
+"E1179: No se pudo extraer PWD de %s, verifique la configuraciΓ³n de su shell "
+"relacionada con OSC 7"
 
 #, c-format
 msgid "E1180: Variable arguments type must be a list: %s"
@@ -8357,7 +8083,8 @@ msgstr "E1187: Error al generar defaults
 
 msgid "E1188: Cannot open a terminal from the command line window"
 msgstr ""
-"E1188: No se puede abrir una terminal desde la ventana de la lΓ­nea de comandos"
+"E1188: No se puede abrir una terminal desde la ventana de la lΓ­nea de "
+"comandos"
 
 # if Vim opened a window: Executing a shell may cause crashes
 #, c-format
@@ -8462,8 +8189,8 @@ msgstr "E1215: El dΓ­grafo debe tener un carΓ‘cter: %s"
 msgid ""
 "E1216: digraph_setlist() argument must be a list of lists with two items"
 msgstr ""
-"E1216: El argumento digraph_setlist() debe ser una lista de listas con dos"
-" elementos"
+"E1216: El argumento digraph_setlist() debe ser una lista de listas con dos "
+"elementos"
 
 #, c-format
 msgid "E1217: Channel or Job required for argument %d"
@@ -8591,14 +8318,14 @@ msgstr "E1249: Nombre del grupo de resal
 #, c-format
 msgid "E1250: Argument of %s must be a List, String, Dictionary or Blob"
 msgstr ""
-"E1250: El argumento de %s debe ser \"List\", \"String\", \"Dictionary\" o"
-" \"Blob\""
+"E1250: El argumento de %s debe ser \"List\", \"String\", \"Dictionary\" o "
+"\"Blob\""
 
 #, c-format
 msgid "E1251: List, Dictionary, Blob or String required for argument %d"
 msgstr ""
-"E1251: \"List\", \"Dictionary\", \"Blob\" o \"String\" requeridos para el"
-" argumento %d"
+"E1251: \"List\", \"Dictionary\", \"Blob\" o \"String\" requeridos para el "
+"argumento %d"
 
 #, c-format
 msgid "E1252: String, List or Blob required for argument %d"
@@ -8618,10 +8345,6 @@ msgstr "E1255: La asignaciΓ³n <Cmd> debe terminar con <CR>"
 msgid "E1256: String or function required for argument %d"
 msgstr "E1256: \"String\" o funciΓ³n requerida para el argumento %d"
 
-# TODO: Capitalise first word of message?
-msgid "E369: Invalid item in %s%%[]"
-msgstr "E369: El elemento en %s%%[] no es vΓ‘lido"
-
 #, c-format
 msgid "E1257: Imported script must use \"as\" or end in .vim: %s"
 msgstr "E1257: El script importado debe usar \"as\" o terminar en .vim: %s"
@@ -8645,16 +8368,16 @@ msgstr "E1261: No se puede importar .vim
 msgid "E1262: Cannot import the same script twice: %s"
 msgstr "E1262: No se puede importar el mismo script dos veces: %s"
 
-msgid "E1263: cannot use name with # in Vim9 script, use export instead"
-msgstr ""
-"E1263: No se puede usar el nombre con \"#\" en el script de Vim9, use"
-" exportar en su lugar"
+msgid "E1263: Cannot use name with # in Vim9 script, use export instead"
+msgstr ""
+"E1263: No se puede usar el nombre con \"#\" en el script de Vim9, use "
+"exportar en su lugar"
 
 #, c-format
 msgid "E1264: Autoload import cannot use absolute or relative path: %s"
 msgstr ""
-"E1264: La importaciΓ³n \"Autoload\" no puede usar la ruta absoluta o relativa:"
-" %s"
+"E1264: La importaciΓ³n \"Autoload\" no puede usar la ruta absoluta o "
+"relativa: %s"
 
 msgid "E1265: Cannot use a partial here"
 msgstr "E1265: No se puede usar un parcial aquΓ­"
@@ -8670,10 +8393,6 @@ msgstr ""
 msgid "E1267: Function name must start with a capital: %s"
 msgstr "E1267: El nombre de la funciΓ³n debe comenzar con mayΓΊscula: %s"
 
-# TODO: Capitalise first word of message?
-msgid "E59: Invalid character after %s@"
-msgstr "E59: CarΓ‘cter invΓ‘lido despuΓ©s de %s@"
-
 #, c-format
 msgid "E1268: Cannot use s: in Vim9 script: %s"
 msgstr "E1268: No se puede usar \"s:\" en el script de Vim9: %s"
@@ -8687,17 +8406,13 @@ msgid "E1270: Cannot use :s\\/sub/ in Vi
 msgstr "E1270: No se puede usar :s\\/sub/ en el script de Vim9"
 
 #, c-format
-msgid "E1271: compiling closure without context: %s"
+msgid "E1271: Compiling closure without context: %s"
 msgstr "E1271: Compilando cierre sin contexto: %s"
 
 #, c-format
 msgid "E1272: Using type not in a script context: %s"
 msgstr "E1272: Uso de tipo no en un script de contexto: %s"
 
-# TODO: Capitalise first word of message?
-msgid "E63: Invalid use of \\_"
-msgstr "E63: Uso invΓ‘lido de \\_"
-
 #, c-format
 msgid "E1273: (NFA regexp) missing value in '\\%%%c'"
 msgstr "E1273: (NFA regexp) valor faltante en '\\%%%c'"
@@ -8753,8 +8468,8 @@ msgstr "se esperaba Instancia de bytes()
 msgid ""
 "expected int(), long() or something supporting coercing to long(), but got %s"
 msgstr ""
-"se esperaba int(), long() o algo que admita la coacciΓ³n a long(), pero obtuvo"
-" %s"
+"se esperaba int(), long() o algo que admita la coacciΓ³n a long(), pero "
+"obtuvo %s"
 
 #, c-format
 msgid "expected int() or something supporting coercing to int(), but got %s"
@@ -8790,8 +8505,8 @@ msgstr "esperaba 3 tuplas como resultado
 #, c-format
 msgid "expected 3-tuple as imp.find_module() result, but got tuple of size %d"
 msgstr ""
-"se esperaba una tupla de 3 como resultado de imp.find_module(), pero obtuvo"
-" una tupla de tamaΓ±o %d"
+"se esperaba una tupla de 3 como resultado de imp.find_module(), pero obtuvo "
+"una tupla de tamaΓ±o %d"
 
 msgid "internal error: imp.find_module returned tuple with NULL"
 msgstr "error interno: imp.find_module devolviΓ³ una tupla con NULL"
@@ -8813,8 +8528,8 @@ msgstr "\"hashtab\" cambiΓ³ durante la iteraciΓ³n"
 #, c-format
 msgid "expected sequence element of size 2, but got sequence of size %d"
 msgstr ""
-"elemento de secuencia esperado de tamaΓ±o 2, pero se obtuvo una "
-"secuencia de tamaΓ±o %d"
+"elemento de secuencia esperado de tamaΓ±o 2, pero se obtuvo una secuencia de "
+"tamaΓ±o %d"
 
 msgid "list constructor does not accept keyword arguments"
 msgstr "constructor de listas no acepta argumentos de palabras clave"
@@ -8850,15 +8565,6 @@ msgstr ""
 "intente asignar una secuencia de tamaΓ±o %d a una porciΓ³n extendida de tamaΓ±o "
 "%d"
 
-# TODO: Capitalise first word of message?
-msgid "E384: Search hit TOP without match for: %s"
-msgstr "E384: La bΓΊsqueda ha llegado al PRINCIPIO sin coincidir con: %s"
-
-#, c-format
-# TODO: Capitalise first word of message?
-msgid "E385: Search hit BOTTOM without match for: %s"
-msgstr "E385: La bΓΊsqueda ha llegado al FINAL sin coincidir con: %s"
-
 msgid "failed to add item to list"
 msgstr "no se pudo agregar el elemento a la lista"
 
@@ -9044,6 +8750,9 @@ msgstr "Editar archivos de texto"
 msgid "Text;editor;"
 msgstr "Texto;editor;"
 
+msgid "gvim"
+msgstr "gvim"
+
 msgid "Vim"
 msgstr "Vim"
 
@@ -9076,8 +8785,8 @@ msgstr ""
 
 msgid "\" Hit <Enter> on a help line to open a help window on this option."
 msgstr ""
-"\" Pulse <Intro>  en una lΓ­nea de ayuda para abrir una ventana de ayuda de"
-" esta opciΓ³n."
+"\" Pulse <Intro>  en una lΓ­nea de ayuda para abrir una ventana de ayuda de "
+"esta opciΓ³n."
 
 msgid "\" Hit <Enter> on an index line to jump there."
 msgstr "\" Pulse <Intro> en una lΓ­nea del Γ­ndice para saltar allΓ­."
@@ -9156,8 +8865,8 @@ msgstr "mostrar coincidencias para el comando de bΓΊsqueda escrito parcialmente"
 
 msgid "change the way backslashes are used in search patterns"
 msgstr ""
-"cambiar la forma en que se usan las barras invertidas en los patrones de"
-" bΓΊsqueda"
+"cambiar la forma en que se usan las barras invertidas en los patrones de "
+"bΓΊsqueda"
 
 msgid "select the default regexp engine used"
 msgstr "seleccionar el motor \"regexp\" predeterminado utilizado"
@@ -9173,7 +8882,8 @@ msgstr "quΓ© mΓ©todo usar para cambiar mayΓΊsculas y minΓΊsculas"
 
 msgid "maximum amount of memory in Kbyte used for pattern matching"
 msgstr ""
-"cantidad mΓ‘xima de memoria en Kbyte utilizada para la coincidencia de patrones"
+"cantidad mΓ‘xima de memoria en Kbyte utilizada para la coincidencia de "
+"patrones"
 
 msgid "pattern for a macro definition line"
 msgstr "patrΓ³n para una lΓ­nea de definiciΓ³n de macro"
@@ -9183,8 +8893,8 @@ msgstr "patrΓ³n para una lΓ­nea de \"include-file\""
 
 msgid "expression used to transform an include line to a file name"
 msgstr ""
-"expresiΓ³n utilizada para transformar una lΓ­nea de inclusiΓ³n en un nombre de"
-" archivo"
+"expresiΓ³n utilizada para transformar una lΓ­nea de inclusiΓ³n en un nombre de "
+"archivo"
 
 msgid "tags"
 msgstr "etiquetas"
@@ -9207,8 +8917,8 @@ msgstr ""
 
 msgid "file names in a tags file are relative to the tags file"
 msgstr ""
-"los nombres de archivo en un archivo de etiquetas son relativos al archivo de"
-" etiquetas"
+"los nombres de archivo en un archivo de etiquetas son relativos al archivo "
+"de etiquetas"
 
 msgid "a :tag command will use the tagstack"
 msgstr "un comando :tag usarΓ‘ la pila de etiquetas (tagstack)"
@@ -9280,13 +8990,13 @@ msgid ""
 "include \"uhex\" to show unprintable characters as a hex number"
 msgstr ""
 "incluya \"lastline\" para mostrar la ΓΊltima lΓ­nea incluso si no encaja\n"
-"incluya \"uhex\" para mostrar caracteres no imprimibles como un nΓΊmero"
-" hexadecimal"
+"incluya \"uhex\" para mostrar caracteres no imprimibles como un nΓΊmero "
+"hexadecimal"
 
 msgid "characters to use for the status line, folds and filler lines"
 msgstr ""
-"caracteres a utilizar para la lΓ­nea de estado, los pliegues y las lΓ­neas de"
-" relleno"
+"caracteres a utilizar para la lΓ­nea de estado, los pliegues y las lΓ­neas de "
+"relleno"
 
 msgid "number of lines used for the command-line"
 msgstr "nΓΊmero de lΓ­neas utilizadas para la lΓ­nea de comandos"
@@ -9380,15 +9090,6 @@ msgstr "resaltar errores ortogrΓ‘ficos"
 msgid "list of accepted languages"
 msgstr "lista de idiomas aceptados"
 
-#, c-format
-# TODO: Capitalise first word of message?
-msgid "E782: Error while reading .sug file: %s"
-msgstr "E782: Error al leer archivo .sig: %s"
-
-# TODO: Capitalise first word of message?
-msgid "E783: Duplicate char in MAP entry"
-msgstr "E783: carΓ‘cter duplicado en entrada MAP"
-
 msgid "file that \"zg\" adds good words to"
 msgstr "archivo al que \"zg\" aΓ±ade las palabras correctas"
 
@@ -9415,8 +9116,8 @@ msgstr "formato alternativo que se utilizarΓ‘ para una lΓ­nea de estado"
 
 msgid "make all windows the same size when adding/removing windows"
 msgstr ""
-"hace que todas las ventanas tengan el mismo tamaΓ±o al agregar/eliminar"
-" ventanas"
+"hace que todas las ventanas tengan el mismo tamaΓ±o al agregar/eliminar "
+"ventanas"
 
 msgid "in which direction 'equalalways' works: \"ver\", \"hor\" or \"both\""
 msgstr "en quΓ© direcciΓ³n funciona 'equalalways': \"ver\", \"hor\" o \"both\""
@@ -9439,10 +9140,6 @@ msgstr "nΓΊmero mΓ­nimo de columnas utilizadas para la ventana actual"
 msgid "minimal number of columns used for any window"
 msgstr "nΓΊmero mΓ­nimo de columnas utilizadas para cualquier ventana"
 
-# TODO: Capitalise first word of message?
-msgid "E395: Contains argument not accepted here"
-msgstr "E395: el contenido del argumento no se acepta aquΓ­"
-
 msgid "initial height of the help window"
 msgstr "altura inicial de la ventana de ayuda"
 
@@ -9488,8 +9185,8 @@ msgstr "tecla que precede a los comandos
 
 msgid "max number of lines to keep for scrollback in a terminal window"
 msgstr ""
-"nΓΊmero mΓ‘ximo de lΓ­neas a mantener para el desplazamiento hacia atrΓ‘s "
-"en una ventana de terminal"
+"nΓΊmero mΓ‘ximo de lΓ­neas a mantener para el desplazamiento hacia atrΓ‘s en una "
+"ventana de terminal"
 
 msgid "type of pty to use for a terminal window"
 msgstr "tipo de \"pty\" a usar para una ventana de terminal"
@@ -9515,21 +9212,12 @@ msgstr ""
 
 msgid "custom tab page tooltip for the GUI"
 msgstr ""
-"informaciΓ³n sobre herramientas de pΓ‘gina de pestaΓ±a personalizada para la"
-" interfaz grΓ‘fica (GUI)"
+"informaciΓ³n sobre herramientas de pΓ‘gina de pestaΓ±a personalizada para la "
+"interfaz grΓ‘fica (GUI)"
 
 msgid "terminal"
 msgstr "terminal"
 
-# TODO: Capitalise first word of message?
-msgid "E679: Recursive loop loading syncolor.vim"
-msgstr "E679: bucle recursivo al cargar \"syncolor.vim\""
-
-#, c-format
-# TODO: Capitalise first word of message?
-msgid "E411: Highlight group not found: %s"
-msgstr "E411: grupo de resaltado no encontrado: %s"
-
 msgid "name of the used terminal"
 msgstr "nombre de la terminal utilizada"
 
@@ -9548,25 +9236,6 @@ msgstr "solicitar cΓ³digos de clave de terminal cuando se detecta un xterm"
 msgid "terminal that requires extra redrawing"
 msgstr "terminal que requiere un rediseΓ±o adicional"
 
-# TODO: Capitalise first word of message?
-msgid "E414: Group has settings, highlight link ignored"
-msgstr "E414: Esta grupo estΓ‘ configurado, se ignora el enlace resaltado"
-
-#, c-format
-# TODO: Capitalise first word of message?
-msgid "E415: Unexpected equal sign: %s"
-msgstr "E415: Signo \"=\" inesperado: %s"
-
-#, c-format
-# TODO: Capitalise first word of message?
-msgid "E416: Missing equal sign: %s"
-msgstr "E416: Falta el signo \"=\": %s"
-
-#, c-format
-# TODO: Capitalise first word of message?
-msgid "E417: Missing argument: %s"
-msgstr "E417: Falta el argumento: %s"
-
 msgid "recognize keys that start with <Esc> in Insert mode"
 msgstr "reconocer teclas que comienzan con <Esc> en el modo Insertar"
 
@@ -9575,8 +9244,8 @@ msgstr "nΓΊmero mΓ­nimo de lΓ­neas para desplazarse a la vez"
 
 msgid "maximum number of lines to use scrolling instead of redrawing"
 msgstr ""
-"nΓΊmero mΓ‘ximo de lΓ­neas para usar el desplazamiento en lugar de volver a"
-" dibujar"
+"nΓΊmero mΓ‘ximo de lΓ­neas para usar el desplazamiento en lugar de volver a "
+"dibujar"
 
 msgid "specifies what the cursor looks like in different modes"
 msgstr "especifica cΓ³mo se ve el cursor en diferentes modos"
@@ -9584,11 +9253,6 @@ msgstr "especifica cΓ³mo se ve el cursor en diferentes modos"
 msgid "show info in the window title"
 msgstr "mostrar informaciΓ³n en el tΓ­tulo de la ventana"
 
-#, c-format
-# TODO: Capitalise first word of message?
-msgid "E422: Terminal code too long: %s"
-msgstr "E422: CΓ³digo de terminal demasiado largo: %s"
-
 msgid "percentage of 'columns' used for the window title"
 msgstr "porcentaje de 'columnas' utilizadas para el tΓ­tulo de la ventana"
 
@@ -9607,25 +9271,12 @@ msgstr "cuando no estΓ‘ vacΓ­o, texto para el icono de esta ventana"
 msgid "restore the screen contents when exiting Vim"
 msgstr "restaurar el contenido de la pantalla al salir de Vim"
 
-# TODO: Capitalise first word of message?
-msgid "E555: At bottom of tag stack"
-msgstr "E555: En el final de la pila de etiquetas"
-
-# TODO: Capitalise first word of message?
-msgid "E556: At top of tag stack"
-msgstr "E556: En el principio de la pila de etiquetas"
-
 msgid "using the mouse"
 msgstr "utilizar el ratΓ³n"
 
 msgid "list of flags for using the mouse"
 msgstr "lista de opciones para usar el ratΓ³n"
 
-#, c-format
-# TODO: Capitalise first word of message?
-msgid "E426: Tag not found: %s"
-msgstr "E426: No se encontrΓ³ la etiqueta: %s"
-
 msgid "the window with the mouse pointer becomes the current one"
 msgstr "la ventana con el puntero del ratΓ³n se convierte en la actual"
 
@@ -9696,8 +9347,8 @@ msgid ""
 "\"last\", \"buffer\" or \"current\": which directory used for the file "
 "browser"
 msgstr ""
-"\"last\", \"buffer\" o \"current\": quΓ© directorio se utilizarΓ‘ para el"
-" navegador de archivos"
+"\"last\", \"buffer\" o \"current\": quΓ© directorio se utilizarΓ‘ para el "
+"navegador de archivos"
 
 msgid "language to be used for the menus"
 msgstr "idioma que se utilizarΓ‘ para los menΓΊs"
@@ -9729,10 +9380,6 @@ msgstr "Imprimiendo"
 msgid "list of items that control the format of :hardcopy output"
 msgstr "lista de elementos que controlan el formato de salida :hardcopy"
 
-# TODO: Capitalise first word of message?
-msgid "E437: Terminal capability \"cm\" required"
-msgstr "E437: Se necesita la capacidad \"cm\" en el terminal"
-
 msgid "name of the printer to be used for :hardcopy"
 msgstr "nombre de la impresora que se utilizarΓ‘ para :hardcopy"
 
@@ -9764,10 +9411,6 @@ msgid "add 's' flag in 'shortmess' (don'
 msgstr ""
 "aΓ±adir la opciΓ³n 's' en 'shortmess' (no mostrar el mensaje de bΓΊsqueda)"
 
-# TODO: Capitalise first word of message?
-msgid "E438: u_undo: Line numbers wrong"
-msgstr "E438: \"u_undo\": nΓΊmeros de lΓ­nea errΓ³neos"
-
 msgid "list of flags to make messages shorter"
 msgstr "lista de opciones para hacer los mensajes mΓ‘s cortos"
 
@@ -9813,17 +9456,10 @@ msgstr "lista de idiomas preferidos para
 msgid "selecting text"
 msgstr "seleccionar texto"
 
-# TODO: Capitalise first word of message?
-msgid "E439: Undo list corrupt"
-msgstr "E439: la lista de deshacer se ha daΓ±ado"
-
-# TODO: Capitalise first word of message?
-msgid "E440: Undo line missing"
-msgstr "E440: falta la lΓ­nea deshacer"
-
 msgid "\"old\", \"inclusive\" or \"exclusive\"; how selecting text behaves"
 msgstr ""
-"\"old\", \"inclusive\" o \"exclusive\"; cΓ³mo se comporta la selecciΓ³n de texto"
+"\"old\", \"inclusive\" o \"exclusive\"; cΓ³mo se comporta la selecciΓ³n de "
+"texto"
 
 msgid ""
 "\"mouse\", \"key\" and/or \"cmd\"; when to start Select mode\n"
@@ -9898,8 +9534,8 @@ msgstr "si usar un menΓΊ emergente para el completado del modo Insertar"
 
 msgid "options for the Insert mode completion info popup"
 msgstr ""
-"opciones para la ventana emergente de informaciΓ³n del completado del modo"
-" Insertar"
+"opciones para la ventana emergente de informaciΓ³n del completado del modo "
+"Insertar"
 
 msgid "maximum height of the popup menu"
 msgstr "altura mΓ‘xima del menΓΊ emergente"
@@ -9912,8 +9548,8 @@ msgstr "funciΓ³n definida por el usuario para el completado del modo Insertar"
 
 msgid "function for filetype-specific Insert mode completion"
 msgstr ""
-"funciΓ³n para el completado del modo Insertar para tipos de archivos"
-" especΓ­ficos"
+"funciΓ³n para el completado del modo Insertar para tipos de archivos "
+"especΓ­ficos"
 
 msgid "list of dictionary files for keyword completion"
 msgstr "lista de archivos de diccionario para el completado de palabras clave"
@@ -9927,8 +9563,8 @@ msgstr "funciΓ³n utilizada para el completado \"thesaurus\""
 
 msgid "adjust case of a keyword completion match"
 msgstr ""
-"ajustar las mayΓΊsculas y minΓΊsculas de una coincidencia de palabra clave para"
-" el completado"
+"ajustar las mayΓΊsculas y minΓΊsculas de una coincidencia de palabra clave "
+"para el completado"
 
 msgid "enable entering digraphs with c1 <BS> c2"
 msgstr "habilitar el ingreso de dΓ­grafos con c1 <Retroceso> c2"
@@ -9955,7 +9591,8 @@ msgid ""
 "\"alpha\", \"octal\", \"hex\", \"bin\" and/or \"unsigned\"; number formats\n"
 "recognized for CTRL-A and CTRL-X commands"
 msgstr ""
-"\"alpha\", \"octal\", \"hex\", \"bin\" y/o \"unsigned\"; formatos de nΓΊmeros\n"
+"\"alpha\", \"octal\", \"hex\", \"bin\" y/o \"unsigned\"; formatos de "
+"nΓΊmeros\n"
 "reconocidos para los comandos CTRL-A y CTRL-X"
 
 msgid "tabs and indenting"
@@ -10159,13 +9796,13 @@ msgstr "mantener una copia de seguridad despuΓ©s de sobrescribir un archivo"
 
 msgid "patterns that specify for which files a backup is not made"
 msgstr ""
-"patrones que especifican para quΓ© archivos no se realiza una copia de"
-" seguridad"
+"patrones que especifican para quΓ© archivos no se realiza una copia de "
+"seguridad"
 
 msgid "whether to make the backup as a copy or rename the existing file"
 msgstr ""
-"hacer la copia de seguridad como una copia o cambiar el nombre del archivo"
-" existente"
+"hacer la copia de seguridad como una copia o cambiar el nombre del archivo "
+"existente"
 
 msgid "list of directories to put backup files in"
 msgstr ""
@@ -10188,8 +9825,8 @@ msgstr "leer automΓ‘ticamente un archivo cuando se modificΓ³ fuera de Vim"
 
 msgid "keep oldest version of a file; specifies file name extension"
 msgstr ""
-"mantener la versiΓ³n mΓ‘s antigua de un archivo; especifica la extensiΓ³n del"
-" nombre del archivo"
+"mantener la versiΓ³n mΓ‘s antigua de un archivo; especifica la extensiΓ³n del "
+"nombre del archivo"
 
 msgid "forcibly sync the file to disk after writing it"
 msgstr "sincronizar a la fuerza el archivo en el disco despuΓ©s de escribirlo"
@@ -10212,12 +9849,13 @@ msgstr "usar un archivo de intercambio para este bΓΊfer"
 
 msgid "\"sync\", \"fsync\" or empty; how to flush a swap file to disk"
 msgstr ""
-"\"sync\", \"fsync\" o vacΓ­o; cΓ³mo vaciar un archivo de intercambio en el disco"
+"\"sync\", \"fsync\" o vacΓ­o; cΓ³mo vaciar un archivo de intercambio en el "
+"disco"
 
 msgid "number of characters typed to cause a swap file update"
 msgstr ""
-"nΓΊmero de caracteres escritos para provocar una actualizaciΓ³n del archivo de"
-" intercambio"
+"nΓΊmero de caracteres escritos para provocar una actualizaciΓ³n del archivo de "
+"intercambio"
 
 msgid "time in msec after which the swap file will be updated"
 msgstr ""
@@ -10246,8 +9884,8 @@ msgstr "especifica cΓ³mo funciona el completado de la lΓ­nea de comando"
 
 msgid "empty or \"tagfile\" to list file name of matching tags"
 msgstr ""
-"vacΓ­o o \"tagfile\" para enumerar el nombre de archivo de las etiquetas"
-" coincidentes"
+"vacΓ­o o \"tagfile\" para enumerar el nombre de archivo de las etiquetas "
+"coincidentes"
 
 msgid "list of file name extensions that have a lower priority"
 msgstr ""
@@ -10303,8 +9941,8 @@ msgstr "se utiliza para redirigir la sal
 
 msgid "use a temp file for shell commands instead of using a pipe"
 msgstr ""
-"usar un archivo temporal para los comandos de shell en lugar de usar una"
-" tuberΓ­a (pipe)"
+"usar un archivo temporal para los comandos de shell en lugar de usar una "
+"tuberΓ­a (pipe)"
 
 msgid "program used for \"=\" command"
 msgstr "programa utilizado para el comando \"=\""
@@ -10405,11 +10043,6 @@ msgstr "prepararse para editar texto en Γ‘rabe"
 msgid "perform shaping of Arabic characters"
 msgstr "realizar la formaciΓ³n de caracteres Γ‘rabes"
 
-#, c-format
-# TODO: Capitalise first word of message?
-msgid "E247: No registered server named \"%s\""
-msgstr "E247: El servidor llamado \"%s\" no estΓ‘ registrado"
-
 msgid "terminal will perform bidi handling"
 msgstr "la terminal realizarΓ‘ el manejo de bidi"
 
@@ -10424,8 +10057,8 @@ msgstr "aplicar 'langmap' a los caracter
 
 msgid "when set never use IM; overrules following IM options"
 msgstr ""
-"cuando estΓ‘ configurado, no utilizar nunca IM; anula las siguientes opciones"
-" de IM"
+"cuando estΓ‘ configurado, no utilizar nunca IM; anula las siguientes opciones "
+"de IM"
 
 msgid "in Insert mode: 1: use :lmap; 2: use IM; 0: neither"
 msgstr "en el modo Insertar: 1: utilizar :lmap; 2: utilizar IM; 0: ninguno"
@@ -10435,17 +10068,13 @@ msgstr "estilo de mΓ©todo de entrada, 0: \"on-the-spot\", 1: \"over-the-spot\""
 
 msgid "entering a search pattern: 1: use :lmap; 2: use IM; 0: neither"
 msgstr ""
-"introducir un patrΓ³n de bΓΊsqueda: 1: utilizar :lmap; 2: utilizar IM; 0:"
-" ninguno"
+"introducir un patrΓ³n de bΓΊsqueda: 1: utilizar :lmap; 2: utilizar IM; 0: "
+"ninguno"
 
 msgid "when set always use IM when starting to edit a command line"
 msgstr ""
-"cuando estΓ‘ configurado, siempre use IM cuando comience a editar una lΓ­nea de"
-" comando"
-
-# TODO: Capitalise first word of message?
-msgid "E233: Cannot open display"
-msgstr "E233: No se pudo abrir la pantalla"
+"cuando estΓ‘ configurado, siempre use IM cuando comience a editar una lΓ­nea "
+"de comando"
 
 msgid "function to obtain IME status"
 msgstr "funciΓ³n para obtener el estado IME"
@@ -10518,10 +10147,6 @@ msgstr "usa la opciΓ³n 'g' para \":substitute\""
 msgid "'g' and 'c' flags of \":substitute\" toggle"
 msgstr "Las opciones 'g' y 'c' de \":substitute\" alternan la funciΓ³n"
 
-# TODO: Capitalise first word of message?
-msgid "E73: Tag stack empty"
-msgstr "E73: La pila de etiquetas ('tagstack') estΓ‘ vacΓ­a"
-
 msgid "allow reading/writing devices"
 msgstr "permitir dispositivos de lectura/escritura"
 
@@ -10576,14 +10201,6 @@ msgstr "nombre de la biblioteca dinΓ‘mica de Python 2"
 msgid "name of the Python 2 home directory"
 msgstr "nombre del directorio de inicio de Python 2"
 
-# TODO: Capitalise first word of message?
-msgid "E363: Pattern uses more memory than 'maxmempattern'"
-msgstr "E363: El patrΓ³n usa mΓ‘s memoria que 'maxmempattern'"
-
-# TODO: Capitalise first word of message?
-msgid "E749: Empty buffer"
-msgstr "E749: BΓΊfer vacΓ­o"
-
 msgid "name of the Python 3 dynamic library"
 msgstr "nombre de la biblioteca dinΓ‘mica de Python 3"
 
@@ -10602,11 +10219,3 @@ msgstr "nombre de la biblioteca dinΓ‘mica MzScheme"
 msgid "name of the MzScheme GC dynamic library"
 msgstr "nombre de la biblioteca dinΓ‘mica MzScheme GC"
 
-
-# Get here when the server can't be found.
-
-
-# Highlight title
-
-
-# Only MS VC 4.1 and earlier can do Win32s
--- a/src/po/pt_BR.po
+++ b/src/po/pt_BR.po
@@ -3632,7 +3632,7 @@ msgid "          owned by: "
 msgstr "        pertence a: "
 
 msgid "   dated: "
-msgstr "com data: "
+msgstr "   com data: "
 
 msgid "             dated: "
 msgstr "       com data de: "
--- a/src/po/uk.cp1251.po
+++ b/src/po/uk.cp1251.po
@@ -15,7 +15,7 @@ msgstr ""
 "Project-Id-Version: vim 8.1\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2022-05-02 17:40+0300\n"
-"PO-Revision-Date: 2022-05-02 10:43+0300\n"
+"PO-Revision-Date: 2022-05-20 17:12+0300\n"
 "Last-Translator: ΐνΰςξλ³ι Ρΰυν³κ <sakhnik@gmail.com>\n"
 "Language-Team: Ukrainian\n"
 "Language: uk\n"
@@ -1464,7 +1464,7 @@ msgid "%d files to edit\n"
 msgstr "%d τΰιλθ(³β)\n"
 
 msgid "netbeans is not supported with this GUI\n"
-msgstr "netbeans νε ο³δςπθμσΊςόρ η φθμ GUI\n"
+msgstr "NetBeans νε ο³δςπθμσΊςόρ η φθμ GUI\n"
 
 msgid "'-nb' cannot be used: not enabled at compile time\n"
 msgstr "Νε μξζνΰ βθκξπθρςΰςθ '-nb': νε δξηβξλενξ ο³δ χΰρ κξμο³λφ³Ώ\n"
@@ -4079,7 +4079,6 @@ msgid "E55: Unmatched %s)"
 msgstr "E55: ΝεμΰΊ οΰπθ %s)"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E59: Invalid character after %s@"
 msgstr "E59: Νεδξηβξλενθι ρθμβξλ ο³ρλ %s@"
 
@@ -4097,7 +4096,6 @@ msgstr "E61: Βκλΰδεν³ %s*"
 msgid "E62: Nested %s%c"
 msgstr "E62: Βκλΰδεν³ %s%c"
 
-# TODO: Capitalise first word of message?
 msgid "E63: Invalid use of \\_"
 msgstr "E63: Νεκξπεκςνξ βζθςξ \\_"
 
@@ -4135,7 +4133,6 @@ msgstr "E71: Νεδξηβξλενθι ρθμβξλ ο³ρλ %s%%"
 msgid "E72: Close error on swap file"
 msgstr "E72: Οξμθλκΰ ο³δ χΰρ ηΰκπθςς τΰιλσ ξαμ³νσ"
 
-# TODO: Capitalise first word of message?
 msgid "E73: Tag stack empty"
 msgstr "E73: Ρςεκ μ³ςξκ οξπξζν³ι"
 
@@ -4381,9 +4378,8 @@ msgstr "E142: Τΰιλ νε ηΰοθρΰνξ: ηΰοθρ ηΰαξπξνενξ ξοφ³Ίώ 'write'"
 msgid "E143: Autocommands unexpectedly deleted new buffer %s"
 msgstr "E143: ΐβςξκξμΰνδθ νεροξδ³βΰνξ ηνθωθλθ νξβθι αστεπ %s"
 
-# TODO: Capitalise first word of message?
 msgid "E144: Non-numeric argument to :z"
-msgstr "E144: νε χθρλξβθι ΰπγσμενς δλ :z"
+msgstr "E144: Νε χθρλξβθι ΰπγσμενς σ :z"
 
 msgid "E145: Shell commands and some functionality not allowed in rvim"
 msgstr "E145: Σ rvim νε δξηβξλεν³ κξμΰνδθ ξαξλξνκθ ³ δεκΰ τσνκφ³ξνΰλόν³ρςό"
@@ -4511,9 +4507,8 @@ msgstr "E178: Νεοπΰβθλόνε οξχΰςκξβε ηνΰχενν λ³χθλόνθκΰ"
 
 # msgstr "E178: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E179: Argument required for %s"
-msgstr "E179: οξςπ³αεν ΰπγσμενς δλ %s"
+msgstr "E179: Οξςπ³αεν ΰπγσμενς δλ %s"
 
 # msgstr "E179: "
 #, c-format
@@ -4615,9 +4610,8 @@ msgstr "E204: ΐβςξκξμΰνδΰ νεροξδ³βΰνθμ χθνξμ ημ³νθλΰ κ³λόκ³ρςό πδκ³β"
 msgid "E205: Patchmode: can't save original file"
 msgstr "E205: Λΰςΰνν: νε βδΰλξρ ηαεπεγςθ ξπθγ³νΰλ"
 
-# TODO: Capitalise first word of message?
 msgid "E206: Patchmode: can't touch empty original file"
-msgstr "E206: Λΰςΰνν: νε βδΰλξρ ρςβξπθςθ ξπθγ³νΰλ"
+msgstr "E206: Λΰςΰνν: Νε βδΰλξρ ρςβξπθςθ ξπθγ³νΰλ"
 
 msgid "E207: Can't delete backup file"
 msgstr "E207: Νε βδΰλξρ ηνθωθςθ πεηεπβνθι τΰιλ"
@@ -4664,7 +4658,6 @@ msgstr "E216: ΝεμΰΊ ςΰκξΏ γπσοθ χθ οξδ³Ώ: %s"
 msgid "E217: Can't execute autocommands for ALL events"
 msgstr "E217: Νε μξζσ βθκξνσβΰςθ ΰβςξκξμΰνδθ δλ ΣΡ²Υ οξδ³ι"
 
-# TODO: Capitalise first word of message?
 msgid "E218: Autocommand nesting too deep"
 msgstr "E218: Ηΰαΰγΰςξ βκλΰδενθυ ΰβςξκξμΰνδ"
 
@@ -4682,31 +4675,26 @@ msgstr "E221: Οξηνΰχκΰ οξβθννΰ οξχθνΰςθρ η βελθκξΏ λ³ςεπθ"
 msgid "E222: Add to internal buffer that was already read from"
 msgstr "E222: Δξδΰβΰνν δξ βνσςπ³ψνόξγξ αστεπΰ, η κξγξ βζε οπξχθςΰνξ"
 
-# TODO: Capitalise first word of message?
 msgid "E223: Recursive mapping"
 msgstr "E223: Ηΰμ³νΰ πεκσπρθβνΰ"
 
 # msgstr "E223: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E224: Global abbreviation already exists for %s"
 msgstr "E224: Ηΰγΰλόνε ρκξπξχενν δλ %s βζε ³ρνσΊ"
 
 # msgstr "E224: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E225: Global mapping already exists for %s"
 msgstr "E225: Ηΰγΰλόνΰ ηΰμ³νΰ δλ %s βζε ³ρνσΊ"
 
 # msgstr "E225: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E226: Abbreviation already exists for %s"
 msgstr "E226: Βζε Ί ρκξπξχενν δλ %s"
 
 # msgstr "E226: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E227: Mapping already exists for %s"
 msgstr "E227: Βζε Ί ηΰμ³νΰ δλ %s"
 
@@ -4729,7 +4717,6 @@ msgstr "E231: Νεκξπεκςνθι 'guifontwide'"
 msgid "E232: Cannot create BalloonEval with both message and callback"
 msgstr "E232: Νε βδΰλξρ ρςβξπθςθ BalloonEval η οξβ³δξμλεννμ ³ τσνκφ³Ίώ"
 
-# TODO: Capitalise first word of message?
 msgid "E233: Cannot open display"
 msgstr "E233: Νε βδΰλξρ β³δκπθςθ δθρολει"
 
@@ -4786,16 +4773,14 @@ msgid "E246: FileChangedShell autocomman
 msgstr "E246: ΐβςξκξμΰνδΰ FileChangedShell ηνθωθλΰ αστεπ"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E247: No registered server named \"%s\""
 msgstr "E247: ΝεμΰΊ ηΰπεΊρςπξβΰνθυ ρεπβεπ³β η νΰηβξώ «%s»"
 
 msgid "E248: Failed to send command to the destination program"
 msgstr "E248: Νε βδΰλξρ β³δ³ρλΰςθ κξμΰνδσ δξ οπξγπΰμθ-φ³λ³"
 
-# TODO: Capitalise first word of message?
 msgid "E249: Window layout changed unexpectedly"
-msgstr "E249: πξημ³ωενν β³κνΰ νεροξδ³βΰνξ ημ³νθλΰρ"
+msgstr "E249: Πξημ³ωενν β³κνΰ νεροξδ³βΰνξ ημ³νθλΰρ"
 
 #, c-format
 msgid "E250: Fonts for the following charsets are missing in fontset %s:"
@@ -4821,16 +4806,14 @@ msgstr "E254: Νε βδΰλξρ ξςπθμΰςθ κξλ³π %s"
 msgid "E255: Couldn't read in sign data"
 msgstr "E255: Νε μξζνΰ ηχθςΰςθ δΰν³ νΰοθρσ"
 
-# TODO: Capitalise first word of message?
 msgid "E257: cstag: Tag not found"
-msgstr "E257: cstag: μ³ςκσ νε ηνΰιδενξ"
+msgstr "E257: cstag: Μ³ςκσ νε ηνΰιδενξ"
 
 msgid "E258: Unable to send to client"
 msgstr "E258: Νε βδΰλξρ νΰδ³ρλΰςθ κλ³Ίνςσ"
 
 # msgstr "E258: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E259: No matches found for cscope query %s of %s"
 msgstr "E259: Δλ ηΰοθςσ cscope %s η %s ν³χξγξ νε ηνΰιδενξ"
 
@@ -4839,12 +4822,10 @@ msgstr "E260: Ο³ρλ -> απΰκσΊ νΰηβθ"
 
 # msgstr "E260: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E261: Cscope connection %s not found"
 msgstr "E261: Η'Ίδνΰνν η cscope %s νε ηνΰιδενξ"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E262: Error reading cscope connection %d"
 msgstr "E262: Οξμθλκΰ χθςΰνν η³ η'Ίδνΰνν cscope %d"
 
@@ -4867,33 +4848,26 @@ msgstr ""
 "E266: Βθαΰχςε, φ κξμΰνδΰ βθμκνενΰ, α³αλ³ξςεκΰ Ruby νε μξζε ασςθ ηΰβΰνςΰζενΰ."
 
 # msgstr "E414: "
-# TODO: Capitalise first word of message?
 msgid "E267: Unexpected return"
-msgstr "E267: νεροξδ³βΰνθι return"
-
-# TODO: Capitalise first word of message?
+msgstr "E267: Νεροξδ³βΰνθι return"
+
 msgid "E268: Unexpected next"
-msgstr "E268: νεροξδ³βΰνθι next"
-
-# TODO: Capitalise first word of message?
+msgstr "E268: Νεροξδ³βΰνθι next"
+
 msgid "E269: Unexpected break"
-msgstr "E269: νεροξδ³βΰνθι break"
-
-# TODO: Capitalise first word of message?
+msgstr "E269: Νεροξδ³βΰνθι break"
+
 msgid "E270: Unexpected redo"
-msgstr "E270: νεροξδ³βΰνθι redo"
-
-# TODO: Capitalise first word of message?
+msgstr "E270: Νεροξδ³βΰνθι redo"
+
 msgid "E271: Retry outside of rescue clause"
-msgstr "E271: retry οξηΰ rescue"
-
-# TODO: Capitalise first word of message?
+msgstr "E271: Κξμΰνδΰ retry οξηΰ rescue"
+
 msgid "E272: Unhandled exception"
 msgstr "E272: Νεξαπξαλενθι βθνςξκ"
 
 # msgstr "E233: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E273: Unknown longjmp status %d"
 msgstr "E273: Νεβ³δξμθι ρςΰςσρ longjmp: %d"
 
@@ -4943,12 +4917,10 @@ msgstr ""
 "E287: Ηΰρςεπεζενν: Νε βδΰλξρ βρςΰνξβθςθ β μεςξδ³ ββξδσ οξδ³ώ ηνθωενν"
 
 # msgstr "E287: "
-# TODO: Capitalise first word of message?
 msgid "E288: Input method doesn't support any style"
 msgstr "E288: Μεςξδ ββξδσ νε ο³δςπθμσΊ ρςθλ³"
 
 # msgstr "E288: "
-# TODO: Capitalise first word of message?
 msgid "E289: Input method doesn't support my preedit type"
 msgstr "E289: Μεςξδ ββξδσ νε ο³δςπθμσΊ β³δπεδΰγξβΰν³ ςθοθ"
 
@@ -4961,7 +4933,6 @@ msgstr "E290: Οξςπ³αεν ροθρξκ χθ χθρλξ"
 msgid "E292: Invalid count for del_bytes(): %ld"
 msgstr "E292: Νεκξπεκςνΰ κ³λόκ³ρςό σ del_bytes(): %ld"
 
-# TODO: Capitalise first word of message?
 msgid "E293: Block was not locked"
 msgstr "E293: Αλξκ νε ασλξ ηΰτ³κρξβΰνξ"
 
@@ -5050,30 +5021,24 @@ msgstr "E314: Ηαεπεζενν νε βδΰλξρ"
 
 # msgstr "E314: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E315: ml_get: Invalid lnum: %ld"
-msgstr "E315: ml_get: νεοπΰβθλόνθι lnum: %ld"
+msgstr "E315: ml_get: Νεοπΰβθλόνθι lnum: %ld"
 
 # msgstr "E315: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E316: ml_get: Cannot find line %ld in buffer %d %s"
-msgstr "E316: ml_get: νε ηνΰιψξβ πδξκ %ld σ αστεπ³ %d %s"
-
-# TODO: Capitalise first word of message?
+msgstr "E316: ml_get: Νε ηνΰιψξβ πδξκ %ld σ αστεπ³ %d %s"
+
 msgid "E317: Pointer block id wrong"
 msgstr "E317: Βκΰη³βνθκ αλξκσ οξμθλκξβθι"
 
-# TODO: Capitalise first word of message?
 msgid "E317: Pointer block id wrong 2"
 msgstr "E317: Βκΰη³βνθκ αλξκσ οξμθλκξβθι 2"
 
 # msgstr "E316: "
-# TODO: Capitalise first word of message?
 msgid "E317: Pointer block id wrong 3"
 msgstr "E317: Βκΰη³βνθκ αλξκσ οξμθλκξβθι 3"
 
-# TODO: Capitalise first word of message?
 msgid "E317: Pointer block id wrong 4"
 msgstr "E317: Βκΰη³βνθκ αλξκσ οξμθλκξβθι 4"
 
@@ -5092,13 +5057,11 @@ msgid "E321: Could not reload \"%s\""
 msgstr "E321: Νε βδΰλξρ οεπεχθςΰςθ «%s»"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E322: Line number out of range: %ld past the end"
 msgstr "E322: Νξμεπ πδκΰ βθιψξβ ηΰ μεζ³: %ld ηΰ κ³νφεμ"
 
 # msgstr "E322: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E323: Line count wrong in block %ld"
 msgstr "E323: Κ³λόκ³ρςό πδκ³β σ αλξφ³ %ld"
 
@@ -5253,7 +5216,6 @@ msgstr "E360: Νε βδΰλξρ ηΰοσρςθςθ ξαξλξνκσ η ξοφ³Ίώ -f"
 msgid "E362: Using a boolean value as a Float"
 msgstr "E362: Λξγ³χνε ηνΰχενν βζθςξ κ Float"
 
-# TODO: Capitalise first word of message?
 msgid "E363: Pattern uses more memory than 'maxmempattern'"
 msgstr "E363: Ηπΰηξκ βθκξπθρςξβσΊ α³λόψε, ν³ζ 'maxmempattern', οΰμ'ς³"
 
@@ -5272,12 +5234,10 @@ msgid "E367: No such group: \"%s\""
 msgstr "E367: ΝεμΰΊ ςΰκξΏ γπσοθ: «%s»"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E368: Got SIG%s in libcall()"
-msgstr "E368: ξςπθμΰνξ SIG%s σ libcall()"
-
-#, c-format
-# TODO: Capitalise first word of message?
+msgstr "E368: Ξςπθμΰνξ SIG%s σ libcall()"
+
+#, c-format
 msgid "E369: Invalid item in %s%%[]"
 msgstr "E369: Νεκξπεκςνθι ελεμενς σ %s%%[]"
 
@@ -5339,12 +5299,10 @@ msgid "E383: Invalid search string: %s"
 msgstr "E383: Νεοπΰβθλόνθι ηπΰηξκ δλ οξψσκσ: %s"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E384: Search hit TOP without match for: %s"
 msgstr "E384: Οξψσκ δ³ιψξβ δξ ΟΞΧΐΚΣ αεη ηα³γ³β η %s"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E385: Search hit BOTTOM without match for: %s"
 msgstr "E385: Οξψσκ δ³ιψξβ δξ Κ²ΝΦί αεη ηα³γ³β η %s"
 
@@ -5379,7 +5337,6 @@ msgstr "E393: group[t]here ςσς νεοπθινςνθι"
 msgid "E394: Didn't find region item for %s"
 msgstr "E394: Νε ηνΰιδενξ ελεμενς πεγ³ξνσ δλ %s"
 
-# TODO: Capitalise first word of message?
 msgid "E395: Contains argument not accepted here"
 msgstr "E395: Μ³ρςθςό νεοπθινςν³ ςσς ΰπγσμενςθ"
 
@@ -5408,7 +5365,6 @@ msgid "E402: Garbage after pattern: %s"
 msgstr "E402: Ρμ³ςς ο³ρλ ηπΰηκσ: %s"
 
 # msgstr "E402: "
-# TODO: Capitalise first word of message?
 msgid "E403: syntax sync: Line continuations pattern specified twice"
 msgstr ""
 "E403: Ρθνςΰκρθχνΰ ρθνυπξν³ηΰφ³: ηπΰηξκ δλ οπξδξβζενν πδκΰ βκΰηΰνξ δβ³χ³"
@@ -5447,7 +5403,6 @@ msgstr "E410: Νεοπΰβθλόνΰ ο³δκξμΰνδΰ :syntax: %s"
 
 # msgstr "E410: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E411: Highlight group not found: %s"
 msgstr "E411: Γπσοσ ο³δρβ³χσβΰνν νε ηνΰιδενξ: %s"
 
@@ -5462,24 +5417,20 @@ msgid "E413: Too many arguments: \":high
 msgstr "E413: Ηΰαΰγΰςξ ΰπγσμενς³β: «:highlight link %s»"
 
 # msgstr "E413: "
-# TODO: Capitalise first word of message?
 msgid "E414: Group has settings, highlight link ignored"
 msgstr "E414: Γπσμΰ μΰΊ settings, highlight link οπξ³γνξπξβΰνξ"
 
 # msgstr "E414: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E415: Unexpected equal sign: %s"
 msgstr "E415: Νεροξδ³βΰνθι ηνΰκ π³βνξρς³: %s"
 
 # msgstr "E415: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E416: Missing equal sign: %s"
 msgstr "E416: Οπξοσωενξ ηνΰκ π³βνξρς³: %s"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E417: Missing argument: %s"
 msgstr "E417: Οπξοσωενξ ΰπγσμενς: %s"
 
@@ -5502,7 +5453,6 @@ msgstr "E421: Νεπξηο³ηνΰνΰ νΰηβΰ ΰαξ νξμεπ κξλόξπσ: %s"
 
 # msgstr "E421: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E422: Terminal code too long: %s"
 msgstr "E422: Ηΰνΰδςξ δξβγθι κξδ ςεπμ³νΰλσ: %s"
 
@@ -5520,7 +5470,6 @@ msgstr "E425: Φε βζε νΰιοεπψΰ β³δοξβ³δνΰ μ³ςκΰ"
 
 # msgstr "E425: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E426: Tag not found: %s"
 msgstr "E426: Μ³ςκσ νε ηνΰιδενξ: %s"
 
@@ -5564,20 +5513,16 @@ msgstr "E435: Νε βδΰλξρ ηνΰιςθ μ³ςκσ, ς³λόκθ οπθοσωενν!"
 msgid "E436: No \"%s\" entry in termcap"
 msgstr "E436: ΝεμΰΊ ηΰοθρσ «%s» οπξ μξζλθβξρς³ ςεπμ³νΰλσ"
 
-# TODO: Capitalise first word of message?
 msgid "E437: Terminal capability \"cm\" required"
 msgstr "E437: Οξςπ³ανΰ μξζλθβ³ρςό ςεπμ³νΰλσ «cm»"
 
-# TODO: Capitalise first word of message?
 msgid "E438: u_undo: Line numbers wrong"
-msgstr "E438: u_undo: νεοπΰβθλόν³ νξμεπθ πδκ³β"
-
-# TODO: Capitalise first word of message?
+msgstr "E438: u_undo: Νεοπΰβθλόν³ νξμεπθ πδκ³β"
+
 msgid "E439: Undo list corrupt"
 msgstr "E439: Ροθρξκ ρκΰρσβΰνν οξψκξδζενξ"
 
 # msgstr "E439: "
-# TODO: Capitalise first word of message?
 msgid "E440: Undo line missing"
 msgstr "E440: Β³δρσςν³ι πδξκ ρκΰρσβΰνν"
 
@@ -5615,7 +5560,6 @@ msgstr "E448: Νε βδΰλξρ ηΰβΰνςΰζθςθ α³αλ³ξςεχνσ τσνκφ³ώ %s"
 msgid "E449: Invalid expression received"
 msgstr "E449: Ξςπθμΰνξ νεκξπεκςνθι βθπΰη"
 
-# TODO: Capitalise first word of message?
 msgid "E450: Buffer number, text or a list required"
 msgstr "E450: πεαΰ βκΰηΰςθ νξμεπ αστεπΰ, ςεκρς χθ ροθρξκ"
 
@@ -5631,9 +5575,8 @@ msgstr "E452: Δπσγΰ ; σ ροθρκσ ημ³ννθυ"
 msgid "E453: UL color unknown"
 msgstr "E453: Νεβ³δξμθι κξλ³π UL"
 
-# TODO: Capitalise first word of message?
 msgid "E454: Function list was modified"
-msgstr "E454: ροθρξκ τσνκφ³ι ημ³νθβρ"
+msgstr "E454: Ροθρξκ τσνκφ³ι ημ³νθβρ"
 
 msgid "E455: Error writing to PostScript output file"
 msgstr "E455: Νε βδΰλξρ ηΰοθρΰςθ βθυ³δνθι τΰιλ PostScript"
@@ -5657,9 +5600,8 @@ msgstr ""
 msgid "E459: Cannot go back to previous directory"
 msgstr "E459: Νε βδΰλξρ οεπειςθ δξ οξοεπεδνόξγξ κΰςΰλξγσ"
 
-# TODO: Capitalise first word of message?
 msgid "E460: Entries missing in mapset() dict argument"
-msgstr "E460: απΰκσΊ ηΰοθρ³β σ ρλξβνθκξβξμσ ΰπγσμενς³ mapset()"
+msgstr "E460: ΑπΰκσΊ ηΰοθρ³β σ ρλξβνθκξβξμσ ΰπγσμενς³ mapset()"
 
 #, c-format
 msgid "E461: Illegal variable name: %s"
@@ -5692,7 +5634,6 @@ msgid "E468: Completion argument only al
 msgstr "E468: ΐπγσμενς δξηβξλενθι ς³λόκθ δλ δξοξβνενν κξπθρςσβΰχΰ"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E469: Invalid cscopequickfix flag %c for %c"
 msgstr "E469: Νεκξπεκςνθι οπΰοξπεφό cscopequickfix %c δλ %c"
 
@@ -5785,7 +5726,6 @@ msgstr "E488: Νΰδλθψκξβ³ ρθμβξλθ"
 msgid "E488: Trailing characters: %s"
 msgstr "E488: Νΰδλθψκξβ³ ρθμβξλθ: %s"
 
-# TODO: Capitalise first word of message?
 msgid "E489: No call stack to substitute for \"<stack>\""
 msgstr "E489: ΝεμΰΊ ρςεκσ βθκλθκ³β δλ ηΰμ³νθ «<stack>»"
 
@@ -5794,9 +5734,8 @@ msgid "E490: No fold found"
 msgstr "E490: Ηγξπςξκ νε ηνΰιδενξ"
 
 #, c-format
-# TODO: Capitalise first word of message?
-msgid "E491: Json decode error at '%s'"
-msgstr "E491: οξμθλκΰ δεκξδσβΰνν json σ «%s»"
+msgid "E491: JSON decode error at '%s'"
+msgstr "E491: Οξμθλκΰ δεκξδσβΰνν JSON σ «%s»"
 
 msgid "E492: Not an editor command"
 msgstr "E492: Φε νε κξμΰνδΰ πεδΰκςξπΰ"
@@ -5807,19 +5746,15 @@ msgstr "E493: ²νςεπβΰλ ηΰδΰνξ νΰβθβξπ³ς"
 msgid "E494: Use w or w>>"
 msgstr "E494: Ροπξασιςε w ΰαξ w>>"
 
-# TODO: Capitalise first word of message?
 msgid "E495: No autocommand file name to substitute for \"<afile>\""
 msgstr "E495: ΝεμΰΊ νΰηβθ τΰιλσ ΰβςξκξμΰνδθ δλ ηΰμ³νθ «<afile>»"
 
-# TODO: Capitalise first word of message?
 msgid "E496: No autocommand buffer number to substitute for \"<abuf>\""
 msgstr "E496: ΝεμΰΊ νξμεπΰ αστεπΰ ΰβςξκξμΰνδθ δλ ηΰμ³νθ «<abuf>»"
 
-# TODO: Capitalise first word of message?
 msgid "E497: No autocommand match name to substitute for \"<amatch>\""
 msgstr "E497: ΝεμΰΊ νΰηβθ ηα³γσ ΰβςξκξμΰνδθ δλ ηΰμ³νθ «<amatch>»"
 
-# TODO: Capitalise first word of message?
 msgid "E498: No :source file name to substitute for \"<sfile>\""
 msgstr "E498: ΝεμΰΊ νΰηβθ τΰιλσ :source δλ ηΰμ³νθ «<sfile>»"
 
@@ -5867,14 +5802,12 @@ msgstr "E509: Νε βδΰλξρ ρςβξπθςθ πεηεπβνσ κξο³ώ (! ωξα νε ηβΰζΰςθ)"
 msgid "E510: Can't make backup file (add ! to write anyway)"
 msgstr "E510: Νε βδΰλξρ ρςβξπθςθ πεηεπβνσ κξο³ώ (! ωξα νε ηβΰζΰςθ)"
 
-# TODO: Capitalise first word of message?
 msgid "E511: NetBeans already connected"
-msgstr "E511: netbeans βζε ο³δ'Ίδνΰνξ"
+msgstr "E511: NetBeans βζε ο³δ'Ίδνΰνξ"
 
 msgid "E512: Close failed"
 msgstr "E512: Νε βδΰλξρ ηΰκπθςθ"
 
-# TODO: Capitalise first word of message?
 msgid "E513: Write error, conversion failed (make 'fenc' empty to override)"
 msgstr "E513: Οξμθλκΰ ηΰοθρσ, κξνβεπςΰφ³ νε βδΰλΰρ (ρκθνόςε 'fenc')"
 
@@ -5885,7 +5818,6 @@ msgid ""
 msgstr ""
 "E513: Οξμθλκΰ ηΰοθρσ, κξνβεπςΰφ³ νε βδΰλΰρ σ πδκσ %ld (ρκθνόςε 'fenc')"
 
-# TODO: Capitalise first word of message?
 msgid "E514: Write error (file system full?)"
 msgstr "E514: Οξμθλκΰ ηΰοθρσ (ρκ³νχθλξρό β³λόνε μ³ρφε?)"
 
@@ -5945,11 +5877,9 @@ msgstr "E530: Νε μξζνΰ ημ³νθςθ 'term'  β GUI"
 msgid "E531: Use \":gui\" to start the GUI"
 msgstr "E531: Ηΰρςξρσιςε «:gui» δλ ηΰοσρκσ GUI"
 
-# TODO: Capitalise first word of message?
 msgid "E532: Highlighting color name too long in defineAnnoType"
-msgstr "E532: νΰηβΰ κξλόξπσ ο³δρβ³χσβΰνν ηΰδξβγΰ σ defineAnnoType"
-
-# TODO: Capitalise first word of message?
+msgstr "E532: Νΰηβΰ κξλόξπσ ο³δρβ³χσβΰνν ηΰδξβγΰ σ defineAnnoType"
+
 msgid "E533: Can't select wide font"
 msgstr "E533: Νε βδΰλξρ βθκξπθρςΰςθ πξηψθπενθι ψπθτς"
 
@@ -5960,7 +5890,6 @@ msgstr "E534: Νεκξπεκςνθι πξηψθπενθι ψπθτς"
 msgid "E535: Illegal character after <%c>"
 msgstr "E535: Νεδξηβξλενθι ρθμβξλ ο³ρλ <%c>"
 
-# TODO: Capitalise first word of message?
 msgid "E536: Comma required"
 msgstr "E536: Οξςπ³ανΰ κξμΰ"
 
@@ -5979,7 +5908,6 @@ msgstr "E539: Νεδξηβξλενθι ρθμβξλ <%s>"
 msgid "E540: Unclosed expression sequence"
 msgstr "E540: Οξρλ³δξβν³ρςό βθπΰη³β νε ηΰβεπψενξ"
 
-# TODO: Capitalise first word of message?
 msgid "E542: Unbalanced groups"
 msgstr "E542: Γπσοθ νε ηαΰλΰνρξβΰνξ"
 
@@ -5998,7 +5926,6 @@ msgstr "E546: Νεοπΰβθλόνθι πεζθμ"
 msgid "E547: Illegal mouseshape"
 msgstr "E547: Νεοπΰβθλόνθι βθγλδ μθψ³"
 
-# TODO: Capitalise first word of message?
 msgid "E548: Digit expected"
 msgstr "E548: Οξςπ³ανΰ φθτπΰ"
 
@@ -6012,9 +5939,8 @@ msgstr "E550: Οπξοσωενξ δβξκπΰοκσ"
 msgid "E551: Illegal component"
 msgstr "E551: Νεκξπεκςνθι κξμοξνενς"
 
-# TODO: Capitalise first word of message?
 msgid "E552: Digit expected"
-msgstr "E552: ξχ³κσΊςόρ φθτπΰ"
+msgstr "E552: Ξχ³κσΊςόρ φθτπΰ"
 
 msgid "E553: No more items"
 msgstr "E553: ΝεμΰΊ α³λόψε ελεμενς³β"
@@ -6025,11 +5951,9 @@ msgid "E554: Syntax error in %s{...}"
 msgstr "E554: Ρθνςΰκρθχνΰ οξμθλκΰ β %s{...}"
 
 # msgstr "E424: "
-# TODO: Capitalise first word of message?
 msgid "E555: At bottom of tag stack"
 msgstr "E555: Κ³νεφό ρςεκσ μ³ςξκ"
 
-# TODO: Capitalise first word of message?
 msgid "E556: At top of tag stack"
 msgstr "E556: Βεπψθνΰ ρςεκσ μ³ςξκ"
 
@@ -6046,7 +5970,6 @@ msgstr "E559: ΝεμΰΊ ³ντξπμΰφ³Ώ οπξ μξζλθβξρς³ ςεπμ³νΰλσ"
 msgid "E560: Usage: cs[cope] %s"
 msgstr "E560: Βθκξπθρςΰνν: cs[cope] %s"
 
-# TODO: Capitalise first word of message?
 msgid "E561: Unknown cscope search type"
 msgstr "E561: Νεβ³δξμθι ςθο οξψσκσ cscope"
 
@@ -6068,15 +5991,12 @@ msgstr "E565: Νε δξηβξλενξ ημ³νώβΰςθ ςεκρς χθ β³κνξ"
 msgid "E566: Could not create cscope pipes"
 msgstr "E566: Νε βδΰλξρ ρςβξπθςθ κΰνΰλθ δξ cscope"
 
-# TODO: Capitalise first word of message?
 msgid "E567: No cscope connections"
-msgstr "E567: ζξδνξγξ η'Ίδνΰνν ³η cscope"
-
-# TODO: Capitalise first word of message?
+msgstr "E567: Ζξδνξγξ η'Ίδνΰνν ³η cscope"
+
 msgid "E568: Duplicate cscope database not added"
 msgstr "E568: Οξβςξπνΰ αΰηΰ δΰνθυ cscope νε δξδΰνΰ"
 
-# TODO: Capitalise first word of message?
 msgid "E570: Fatal error in cs_manage_matches"
 msgstr "E570: Τΰςΰλόνΰ οξμθλκΰ β cs_manage_matches"
 
@@ -6086,7 +6006,6 @@ msgstr ""
 "E571: Βθαΰχςε, φ κξμΰνδΰ βθμκνενΰ, α³αλ³ξςεκΰ Tcl νε μξζε ασςθ ηΰβΰνςΰζενΰ."
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E572: Exit code %d"
 msgstr "E572: Κξδ βθυξδσ %d"
 
@@ -6110,11 +6029,9 @@ msgstr "Νεοπΰβθλόνΰ νΰηβΰ πεγ³ρςπσ"
 msgid "E578: Not allowed to change text here"
 msgstr "E578: Ημ³νώβΰςθ ςεκρς ςσς νε δξηβξλενξ"
 
-# TODO: Capitalise first word of message?
 msgid "E579: :if nesting too deep"
 msgstr "E579: Ηΰνΰδςξ αΰγΰςξ βκλΰδενθυ :if"
 
-# TODO: Capitalise first word of message?
 msgid "E579: Block nesting too deep"
 msgstr "E579: Ηΰαΰγΰςξ βκλΰδενθυ αλξκ³β"
 
@@ -6127,7 +6044,6 @@ msgstr "E581: :else αεη :if"
 msgid "E582: :elseif without :if"
 msgstr "E582: :elseif αεη :if"
 
-# TODO: Capitalise first word of message?
 msgid "E583: Multiple :else"
 msgstr "E583: Νε ξδνε :else"
 
@@ -6175,7 +6091,6 @@ msgstr "E595: 'showbreak' μ³ρςθςό νεδπσκξβν³ ΰαξ πξηψθπεν³ ρθμβξλθ"
 msgid "E596: Invalid font(s)"
 msgstr "E596: Νεκξπεκςνθι(³) ψπθτς(θ)"
 
-# TODO: Capitalise first word of message?
 msgid "E597: Can't select fontset"
 msgstr "E597: Νε βδΰλξρ βθαπΰςθ νΰα³π ψπθτς³β"
 
@@ -6207,7 +6122,6 @@ msgstr "E605: Βθνςκξβΰ ρθςσΰφ³ νε ξαπξαλενΰ: %s"
 msgid "E606: :finally without :try"
 msgstr "E606: :finally αεη :try"
 
-# TODO: Capitalise first word of message?
 msgid "E607: Multiple :finally"
 msgstr "E607: Νε ξδνε :finally"
 
@@ -6235,12 +6149,10 @@ msgid "E617: Cannot be changed in the GT
 msgstr "E617: Νε μξζνΰ ημ³νθςθ β GUI GTK"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E618: File \"%s\" is not a PostScript resource file"
 msgstr "E618: «%s» νε Ί τΰιλξμ περσπρ³β PostScript"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E619: File \"%s\" is not a supported PostScript resource file"
 msgstr "E619: «%s» νε Ί ο³δςπθμσβΰνθμ τΰιλξμ περσπρ³β PostScript"
 
@@ -6263,26 +6175,21 @@ msgid "E624: Can't open file \"%s\""
 msgstr "E624: Νε βδΰλξρ β³δκπθςθ τΰιλ «%s»"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E625: Cannot open cscope database: %s"
 msgstr "E625: Νε βδΰλξρ β³δκπθςθ αΰησ δΰνθυ cscope: %s"
 
-# TODO: Capitalise first word of message?
 msgid "E626: Cannot get cscope database information"
 msgstr "E626: Νε βδΰλξρ ξςπθμΰςθ ³ντξπμΰφ³ώ η αΰηθ δΰνθυ cscope"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E630: %s(): Write while not connected"
-msgstr "E630: %s(): ηΰοθρ δξ ο³δ’Ίδνΰνν"
-
-#, c-format
-# TODO: Capitalise first word of message?
+msgstr "E630: %s(): Ηΰοθρ δξ ο³δ’Ίδνΰνν"
+
+#, c-format
 msgid "E631: %s(): Write failed"
-msgstr "E631: %s(): ηαεπεζενν νε βδΰλξρ"
-
-#, c-format
-# TODO: Capitalise first word of message?
+msgstr "E631: %s(): Ηαεπεζενν νε βδΰλξρ"
+
+#, c-format
 msgid "E654: Missing delimiter after search pattern: %s"
 msgstr "E654: ΑπΰκσΊ πξηδ³λώβΰχΰ ο³ρλ ηπΰηκσ δλ οξψσκσ: %s"
 
@@ -6313,7 +6220,6 @@ msgstr "E662: Οξχΰςξκ ροθρκσ ημ³ν"
 msgid "E663: At end of changelist"
 msgstr "E663: Κ³νεφό ροθρκσ ημ³ν"
 
-# TODO: Capitalise first word of message?
 msgid "E664: Changelist is empty"
 msgstr "E664: Ροθρξκ ημ³ν οξπξζν³ι"
 
@@ -6321,7 +6227,6 @@ msgid "E665: Cannot start GUI, no valid 
 msgstr "E665: Νε βδΰλξρ ηΰοσρςθςθ GUI, νε ηνΰιδενξ ψπθτς"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E666: Compiler not supported: %s"
 msgstr "E666: Κξμο³λςξπ νε ο³δςπθμσΊςόρ: %s"
 
@@ -6332,7 +6237,7 @@ msgstr "E667: Νε βδΰλξρ βθκξνΰςθ fsync"
 msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
 msgstr ""
 "E668: Νεοπΰβθλόνθι πεζθμ δξρςσοσ δξ τΰιλσ ³ντξπμΰφ³Ώ οπξ η'Ίδνΰνν η "
-"NetBenans: «%s»"
+"NetBeans: «%s»"
 
 msgid "E669: Unprintable character in group name"
 msgstr "E669: Νεδπσκξβνθι ρθμβξλ σ νΰηβ³ γπσοθ"
@@ -6369,7 +6274,6 @@ msgstr "E677: Νε βδΰλξρ ηΰοθρΰςθ ςθμχΰρξβθι τΰιλ"
 msgid "E678: Invalid character after %s%%[dxouU]"
 msgstr "E678: Νεδξηβξλενθι ρθμβξλ ο³ρλ %s%%[dxouU]"
 
-# TODO: Capitalise first word of message?
 msgid "E679: Recursive loop loading syncolor.vim"
 msgstr "E679: Πεκσπρθβνθι φθκλ χθςΰνν syncolor.vim"
 
@@ -6387,7 +6291,6 @@ msgid "E683: File name missing or invali
 msgstr "E683: Οπξοσωενξ νΰηβσ τΰιλσ χθ νεκξπεκςνθι ψΰαλξν"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E684: List index out of range: %ld"
 msgstr "E684: ²νδεκρ ροθρκσ οξηΰ μεζΰμθ: %ld"
 
@@ -6432,7 +6335,6 @@ msgstr "E696: ΑπΰκσΊ κξμθ σ ροθρκσ: %s"
 msgid "E697: Missing end of List ']': %s"
 msgstr "E697: ΝεμΰΊ κ³νφ³βκθ ροθρκσ ']': %s"
 
-# TODO: Capitalise first word of message?
 msgid "E698: Variable nested too deep for making a copy"
 msgstr "E698: Ημ³ννΰ βκλΰδενΰ ηΰνΰδςξ γλθαξκξ ωξα ηπξαθςθ ΏΏ κξο³ώ"
 
@@ -6524,7 +6426,6 @@ msgid "E723: Missing end of Dictionary '
 msgstr "E723: ΝεμΰΊ κ³νφ³βκθ ρλξβνθκΰ '}': %s"
 
 # msgstr "E21: "
-# TODO: Capitalise first word of message?
 msgid "E724: Variable nested too deep for displaying"
 msgstr "E724: Σ ημ³νν³ι ηΰαΰγΰςξ βκλΰδενό ωξα ΏΏ οξκΰηΰςθ"
 
@@ -6599,7 +6500,6 @@ msgstr "E742: Νε μξζνΰ ημ³νθςθ ηνΰχενν"
 msgid "E742: Cannot change value of %s"
 msgstr "E742: Νε μξζνΰ ημ³νθςθ ηνΰχενν %s"
 
-# TODO: Capitalise first word of message?
 msgid "E743: Variable nested too deep for (un)lock"
 msgstr "E743: Ημ³ννΰ μΰΊ ηΰαΰγΰςξ βκλΰδενό ωξα ασςθ ηΰ-/β³δκπθςξώ."
 
@@ -6619,7 +6519,6 @@ msgstr "E747: Νε βδΰλξρ ημ³νθςθ κΰςΰλξγ, αστεπ μΰΊ ημ³νθ (! ωξα νε ηβΰζΰςθ)"
 msgid "E748: No previously used register"
 msgstr "E748: Πεγ³ρςπθ οεπεδ φθμ νε βζθβΰλθρό"
 
-# TODO: Capitalise first word of message?
 msgid "E749: Empty buffer"
 msgstr "E749: Οξπξζν³ι αστεπ"
 
@@ -6738,11 +6637,9 @@ msgid "E781: .sug file doesn't match .sp
 msgstr "E781: Τΰιλ .sug νε β³δοξβ³δΰΊ τΰιλσ .spl: %s"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E782: Error while reading .sug file: %s"
 msgstr "E782: Οξμθλκΰ χθςΰνν τΰιλσ .sug: %s"
 
-# TODO: Capitalise first word of message?
 msgid "E783: Duplicate char in MAP entry"
 msgstr "E783: Οξβςξπενξ ρθμβξλ σ ελεμενς³ MAP"
 
@@ -6834,7 +6731,6 @@ msgid "E805: Using a Float as a Number"
 msgstr "E805: Float βζθςξ κ Number"
 
 # msgstr "E373: "
-# TODO: Capitalise first word of message?
 msgid "E806: Using Float as a String"
 msgstr "E806: Float βζθςξ κ String"
 
@@ -6919,7 +6815,6 @@ msgid "E828: Cannot open undo file for w
 msgstr "E828: Νε βδΰλξρ β³δκπθςθ τΰιλ ³ρςξπ³Ώ δλ ηΰοθρσ: %s"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E829: Write error in undo file: %s"
 msgstr "E829: Οξμθλκΰ ηΰοθρσ σ τΰιλ³ ³ρςξπ³Ώ: %s"
 
@@ -6951,9 +6846,8 @@ msgstr "E836: Python: Νε μξζνΰ βθκξπθρςΰςθ :py ³ :py3 β ξδνξμσ ρεΰνρ³"
 msgid "E837: This Vim cannot execute :py3 after using :python"
 msgstr "E837: Python: Νε μξζνΰ βθκξπθρςΰςθ :py ³ :py3 β ξδνξμσ ρεΰνρ³"
 
-# TODO: Capitalise first word of message?
 msgid "E838: NetBeans is not supported with this GUI"
-msgstr "E838: netbeans νε ο³δςπθμσΊςόρ η φθμ GUI"
+msgstr "E838: NetBeans νε ο³δςπθμσΊςόρ η φθμ GUI"
 
 msgid "E840: Completion function deleted text"
 msgstr "E840: Τσνκφ³ δξοξβνενν ηνθωθλΰ ςεκρς"
@@ -6962,15 +6856,13 @@ msgid "E841: Reserved name, cannot be us
 msgstr ""
 "E841: Ηΰπεηεπβξβΰνΰ νΰηβΰ, νε μξζνΰ βθκξπθρςΰςθ δλ κξμΰνδθ κξπθρςσβΰχΰ"
 
-# TODO: Capitalise first word of message?
 msgid "E842: No line number to use for \"<slnum>\""
-msgstr "E842: νεμΰΊ νξμεπΰ πδκΰ, ωξα βθκξπθρςΰςθ η «<sfile>»"
+msgstr "E842: ΝεμΰΊ νξμεπΰ πδκΰ, ωξα βθκξπθρςΰςθ η «<sfile>»"
 
 msgid "E843: Error while updating swap file crypt"
 msgstr "E843: Οξμθλκΰ οξνξβλενν ψθτπσβΰνν τΰιλσ ξαμ³νσ"
 
 # msgstr "E14: "
-# TODO: Capitalise first word of message?
 msgid "E844: Invalid cchar value"
 msgstr "E844: Νεκξπεκςνε ηνΰχενν cchar"
 
@@ -7002,9 +6894,8 @@ msgstr "E852: Δξχ³πν³ι οπξφερ νε ημ³γ ηΰοσρςθςθ GUI"
 msgid "E853: Duplicate argument name: %s"
 msgstr "E853: Νΰηβΰ ΰπγσμενςσ οξβςξπώΊςόρ: %s"
 
-# TODO: Capitalise first word of message?
 msgid "E854: Path too long for completion"
-msgstr "E854: ψλυ ηΰνΰδςξ δξβγθι δλ δξοξβνενν"
+msgstr "E854: Ψλυ ηΰνΰδςξ δξβγθι δλ δξοξβνενν"
 
 msgid "E855: Autocommands caused command to abort"
 msgstr "E855: ΐβςξκξμΰνδθ οπθηβελθ δξ ρκΰρσβΰνν κξμΰνδθ"
@@ -7013,7 +6904,7 @@ msgid ""
 "E856: \"assert_fails()\" second argument must be a string or a list with one "
 "or two strings"
 msgstr ""
-"E856: δπσγθι ΰπγσμενς «assert_fails()» μΰΊ ασςθ ςεκρςξβθμ πδκξμ χθ ροθρξκ η "
+"E856: Δπσγθι ΰπγσμενς «assert_fails()» μΰΊ ασςθ ςεκρςξβθμ πδκξμ χθ ροθρξκ η "
 "ξδνθμ-δβξμΰ ςεκρςξβθμθ πδκΰμθ"
 
 #, c-format
@@ -7043,7 +6934,7 @@ msgid ""
 "E864: \\%#= can only be followed by 0, 1, or 2. The automatic engine will be "
 "used"
 msgstr ""
-"E864: ο³ρλ \\%#= μξζε ασςθ ς³λόκθ 0, 1 χθ 2. Ασδε βθκξπθρςΰνξ ΰβςξμΰςθχνθι "
+"E864: Ο³ρλ \\%#= μξζε ασςθ ς³λόκθ 0, 1 χθ 2. Ασδε βθκξπθρςΰνξ ΰβςξμΰςθχνθι "
 "μευΰν³ημ"
 
 msgid "E865: (NFA) Regexp end encountered prematurely"
@@ -7114,10 +7005,10 @@ msgid "E882: Uniq compare function faile
 msgstr "E882: Οξμθλκΰ σ τσνκφ³Ώ οξπ³βννν uniq"
 
 msgid ""
-"E883: search pattern and expression register may not contain two or more "
+"E883: Search pattern and expression register may not contain two or more "
 "lines"
 msgstr ""
-"E883: ψΰαλξν οξψσκσ ³ πεγ³ρςπξβθι βθπΰη νε μξζσςό μ³ρςθςθ δβΰ χθ α³λόψε "
+"E883: Ψΰαλξν οξψσκσ ³ πεγ³ρςπξβθι βθπΰη νε μξζσςό μ³ρςθςθ δβΰ χθ α³λόψε "
 "πδκ³β"
 
 #, c-format
@@ -7147,9 +7038,8 @@ msgid "E889: Number required"
 msgstr "E889: πεαΰ βκΰηΰςθ Number"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E890: Trailing char after ']': %s]%s"
-msgstr "E890: νΰδλθψκξβ³ ρθμβξλθ ο³ρλ ']': %s]%s"
+msgstr "E890: Νΰδλθψκξβ³ ρθμβξλθ ο³ρλ ']': %s]%s"
 
 msgid "E891: Using a Funcref as a Float"
 msgstr "E891: Funcref βζθςξ κ Float"
@@ -7198,22 +7088,18 @@ msgstr "E901: gethostbyname() σ channel_open()"
 msgid "E902: Cannot connect to port"
 msgstr "E902: Νε βδΰλξρ η'Ίδνΰςθρ η οξπςξμ"
 
-# TODO: Capitalise first word of message?
 msgid "E903: Received command with non-string argument"
-msgstr "E903: ξςπθμΰνξ κξμΰνδσ η νεςεκρςξβθμ ΰπγσμενςξμ"
-
-# TODO: Capitalise first word of message?
+msgstr "E903: Ξςπθμΰνξ κξμΰνδσ η νεςεκρςξβθμ ΰπγσμενςξμ"
+
 msgid "E904: Last argument for expr/call must be a number"
-msgstr "E904: ξρςΰνν³ι ΰπγσμενς σ βθπΰη³/βθκλθκσ μΰΊ ασςθ χθρλξμ"
-
-# TODO: Capitalise first word of message?
+msgstr "E904: Ξρςΰνν³ι ΰπγσμενς σ βθπΰη³/βθκλθκσ μΰΊ ασςθ χθρλξμ"
+
 msgid "E904: Third argument for call must be a list"
-msgstr "E904: ςπες³ι ΰπγσμενς σ βθκλθκσ μΰΊ ασςθ ροθρκξμ"
-
-#, c-format
-# TODO: Capitalise first word of message?
+msgstr "E904: πες³ι ΰπγσμενς σ βθκλθκσ μΰΊ ασςθ ροθρκξμ"
+
+#, c-format
 msgid "E905: Received unknown command: %s"
-msgstr "E905: ξςπθμΰνξ νεβ³δξμσ κξμΰνδσ: %s"
+msgstr "E905: Ξςπθμΰνξ νεβ³δξμσ κξμΰνδσ: %s"
 
 msgid "E906: not an open channel"
 msgstr "E906: νε β³δκπθςθι κΰνΰλ"
@@ -7223,9 +7109,8 @@ msgstr "E907: Ροεφ³ΰλόνε ηνΰχενν βζθςξ κ Float"
 
 # msgstr "E373: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E908: Using an invalid value as a String: %s"
-msgstr "E908: νεοπΰβθλόνε ηνΰχενν βζθςξ κ String: %s"
+msgstr "E908: Νεοπΰβθλόνε ηνΰχενν βζθςξ κ String: %s"
 
 msgid "E909: Cannot index a special variable"
 msgstr "E909: Νε μξζνΰ ³νδεκρσβΰςθ ροεφ³ΰλόνσ ημ³ννσ"
@@ -7236,10 +7121,9 @@ msgstr "E910: Job βζθςξ κ Number"
 msgid "E911: Using a Job as a Float"
 msgstr "E911: Job βζθςξ κ Float"
 
-# TODO: Capitalise first word of message?
 msgid "E912: Cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channel"
 msgstr ""
-"E912: νε μξζνΰ βθκξπθρςΰςθ ch_evalexpr()/ch_sendexpr() η raw χθ nl κΰνΰλξμ"
+"E912: Νε μξζνΰ βθκξπθρςΰςθ ch_evalexpr()/ch_sendexpr() η raw χθ nl κΰνΰλξμ"
 
 msgid "E913: Using a Channel as a Number"
 msgstr "E913: Channel βζθςξ κ Number"
@@ -7250,18 +7134,16 @@ msgstr "E914: Channel βζθςξ κ Float"
 msgid "E915: in_io buffer requires in_buf or in_name to be set"
 msgstr "E915: αστεπ in_io οξςπεασΊ βρςΰνξβλενξγξ in_buf χθ in_name"
 
-# TODO: Capitalise first word of message?
 msgid "E916: Not a valid job"
-msgstr "E916: νεκξπεκςνε ηΰβδΰνν"
+msgstr "E916: Νεκξπεκςνε ηΰβδΰνν"
 
 #, c-format
 msgid "E917: Cannot use a callback with %s()"
 msgstr "E917: Νε μξζνΰ βθκξπθρςΰςθ ηβξπξςν³ι βθκλθκ σ %s()"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E918: Buffer must be loaded: %s"
-msgstr "E918: αστεπ μΰΊ ασςθ ηΰβΰνςΰζενθι: %s"
+msgstr "E918: Αστεπ μΰΊ ασςθ ηΰβΰνςΰζενθι: %s"
 
 #, c-format
 msgid "E919: Directory not found in '%s': \"%s\""
@@ -7274,9 +7156,8 @@ msgstr "E920: τΰιλ _io οξςπεασΊ βρςΰνξβλενξγξ _name"
 msgid "E921: Invalid callback argument"
 msgstr "E921: Νεκξπεκςνθι ΰπγσμενς ηβξπξςνξγξ βθκλθκσ"
 
-# TODO: Capitalise first word of message?
 msgid "E922: Expected a dict"
-msgstr "E922: ξχ³κσΊςόρ dict"
+msgstr "E922: Ξχ³κσΊςόρ dict"
 
 msgid "E923: Second argument of function() must be a list or a dict"
 msgstr "E923: Δπσγθι ΰπγσμενς function() μΰΊ ασςθ ροθρκξμ χθ ρλξβνθκξμ"
@@ -7320,9 +7201,8 @@ msgid "E934: Cannot jump to a buffer tha
 msgstr "E934: Νε μξζνΰ οεπειςθ δξ αστεπΰ, κθι νε μΰΊ νΰηβθ"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E935: Invalid submatch number: %d"
-msgstr "E935: νεοπΰβθλόνθι νξμεπ ο³δ-ηα³γσ: %d"
+msgstr "E935: Νεοπΰβθλόνθι νξμεπ ο³δ-ηα³γσ: %d"
 
 msgid "E936: Cannot delete the current group"
 msgstr "E936: Νε βδΰλξρ ηνθωθςθ φώ γπσοσ"
@@ -7343,9 +7223,8 @@ msgstr "E939: Οξςπ³ανΰ δξδΰςνΰ κ³λόκ³ρςό"
 msgid "E940: Cannot lock or unlock variable %s"
 msgstr "E940: Νεμξζλθβξ ηΰαλξκσβΰςθ χθ πξηαλξκσβΰςθ ημ³ννσ %s"
 
-# TODO: Capitalise first word of message?
 msgid "E941: Already started a server"
-msgstr "E941: ρεπβεπ βζε ηΰοσωενξ"
+msgstr "E941: Ρεπβεπ βζε ηΰοσωενξ"
 
 msgid "E942: +clientserver feature not available"
 msgstr "E942: μξζλθβ³ρςό +clientserver β³δρσςν"
@@ -7413,36 +7292,32 @@ msgstr "E959: Νεκξπεκςνθι τξπμΰς οξπ³βννν."
 msgid "E960: Problem creating the internal diff"
 msgstr "E960: Νε βδΰλξρ οξπ³βνςθ βνσςπ³ψν³μ ΰλγξπθςμξμ"
 
-# TODO: Capitalise first word of message?
 msgid "E961: No line number to use for \"<sflnum>\""
-msgstr "E961: νεμΰΊ νξμεπΰ πδκΰ, ωξα βθκξπθρςΰςθ η «<sflnum>»"
+msgstr "E961: ΝεμΰΊ νξμεπΰ πδκΰ, ωξα βθκξπθρςΰςθ η «<sflnum>»"
 
 #, c-format
 msgid "E962: Invalid action: '%s'"
 msgstr "E962: Νεοπΰβθλόνΰ δ³: '%s'"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E963: Setting %s to value with wrong type"
-msgstr "E963: βρςΰνξβλενν ηνΰχενν η νεοπΰβθλόνθμ ςθοξμ σ %s"
+msgstr "E963: Βρςΰνξβλενν ηνΰχενν η νεοπΰβθλόνθμ ςθοξμ σ %s"
 
 #, c-format
 msgid "E964: Invalid column number: %ld"
 msgstr "E964: Νεοπΰβθλόνθι νξμεπ ρςξβοφ: %ld"
 
 # msgstr "E378: "
-# TODO: Capitalise first word of message?
 msgid "E965: Missing property type name"
-msgstr "E965: απΰκσΊ νΰηβθ ςθοσ βλΰρςθβξρς³"
+msgstr "E965: ΑπΰκσΊ νΰηβθ ςθοσ βλΰρςθβξρς³"
 
 # msgstr "E18: "
 #, c-format
 msgid "E966: Invalid line number: %ld"
 msgstr "E966: Νεκξπεκςνθι νξμεπ πδκΰ: %ld"
 
-# TODO: Capitalise first word of message?
 msgid "E967: Text property info corrupted"
-msgstr "E967: οξψκξδζενΰ ³ντξπμΰφ³ ςεκρςξβξΏ βλΰρςθβξρς³"
+msgstr "E967: Οξψκξδζενΰ ³ντξπμΰφ³ ςεκρςξβξΏ βλΰρςθβξρς³"
 
 msgid "E968: Need at least one of 'id' or 'type'"
 msgstr "E968: Οξςπ³ανξ ωξνΰιμενψε ξδνε η 'id' ΰαξ 'type'"
@@ -7486,9 +7361,8 @@ msgstr "E978: Νεκξπεκςνΰ ξοεπΰφ³ νΰδ Blob"
 msgid "E979: Blob index out of range: %ld"
 msgstr "E979: ²νδεκρ σ Blob οξηΰ μεζΰμθ: %ld"
 
-# TODO: Capitalise first word of message?
 msgid "E980: Lowlevel input not supported"
-msgstr "E980: νθηόκξπ³βνεβε ββεδενν νε ο³δςπθμσΊςόρ"
+msgstr "E980: Νθηόκξπ³βνεβε ββεδενν νε ο³δςπθμσΊςόρ"
 
 msgid "E981: Command not allowed in rvim"
 msgstr "E981: Κξμΰνδσ νε δξηβξλενξ σ rvim"
@@ -7506,14 +7380,12 @@ msgstr "E984: :scriptversion βθκξπθρςΰνξ οξηΰ ο³δχθςσβΰνθμ τΰιλξμ"
 msgid "E985: .= is not supported with script version >= 2"
 msgstr "E985: .= νε ο³δςπθμσΊςόρ σ βεπρ³Ώ ρκπθος³β >= 2"
 
-# TODO: Capitalise first word of message?
 msgid "E986: Cannot modify the tag stack within tagfunc"
-msgstr "E986: νε μξζνΰ ημ³νώβΰςθ ρςεκ μ³ςξκ σ tagfunc"
+msgstr "E986: Νε μξζνΰ ημ³νώβΰςθ ρςεκ μ³ςξκ σ tagfunc"
 
 # msgstr "E177: "
-# TODO: Capitalise first word of message?
 msgid "E987: Invalid return value from tagfunc"
-msgstr "E987: νεκξπεκςνε ηνΰχενν, ωξ οξβεπςΰΊςόρ η tagfunc"
+msgstr "E987: Νεκξπεκςνε ηνΰχενν, ωξ οξβεπςΰΊςόρ η tagfunc"
 
 msgid "E988: GUI cannot be used. Cannot execute gvim.exe."
 msgstr "E988: Νε μξζνΰ βθκξπθρςΰςθ GUI. Νε μξζνΰ ηΰοσρςθςθ gvim.exe."
@@ -7525,17 +7397,15 @@ msgstr "E989: Ξαξβ’ηκξβθι ΰπγσμενς ο³ρλ νεξαξβ’ηκξβξγξ ΰπγσμενςσ"
 msgid "E990: Missing end marker '%s'"
 msgstr "E990: ΑπΰκσΊ οξηνΰχκθ κ³νφ '%s'"
 
-# TODO: Capitalise first word of message?
 msgid "E991: Cannot use =<< here"
-msgstr "E991: ςσς νε μξζνΰ βζθςθ =<<"
+msgstr "E991: σς νε μξζνΰ βζθςθ =<<"
 
 msgid "E992: Not allowed in a modeline when 'modelineexpr' is off"
 msgstr "E992: Νε δξηβξλενξ σ modeline, κξλθ 'modelineexpr' βθμκνενξ"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E993: Window %d is not a popup window"
-msgstr "E993: β³κνξ %d νε ρολθβΰώχε"
+msgstr "E993: Β³κνξ %d νε ρολθβΰώχε"
 
 msgid "E994: Not allowed in a popup window"
 msgstr "E994: Νε δξηβξλενξ σ ρολθβΰώχξμσ β³κν³"
@@ -8156,7 +8026,7 @@ msgstr "E1160: Νεμξζλθβξ ηΰδΰςθ οξχΰςκξβε ηνΰχενν δλ ημ³ννθυ ΰπγσμενς³β"
 
 #, c-format
 msgid "E1161: Cannot json encode a %s"
-msgstr "E1161: Νεμξζλθβξ ηΰκξδσβΰςθ σ json %s"
+msgstr "E1161: Νεμξζλθβξ ηΰκξδσβΰςθ σ JSON %s"
 
 #, c-format
 msgid "E1162: Register name must be one character: %s"
@@ -8545,7 +8415,6 @@ msgstr "E1261: Νεμξζλθβξ ³μοξπςσβΰςθ .vim αεη «as»"
 msgid "E1262: Cannot import the same script twice: %s"
 msgstr "E1262: Νεμξζλθβξ ³μοξπςσβΰςθ ςξι ρΰμθι ρκπθος δβ³χ³: %s"
 
-# TODO: Capitalise first word of message?
 msgid "E1263: Cannot use name with # in Vim9 script, use export instead"
 msgstr ""
 "E1263: Νεμξζλθβξ βζθςθ νΰηβσ η # σ ρκπθος³ Vim9, βθκξπθρςΰιςε νΰςξμ³ρςό "
@@ -8582,7 +8451,6 @@ msgid "E1270: Cannot use :s\\/sub/ in Vi
 msgstr "E1270: Νεμξζλθβξ ηΰρςξρσβΰςθ :s\\/sub/ σ ρκπθος³ Vim9"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E1271: Compiling closure without context: %s"
 msgstr "E1271: Κξμο³λφ³ ηΰμθκΰνν αεη κξνςεκρςσ: %s"
 
--- a/src/po/uk.po
+++ b/src/po/uk.po
@@ -15,7 +15,7 @@ msgstr ""
 "Project-Id-Version: vim 8.1\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2022-05-02 17:40+0300\n"
-"PO-Revision-Date: 2022-05-02 10:43+0300\n"
+"PO-Revision-Date: 2022-05-20 17:12+0300\n"
 "Last-Translator: Анатолій Π‘Π°Ρ…Π½Ρ–ΠΊ <sakhnik@gmail.com>\n"
 "Language-Team: Ukrainian\n"
 "Language: uk\n"
@@ -1464,7 +1464,7 @@ msgid "%d files to edit\n"
 msgstr "%d Ρ„Π°ΠΉΠ»ΠΈ(Ρ–Π²)\n"
 
 msgid "netbeans is not supported with this GUI\n"
-msgstr "netbeans Π½Π΅ ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΡƒΡ”Ρ‚ΡŒΡΡ Π· Ρ†ΠΈΠΌ GUI\n"
+msgstr "NetBeans Π½Π΅ ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΡƒΡ”Ρ‚ΡŒΡΡ Π· Ρ†ΠΈΠΌ GUI\n"
 
 msgid "'-nb' cannot be used: not enabled at compile time\n"
 msgstr "НС ΠΌΠΎΠΆΠ½Π° використати '-nb': Π½Π΅ Π΄ΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΎ ΠΏΡ–Π΄ час компіляції\n"
@@ -4079,7 +4079,6 @@ msgid "E55: Unmatched %s)"
 msgstr "E55: НСмає ΠΏΠ°Ρ€ΠΈ %s)"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E59: Invalid character after %s@"
 msgstr "E59: НСдозволСний символ після %s@"
 
@@ -4097,7 +4096,6 @@ msgstr "E61: Π’ΠΊΠ»Π°Π΄Π΅Π½Ρ– %s*"
 msgid "E62: Nested %s%c"
 msgstr "E62: Π’ΠΊΠ»Π°Π΄Π΅Π½Ρ– %s%c"
 
-# TODO: Capitalise first word of message?
 msgid "E63: Invalid use of \\_"
 msgstr "E63: НСкорСктно Π²ΠΆΠΈΡ‚ΠΎ \\_"
 
@@ -4135,7 +4133,6 @@ msgstr "E71: НСдозволСний символ після %s%%"
 msgid "E72: Close error on swap file"
 msgstr "E72: Помилка ΠΏΡ–Π΄ час закриття Ρ„Π°ΠΉΠ»Ρƒ ΠΎΠ±ΠΌΡ–Π½Ρƒ"
 
-# TODO: Capitalise first word of message?
 msgid "E73: Tag stack empty"
 msgstr "E73: Π‘Ρ‚Π΅ΠΊ ΠΌΡ–Ρ‚ΠΎΠΊ ΠΏΠΎΡ€ΠΎΠΆΠ½Ρ–ΠΉ"
 
@@ -4381,9 +4378,8 @@ msgstr "E142: Π€Π°ΠΉΠ» Π½Π΅ записано: запис Π·Π°Π±ΠΎΡ€ΠΎΠ½Π΅Π½ΠΎ ΠΎΠΏΡ†Ρ–Ρ”ΡŽ 'write'"
 msgid "E143: Autocommands unexpectedly deleted new buffer %s"
 msgstr "E143: Автокоманди нСсподівано Π·Π½ΠΈΡ‰ΠΈΠ»ΠΈ Π½ΠΎΠ²ΠΈΠΉ Π±ΡƒΡ„Π΅Ρ€ %s"
 
-# TODO: Capitalise first word of message?
 msgid "E144: Non-numeric argument to :z"
-msgstr "E144: Π½Π΅ числовий Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ для :z"
+msgstr "E144: НС числовий Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Ρƒ :z"
 
 msgid "E145: Shell commands and some functionality not allowed in rvim"
 msgstr "E145: Π£ rvim Π½Π΅ Π΄ΠΎΠ·Π²ΠΎΠ»Π΅Π½Ρ– ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΎΠ±ΠΎΠ»ΠΎΠ½ΠΊΠΈ Ρ– дСяка Ρ„ΡƒΠ½ΠΊΡ†Ρ–ΠΎΠ½Π°Π»ΡŒΠ½Ρ–ΡΡ‚ΡŒ"
@@ -4511,9 +4507,8 @@ msgstr "E178: ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅ ΠΏΠΎΡ‡Π°Ρ‚ΠΊΠΎΠ²Π΅ значСння Π»Ρ–Ρ‡ΠΈΠ»ΡŒΠ½ΠΈΠΊΠ°"
 
 # msgstr "E178: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E179: Argument required for %s"
-msgstr "E179: ΠΏΠΎΡ‚Ρ€Ρ–Π±Π΅Π½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ для %s"
+msgstr "E179: ΠŸΠΎΡ‚Ρ€Ρ–Π±Π΅Π½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ для %s"
 
 # msgstr "E179: "
 #, c-format
@@ -4615,9 +4610,8 @@ msgstr "E204: Автокоманда нСсподіваним Ρ‡ΠΈΠ½ΠΎΠΌ Π·ΠΌΡ–Π½ΠΈΠ»Π° ΠΊΡ–Π»ΡŒΠΊΡ–ΡΡ‚ΡŒ рядків"
 msgid "E205: Patchmode: can't save original file"
 msgstr "E205: Латання: Π½Π΅ вдалося Π·Π±Π΅Ρ€Π΅Π³Ρ‚ΠΈ ΠΎΡ€ΠΈΠ³Ρ–Π½Π°Π»"
 
-# TODO: Capitalise first word of message?
 msgid "E206: Patchmode: can't touch empty original file"
-msgstr "E206: Латання: Π½Π΅ вдалося створити ΠΎΡ€ΠΈΠ³Ρ–Π½Π°Π»"
+msgstr "E206: Латання: НС вдалося створити ΠΎΡ€ΠΈΠ³Ρ–Π½Π°Π»"
 
 msgid "E207: Can't delete backup file"
 msgstr "E207: НС вдалося Π·Π½ΠΈΡ‰ΠΈΡ‚ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΈΠΉ Ρ„Π°ΠΉΠ»"
@@ -4664,7 +4658,6 @@ msgstr "E216: НСмає Ρ‚Π°ΠΊΠΎΡ— Π³Ρ€ΡƒΠΏΠΈ Ρ‡ΠΈ ΠΏΠΎΠ΄Ρ–Ρ—: %s"
 msgid "E217: Can't execute autocommands for ALL events"
 msgstr "E217: НС ΠΌΠΎΠΆΡƒ Π²ΠΈΠΊΠΎΠ½ΡƒΠ²Π°Ρ‚ΠΈ Π°Π²Ρ‚ΠΎΠΊΠΎΠΌΠ°Π½Π΄ΠΈ для Π£Π‘Π†Π₯ ΠΏΠΎΠ΄Ρ–ΠΉ"
 
-# TODO: Capitalise first word of message?
 msgid "E218: Autocommand nesting too deep"
 msgstr "E218: Π—Π°Π±Π°Π³Π°Ρ‚ΠΎ Π²ΠΊΠ»Π°Π΄Π΅Π½ΠΈΡ… Π°Π²Ρ‚ΠΎΠΊΠΎΠΌΠ°Π½Π΄"
 
@@ -4682,31 +4675,26 @@ msgstr "E221: ΠŸΠΎΠ·Π½Π°Ρ‡ΠΊΠ° ΠΏΠΎΠ²ΠΈΠ½Π½Π° починатися Π· Π²Π΅Π»ΠΈΠΊΠΎΡ— Π»Ρ–Ρ‚Π΅Ρ€ΠΈ"
 msgid "E222: Add to internal buffer that was already read from"
 msgstr "E222: Додавання Π΄ΠΎ Π²Π½ΡƒΡ‚Ρ€Ρ–ΡˆΠ½ΡŒΠΎΠ³ΠΎ Π±ΡƒΡ„Π΅Ρ€Π°, Π· якого Π²ΠΆΠ΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½ΠΎ"
 
-# TODO: Capitalise first word of message?
 msgid "E223: Recursive mapping"
 msgstr "E223: Π—Π°ΠΌΡ–Π½Π° рСкурсивна"
 
 # msgstr "E223: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E224: Global abbreviation already exists for %s"
 msgstr "E224: Π—Π°Π³Π°Π»ΡŒΠ½Π΅ скорочСння для %s Π²ΠΆΠ΅ існує"
 
 # msgstr "E224: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E225: Global mapping already exists for %s"
 msgstr "E225: Π—Π°Π³Π°Π»ΡŒΠ½Π° Π·Π°ΠΌΡ–Π½Π° для %s Π²ΠΆΠ΅ існує"
 
 # msgstr "E225: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E226: Abbreviation already exists for %s"
 msgstr "E226: Π’ΠΆΠ΅ Ρ” скорочСння для %s"
 
 # msgstr "E226: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E227: Mapping already exists for %s"
 msgstr "E227: Π’ΠΆΠ΅ Ρ” Π·Π°ΠΌΡ–Π½Π° для %s"
 
@@ -4729,7 +4717,6 @@ msgstr "E231: НСкорСктний 'guifontwide'"
 msgid "E232: Cannot create BalloonEval with both message and callback"
 msgstr "E232: НС вдалося створити BalloonEval Π· повідомлСнням Ρ– Ρ„ΡƒΠ½ΠΊΡ†Ρ–Ρ”ΡŽ"
 
-# TODO: Capitalise first word of message?
 msgid "E233: Cannot open display"
 msgstr "E233: НС вдалося Π²Ρ–Π΄ΠΊΡ€ΠΈΡ‚ΠΈ дисплСй"
 
@@ -4786,16 +4773,14 @@ msgid "E246: FileChangedShell autocomman
 msgstr "E246: Автокоманда FileChangedShell Π·Π½ΠΈΡ‰ΠΈΠ»Π° Π±ΡƒΡ„Π΅Ρ€"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E247: No registered server named \"%s\""
 msgstr "E247: НСмає зарСєстрованих сСрвСрів Π· назвою Β«%sΒ»"
 
 msgid "E248: Failed to send command to the destination program"
 msgstr "E248: НС вдалося відіслати ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π΄ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ-Ρ†Ρ–Π»Ρ–"
 
-# TODO: Capitalise first word of message?
 msgid "E249: Window layout changed unexpectedly"
-msgstr "E249: розміщСння Π²Ρ–ΠΊΠ½Π° нСсподівано змінилася"
+msgstr "E249: РозміщСння Π²Ρ–ΠΊΠ½Π° нСсподівано змінилася"
 
 #, c-format
 msgid "E250: Fonts for the following charsets are missing in fontset %s:"
@@ -4821,16 +4806,14 @@ msgstr "E254: НС вдалося ΠΎΡ‚Ρ€ΠΈΠΌΠ°Ρ‚ΠΈ ΠΊΠΎΠ»Ρ–Ρ€ %s"
 msgid "E255: Couldn't read in sign data"
 msgstr "E255: НС ΠΌΠΎΠΆΠ½Π° Π·Ρ‡ΠΈΡ‚Π°Ρ‚ΠΈ Π΄Π°Π½Ρ– напису"
 
-# TODO: Capitalise first word of message?
 msgid "E257: cstag: Tag not found"
-msgstr "E257: cstag: ΠΌΡ–Ρ‚ΠΊΡƒ Π½Π΅ Π·Π½Π°ΠΉΠ΄Π΅Π½ΠΎ"
+msgstr "E257: cstag: ΠœΡ–Ρ‚ΠΊΡƒ Π½Π΅ Π·Π½Π°ΠΉΠ΄Π΅Π½ΠΎ"
 
 msgid "E258: Unable to send to client"
 msgstr "E258: НС вдалося надіслати ΠΊΠ»Ρ–Ρ”Π½Ρ‚Ρƒ"
 
 # msgstr "E258: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E259: No matches found for cscope query %s of %s"
 msgstr "E259: Для Π·Π°ΠΏΠΈΡ‚Ρƒ cscope %s Π· %s Π½Ρ–Ρ‡ΠΎΠ³ΠΎ Π½Π΅ Π·Π½Π°ΠΉΠ΄Π΅Π½ΠΎ"
 
@@ -4839,12 +4822,10 @@ msgstr "E260: ΠŸΡ–ΡΠ»Ρ -> Π±Ρ€Π°ΠΊΡƒΡ” Π½Π°Π·Π²ΠΈ"
 
 # msgstr "E260: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E261: Cscope connection %s not found"
 msgstr "E261: Π—'єднання Π· cscope %s Π½Π΅ Π·Π½Π°ΠΉΠ΄Π΅Π½ΠΎ"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E262: Error reading cscope connection %d"
 msgstr "E262: Помилка читання Π·Ρ– Π·'єднання cscope %d"
 
@@ -4867,33 +4848,26 @@ msgstr ""
 "E266: Π’ΠΈΠ±Π°Ρ‡Ρ‚Π΅, ця ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΠΈΠΌΠΊΠ½Π΅Π½Π°, Π±Ρ–Π±Π»Ρ–ΠΎΡ‚Π΅ΠΊΠ° Ruby Π½Π΅ ΠΌΠΎΠΆΠ΅ Π±ΡƒΡ‚ΠΈ Π·Π°Π²Π°Π½Ρ‚Π°ΠΆΠ΅Π½Π°."
 
 # msgstr "E414: "
-# TODO: Capitalise first word of message?
 msgid "E267: Unexpected return"
-msgstr "E267: нСсподіваний return"
-
-# TODO: Capitalise first word of message?
+msgstr "E267: НСсподіваний return"
+
 msgid "E268: Unexpected next"
-msgstr "E268: нСсподіваний next"
-
-# TODO: Capitalise first word of message?
+msgstr "E268: НСсподіваний next"
+
 msgid "E269: Unexpected break"
-msgstr "E269: нСсподіваний break"
-
-# TODO: Capitalise first word of message?
+msgstr "E269: НСсподіваний break"
+
 msgid "E270: Unexpected redo"
-msgstr "E270: нСсподіваний redo"
-
-# TODO: Capitalise first word of message?
+msgstr "E270: НСсподіваний redo"
+
 msgid "E271: Retry outside of rescue clause"
-msgstr "E271: retry ΠΏΠΎΠ·Π° rescue"
-
-# TODO: Capitalise first word of message?
+msgstr "E271: Команда retry поза rescue"
+
 msgid "E272: Unhandled exception"
 msgstr "E272: НСоброблСний виняток"
 
 # msgstr "E233: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E273: Unknown longjmp status %d"
 msgstr "E273: НСвідомий статус longjmp: %d"
 
@@ -4943,12 +4917,10 @@ msgstr ""
 "E287: ЗастСрСТСння: НС вдалося встановити Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ– Π²Π²ΠΎΠ΄Ρƒ ΠΏΠΎΠ΄Ρ–ΡŽ знищСння"
 
 # msgstr "E287: "
-# TODO: Capitalise first word of message?
 msgid "E288: Input method doesn't support any style"
 msgstr "E288: ΠœΠ΅Ρ‚ΠΎΠ΄ Π²Π²ΠΎΠ΄Ρƒ Π½Π΅ ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΡƒΡ” стилі"
 
 # msgstr "E288: "
-# TODO: Capitalise first word of message?
 msgid "E289: Input method doesn't support my preedit type"
 msgstr "E289: ΠœΠ΅Ρ‚ΠΎΠ΄ Π²Π²ΠΎΠ΄Ρƒ Π½Π΅ ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΡƒΡ” Π²Ρ–Π΄Ρ€Π΅Π΄Π°Π³ΠΎΠ²Π°Π½Ρ– Ρ‚ΠΈΠΏΠΈ"
 
@@ -4961,7 +4933,6 @@ msgstr "E290: ΠŸΠΎΡ‚Ρ€Ρ–Π±Π΅Π½ список Ρ‡ΠΈ число"
 msgid "E292: Invalid count for del_bytes(): %ld"
 msgstr "E292: НСкорСктна ΠΊΡ–Π»ΡŒΠΊΡ–ΡΡ‚ΡŒ Ρƒ del_bytes(): %ld"
 
-# TODO: Capitalise first word of message?
 msgid "E293: Block was not locked"
 msgstr "E293: Π‘Π»ΠΎΠΊ Π½Π΅ Π±ΡƒΠ»ΠΎ зафіксовано"
 
@@ -5050,30 +5021,24 @@ msgstr "E314: ЗбСрСТСння Π½Π΅ вдалося"
 
 # msgstr "E314: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E315: ml_get: Invalid lnum: %ld"
-msgstr "E315: ml_get: Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΈΠΉ lnum: %ld"
+msgstr "E315: ml_get: ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΈΠΉ lnum: %ld"
 
 # msgstr "E315: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E316: ml_get: Cannot find line %ld in buffer %d %s"
-msgstr "E316: ml_get: Π½Π΅ знайшов рядок %ld Ρƒ Π±ΡƒΡ„Π΅Ρ€Ρ– %d %s"
-
-# TODO: Capitalise first word of message?
+msgstr "E316: ml_get: НС знайшов рядок %ld Ρƒ Π±ΡƒΡ„Π΅Ρ€Ρ– %d %s"
+
 msgid "E317: Pointer block id wrong"
 msgstr "E317: Π’ΠΊΠ°Π·Ρ–Π²Π½ΠΈΠΊ Π±Π»ΠΎΠΊΡƒ ΠΏΠΎΠΌΠΈΠ»ΠΊΠΎΠ²ΠΈΠΉ"
 
-# TODO: Capitalise first word of message?
 msgid "E317: Pointer block id wrong 2"
 msgstr "E317: Π’ΠΊΠ°Π·Ρ–Π²Π½ΠΈΠΊ Π±Π»ΠΎΠΊΡƒ ΠΏΠΎΠΌΠΈΠ»ΠΊΠΎΠ²ΠΈΠΉ 2"
 
 # msgstr "E316: "
-# TODO: Capitalise first word of message?
 msgid "E317: Pointer block id wrong 3"
 msgstr "E317: Π’ΠΊΠ°Π·Ρ–Π²Π½ΠΈΠΊ Π±Π»ΠΎΠΊΡƒ ΠΏΠΎΠΌΠΈΠ»ΠΊΠΎΠ²ΠΈΠΉ 3"
 
-# TODO: Capitalise first word of message?
 msgid "E317: Pointer block id wrong 4"
 msgstr "E317: Π’ΠΊΠ°Π·Ρ–Π²Π½ΠΈΠΊ Π±Π»ΠΎΠΊΡƒ ΠΏΠΎΠΌΠΈΠ»ΠΊΠΎΠ²ΠΈΠΉ 4"
 
@@ -5092,13 +5057,11 @@ msgid "E321: Could not reload \"%s\""
 msgstr "E321: НС вдалося ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡ‚Π°Ρ‚ΠΈ Β«%sΒ»"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E322: Line number out of range: %ld past the end"
 msgstr "E322: НомСр рядка вийшов Π·Π° ΠΌΠ΅ΠΆΡ–: %ld Π·Π° ΠΊΡ–Π½Ρ†Π΅ΠΌ"
 
 # msgstr "E322: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E323: Line count wrong in block %ld"
 msgstr "E323: ΠšΡ–Π»ΡŒΠΊΡ–ΡΡ‚ΡŒ рядків Ρƒ Π±Π»ΠΎΡ†Ρ– %ld"
 
@@ -5253,7 +5216,6 @@ msgstr "E360: НС вдалося запустити ΠΎΠ±ΠΎΠ»ΠΎΠ½ΠΊΡƒ Π· ΠΎΠΏΡ†Ρ–Ρ”ΡŽ -f"
 msgid "E362: Using a boolean value as a Float"
 msgstr "E362: Π›ΠΎΠ³Ρ–Ρ‡Π½Π΅ значСння Π²ΠΆΠΈΡ‚ΠΎ як Float"
 
-# TODO: Capitalise first word of message?
 msgid "E363: Pattern uses more memory than 'maxmempattern'"
 msgstr "E363: Π—Ρ€Π°Π·ΠΎΠΊ використовує Π±Ρ–Π»ΡŒΡˆΠ΅, Π½Ρ–ΠΆ 'maxmempattern', ΠΏΠ°ΠΌ'яті"
 
@@ -5272,12 +5234,10 @@ msgid "E367: No such group: \"%s\""
 msgstr "E367: НСмає Ρ‚Π°ΠΊΠΎΡ— Π³Ρ€ΡƒΠΏΠΈ: Β«%sΒ»"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E368: Got SIG%s in libcall()"
-msgstr "E368: ΠΎΡ‚Ρ€ΠΈΠΌΠ°Π½ΠΎ SIG%s Ρƒ libcall()"
-
-#, c-format
-# TODO: Capitalise first word of message?
+msgstr "E368: ΠžΡ‚Ρ€ΠΈΠΌΠ°Π½ΠΎ SIG%s Ρƒ libcall()"
+
+#, c-format
 msgid "E369: Invalid item in %s%%[]"
 msgstr "E369: НСкорСктний Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ Ρƒ %s%%[]"
 
@@ -5339,12 +5299,10 @@ msgid "E383: Invalid search string: %s"
 msgstr "E383: ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΈΠΉ Π·Ρ€Π°Π·ΠΎΠΊ для ΠΏΠΎΡˆΡƒΠΊΡƒ: %s"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E384: Search hit TOP without match for: %s"
 msgstr "E384: ΠŸΠΎΡˆΡƒΠΊ Π΄Ρ–ΠΉΡˆΠΎΠ² Π΄ΠΎ ПОЧАВКУ Π±Π΅Π· Π·Π±Ρ–Π³Ρ–Π² Π· %s"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E385: Search hit BOTTOM without match for: %s"
 msgstr "E385: ΠŸΠΎΡˆΡƒΠΊ Π΄Ρ–ΠΉΡˆΠΎΠ² Π΄ΠΎ ΠšΠ†ΠΠ¦Π― Π±Π΅Π· Π·Π±Ρ–Π³Ρ–Π² Π· %s"
 
@@ -5379,7 +5337,6 @@ msgstr "E393: group[t]here Ρ‚ΡƒΡ‚ нСприйнятний"
 msgid "E394: Didn't find region item for %s"
 msgstr "E394: НС Π·Π½Π°ΠΉΠ΄Π΅Π½ΠΎ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ Ρ€Π΅Π³Ρ–ΠΎΠ½Ρƒ для %s"
 
-# TODO: Capitalise first word of message?
 msgid "E395: Contains argument not accepted here"
 msgstr "E395: ΠœΡ–ΡΡ‚ΠΈΡ‚ΡŒ нСприйнятні Ρ‚ΡƒΡ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ"
 
@@ -5408,7 +5365,6 @@ msgid "E402: Garbage after pattern: %s"
 msgstr "E402: Бміття після Π·Ρ€Π°Π·ΠΊΡƒ: %s"
 
 # msgstr "E402: "
-# TODO: Capitalise first word of message?
 msgid "E403: syntax sync: Line continuations pattern specified twice"
 msgstr ""
 "E403: Бинтаксична синхронізація: Π·Ρ€Π°Π·ΠΎΠΊ для продовТСння рядка Π²ΠΊΠ°Π·Π°Π½ΠΎ Π΄Π²Ρ–Ρ‡Ρ–"
@@ -5447,7 +5403,6 @@ msgstr "E410: ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π° ΠΏΡ–Π΄ΠΊΠΎΠΌΠ°Π½Π΄Π° :syntax: %s"
 
 # msgstr "E410: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E411: Highlight group not found: %s"
 msgstr "E411: Π“Ρ€ΡƒΠΏΡƒ підсвічування Π½Π΅ Π·Π½Π°ΠΉΠ΄Π΅Π½ΠΎ: %s"
 
@@ -5462,24 +5417,20 @@ msgid "E413: Too many arguments: \":high
 msgstr "E413: Π—Π°Π±Π°Π³Π°Ρ‚ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ–Π²: Β«:highlight link %sΒ»"
 
 # msgstr "E413: "
-# TODO: Capitalise first word of message?
 msgid "E414: Group has settings, highlight link ignored"
 msgstr "E414: Π“Ρ€ΡƒΠΌΠ° ΠΌΠ°Ρ” settings, highlight link ΠΏΡ€ΠΎΡ–Π³Π½ΠΎΡ€ΠΎΠ²Π°Π½ΠΎ"
 
 # msgstr "E414: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E415: Unexpected equal sign: %s"
 msgstr "E415: НСсподіваний Π·Π½Π°ΠΊ рівності: %s"
 
 # msgstr "E415: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E416: Missing equal sign: %s"
 msgstr "E416: ΠŸΡ€ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ Π·Π½Π°ΠΊ рівності: %s"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E417: Missing argument: %s"
 msgstr "E417: ΠŸΡ€ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚: %s"
 
@@ -5502,7 +5453,6 @@ msgstr "E421: НСрозпізнана Π½Π°Π·Π²Π° Π°Π±ΠΎ Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠΎΠ»ΡŒΠΎΡ€Ρƒ: %s"
 
 # msgstr "E421: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E422: Terminal code too long: %s"
 msgstr "E422: Π—Π°Π½Π°Π΄Ρ‚ΠΎ Π΄ΠΎΠ²Π³ΠΈΠΉ ΠΊΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΡ–Π½Π°Π»Ρƒ: %s"
 
@@ -5520,7 +5470,6 @@ msgstr "E425: Π¦Π΅ Π²ΠΆΠ΅ Π½Π°ΠΉΠΏΠ΅Ρ€ΡˆΠ° Π²Ρ–Π΄ΠΏΠΎΠ²Ρ–Π΄Π½Π° ΠΌΡ–Ρ‚ΠΊΠ°"
 
 # msgstr "E425: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E426: Tag not found: %s"
 msgstr "E426: ΠœΡ–Ρ‚ΠΊΡƒ Π½Π΅ Π·Π½Π°ΠΉΠ΄Π΅Π½ΠΎ: %s"
 
@@ -5564,20 +5513,16 @@ msgstr "E435: НС вдалося Π·Π½Π°ΠΉΡ‚ΠΈ ΠΌΡ–Ρ‚ΠΊΡƒ, Ρ‚Ρ–Π»ΡŒΠΊΠΈ припущСння!"
 msgid "E436: No \"%s\" entry in termcap"
 msgstr "E436: НСмає запису Β«%sΒ» ΠΏΡ€ΠΎ моТливості Ρ‚Π΅Ρ€ΠΌΡ–Π½Π°Π»Ρƒ"
 
-# TODO: Capitalise first word of message?
 msgid "E437: Terminal capability \"cm\" required"
 msgstr "E437: ΠŸΠΎΡ‚Ρ€Ρ–Π±Π½Π° ΠΌΠΎΠΆΠ»ΠΈΠ²Ρ–ΡΡ‚ΡŒ Ρ‚Π΅Ρ€ΠΌΡ–Π½Π°Π»Ρƒ Β«cmΒ»"
 
-# TODO: Capitalise first word of message?
 msgid "E438: u_undo: Line numbers wrong"
-msgstr "E438: u_undo: Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ– Π½ΠΎΠΌΠ΅Ρ€ΠΈ рядків"
-
-# TODO: Capitalise first word of message?
+msgstr "E438: u_undo: ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ– Π½ΠΎΠΌΠ΅Ρ€ΠΈ рядків"
+
 msgid "E439: Undo list corrupt"
 msgstr "E439: Бписок скасування пошкодТСно"
 
 # msgstr "E439: "
-# TODO: Capitalise first word of message?
 msgid "E440: Undo line missing"
 msgstr "E440: Відсутній рядок скасування"
 
@@ -5615,7 +5560,6 @@ msgstr "E448: НС вдалося Π·Π°Π²Π°Π½Ρ‚Π°ΠΆΠΈΡ‚ΠΈ Π±Ρ–Π±Π»Ρ–ΠΎΡ‚Π΅Ρ‡Π½Ρƒ Ρ„ΡƒΠ½ΠΊΡ†Ρ–ΡŽ %s"
 msgid "E449: Invalid expression received"
 msgstr "E449: ΠžΡ‚Ρ€ΠΈΠΌΠ°Π½ΠΎ Π½Π΅ΠΊΠΎΡ€Π΅ΠΊΡ‚Π½ΠΈΠΉ Π²ΠΈΡ€Π°Π·"
 
-# TODO: Capitalise first word of message?
 msgid "E450: Buffer number, text or a list required"
 msgstr "E450: Π’Ρ€Π΅Π±Π° Π²ΠΊΠ°Π·Π°Ρ‚ΠΈ Π½ΠΎΠΌΠ΅Ρ€ Π±ΡƒΡ„Π΅Ρ€Π°, тСкст Ρ‡ΠΈ список"
 
@@ -5631,9 +5575,8 @@ msgstr "E452: Π”Ρ€ΡƒΠ³Π° ; Ρƒ списку Π·ΠΌΡ–Π½Π½ΠΈΡ…"
 msgid "E453: UL color unknown"
 msgstr "E453: НСвідомий ΠΊΠΎΠ»Ρ–Ρ€ UL"
 
-# TODO: Capitalise first word of message?
 msgid "E454: Function list was modified"
-msgstr "E454: список Ρ„ΡƒΠ½ΠΊΡ†Ρ–ΠΉ змінився"
+msgstr "E454: Бписок Ρ„ΡƒΠ½ΠΊΡ†Ρ–ΠΉ змінився"
 
 msgid "E455: Error writing to PostScript output file"
 msgstr "E455: НС вдалося записати Π²ΠΈΡ…Ρ–Π΄Π½ΠΈΠΉ Ρ„Π°ΠΉΠ» PostScript"
@@ -5657,9 +5600,8 @@ msgstr ""
 msgid "E459: Cannot go back to previous directory"
 msgstr "E459: НС вдалося ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π΄ΠΎ ΠΏΠΎΠΏΠ΅Ρ€Π΅Π΄Π½ΡŒΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ"
 
-# TODO: Capitalise first word of message?
 msgid "E460: Entries missing in mapset() dict argument"
-msgstr "E460: Π±Ρ€Π°ΠΊΡƒΡ” записів Ρƒ словниковому Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ– mapset()"
+msgstr "E460: Π‘Ρ€Π°ΠΊΡƒΡ” записів Ρƒ словниковому Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ– mapset()"
 
 #, c-format
 msgid "E461: Illegal variable name: %s"
@@ -5692,7 +5634,6 @@ msgid "E468: Completion argument only al
 msgstr "E468: АргумСнт Π΄ΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΈΠΉ Ρ‚Ρ–Π»ΡŒΠΊΠΈ для доповнСння користувача"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E469: Invalid cscopequickfix flag %c for %c"
 msgstr "E469: НСкорСктний ΠΏΡ€Π°ΠΏΠΎΡ€Π΅Ρ†ΡŒ cscopequickfix %c для %c"
 
@@ -5785,7 +5726,6 @@ msgstr "E488: ΠΠ°Π΄Π»ΠΈΡˆΠΊΠΎΠ²Ρ– символи"
 msgid "E488: Trailing characters: %s"
 msgstr "E488: ΠΠ°Π΄Π»ΠΈΡˆΠΊΠΎΠ²Ρ– символи: %s"
 
-# TODO: Capitalise first word of message?
 msgid "E489: No call stack to substitute for \"<stack>\""
 msgstr "E489: НСмає стСку Π²ΠΈΠΊΠ»ΠΈΠΊΡ–Π² для Π·Π°ΠΌΡ–Π½ΠΈ Β«<stack>Β»"
 
@@ -5794,9 +5734,8 @@ msgid "E490: No fold found"
 msgstr "E490: Π—Π³ΠΎΡ€Ρ‚ΠΎΠΊ Π½Π΅ Π·Π½Π°ΠΉΠ΄Π΅Π½ΠΎ"
 
 #, c-format
-# TODO: Capitalise first word of message?
-msgid "E491: Json decode error at '%s'"
-msgstr "E491: ΠΏΠΎΠΌΠΈΠ»ΠΊΠ° дСкодування json Ρƒ Β«%sΒ»"
+msgid "E491: JSON decode error at '%s'"
+msgstr "E491: Помилка дСкодування JSON Ρƒ Β«%sΒ»"
 
 msgid "E492: Not an editor command"
 msgstr "E492: Π¦Π΅ Π½Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°"
@@ -5807,19 +5746,15 @@ msgstr "E493: Π†Π½Ρ‚Π΅Ρ€Π²Π°Π» Π·Π°Π΄Π°Π½ΠΎ Π½Π°Π²ΠΈΠ²ΠΎΡ€Ρ–Ρ‚"
 msgid "E494: Use w or w>>"
 msgstr "E494: Π‘ΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ w Π°Π±ΠΎ w>>"
 
-# TODO: Capitalise first word of message?
 msgid "E495: No autocommand file name to substitute for \"<afile>\""
 msgstr "E495: НСмає Π½Π°Π·Π²ΠΈ Ρ„Π°ΠΉΠ»Ρƒ Π°Π²Ρ‚ΠΎΠΊΠΎΠΌΠ°Π½Π΄ΠΈ для Π·Π°ΠΌΡ–Π½ΠΈ Β«<afile>Β»"
 
-# TODO: Capitalise first word of message?
 msgid "E496: No autocommand buffer number to substitute for \"<abuf>\""
 msgstr "E496: НСмає Π½ΠΎΠΌΠ΅Ρ€Π° Π±ΡƒΡ„Π΅Ρ€Π° Π°Π²Ρ‚ΠΎΠΊΠΎΠΌΠ°Π½Π΄ΠΈ для Π·Π°ΠΌΡ–Π½ΠΈ Β«<abuf>Β»"
 
-# TODO: Capitalise first word of message?
 msgid "E497: No autocommand match name to substitute for \"<amatch>\""
 msgstr "E497: НСмає Π½Π°Π·Π²ΠΈ Π·Π±Ρ–Π³Ρƒ Π°Π²Ρ‚ΠΎΠΊΠΎΠΌΠ°Π½Π΄ΠΈ для Π·Π°ΠΌΡ–Π½ΠΈ Β«<amatch>Β»"
 
-# TODO: Capitalise first word of message?
 msgid "E498: No :source file name to substitute for \"<sfile>\""
 msgstr "E498: НСмає Π½Π°Π·Π²ΠΈ Ρ„Π°ΠΉΠ»Ρƒ :source для Π·Π°ΠΌΡ–Π½ΠΈ Β«<sfile>Β»"
 
@@ -5867,14 +5802,12 @@ msgstr "E509: НС вдалося створити Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρƒ ΠΊΠΎΠΏΡ–ΡŽ (! Ρ‰ΠΎΠ± Π½Π΅ Π·Π²Π°ΠΆΠ°Ρ‚ΠΈ)"
 msgid "E510: Can't make backup file (add ! to write anyway)"
 msgstr "E510: НС вдалося створити Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρƒ ΠΊΠΎΠΏΡ–ΡŽ (! Ρ‰ΠΎΠ± Π½Π΅ Π·Π²Π°ΠΆΠ°Ρ‚ΠΈ)"
 
-# TODO: Capitalise first word of message?
 msgid "E511: NetBeans already connected"
-msgstr "E511: netbeans Π²ΠΆΠ΅ ΠΏΡ–Π΄'Ρ”Π΄Π½Π°Π½ΠΎ"
+msgstr "E511: NetBeans Π²ΠΆΠ΅ ΠΏΡ–Π΄'Ρ”Π΄Π½Π°Π½ΠΎ"
 
 msgid "E512: Close failed"
 msgstr "E512: НС вдалося Π·Π°ΠΊΡ€ΠΈΡ‚ΠΈ"
 
-# TODO: Capitalise first word of message?
 msgid "E513: Write error, conversion failed (make 'fenc' empty to override)"
 msgstr "E513: Помилка запису, конвСртація Π½Π΅ вдалася (ΡΠΊΠΈΠ½ΡŒΡ‚Π΅ 'fenc')"
 
@@ -5885,7 +5818,6 @@ msgid ""
 msgstr ""
 "E513: Помилка запису, конвСртація Π½Π΅ вдалася Ρƒ рядку %ld (ΡΠΊΠΈΠ½ΡŒΡ‚Π΅ 'fenc')"
 
-# TODO: Capitalise first word of message?
 msgid "E514: Write error (file system full?)"
 msgstr "E514: Помилка запису (ΡΠΊΡ–Π½Ρ‡ΠΈΠ»ΠΎΡΡŒ Π²Ρ–Π»ΡŒΠ½Π΅ місцС?)"
 
@@ -5945,11 +5877,9 @@ msgstr "E530: НС ΠΌΠΎΠΆΠ½Π° Π·ΠΌΡ–Π½ΠΈΡ‚ΠΈ 'term'  Π² GUI"
 msgid "E531: Use \":gui\" to start the GUI"
 msgstr "E531: ЗастосуйтС Β«:guiΒ» для запуску GUI"
 
-# TODO: Capitalise first word of message?
 msgid "E532: Highlighting color name too long in defineAnnoType"
-msgstr "E532: Π½Π°Π·Π²Π° ΠΊΠΎΠ»ΡŒΠΎΡ€Ρƒ підсвічування Π·Π°Π΄ΠΎΠ²Π³Π° Ρƒ defineAnnoType"
-
-# TODO: Capitalise first word of message?
+msgstr "E532: Назва ΠΊΠΎΠ»ΡŒΠΎΡ€Ρƒ підсвічування Π·Π°Π΄ΠΎΠ²Π³Π° Ρƒ defineAnnoType"
+
 msgid "E533: Can't select wide font"
 msgstr "E533: НС вдалося використати Ρ€ΠΎΠ·ΡˆΠΈΡ€Π΅Π½ΠΈΠΉ ΡˆΡ€ΠΈΡ„Ρ‚"
 
@@ -5960,7 +5890,6 @@ msgstr "E534: НСкорСктний Ρ€ΠΎΠ·ΡˆΠΈΡ€Π΅Π½ΠΈΠΉ ΡˆΡ€ΠΈΡ„Ρ‚"
 msgid "E535: Illegal character after <%c>"
 msgstr "E535: НСдозволСний символ після <%c>"
 
-# TODO: Capitalise first word of message?
 msgid "E536: Comma required"
 msgstr "E536: ΠŸΠΎΡ‚Ρ€Ρ–Π±Π½Π° ΠΊΠΎΠΌΠ°"
 
@@ -5979,7 +5908,6 @@ msgstr "E539: НСдозволСний символ <%s>"
 msgid "E540: Unclosed expression sequence"
 msgstr "E540: ΠŸΠΎΡΠ»Ρ–Π΄ΠΎΠ²Π½Ρ–ΡΡ‚ΡŒ Π²ΠΈΡ€Π°Π·Ρ–Π² Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ"
 
-# TODO: Capitalise first word of message?
 msgid "E542: Unbalanced groups"
 msgstr "E542: Π“Ρ€ΡƒΠΏΠΈ Π½Π΅ збалансовано"
 
@@ -5998,7 +5926,6 @@ msgstr "E546: ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΈΠΉ Ρ€Π΅ΠΆΠΈΠΌ"
 msgid "E547: Illegal mouseshape"
 msgstr "E547: ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΈΠΉ вигляд ΠΌΠΈΡˆΡ–"
 
-# TODO: Capitalise first word of message?
 msgid "E548: Digit expected"
 msgstr "E548: ΠŸΠΎΡ‚Ρ€Ρ–Π±Π½Π° Ρ†ΠΈΡ„Ρ€Π°"
 
@@ -6012,9 +5939,8 @@ msgstr "E550: ΠŸΡ€ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ Π΄Π²ΠΎΠΊΡ€Π°ΠΏΠΊΡƒ"
 msgid "E551: Illegal component"
 msgstr "E551: НСкорСктний ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚"
 
-# TODO: Capitalise first word of message?
 msgid "E552: Digit expected"
-msgstr "E552: ΠΎΡ‡Ρ–ΠΊΡƒΡ”Ρ‚ΡŒΡΡ Ρ†ΠΈΡ„Ρ€Π°"
+msgstr "E552: ΠžΡ‡Ρ–ΠΊΡƒΡ”Ρ‚ΡŒΡΡ Ρ†ΠΈΡ„Ρ€Π°"
 
 msgid "E553: No more items"
 msgstr "E553: НСмає Π±Ρ–Π»ΡŒΡˆΠ΅ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ–Π²"
@@ -6025,11 +5951,9 @@ msgid "E554: Syntax error in %s{...}"
 msgstr "E554: Бинтаксична ΠΏΠΎΠΌΠΈΠ»ΠΊΠ° Π² %s{...}"
 
 # msgstr "E424: "
-# TODO: Capitalise first word of message?
 msgid "E555: At bottom of tag stack"
 msgstr "E555: ΠšΡ–Π½Π΅Ρ†ΡŒ стСку ΠΌΡ–Ρ‚ΠΎΠΊ"
 
-# TODO: Capitalise first word of message?
 msgid "E556: At top of tag stack"
 msgstr "E556: Π’Π΅Ρ€ΡˆΠΈΠ½Π° стСку ΠΌΡ–Ρ‚ΠΎΠΊ"
 
@@ -6046,7 +5970,6 @@ msgstr "E559: НСмає Ρ–Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†Ρ–Ρ— ΠΏΡ€ΠΎ моТливості Ρ‚Π΅Ρ€ΠΌΡ–Π½Π°Π»Ρƒ"
 msgid "E560: Usage: cs[cope] %s"
 msgstr "E560: Використання: cs[cope] %s"
 
-# TODO: Capitalise first word of message?
 msgid "E561: Unknown cscope search type"
 msgstr "E561: НСвідомий Ρ‚ΠΈΠΏ ΠΏΠΎΡˆΡƒΠΊΡƒ cscope"
 
@@ -6068,15 +5991,12 @@ msgstr "E565: НС Π΄ΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΎ Π·ΠΌΡ–Π½ΡŽΠ²Π°Ρ‚ΠΈ тСкст Ρ‡ΠΈ Π²Ρ–ΠΊΠ½ΠΎ"
 msgid "E566: Could not create cscope pipes"
 msgstr "E566: НС вдалося створити ΠΊΠ°Π½Π°Π»ΠΈ Π΄ΠΎ cscope"
 
-# TODO: Capitalise first word of message?
 msgid "E567: No cscope connections"
-msgstr "E567: ΠΆΠΎΠ΄Π½ΠΎΠ³ΠΎ Π·'єднання Ρ–Π· cscope"
-
-# TODO: Capitalise first word of message?
+msgstr "E567: Π–ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π·'єднання Ρ–Π· cscope"
+
 msgid "E568: Duplicate cscope database not added"
 msgstr "E568: ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½Π° Π±Π°Π·Π° Π΄Π°Π½ΠΈΡ… cscope Π½Π΅ Π΄ΠΎΠ΄Π°Π½Π°"
 
-# TODO: Capitalise first word of message?
 msgid "E570: Fatal error in cs_manage_matches"
 msgstr "E570: Π€Π°Ρ‚Π°Π»ΡŒΠ½Π° ΠΏΠΎΠΌΠΈΠ»ΠΊΠ° Π² cs_manage_matches"
 
@@ -6086,7 +6006,6 @@ msgstr ""
 "E571: Π’ΠΈΠ±Π°Ρ‡Ρ‚Π΅, ця ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΠΈΠΌΠΊΠ½Π΅Π½Π°, Π±Ρ–Π±Π»Ρ–ΠΎΡ‚Π΅ΠΊΠ° Tcl Π½Π΅ ΠΌΠΎΠΆΠ΅ Π±ΡƒΡ‚ΠΈ Π·Π°Π²Π°Π½Ρ‚Π°ΠΆΠ΅Π½Π°."
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E572: Exit code %d"
 msgstr "E572: Код Π²ΠΈΡ…ΠΎΠ΄Ρƒ %d"
 
@@ -6110,11 +6029,9 @@ msgstr "ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π° Π½Π°Π·Π²Π° рСгістру"
 msgid "E578: Not allowed to change text here"
 msgstr "E578: Π—ΠΌΡ–Π½ΡŽΠ²Π°Ρ‚ΠΈ тСкст Ρ‚ΡƒΡ‚ Π½Π΅ Π΄ΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΎ"
 
-# TODO: Capitalise first word of message?
 msgid "E579: :if nesting too deep"
 msgstr "E579: Π—Π°Π½Π°Π΄Ρ‚ΠΎ Π±Π°Π³Π°Ρ‚ΠΎ Π²ΠΊΠ»Π°Π΄Π΅Π½ΠΈΡ… :if"
 
-# TODO: Capitalise first word of message?
 msgid "E579: Block nesting too deep"
 msgstr "E579: Π—Π°Π±Π°Π³Π°Ρ‚ΠΎ Π²ΠΊΠ»Π°Π΄Π΅Π½ΠΈΡ… Π±Π»ΠΎΠΊΡ–Π²"
 
@@ -6127,7 +6044,6 @@ msgstr "E581: :else Π±Π΅Π· :if"
 msgid "E582: :elseif without :if"
 msgstr "E582: :elseif Π±Π΅Π· :if"
 
-# TODO: Capitalise first word of message?
 msgid "E583: Multiple :else"
 msgstr "E583: НС однС :else"
 
@@ -6175,7 +6091,6 @@ msgstr "E595: 'showbreak' ΠΌΡ–ΡΡ‚ΠΈΡ‚ΡŒ Π½Π΅Π΄Ρ€ΡƒΠΊΠΎΠ²Π½Ρ– Π°Π±ΠΎ Ρ€ΠΎΠ·ΡˆΠΈΡ€Π΅Π½Ρ– символи"
 msgid "E596: Invalid font(s)"
 msgstr "E596: НСкорСктний(Ρ–) ΡˆΡ€ΠΈΡ„Ρ‚(ΠΈ)"
 
-# TODO: Capitalise first word of message?
 msgid "E597: Can't select fontset"
 msgstr "E597: НС вдалося Π²ΠΈΠ±Ρ€Π°Ρ‚ΠΈ Π½Π°Π±Ρ–Ρ€ ΡˆΡ€ΠΈΡ„Ρ‚Ρ–Π²"
 
@@ -6207,7 +6122,6 @@ msgstr "E605: Виняткова ситуація Π½Π΅ ΠΎΠ±Ρ€ΠΎΠ±Π»Π΅Π½Π°: %s"
 msgid "E606: :finally without :try"
 msgstr "E606: :finally Π±Π΅Π· :try"
 
-# TODO: Capitalise first word of message?
 msgid "E607: Multiple :finally"
 msgstr "E607: НС однС :finally"
 
@@ -6235,12 +6149,10 @@ msgid "E617: Cannot be changed in the GT
 msgstr "E617: НС ΠΌΠΎΠΆΠ½Π° Π·ΠΌΡ–Π½ΠΈΡ‚ΠΈ Π² GUI GTK"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E618: File \"%s\" is not a PostScript resource file"
 msgstr "E618: Β«%sΒ» Π½Π΅ Ρ” Ρ„Π°ΠΉΠ»ΠΎΠΌ рСсурсів PostScript"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E619: File \"%s\" is not a supported PostScript resource file"
 msgstr "E619: Β«%sΒ» Π½Π΅ Ρ” ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΡƒΠ²Π°Π½ΠΈΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ рСсурсів PostScript"
 
@@ -6263,26 +6175,21 @@ msgid "E624: Can't open file \"%s\""
 msgstr "E624: НС вдалося Π²Ρ–Π΄ΠΊΡ€ΠΈΡ‚ΠΈ Ρ„Π°ΠΉΠ» Β«%sΒ»"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E625: Cannot open cscope database: %s"
 msgstr "E625: НС вдалося Π²Ρ–Π΄ΠΊΡ€ΠΈΡ‚ΠΈ Π±Π°Π·Ρƒ Π΄Π°Π½ΠΈΡ… cscope: %s"
 
-# TODO: Capitalise first word of message?
 msgid "E626: Cannot get cscope database information"
 msgstr "E626: НС вдалося ΠΎΡ‚Ρ€ΠΈΠΌΠ°Ρ‚ΠΈ Ρ–Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†Ρ–ΡŽ Π· Π±Π°Π·ΠΈ Π΄Π°Π½ΠΈΡ… cscope"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E630: %s(): Write while not connected"
-msgstr "E630: %s(): запис Π΄ΠΎ під’єднання"
-
-#, c-format
-# TODO: Capitalise first word of message?
+msgstr "E630: %s(): Запис Π΄ΠΎ під’єднання"
+
+#, c-format
 msgid "E631: %s(): Write failed"
-msgstr "E631: %s(): збСрСТСння Π½Π΅ вдалося"
-
-#, c-format
-# TODO: Capitalise first word of message?
+msgstr "E631: %s(): ЗбСрСТСння Π½Π΅ вдалося"
+
+#, c-format
 msgid "E654: Missing delimiter after search pattern: %s"
 msgstr "E654: Π‘Ρ€Π°ΠΊΡƒΡ” Ρ€ΠΎΠ·Π΄Ρ–Π»ΡŽΠ²Π°Ρ‡Π° після Π·Ρ€Π°Π·ΠΊΡƒ для ΠΏΠΎΡˆΡƒΠΊΡƒ: %s"
 
@@ -6313,7 +6220,6 @@ msgstr "E662: ΠŸΠΎΡ‡Π°Ρ‚ΠΎΠΊ списку Π·ΠΌΡ–Π½"
 msgid "E663: At end of changelist"
 msgstr "E663: ΠšΡ–Π½Π΅Ρ†ΡŒ списку Π·ΠΌΡ–Π½"
 
-# TODO: Capitalise first word of message?
 msgid "E664: Changelist is empty"
 msgstr "E664: Бписок Π·ΠΌΡ–Π½ ΠΏΠΎΡ€ΠΎΠΆΠ½Ρ–ΠΉ"
 
@@ -6321,7 +6227,6 @@ msgid "E665: Cannot start GUI, no valid 
 msgstr "E665: НС вдалося запустити GUI, Π½Π΅ Π·Π½Π°ΠΉΠ΄Π΅Π½ΠΎ ΡˆΡ€ΠΈΡ„Ρ‚"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E666: Compiler not supported: %s"
 msgstr "E666: ΠšΠΎΠΌΠΏΡ–Π»ΡΡ‚ΠΎΡ€ Π½Π΅ ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΡƒΡ”Ρ‚ΡŒΡΡ: %s"
 
@@ -6332,7 +6237,7 @@ msgstr "E667: НС вдалося Π²ΠΈΠΊΠΎΠ½Π°Ρ‚ΠΈ fsync"
 msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
 msgstr ""
 "E668: ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΈΠΉ Ρ€Π΅ΠΆΠΈΠΌ доступу Π΄ΠΎ Ρ„Π°ΠΉΠ»Ρƒ Ρ–Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†Ρ–Ρ— ΠΏΡ€ΠΎ Π·'єднання Π· "
-"NetBenans: Β«%sΒ»"
+"NetBeans: Β«%sΒ»"
 
 msgid "E669: Unprintable character in group name"
 msgstr "E669: НСдруковний символ Ρƒ Π½Π°Π·Π²Ρ– Π³Ρ€ΡƒΠΏΠΈ"
@@ -6369,7 +6274,6 @@ msgstr "E677: НС вдалося записати тимчасовий Ρ„Π°ΠΉΠ»"
 msgid "E678: Invalid character after %s%%[dxouU]"
 msgstr "E678: НСдозволСний символ після %s%%[dxouU]"
 
-# TODO: Capitalise first word of message?
 msgid "E679: Recursive loop loading syncolor.vim"
 msgstr "E679: РСкурсивний Ρ†ΠΈΠΊΠ» читання syncolor.vim"
 
@@ -6387,7 +6291,6 @@ msgid "E683: File name missing or invali
 msgstr "E683: ΠŸΡ€ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ Π½Π°Π·Π²Ρƒ Ρ„Π°ΠΉΠ»Ρƒ Ρ‡ΠΈ Π½Π΅ΠΊΠΎΡ€Π΅ΠΊΡ‚Π½ΠΈΠΉ шаблон"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E684: List index out of range: %ld"
 msgstr "E684: ІндСкс списку ΠΏΠΎΠ·Π° ΠΌΠ΅ΠΆΠ°ΠΌΠΈ: %ld"
 
@@ -6432,7 +6335,6 @@ msgstr "E696: Π‘Ρ€Π°ΠΊΡƒΡ” ΠΊΠΎΠΌΠΈ Ρƒ списку: %s"
 msgid "E697: Missing end of List ']': %s"
 msgstr "E697: НСмає ΠΊΡ–Π½Ρ†Ρ–Π²ΠΊΠΈ списку ']': %s"
 
-# TODO: Capitalise first word of message?
 msgid "E698: Variable nested too deep for making a copy"
 msgstr "E698: Π—ΠΌΡ–Π½Π½Π° Π²ΠΊΠ»Π°Π΄Π΅Π½Π° Π·Π°Π½Π°Π΄Ρ‚ΠΎ Π³Π»ΠΈΠ±ΠΎΠΊΠΎ Ρ‰ΠΎΠ± Π·Ρ€ΠΎΠ±ΠΈΡ‚ΠΈ Ρ—Ρ— ΠΊΠΎΠΏΡ–ΡŽ"
 
@@ -6524,7 +6426,6 @@ msgid "E723: Missing end of Dictionary '
 msgstr "E723: НСмає ΠΊΡ–Π½Ρ†Ρ–Π²ΠΊΠΈ словника '}': %s"
 
 # msgstr "E21: "
-# TODO: Capitalise first word of message?
 msgid "E724: Variable nested too deep for displaying"
 msgstr "E724: Π£ Π·ΠΌΡ–Π½Π½Ρ–ΠΉ Π·Π°Π±Π°Π³Π°Ρ‚ΠΎ вкладСнь Ρ‰ΠΎΠ± Ρ—Ρ— ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΠΈ"
 
@@ -6599,7 +6500,6 @@ msgstr "E742: НС ΠΌΠΎΠΆΠ½Π° Π·ΠΌΡ–Π½ΠΈΡ‚ΠΈ значСння"
 msgid "E742: Cannot change value of %s"
 msgstr "E742: НС ΠΌΠΎΠΆΠ½Π° Π·ΠΌΡ–Π½ΠΈΡ‚ΠΈ значСння %s"
 
-# TODO: Capitalise first word of message?
 msgid "E743: Variable nested too deep for (un)lock"
 msgstr "E743: Π—ΠΌΡ–Π½Π½Π° ΠΌΠ°Ρ” Π·Π°Π±Π°Π³Π°Ρ‚ΠΎ вкладСнь Ρ‰ΠΎΠ± Π±ΡƒΡ‚ΠΈ Π·Π°-/Π²Ρ–Π΄ΠΊΡ€ΠΈΡ‚ΠΎΡŽ."
 
@@ -6619,7 +6519,6 @@ msgstr "E747: НС вдалося Π·ΠΌΡ–Π½ΠΈΡ‚ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π±ΡƒΡ„Π΅Ρ€ ΠΌΠ°Ρ” Π·ΠΌΡ–Π½ΠΈ (! Ρ‰ΠΎΠ± Π½Π΅ Π·Π²Π°ΠΆΠ°Ρ‚ΠΈ)"
 msgid "E748: No previously used register"
 msgstr "E748: РСгістри ΠΏΠ΅Ρ€Π΅Π΄ Ρ†ΠΈΠΌ Π½Π΅ вТивались"
 
-# TODO: Capitalise first word of message?
 msgid "E749: Empty buffer"
 msgstr "E749: ΠŸΠΎΡ€ΠΎΠΆΠ½Ρ–ΠΉ Π±ΡƒΡ„Π΅Ρ€"
 
@@ -6738,11 +6637,9 @@ msgid "E781: .sug file doesn't match .sp
 msgstr "E781: Π€Π°ΠΉΠ» .sug Π½Π΅ Π²Ρ–Π΄ΠΏΠΎΠ²Ρ–Π΄Π°Ρ” Ρ„Π°ΠΉΠ»Ρƒ .spl: %s"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E782: Error while reading .sug file: %s"
 msgstr "E782: Помилка читання Ρ„Π°ΠΉΠ»Ρƒ .sug: %s"
 
-# TODO: Capitalise first word of message?
 msgid "E783: Duplicate char in MAP entry"
 msgstr "E783: ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΎ символ Ρƒ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ– MAP"
 
@@ -6834,7 +6731,6 @@ msgid "E805: Using a Float as a Number"
 msgstr "E805: Float Π²ΠΆΠΈΡ‚ΠΎ як Number"
 
 # msgstr "E373: "
-# TODO: Capitalise first word of message?
 msgid "E806: Using Float as a String"
 msgstr "E806: Float Π²ΠΆΠΈΡ‚ΠΎ як String"
 
@@ -6919,7 +6815,6 @@ msgid "E828: Cannot open undo file for w
 msgstr "E828: НС вдалося Π²Ρ–Π΄ΠΊΡ€ΠΈΡ‚ΠΈ Ρ„Π°ΠΉΠ» історії для запису: %s"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E829: Write error in undo file: %s"
 msgstr "E829: Помилка запису Ρƒ Ρ„Π°ΠΉΠ»Ρ– історії: %s"
 
@@ -6951,9 +6846,8 @@ msgstr "E836: Python: НС ΠΌΠΎΠΆΠ½Π° використати :py Ρ– :py3 Π² ΠΎΠ΄Π½ΠΎΠΌΡƒ сСансі"
 msgid "E837: This Vim cannot execute :py3 after using :python"
 msgstr "E837: Python: НС ΠΌΠΎΠΆΠ½Π° використати :py Ρ– :py3 Π² ΠΎΠ΄Π½ΠΎΠΌΡƒ сСансі"
 
-# TODO: Capitalise first word of message?
 msgid "E838: NetBeans is not supported with this GUI"
-msgstr "E838: netbeans Π½Π΅ ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΡƒΡ”Ρ‚ΡŒΡΡ Π· Ρ†ΠΈΠΌ GUI"
+msgstr "E838: NetBeans Π½Π΅ ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΡƒΡ”Ρ‚ΡŒΡΡ Π· Ρ†ΠΈΠΌ GUI"
 
 msgid "E840: Completion function deleted text"
 msgstr "E840: Ѐункція доповнСння Π·Π½ΠΈΡ‰ΠΈΠ»Π° тСкст"
@@ -6962,15 +6856,13 @@ msgid "E841: Reserved name, cannot be us
 msgstr ""
 "E841: Π—Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΎΠ²Π°Π½Π° Π½Π°Π·Π²Π°, Π½Π΅ ΠΌΠΎΠΆΠ½Π° використати для ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ користувача"
 
-# TODO: Capitalise first word of message?
 msgid "E842: No line number to use for \"<slnum>\""
-msgstr "E842: Π½Π΅ΠΌΠ°Ρ” Π½ΠΎΠΌΠ΅Ρ€Π° рядка, Ρ‰ΠΎΠ± використати Π· Β«<sfile>Β»"
+msgstr "E842: НСмає Π½ΠΎΠΌΠ΅Ρ€Π° рядка, Ρ‰ΠΎΠ± використати Π· Β«<sfile>Β»"
 
 msgid "E843: Error while updating swap file crypt"
 msgstr "E843: Помилка поновлСння ΡˆΠΈΡ„Ρ€ΡƒΠ²Π°Π½Π½Ρ Ρ„Π°ΠΉΠ»Ρƒ ΠΎΠ±ΠΌΡ–Π½Ρƒ"
 
 # msgstr "E14: "
-# TODO: Capitalise first word of message?
 msgid "E844: Invalid cchar value"
 msgstr "E844: НСкорСктнС значСння cchar"
 
@@ -7002,9 +6894,8 @@ msgstr "E852: Π”ΠΎΡ‡Ρ–Ρ€Π½Ρ–ΠΉ процСс Π½Π΅ Π·ΠΌΡ–Π³ запустити GUI"
 msgid "E853: Duplicate argument name: %s"
 msgstr "E853: Назва Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρƒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡŽΡ”Ρ‚ΡŒΡΡ: %s"
 
-# TODO: Capitalise first word of message?
 msgid "E854: Path too long for completion"
-msgstr "E854: ΡˆΠ»ΡΡ… Π·Π°Π½Π°Π΄Ρ‚ΠΎ Π΄ΠΎΠ²Π³ΠΈΠΉ для доповнСння"
+msgstr "E854: Шлях Π·Π°Π½Π°Π΄Ρ‚ΠΎ Π΄ΠΎΠ²Π³ΠΈΠΉ для доповнСння"
 
 msgid "E855: Autocommands caused command to abort"
 msgstr "E855: Автокоманди ΠΏΡ€ΠΈΠ·Π²Π΅Π»ΠΈ Π΄ΠΎ скасування ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ"
@@ -7013,7 +6904,7 @@ msgid ""
 "E856: \"assert_fails()\" second argument must be a string or a list with one "
 "or two strings"
 msgstr ""
-"E856: Π΄Ρ€ΡƒΠ³ΠΈΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Β«assert_fails()Β» ΠΌΠ°Ρ” Π±ΡƒΡ‚ΠΈ тСкстовим рядком Ρ‡ΠΈ список Π· "
+"E856: Π”Ρ€ΡƒΠ³ΠΈΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Β«assert_fails()Β» ΠΌΠ°Ρ” Π±ΡƒΡ‚ΠΈ тСкстовим рядком Ρ‡ΠΈ список Π· "
 "ΠΎΠ΄Π½ΠΈΠΌ-Π΄Π²ΠΎΠΌΠ° тСкстовими рядками"
 
 #, c-format
@@ -7043,7 +6934,7 @@ msgid ""
 "E864: \\%#= can only be followed by 0, 1, or 2. The automatic engine will be "
 "used"
 msgstr ""
-"E864: після \\%#= ΠΌΠΎΠΆΠ΅ Π±ΡƒΡ‚ΠΈ Ρ‚Ρ–Π»ΡŒΠΊΠΈ 0, 1 Ρ‡ΠΈ 2. Π‘ΡƒΠ΄Π΅ використано Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΈΠΉ "
+"E864: ΠŸΡ–ΡΠ»Ρ \\%#= ΠΌΠΎΠΆΠ΅ Π±ΡƒΡ‚ΠΈ Ρ‚Ρ–Π»ΡŒΠΊΠΈ 0, 1 Ρ‡ΠΈ 2. Π‘ΡƒΠ΄Π΅ використано Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΈΠΉ "
 "ΠΌΠ΅Ρ…Π°Π½Ρ–Π·ΠΌ"
 
 msgid "E865: (NFA) Regexp end encountered prematurely"
@@ -7114,10 +7005,10 @@ msgid "E882: Uniq compare function faile
 msgstr "E882: Помилка Ρƒ Ρ„ΡƒΠ½ΠΊΡ†Ρ–Ρ— порівняння uniq"
 
 msgid ""
-"E883: search pattern and expression register may not contain two or more "
+"E883: Search pattern and expression register may not contain two or more "
 "lines"
 msgstr ""
-"E883: шаблон ΠΏΠΎΡˆΡƒΠΊΡƒ Ρ– рСгістровий Π²ΠΈΡ€Π°Π· Π½Π΅ ΠΌΠΎΠΆΡƒΡ‚ΡŒ містити Π΄Π²Π° Ρ‡ΠΈ Π±Ρ–Π»ΡŒΡˆΠ΅ "
+"E883: Π¨Π°Π±Π»ΠΎΠ½ ΠΏΠΎΡˆΡƒΠΊΡƒ Ρ– рСгістровий Π²ΠΈΡ€Π°Π· Π½Π΅ ΠΌΠΎΠΆΡƒΡ‚ΡŒ містити Π΄Π²Π° Ρ‡ΠΈ Π±Ρ–Π»ΡŒΡˆΠ΅ "
 "рядків"
 
 #, c-format
@@ -7147,9 +7038,8 @@ msgid "E889: Number required"
 msgstr "E889: Π’Ρ€Π΅Π±Π° Π²ΠΊΠ°Π·Π°Ρ‚ΠΈ Number"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E890: Trailing char after ']': %s]%s"
-msgstr "E890: Π½Π°Π΄Π»ΠΈΡˆΠΊΠΎΠ²Ρ– символи після ']': %s]%s"
+msgstr "E890: ΠΠ°Π΄Π»ΠΈΡˆΠΊΠΎΠ²Ρ– символи після ']': %s]%s"
 
 msgid "E891: Using a Funcref as a Float"
 msgstr "E891: Funcref Π²ΠΆΠΈΡ‚ΠΎ як Float"
@@ -7198,22 +7088,18 @@ msgstr "E901: gethostbyname() Ρƒ channel_open()"
 msgid "E902: Cannot connect to port"
 msgstr "E902: НС вдалося Π·'єднатися Π· ΠΏΠΎΡ€Ρ‚ΠΎΠΌ"
 
-# TODO: Capitalise first word of message?
 msgid "E903: Received command with non-string argument"
-msgstr "E903: ΠΎΡ‚Ρ€ΠΈΠΌΠ°Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π· нСтСкстовим Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ"
-
-# TODO: Capitalise first word of message?
+msgstr "E903: ΠžΡ‚Ρ€ΠΈΠΌΠ°Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π· нСтСкстовим Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ"
+
 msgid "E904: Last argument for expr/call must be a number"
-msgstr "E904: останній Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Ρƒ Π²ΠΈΡ€Π°Π·Ρ–/Π²ΠΈΠΊΠ»ΠΈΠΊΡƒ ΠΌΠ°Ρ” Π±ΡƒΡ‚ΠΈ числом"
-
-# TODO: Capitalise first word of message?
+msgstr "E904: ΠžΡΡ‚Π°Π½Π½Ρ–ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Ρƒ Π²ΠΈΡ€Π°Π·Ρ–/Π²ΠΈΠΊΠ»ΠΈΠΊΡƒ ΠΌΠ°Ρ” Π±ΡƒΡ‚ΠΈ числом"
+
 msgid "E904: Third argument for call must be a list"
-msgstr "E904: Ρ‚Ρ€Π΅Ρ‚Ρ–ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Ρƒ Π²ΠΈΠΊΠ»ΠΈΠΊΡƒ ΠΌΠ°Ρ” Π±ΡƒΡ‚ΠΈ списком"
-
-#, c-format
-# TODO: Capitalise first word of message?
+msgstr "E904: Π’Ρ€Π΅Ρ‚Ρ–ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Ρƒ Π²ΠΈΠΊΠ»ΠΈΠΊΡƒ ΠΌΠ°Ρ” Π±ΡƒΡ‚ΠΈ списком"
+
+#, c-format
 msgid "E905: Received unknown command: %s"
-msgstr "E905: ΠΎΡ‚Ρ€ΠΈΠΌΠ°Π½ΠΎ Π½Π΅Π²Ρ–Π΄ΠΎΠΌΡƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ: %s"
+msgstr "E905: ΠžΡ‚Ρ€ΠΈΠΌΠ°Π½ΠΎ Π½Π΅Π²Ρ–Π΄ΠΎΠΌΡƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ: %s"
 
 msgid "E906: not an open channel"
 msgstr "E906: Π½Π΅ Π²Ρ–Π΄ΠΊΡ€ΠΈΡ‚ΠΈΠΉ ΠΊΠ°Π½Π°Π»"
@@ -7223,9 +7109,8 @@ msgstr "E907: Π‘ΠΏΠ΅Ρ†Ρ–Π°Π»ΡŒΠ½Π΅ значСння Π²ΠΆΠΈΡ‚ΠΎ як Float"
 
 # msgstr "E373: "
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E908: Using an invalid value as a String: %s"
-msgstr "E908: Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅ значСння Π²ΠΆΠΈΡ‚ΠΎ як String: %s"
+msgstr "E908: ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅ значСння Π²ΠΆΠΈΡ‚ΠΎ як String: %s"
 
 msgid "E909: Cannot index a special variable"
 msgstr "E909: НС ΠΌΠΎΠΆΠ½Π° індСксувати ΡΠΏΠ΅Ρ†Ρ–Π°Π»ΡŒΠ½Ρƒ Π·ΠΌΡ–Π½Π½Ρƒ"
@@ -7236,10 +7121,9 @@ msgstr "E910: Job Π²ΠΆΠΈΡ‚ΠΎ як Number"
 msgid "E911: Using a Job as a Float"
 msgstr "E911: Job Π²ΠΆΠΈΡ‚ΠΎ як Float"
 
-# TODO: Capitalise first word of message?
 msgid "E912: Cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channel"
 msgstr ""
-"E912: Π½Π΅ ΠΌΠΎΠΆΠ½Π° використати ch_evalexpr()/ch_sendexpr() Π· raw Ρ‡ΠΈ nl ΠΊΠ°Π½Π°Π»ΠΎΠΌ"
+"E912: НС ΠΌΠΎΠΆΠ½Π° використати ch_evalexpr()/ch_sendexpr() Π· raw Ρ‡ΠΈ nl ΠΊΠ°Π½Π°Π»ΠΎΠΌ"
 
 msgid "E913: Using a Channel as a Number"
 msgstr "E913: Channel Π²ΠΆΠΈΡ‚ΠΎ як Number"
@@ -7250,18 +7134,16 @@ msgstr "E914: Channel Π²ΠΆΠΈΡ‚ΠΎ як Float"
 msgid "E915: in_io buffer requires in_buf or in_name to be set"
 msgstr "E915: Π±ΡƒΡ„Π΅Ρ€ in_io ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡ” встановлСного in_buf Ρ‡ΠΈ in_name"
 
-# TODO: Capitalise first word of message?
 msgid "E916: Not a valid job"
-msgstr "E916: Π½Π΅ΠΊΠΎΡ€Π΅ΠΊΡ‚Π½Π΅ завдання"
+msgstr "E916: НСкорСктнС завдання"
 
 #, c-format
 msgid "E917: Cannot use a callback with %s()"
 msgstr "E917: НС ΠΌΠΎΠΆΠ½Π° використати Π·Π²ΠΎΡ€ΠΎΡ‚Π½Ρ–ΠΉ Π²ΠΈΠΊΠ»ΠΈΠΊ Ρƒ %s()"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E918: Buffer must be loaded: %s"
-msgstr "E918: Π±ΡƒΡ„Π΅Ρ€ ΠΌΠ°Ρ” Π±ΡƒΡ‚ΠΈ Π·Π°Π²Π°Π½Ρ‚Π°ΠΆΠ΅Π½ΠΈΠΉ: %s"
+msgstr "E918: Π‘ΡƒΡ„Π΅Ρ€ ΠΌΠ°Ρ” Π±ΡƒΡ‚ΠΈ Π·Π°Π²Π°Π½Ρ‚Π°ΠΆΠ΅Π½ΠΈΠΉ: %s"
 
 #, c-format
 msgid "E919: Directory not found in '%s': \"%s\""
@@ -7274,9 +7156,8 @@ msgstr "E920: Ρ„Π°ΠΉΠ» _io ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡ” встановлСного _name"
 msgid "E921: Invalid callback argument"
 msgstr "E921: НСкорСктний Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π·Π²ΠΎΡ€ΠΎΡ‚Π½ΠΎΠ³ΠΎ Π²ΠΈΠΊΠ»ΠΈΠΊΡƒ"
 
-# TODO: Capitalise first word of message?
 msgid "E922: Expected a dict"
-msgstr "E922: ΠΎΡ‡Ρ–ΠΊΡƒΡ”Ρ‚ΡŒΡΡ dict"
+msgstr "E922: ΠžΡ‡Ρ–ΠΊΡƒΡ”Ρ‚ΡŒΡΡ dict"
 
 msgid "E923: Second argument of function() must be a list or a dict"
 msgstr "E923: Π”Ρ€ΡƒΠ³ΠΈΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ function() ΠΌΠ°Ρ” Π±ΡƒΡ‚ΠΈ списком Ρ‡ΠΈ словником"
@@ -7320,9 +7201,8 @@ msgid "E934: Cannot jump to a buffer tha
 msgstr "E934: НС ΠΌΠΎΠΆΠ½Π° ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π΄ΠΎ Π±ΡƒΡ„Π΅Ρ€Π°, який Π½Π΅ ΠΌΠ°Ρ” Π½Π°Π·Π²ΠΈ"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E935: Invalid submatch number: %d"
-msgstr "E935: Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΈΠΉ Π½ΠΎΠΌΠ΅Ρ€ ΠΏΡ–Π΄-Π·Π±Ρ–Π³Ρƒ: %d"
+msgstr "E935: ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΈΠΉ Π½ΠΎΠΌΠ΅Ρ€ ΠΏΡ–Π΄-Π·Π±Ρ–Π³Ρƒ: %d"
 
 msgid "E936: Cannot delete the current group"
 msgstr "E936: НС вдалося Π·Π½ΠΈΡ‰ΠΈΡ‚ΠΈ Ρ†ΡŽ Π³Ρ€ΡƒΠΏΡƒ"
@@ -7343,9 +7223,8 @@ msgstr "E939: ΠŸΠΎΡ‚Ρ€Ρ–Π±Π½Π° Π΄ΠΎΠ΄Π°Ρ‚Π½Π° ΠΊΡ–Π»ΡŒΠΊΡ–ΡΡ‚ΡŒ"
 msgid "E940: Cannot lock or unlock variable %s"
 msgstr "E940: НСмоТливо Π·Π°Π±Π»ΠΎΠΊΡƒΠ²Π°Ρ‚ΠΈ Ρ‡ΠΈ Ρ€ΠΎΠ·Π±Π»ΠΎΠΊΡƒΠ²Π°Ρ‚ΠΈ Π·ΠΌΡ–Π½Π½Ρƒ %s"
 
-# TODO: Capitalise first word of message?
 msgid "E941: Already started a server"
-msgstr "E941: сСрвСр Π²ΠΆΠ΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ"
+msgstr "E941: Π‘Π΅Ρ€Π²Π΅Ρ€ Π²ΠΆΠ΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ"
 
 msgid "E942: +clientserver feature not available"
 msgstr "E942: ΠΌΠΎΠΆΠ»ΠΈΠ²Ρ–ΡΡ‚ΡŒ +clientserver відсутня"
@@ -7413,36 +7292,32 @@ msgstr "E959: НСкорСктний Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ порівняння."
 msgid "E960: Problem creating the internal diff"
 msgstr "E960: НС вдалося порівняти Π²Π½ΡƒΡ‚Ρ€Ρ–ΡˆΠ½Ρ–ΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ"
 
-# TODO: Capitalise first word of message?
 msgid "E961: No line number to use for \"<sflnum>\""
-msgstr "E961: Π½Π΅ΠΌΠ°Ρ” Π½ΠΎΠΌΠ΅Ρ€Π° рядка, Ρ‰ΠΎΠ± використати Π· Β«<sflnum>Β»"
+msgstr "E961: НСмає Π½ΠΎΠΌΠ΅Ρ€Π° рядка, Ρ‰ΠΎΠ± використати Π· Β«<sflnum>Β»"
 
 #, c-format
 msgid "E962: Invalid action: '%s'"
 msgstr "E962: ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π° дія: '%s'"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E963: Setting %s to value with wrong type"
-msgstr "E963: встановлСння значСння Π· Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΈΠΌ Ρ‚ΠΈΠΏΠΎΠΌ Ρƒ %s"
+msgstr "E963: ВстановлСння значСння Π· Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΈΠΌ Ρ‚ΠΈΠΏΠΎΠΌ Ρƒ %s"
 
 #, c-format
 msgid "E964: Invalid column number: %ld"
 msgstr "E964: ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΈΠΉ Π½ΠΎΠΌΠ΅Ρ€ стовпця: %ld"
 
 # msgstr "E378: "
-# TODO: Capitalise first word of message?
 msgid "E965: Missing property type name"
-msgstr "E965: Π±Ρ€Π°ΠΊΡƒΡ” Π½Π°Π·Π²ΠΈ Ρ‚ΠΈΠΏΡƒ властивості"
+msgstr "E965: Π‘Ρ€Π°ΠΊΡƒΡ” Π½Π°Π·Π²ΠΈ Ρ‚ΠΈΠΏΡƒ властивості"
 
 # msgstr "E18: "
 #, c-format
 msgid "E966: Invalid line number: %ld"
 msgstr "E966: НСкорСктний Π½ΠΎΠΌΠ΅Ρ€ рядка: %ld"
 
-# TODO: Capitalise first word of message?
 msgid "E967: Text property info corrupted"
-msgstr "E967: пошкодТСна інформація тСкстової властивості"
+msgstr "E967: ПошкодТСна інформація тСкстової властивості"
 
 msgid "E968: Need at least one of 'id' or 'type'"
 msgstr "E968: ΠŸΠΎΡ‚Ρ€Ρ–Π±Π½ΠΎ Ρ‰ΠΎΠ½Π°ΠΉΠΌΠ΅Π½ΡˆΠ΅ ΠΎΠ΄Π½Π΅ Π· 'id' Π°Π±ΠΎ 'type'"
@@ -7486,9 +7361,8 @@ msgstr "E978: НСкорСктна опСрація Π½Π°Π΄ Blob"
 msgid "E979: Blob index out of range: %ld"
 msgstr "E979: ІндСкс Ρƒ Blob ΠΏΠΎΠ·Π° ΠΌΠ΅ΠΆΠ°ΠΌΠΈ: %ld"
 
-# TODO: Capitalise first word of message?
 msgid "E980: Lowlevel input not supported"
-msgstr "E980: Π½ΠΈΠ·ΡŒΠΊΠΎΡ€Ρ–Π²Π½Π΅Π²Π΅ ввСдСння Π½Π΅ ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΡƒΡ”Ρ‚ΡŒΡΡ"
+msgstr "E980: ΠΠΈΠ·ΡŒΠΊΠΎΡ€Ρ–Π²Π½Π΅Π²Π΅ ввСдСння Π½Π΅ ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΡƒΡ”Ρ‚ΡŒΡΡ"
 
 msgid "E981: Command not allowed in rvim"
 msgstr "E981: ΠšΠΎΠΌΠ°Π½Π΄Ρƒ Π½Π΅ Π΄ΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΎ Ρƒ rvim"
@@ -7506,14 +7380,12 @@ msgstr "E984: :scriptversion використано ΠΏΠΎΠ·Π° ΠΏΡ–Π΄Ρ‡ΠΈΡ‚ΡƒΠ²Π°Π½ΠΈΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ"
 msgid "E985: .= is not supported with script version >= 2"
 msgstr "E985: .= Π½Π΅ ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΡƒΡ”Ρ‚ΡŒΡΡ Ρƒ вСрсії скриптів >= 2"
 
-# TODO: Capitalise first word of message?
 msgid "E986: Cannot modify the tag stack within tagfunc"
-msgstr "E986: Π½Π΅ ΠΌΠΎΠΆΠ½Π° Π·ΠΌΡ–Π½ΡŽΠ²Π°Ρ‚ΠΈ стСк ΠΌΡ–Ρ‚ΠΎΠΊ Ρƒ tagfunc"
+msgstr "E986: НС ΠΌΠΎΠΆΠ½Π° Π·ΠΌΡ–Π½ΡŽΠ²Π°Ρ‚ΠΈ стСк ΠΌΡ–Ρ‚ΠΎΠΊ Ρƒ tagfunc"
 
 # msgstr "E177: "
-# TODO: Capitalise first word of message?
 msgid "E987: Invalid return value from tagfunc"
-msgstr "E987: Π½Π΅ΠΊΠΎΡ€Π΅ΠΊΡ‚Π½Π΅ значСння, Ρ‰ΠΎ ΠΏΠΎΠ²Π΅Ρ€Ρ‚Π°Ρ”Ρ‚ΡŒΡΡ Π· tagfunc"
+msgstr "E987: НСкорСктнС значСння, Ρ‰ΠΎ ΠΏΠΎΠ²Π΅Ρ€Ρ‚Π°Ρ”Ρ‚ΡŒΡΡ Π· tagfunc"
 
 msgid "E988: GUI cannot be used. Cannot execute gvim.exe."
 msgstr "E988: НС ΠΌΠΎΠΆΠ½Π° використати GUI. НС ΠΌΠΎΠΆΠ½Π° запустити gvim.exe."
@@ -7525,17 +7397,15 @@ msgstr "E989: ΠžΠ±ΠΎΠ²β€™ΡΠ·ΠΊΠΎΠ²ΠΈΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ після нСобов’язкового Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρƒ"
 msgid "E990: Missing end marker '%s'"
 msgstr "E990: Π‘Ρ€Π°ΠΊΡƒΡ” ΠΏΠΎΠ·Π½Π°Ρ‡ΠΊΠΈ кінця '%s'"
 
-# TODO: Capitalise first word of message?
 msgid "E991: Cannot use =<< here"
-msgstr "E991: Ρ‚ΡƒΡ‚ Π½Π΅ ΠΌΠΎΠΆΠ½Π° Π²ΠΆΠΈΡ‚ΠΈ =<<"
+msgstr "E991: Π’ΡƒΡ‚ Π½Π΅ ΠΌΠΎΠΆΠ½Π° Π²ΠΆΠΈΡ‚ΠΈ =<<"
 
 msgid "E992: Not allowed in a modeline when 'modelineexpr' is off"
 msgstr "E992: НС Π΄ΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΎ Ρƒ modeline, ΠΊΠΎΠ»ΠΈ 'modelineexpr' Π²ΠΈΠΌΠΊΠ½Π΅Π½ΠΎ"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E993: Window %d is not a popup window"
-msgstr "E993: Π²Ρ–ΠΊΠ½ΠΎ %d Π½Π΅ ΡΠΏΠ»ΠΈΠ²Π°ΡŽΡ‡Π΅"
+msgstr "E993: Π’Ρ–ΠΊΠ½ΠΎ %d Π½Π΅ ΡΠΏΠ»ΠΈΠ²Π°ΡŽΡ‡Π΅"
 
 msgid "E994: Not allowed in a popup window"
 msgstr "E994: НС Π΄ΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΎ Ρƒ ΡΠΏΠ»ΠΈΠ²Π°ΡŽΡ‡ΠΎΠΌΡƒ Π²Ρ–ΠΊΠ½Ρ–"
@@ -8156,7 +8026,7 @@ msgstr "E1160: НСмоТливо Π·Π°Π΄Π°Ρ‚ΠΈ ΠΏΠΎΡ‡Π°Ρ‚ΠΊΠΎΠ²Π΅ значСння для Π·ΠΌΡ–Π½Π½ΠΈΡ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ–Π²"
 
 #, c-format
 msgid "E1161: Cannot json encode a %s"
-msgstr "E1161: НСмоТливо Π·Π°ΠΊΠΎΠ΄ΡƒΠ²Π°Ρ‚ΠΈ Ρƒ json %s"
+msgstr "E1161: НСмоТливо Π·Π°ΠΊΠΎΠ΄ΡƒΠ²Π°Ρ‚ΠΈ Ρƒ JSON %s"
 
 #, c-format
 msgid "E1162: Register name must be one character: %s"
@@ -8545,7 +8415,6 @@ msgstr "E1261: НСмоТливо Ρ–ΠΌΠΏΠΎΡ€Ρ‚ΡƒΠ²Π°Ρ‚ΠΈ .vim Π±Π΅Π· Β«asΒ»"
 msgid "E1262: Cannot import the same script twice: %s"
 msgstr "E1262: НСмоТливо Ρ–ΠΌΠΏΠΎΡ€Ρ‚ΡƒΠ²Π°Ρ‚ΠΈ Ρ‚ΠΎΠΉ самий скрипт Π΄Π²Ρ–Ρ‡Ρ–: %s"
 
-# TODO: Capitalise first word of message?
 msgid "E1263: Cannot use name with # in Vim9 script, use export instead"
 msgstr ""
 "E1263: НСмоТливо Π²ΠΆΠΈΡ‚ΠΈ Π½Π°Π·Π²Ρƒ Π· # Ρƒ скрипті Vim9, використайтС Π½Π°Ρ‚ΠΎΠΌΡ–ΡΡ‚ΡŒ "
@@ -8582,7 +8451,6 @@ msgid "E1270: Cannot use :s\\/sub/ in Vi
 msgstr "E1270: НСмоТливо застосувати :s\\/sub/ Ρƒ скрипті Vim9"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E1271: Compiling closure without context: %s"
 msgstr "E1271: ΠšΠΎΠΌΠΏΡ–Π»ΡΡ†Ρ–Ρ замикання Π±Π΅Π· контСксту: %s"