]> granicus.if.org Git - vim/commitdiff
Update runtime files
authorBram Moolenaar <Bram@vim.org>
Fri, 3 Jun 2022 20:59:47 +0000 (21:59 +0100)
committerBram Moolenaar <Bram@vim.org>
Fri, 3 Jun 2022 20:59:47 +0000 (21:59 +0100)
31 files changed:
.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 [new file with mode: 0644]
runtime/ftplugin/fortran.vim
runtime/indent/confini.vim [new file with mode: 0644]
runtime/syntax/confini.vim [new file with mode: 0644]
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

index 977aeb0f374900a1a8f64d5e7a2394dbcaf68fd9..435f04c6be2ff478cc11e11efd85de5f86f1d918 100644 (file)
@@ -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
index 0ef7c4c67bcbd0e3a8cb2b221907471eaf80475f..948aae45cac445fa2c9f43df50aef0386ff792f1 100644 (file)
@@ -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 text.
 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: >
index 08b54ced49ad83362150196546352fa1163abb41..fa9db949cb877aaa935a39db97ba1d7116c58a7a 100644 (file)
@@ -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
index d3e0a9ca1b65d8a5a0c6c27113d7c2d3bb03dcc9..1b26660e766f2dfcc5c6f67da38c791cfb2fce55 100644 (file)
@@ -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 '>' flag is present in 'cpoptions' then
 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
index 77822d7963602092aa6dfd90b8b08059e6e678d7..f5f3c37c9f51a9c6ee49149aa7717b9faf718cb6 100644 (file)
@@ -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 change the type of a variable.
 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 equivalent: >
        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 then define functions that start with
 
 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
index 373f459aec82d7f571c4e271cbb1a29a1582ec46..76a2f52290f5a048d70c06f5bcef5791b3fad663 100644 (file)
@@ -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 is waiting for another character.
 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*
 
index f1038afa69aa9ea8f304f67941bfb52b257eca52..799b856a7b6c4750d691ff7dc21653b79c28f468 100644 (file)
@@ -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 short description can be found at |Q_op|.
        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 short description can be found at |Q_op|.
 
        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
+       using `:redrawstatus`.
 
-<      A result of all digits is regarded a number for display purposes.
+       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.
 
index 62376c7f2702b17fa5d5b1c5b68bebd977694ad4..53a4d03ed4cbccf0b577d1ec950b0df10b7a248b 100644 (file)
@@ -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.
index 51413e796446fc4c08f72c85f5a5410f528529e2..dd478aefeb3f7694e50f291785c29fd67a4b30fa 100644 (file)
@@ -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 a popup window.  Many rules are then
 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: >
index c0a8c51b5fdc6995f62f70d95211a54052ad4da3..77466094f9c2764da185f5360a86f2e535aec18c 100644 (file)
@@ -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
index 4171a5db5ae7607fe1560a29708c2fe008fc4b2b..38a4a1c780c2f688dab7e063892f621450c06cca 100644 (file)
@@ -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 terminals): >
          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
index c53ae5e6d525122e8cf00966881397757b603162..e291a5ddd597083a8cfc45b52988929b2bf708b2 100644 (file)
@@ -12,6 +12,7 @@ $VIM  starting.txt    /*$VIM*
 $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 @@ $VIM_POSIX      vi_diff.txt     /*$VIM_POSIX*
 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_winid-variable*
 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-destroy*
 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-buffer*
 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-version*
 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-compiler-plugin*
 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()*
index 2c01c65316d49bb083d34cfc34ef80ed45052fd2..f68bf427168f931fc9b69cfe23df1bbb685557e3 100644 (file)
@@ -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
index fa2cded4f43c5e4d284be79b749ce86f3c8691b0..b5dd99e1972a720445a7b44927763b013ead4323 100644 (file)
@@ -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/issues/1234
 -------------------- 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 because of fork())
 
 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" and "underdash". #9553
 
 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 in search pattern \%<.c and \%<.v.
 
 ":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() should be used. (#7964)
 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 libcanberra work there?
 
 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, Jan 2018, #2500) Based on older patch
 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 checking. (Marcelo D Montu, 2016 Dec 15,
 
 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 whether text ended in line break.
 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, autoload doesn't work.
 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 @@ Patch to fix that 'cedit' is recognized after :normal. (Christian Brabandt,
 
 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, unfinished.
 
 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 @@ On MS-Windows a temp dir with a & init causes system() to fail. (Ben Fritz,
 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 many things, but it's possible to change
 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 is ignored, but intermediate { are not
 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(). (Adam Simpkins, 2009 Aug 26)
 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 value that's stored for that buffer.
 
 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 existing tab is re-used. (Tony Mechelynck)
 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?  Also <isfile>?
 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 uses a different encoding completion
 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 cursor is often put in the middle.
 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 @@ Vi incompatibility:
     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 @@ GTK+ GUI known bugs:
 -   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 @@ Win32 GUI known bugs:
     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 @@ 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 @@ Multi-byte characters:
     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 @@ Multi-byte characters:
     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 @@ Printing:
 
 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 @@ Syntax highlighting:
     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:
index 4a0ea040e7afe96856c74a092aa43efd00991dba..23a30af4b6e1bf0c5d5cccdd12af767bbf6f2c54 100644 (file)
@@ -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 like this: >
 
 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*
index 11f035b4e6af6c5d3c6bda687e9e54882f403b68..214b8c70ed38df8a87cb172eecb0c4a5170bbd16 100644 (file)
@@ -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 uses yourself.
 
 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 commands, but would you really want to
 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 for negation, you can put the second
 expression in parentheses: >
 
        echo -0x7f (-0o36)
+<      -127 -30 ~
 
 ==============================================================================
 *41.2* Variables
@@ -165,7 +191,7 @@ cannot start with a digit.  Valid variable names are:
        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 can be sure that it is only changed in
 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 return the next count: >
        :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, you need to specify the type: >
 
        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 expression is expected, you can use a number,
 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 surprises here.  Example: >
        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.  Example: >
        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>".  This avoids having to enter a
 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 a large amount of functionality that
 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 from the current buffer.  Its argument
 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 additional arguments: >
 
        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 name as an argument for `function`: >
        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't exist or cannot be deleted.
 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.  The items can be any kind of value,
 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 List is iterate over it: >
 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, the stride and even go backwards: >
        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:".  This number is guaranteed to stay
 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` command: >
           :.,$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 following example: >
 
        :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 interpreted as: >
 
 |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 for some commands.  Examples: >
        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 legacy script: >
        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|.
 
 ==============================================================================
 
index 0f87e636776fd6d7a8bdd5b4fdd5f9021d0ef18f..e4abf0534de70df5ecf04ab54bbfac3ffcc4a72e 100644 (file)
@@ -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',
+                       ]
+
+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
 
-TODO
 
 ==============================================================================
 
index 2845ab8151f027590bdc260cbe800912e7e5564e..73733f488809aa973724c9dde3762c76a0144da9 100644 (file)
@@ -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 explained.  Most items are also relevant for
 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 sufficient.  Example: >
   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 already use it for something else.  To
 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, autocommands, user commands).
 
 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
-
-Line 33 wasn't explained yet.  It applies the new correction to the word under
+ 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 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 help in || is recommended.  This makes
 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 script: >
 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 is only defined once: >
          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" the effect of the previous filetype
 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 at the end of 'runtimepath'.  For Unix
 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 automatic updating.  See |glvs-plugins|.
 
 ==============================================================================
 
-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:
index 375fa5dd3e44c2f0ad47789797652976ef70db64..0461d8ec63b4085ec012230f221487efbc393ea8 100644 (file)
@@ -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, defined with `def`, require specifying the
 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*
-
-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.
-
-In most cases you will want to declare the variable and initialize it at the
-same time: >
-       let myText = 'some text'
-       ...
-       myText = 'other text'
-
-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
-
-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'
-
-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
+*52.2* Autoloading
+
+TODO: autoloading with import/export
+
+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.
+
+Instead of having `import` load the script immediately, it can be postponed
+until needed. >
+       import autoload "./LoadLater.vim"
 
-Although it's shorter to do: >
-       let word = condition ? 'yes' : 'no'
+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.
+
+Another form is to use a script name that is not an absolute or relative
+path: >
+       import autload "monthlib.vim"
+
+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
-
-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
-
-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.
-
-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
-
-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 +
-
-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.
-
-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.
-
-If the function does not return anything, just leave out the return type: >
-       def ReportResult(result: string)
-          echo 'The result is: ' .. result
-       enddef
+*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.
 
-This is also checked, if you try to return a value you'll get an error.
+The autoload mechanism is based on a funtion name that has "#" characters: >
 
-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
+       mylib#myfunction(arg)
+
+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".
+
+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.
+
+If you get really enthusiastic and write lots of library scripts, you may
+want to use subdirectories.  Example: >
+
+       netlib#ftp#read('somefile')
+
+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:
+
+       ~/.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|.
+
+==============================================================================
+*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.4* Using a Vim9 script from legacy script          *source-vim9-script*
+*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 name for these global items. Example: >
 
 Next chapter: |usr_90.txt|  Installing Vim
 
+
 Copyright: see |manual-copyright|  vim:tw=78:ts=8:noet:ft=help:norl:
index d2173a08c8da08f9fc37b0c98532ce58df5621ec..268f7cf768d3881c97670c6269f81f4303a51529 100644 (file)
@@ -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
-
-|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
+               |51.4|  Distributing Vim scripts
+
+|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 ~
index 7ec8afcbfff006d501352806bb9cb05c0399df00..c9ee28bfbae10d8ef9354927efd541d70d0b7763 100644 (file)
@@ -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")
diff --git a/runtime/ftplugin/confini.vim b/runtime/ftplugin/confini.vim
new file mode 100644 (file)
index 0000000..310e046
--- /dev/null
@@ -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
index 26dc90a184dc2de4ede4ff8ae56abdf5159a96fe..8f5b243b82d55ed6666635b651fab25c5abac152 100644 (file)
@@ -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
diff --git a/runtime/indent/confini.vim b/runtime/indent/confini.vim
new file mode 100644 (file)
index 0000000..50b3dd2
--- /dev/null
@@ -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
diff --git a/runtime/syntax/confini.vim b/runtime/syntax/confini.vim
new file mode 100644 (file)
index 0000000..823d417
--- /dev/null
@@ -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'
index 6c04e97b16500680d68f2323632ba7e10cb13778..af3c2e4b1840df20c5fde3c73a46543469355946 100644 (file)
@@ -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\=\|[!&?<]\|all&"
 " 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
 " =============
index 49c759a250fa6bdff05768d05435002f1a680349..29143e58a61c7033d39256bb31d91dfa9a5ae685 100644 (file)
@@ -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 Vim-Server <Name>"
 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)"
 
@@ -2574,6 +2552,10 @@ msgstr ""
 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
 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"
@@ -3459,6 +3409,10 @@ msgstr "%s lieferte #%ld zur
 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
 msgid "E55: Unmatched %s)"
 msgstr "E55: %s) ohne Gegenstück"
 
-#, c-format
 # 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
 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?
+#, 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 lower case letter"
 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?
+#, 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?
+#, 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?
+#, c-format
 msgid "E226: Abbreviation already exists for %s"
 msgstr "E226: Kurzform %s existiert bereits"
 
-#, c-format
 # 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
 msgid "E246: FileChangedShell autocommand deleted buffer"
 msgstr "E246: FileChangedShell-Autokommando löschte Buffer"
 
-#, c-format
 # 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?
+#, 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?
+#, c-format
 msgid "E261: Cscope connection %s not found"
 msgstr "E261: cscope Verbindung %s nicht gefunden"
 
-#, c-format
 # 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
 msgid "E272: Unhandled exception"
 msgstr "E272: Unbehandelte Exception"
 
-#, c-format
 # 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 gibt keine Auslagerungsdatei"
 msgid "E314: Preserve failed"
 msgstr "E314: Absicherung fehlgeschlagen"
 
-#, c-format
 # 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?
+#, 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 finden"
 msgid "E321: Could not reload \"%s\""
 msgstr "E321: \"%s\" konnte nicht neu geladen werden"
 
-#, c-format
 # 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?
+#, 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 nicht erlaubt"
 msgid "E367: No such group: \"%s\""
 msgstr "E367: Keine solche Gruppe: \"%s\""
 
-#, c-format
 # 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?
+#, c-format
 msgid "E369: Invalid item in %s%%[]"
 msgstr "E369: Ungültiges Element in %s%%[]"
 
@@ -5299,13 +5248,13 @@ msgstr "E382: Kann nicht schreiben, 'buftype'-Option ist gesetzt"
 msgid "E383: Invalid search string: %s"
 msgstr "E383: Unzulässiges Suchmuster: %s"
 
-#, c-format
 # 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?
+#, 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: %s"
 msgid "E410: Invalid :syntax subcommand: %s"
 msgstr "E410: Ungültiger :syntax Befehl: %s"
 
-#, c-format
 # 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: \":highlight link %s\""
 msgid "E414: Group has settings, highlight link ignored"
 msgstr "E414: Gruppe hat Einstellungen, highlight link ignoriert"
 
-#, c-format
 # 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?
+#, c-format
 msgid "E416: Missing equal sign: %s"
 msgstr "E416: fehlendes Gleichheitszeichen: %s"
 
-#, c-format
 # 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?
+#, 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 Hervorhebungsattribute in Gebrauch"
 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?
+#, 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?
+#, 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 Ersetzung mit \"<stack>\" vorhanden"
 msgid "E490: No fold found"
 msgstr "E490: Keine Faltung gefunden"
 
-#, c-format
 # 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)"
+"E513: Schreibfehler, Konvertierung für Zeile %ld fehlgeschlagen (leere 'fenc' "
+"zum Erzwingen)"
 
-# TODO: Capitalise first word of message?
 msgid "E514: Write error (file system full?)"
 msgstr "E514: Schreibfehler (Dateisystem voll?)"
 
@@ -5896,6 +5844,10 @@ msgstr "E536: Komma ben
 msgid "E537: 'commentstring' must be empty or contain %s"
 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?
+#, 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?
+#, 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?
+#, 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 nicht starten"
 msgid "E624: Can't open file \"%s\""
 msgstr "E624: Datei \"%s\" kann nicht geöffnet werden"
 
-#, c-format
 # 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 
 msgid "E626: Cannot get cscope database information"
 msgstr "E626: Kann cscope Datenbank-Informationen nicht bekommen"
 
-#, c-format
 # 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?
+#, c-format
 msgid "E631: %s(): Write failed"
 msgstr "E631: %s(): Schreiben fehlgeschlagen"
 
-#, c-format
 # 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 
 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?
+#, c-format
 msgid "E666: Compiler not supported: %s"
 msgstr "E666: Compiler nicht unterstützt: %s"
 
@@ -6316,8 +6258,8 @@ msgstr "E682: Ung
 msgid "E683: File name missing or invalid pattern"
 msgstr "E683: Dateiname fehlt oder ungültiges Muster"
 
-#, c-format
 # 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
 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?
+#, 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
 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?
+#, 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 character class: %d"
 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 failed"
 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 wiederholt werden %s"
 msgid "E889: Number required"
 msgstr "E889: Zahl erforderlich"
 
-#, c-format
 # 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
 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?
+#, 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?
+#, 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
 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?
+#, 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
 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?
+#, c-format
 msgid "E935: Invalid submatch number: %d"
 msgstr "E935: Ungültige Submatch Nummer: %d"
 
@@ -7339,8 +7282,8 @@ msgstr "E961: Keine Zeilennummer f
 msgid "E962: Invalid action: '%s'"
 msgstr "E962: Ungültige Aktion '%s'"
 
-#, c-format
 # 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?
+#, 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 after :vim9script"
 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"
@@ -7719,6 +7662,10 @@ msgstr "E1063: Typendiskrepanz f
 msgid "E1064: Yank register changed while using it"
 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 
 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
 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 zuweisen %s"
 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
 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 "E1118: Cannot change locked list"
+msgstr "E1118: Kann gesperrte Liste nicht ändern"
 
-msgid "E1119: Cannot change list item"
-msgstr "E1119: Kann Listenwert 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 Folge von Listen sein"
 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
 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 bestehende Variable: %s"
 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 Argumente muss eine Liste sein: %s"
 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 mit einem Zuweisungsoperator %s nutzen"
 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
 
 #, 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\" nicht importieren"
 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 wird mit der Maus gescrollt"
 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
 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"
 
index 1dc33eaf299291e42540e563e0cb1e3495ef739a..c4b1455d33553162aacfd34cb29ffb5a5e929cbe 100644 (file)
@@ -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 command\" or \"--cmd command\" arguments"
 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> en lugar de \".viminfo\""
 
 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 dentro de otro \"widget\" GTK"
 
 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 puede resaltar el texto"
 
 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 biblioteca %s"
 
 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 count"
 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"
+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 "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 evento: %s"
 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 autocommand deleted buffer"
 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 color %s"
 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 destroy callback to IM"
 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"
+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 "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 "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: %s"
 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: \":highlight link %s\""
 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 recognized: %s"
 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 matching tag"
 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 "E438: u_undo: Line numbers wrong"
+msgstr "E438: \"u_undo\": Números de línea erróneos"
 
-msgid "E439: undo list corrupt"
+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 biblioteca de funciones %s"
 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 variables"
 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 de recursos de PostScript \"%s\""
 
 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 arguments"
 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"
+"E468: El argumento de completado solo se permite en completados "
+"personalizados"
 
 #, c-format
-msgid "E469: invalid cscopequickfix flag %c for %c"
+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 invertido"
 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)"
+"E510: No se puede hacer el archivo de copia de seguridad (agregue ! para "
+"escribir de todos modos)"
 
-msgid "E511: netbeans already connected"
+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"
+msgid "E533: Can't select wide font"
 msgstr ""
-"E533: No se pudo seleccionar el tipo de letra \"ancho\" (de "
-"\"byte\" doble)"
+"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 texto o cambiar ventana"
 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 unprintable or wide character"
 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 \"Number\""
 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 desconocida: %s"
 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"
+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"
+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"
+msgid "E631: %s(): Write failed"
+msgstr "E631: %s(): Error de escritura"
 
 #, c-format
-msgid "E654: missing delimiter after search pattern: %s"
+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 cambios"
 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 archivo temporal"
 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 invalid pattern"
 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: %s"
 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 diccionario"
 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 diccionario: %s"
 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 valor"
 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 printf()"
 #, 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 .spl file: %s"
 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 \"Float\""
 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 writing: %s"
 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"
+"E841: Nombre reservado, no se puede usar para el comando definido por el "
+"usuario"
 
-msgid "E842: no line number to use for \"<slnum>\""
+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 lugar"
 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 failed"
 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_open()"
 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 \"Number\""
 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 \"Float\""
 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 %s()"
 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 que se configure _name"
 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 that does not have a name"
 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 requerido"
 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 actualizarse, ejecute 'make cmdidxs'"
 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 de un archivo fuente"
 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 predeterminado sigue al argumento predeterminado"
 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"
+"E992: No permitido en una \"modeline\" cuando \"modelineexpr\" está "
+"desactivado"
 
 #, c-format
-msgid "E993: window %d is not a popup window"
+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 indexable"
 
 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 Vim9 script, use flattennew()"
 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.vim"
 
 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 resaltado demasiado largo"
 #, 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 sin usar \"as\""
 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"
+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"
+"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 Vim9 script"
 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() o str(), pero se obtuvo %s"
 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 de imp.find_module(), pero obtuvo %s"
 #, 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 de Vim en una ventana de terminal"
 
 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't show search message)"
 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 buscar ayuda"
 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 salida del comando a un archivo"
 
 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 caracteres asignados"
 
 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
index 279c92367f731bf1945537a497b5a171d2a3f7d8..d6da8b0a083069ec8749e206fc7d05dd233fafd8 100644 (file)
@@ -3632,7 +3632,7 @@ msgid "          owned by: "
 msgstr "        pertence a: "
 
 msgid "   dated: "
-msgstr "com data: "
+msgstr "   com data: "
 
 msgid "             dated: "
 msgstr "       com data de: "
index 5b59fefbc050623a018d5f249fa30f08a76ed742..b7b891b0f4c1290d5f016bbf6891d0429d5699a2 100644 (file)
@@ -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: 
 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: 
 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: 
 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: 
 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: 
 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 autocommand deleted buffer"
 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: 
 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"
+msgstr "E267: Íåñïîä³âàíèé return"
 
-# TODO: Capitalise first word of message?
 msgid "E268: Unexpected next"
-msgstr "E268: íåñïîä³âàíèé next"
+msgstr "E268: Íåñïîä³âàíèé next"
 
-# TODO: Capitalise first word of message?
 msgid "E269: Unexpected break"
-msgstr "E269: íåñïîä³âàíèé break"
+msgstr "E269: Íåñïîä³âàíèé break"
 
-# TODO: Capitalise first word of message?
 msgid "E270: Unexpected redo"
-msgstr "E270: íåñïîä³âàíèé redo"
+msgstr "E270: Íåñïîä³âàíèé redo"
 
-# TODO: Capitalise first word of message?
 msgid "E271: Retry outside of rescue clause"
-msgstr "E271: retry ïîçà rescue"
+msgstr "E271: Êîìàíäà retry ïîçà rescue"
 
-# TODO: Capitalise first word of message?
 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"
+msgstr "E316: ml_get: Íå çíàéøîâ ðÿäîê %ld ó áóôåð³ %d %s"
 
-# TODO: Capitalise first word of message?
 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: 
 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()"
+msgstr "E368: Îòðèìàíî SIG%s ó libcall()"
 
 #, c-format
-# TODO: Capitalise first word of message?
 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: 
 
 # 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: \":highlight link %s\""
 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: 
 
 # 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: íåïðàâèëüí³ íîìåðè ðÿäê³â"
+msgstr "E438: u_undo: Íåïðàâèëüí³ íîìåðè ðÿäê³â"
 
-# TODO: Capitalise first word of message?
 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: 
 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 allowed for custom completion"
 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: 
 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"
+msgstr "E532: Íàçâà êîëüîðó ï³äñâ³÷óâàííÿ çàäîâãà ó defineAnnoType"
 
-# TODO: Capitalise first word of message?
 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: 
 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"
+msgstr "E567: Æîäíîãî ç'ºäíàííÿ ³ç cscope"
 
-# TODO: Capitalise first word of message?
 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 
 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: 
 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 GTK GUI"
 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(): çàïèñ äî ï³ä\92ºäíàííÿ"
+msgstr "E630: %s(): Çàïèñ äî ï³ä\92ºäíàííÿ"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E631: %s(): Write failed"
-msgstr "E631: %s(): çáåðåæåííÿ íå âäàëîñÿ"
+msgstr "E631: %s(): Çáåðåæåííÿ íå âäàëîñÿ"
 
 #, c-format
-# TODO: Capitalise first word of message?
 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 font found"
 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: 
 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 invalid pattern"
 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: 
 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 '}': %s"
 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 .spl file: %s"
 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 writing: %s"
 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: 
 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 used for user defined command"
 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: 
 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 failed"
 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() 
 msgid "E902: Cannot connect to port"
 msgstr "E902: Íå âäàëîñÿ ç'ºäíàòèñÿ ç ïîðòîì"
 
-# TODO: Capitalise first word of message?
 msgid "E903: Received command with non-string argument"
-msgstr "E903: îòðèìàíî êîìàíäó ç íåòåêñòîâèì àðãóìåíòîì"
+msgstr "E903: Îòðèìàíî êîìàíäó ç íåòåêñòîâèì àðãóìåíòîì"
 
-# TODO: Capitalise first word of message?
 msgid "E904: Last argument for expr/call must be a number"
-msgstr "E904: îñòàíí³é àðãóìåíò ó âèðàç³/âèêëèêó ìຠáóòè ÷èñëîì"
+msgstr "E904: Îñòàíí³é àðãóìåíò ó âèðàç³/âèêëèêó ìຠáóòè ÷èñëîì"
 
-# TODO: Capitalise first word of message?
 msgid "E904: Third argument for call must be a list"
-msgstr "E904: òðåò³é àðãóìåíò ó âèêëèêó ìຠáóòè ñïèñêîì"
+msgstr "E904: Òðåò³é àðãóìåíò ó âèêëèêó ìຠáóòè ñïèñêîì"
 
 #, c-format
-# TODO: Capitalise first word of message?
 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: 
 
 # 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 
 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 
 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: 
 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 that does not have a name"
 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: 
 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: 
 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 Vim9 script"
 msgstr "E1270: Íåìîæëèâî çàñòîñóâàòè :s\\/sub/ ó ñêðèïò³ Vim9"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E1271: Compiling closure without context: %s"
 msgstr "E1271: Êîìï³ëÿö³ÿ çàìèêàííÿ áåç êîíòåêñòó: %s"
 
index b2616cbb2a61e21b6589189ab1c7fe88c78a52c8..bc7338a82af4af2ea2bfaedca0093ecd8a4466b2 100644 (file)
@@ -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: Файл не записано: запис заборонено о
 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: Ð½Ðµ Ñ\87иÑ\81ловий Ð°Ñ\80гÑ\83менÑ\82 Ð´Ð»Ñ\8f :z"
+msgstr "E144: Ð\9dе Ñ\87иÑ\81ловий Ð°Ñ\80гÑ\83менÑ\82 Ñ\83 :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: Ð\9fотрібен аргумент для %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: Ð\9bаÑ\82аннÑ\8f: Ð½е вдалося створити оригінал"
+msgstr "E206: Ð\9bаÑ\82аннÑ\8f: Ð\9dе вдалося створити оригінал"
 
 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 autocommand deleted buffer"
 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: Ð\9cітку не знайдено"
 
 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"
+msgstr "E267: Ð\9dесподіваний return"
 
-# TODO: Capitalise first word of message?
 msgid "E268: Unexpected next"
-msgstr "E268: Ð½есподіваний next"
+msgstr "E268: Ð\9dесподіваний next"
 
-# TODO: Capitalise first word of message?
 msgid "E269: Unexpected break"
-msgstr "E269: Ð½есподіваний break"
+msgstr "E269: Ð\9dесподіваний break"
 
-# TODO: Capitalise first word of message?
 msgid "E270: Unexpected redo"
-msgstr "E270: Ð½есподіваний redo"
+msgstr "E270: Ð\9dесподіваний redo"
 
-# TODO: Capitalise first word of message?
 msgid "E271: Retry outside of rescue clause"
-msgstr "E271: retry поза rescue"
+msgstr "E271: Команда retry поза rescue"
 
-# TODO: Capitalise first word of message?
 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: Ð\9dеправильний 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"
+msgstr "E316: ml_get: Ð\9dе знайшов рядок %ld у буфері %d %s"
 
-# TODO: Capitalise first word of message?
 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: Не вдалося запустити оболонку з опц
 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()"
+msgstr "E368: Ð\9eтримано SIG%s у libcall()"
 
 #, c-format
-# TODO: Capitalise first word of message?
 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: \":highlight link %s\""
 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: Нерозпізнана назва або номер кольор
 
 # 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: Ð½еправильні номери рядків"
+msgstr "E438: u_undo: Ð\9dеправильні номери рядків"
 
-# TODO: Capitalise first word of message?
 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: Не вдалося завантажити бібліотечну
 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: Ð\91ракує записів у словниковому аргументі mapset()"
 
 #, c-format
 msgid "E461: Illegal variable name: %s"
@@ -5692,7 +5634,6 @@ msgid "E468: Completion argument only allowed for custom completion"
 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"
+msgstr "E532: Ð\9dазва кольору підсвічування задовга у defineAnnoType"
 
-# TODO: Capitalise first word of message?
 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: Ð\9eчікується цифра"
 
 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"
+msgstr "E567: Ð\96одного з'єднання із cscope"
 
-# TODO: Capitalise first word of message?
 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 GTK GUI"
 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(): Ð·апис до під’єднання"
+msgstr "E630: %s(): Ð\97апис до під’єднання"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E631: %s(): Write failed"
-msgstr "E631: %s(): Ð·береження не вдалося"
+msgstr "E631: %s(): Ð\97береження не вдалося"
 
 #, c-format
-# TODO: Capitalise first word of message?
 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 font found"
 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 invalid pattern"
 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 '}': %s"
 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 .spl file: %s"
 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 writing: %s"
 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 used for user defined command"
 msgstr ""
 "E841: Зарезервована назва, не можна використати для команди користувача"
 
-# TODO: Capitalise first word of message?
 msgid "E842: No line number to use for \"<slnum>\""
-msgstr "E842: Ð½емає номера рядка, щоб використати з «<sfile>»"
+msgstr "E842: Ð\9dемає номера рядка, щоб використати з «<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: Ð\94ругий аргумент «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: Ð\9fісля \\%#= може бути тільки 0, 1 чи 2. Буде використано автоматичний "
 "механізм"
 
 msgid "E865: (NFA) Regexp end encountered prematurely"
@@ -7114,10 +7005,10 @@ msgid "E882: Uniq compare function failed"
 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: Ð\9dадлишкові символи після ']': %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: Ð¾тримано команду з нетекстовим аргументом"
+msgstr "E903: Ð\9eтримано команду з нетекстовим аргументом"
 
-# TODO: Capitalise first word of message?
 msgid "E904: Last argument for expr/call must be a number"
-msgstr "E904: Ð¾станній аргумент у виразі/виклику має бути числом"
+msgstr "E904: Ð\9eстанній аргумент у виразі/виклику має бути числом"
 
-# TODO: Capitalise first word of message?
 msgid "E904: Third argument for call must be a list"
-msgstr "E904: третій аргумент у виклику має бути списком"
+msgstr "E904: Третій аргумент у виклику має бути списком"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E905: Received unknown command: %s"
-msgstr "E905: Ð¾тримано невідому команду: %s"
+msgstr "E905: Ð\9eтримано невідому команду: %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: Ð\9dеправильне значення вжито як 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: Ð\9dе можна використати 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: Ð\9dекоректне завдання"
 
 #, 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: Ð\91уфер має бути завантажений: %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: Ð\9eчікується 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 that does not have a name"
 msgstr "E934: Не можна перейти до буфера, який не має назви"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E935: Invalid submatch number: %d"
-msgstr "E935: Ð½еправильний номер під-збігу: %d"
+msgstr "E935: Ð\9dеправильний номер під-збігу: %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: Ð\9dемає номера рядка, щоб використати з «<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: Ð\92становлення значення з неправильним типом у %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: Ð\91ракує назви типу властивості"
 
 # 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: Ð\9fошкоджена інформація текстової властивості"
 
 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: Ð\9dизькорівневе введення не підтримується"
 
 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: Ð\9dе можна змінювати стек міток у tagfunc"
 
 # msgstr "E177: "
-# TODO: Capitalise first word of message?
 msgid "E987: Invalid return value from tagfunc"
-msgstr "E987: Ð½екоректне значення, що повертається з tagfunc"
+msgstr "E987: Ð\9dекоректне значення, що повертається з 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: Ð\92ікно %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 Vim9 script"
 msgstr "E1270: Неможливо застосувати :s\\/sub/ у скрипті Vim9"
 
 #, c-format
-# TODO: Capitalise first word of message?
 msgid "E1271: Compiling closure without context: %s"
 msgstr "E1271: Компіляція замикання без контексту: %s"