Update runtime files
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index 96a0e4b..37b4a3d 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt* For Vim version 8.2. Last change: 2022 Jan 15
+*autocmd.txt* For Vim version 8.2. Last change: 2022 Jan 21
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1211,7 +1211,7 @@
Not triggered when |quote_| is used nor when
called recursively.
It is not allowed to change the buffer text,
- see |textlock|.
+ see |textlock|. *E1064*
{only when compiled with the +eval feature}
*User*
diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt
index 403f592..7bb48b8 100644
--- a/runtime/doc/builtin.txt
+++ b/runtime/doc/builtin.txt
@@ -1,4 +1,4 @@
-*builtin.txt* For Vim version 8.2. Last change: 2022 Jan 16
+*builtin.txt* For Vim version 8.2. Last change: 2022 Jan 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2882,7 +2882,7 @@
Preferably used as a |method|: >
mydict->get(key)
get({func}, {what})
- Get an item with from Funcref {func}. Possible values for
+ Get item {what} from Funcref {func}. Possible values for
{what} are:
"name" The function name
"func" The function
@@ -6396,8 +6396,8 @@
readdir(dirname, {n -> n =~ '.txt$'})
< To skip hidden and backup files: >
readdir(dirname, {n -> n !~ '^\.\|\~$'})
-
-< The optional {dict} argument allows for further custom
+< *E857*
+ The optional {dict} argument allows for further custom
values. Currently this is used to specify if and how sorting
should be performed. The dict can have the following members:
@@ -9498,7 +9498,6 @@
call win_execute(winid, 'set syntax=python')
< Doing the same with `setwinvar()` would not trigger
autocommands and not actually show syntax highlighting.
-
*E994*
Not all commands are allowed in popup windows.
When window {id} does not exist then no error is given and
diff --git a/runtime/doc/diff.txt b/runtime/doc/diff.txt
index e3d8f53..d72f37e 100644
--- a/runtime/doc/diff.txt
+++ b/runtime/doc/diff.txt
@@ -1,4 +1,4 @@
-*diff.txt* For Vim version 8.2. Last change: 2021 May 24
+*diff.txt* For Vim version 8.2. Last change: 2022 Jan 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -335,8 +335,9 @@
FINDING THE DIFFERENCES *diff-diffexpr*
-The 'diffexpr' option can be set to use something else than the standard
-"diff" program to compare two files and find the differences. *E959*
+The 'diffexpr' option can be set to use something else than the internal diff
+support or the standard "diff" program to compare two files and find the
+differences. *E959*
When 'diffexpr' is empty, Vim uses this command to find the differences
between file1 and file2: >
@@ -369,7 +370,7 @@
v:fname_in original file
v:fname_new new version of the same file
- v:fname_out resulting diff file
+ v:fname_out where to write the resulting diff file
Additionally, 'diffexpr' should take care of "icase" and "iwhite" in the
'diffopt' option. 'diffexpr' cannot change the value of 'lines' and
@@ -402,7 +403,9 @@
with the script ID (|local-function|). Example: >
set diffexpr=s:MyDiffExpr()
set diffexpr=<SID>SomeDiffExpr()
-<
+Otherwise, the expression is evaluated in the context of the script where the
+option was set, thus script-local items are available.
+
*E810* *E97*
Vim will do a test if the diff output looks alright. If it doesn't, you will
get an error message. Possible causes:
@@ -458,5 +461,8 @@
with the script ID (|local-function|). Example: >
set patchexpr=s:MyPatchExpr()
set patchexpr=<SID>SomePatchExpr()
-<
+Otherwise, the expression is evaluated in the context of the script where the
+option was set, thus script-local items are available.
+
+
vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index 4f217fd..00deef1 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -1,4 +1,4 @@
-*editing.txt* For Vim version 8.2. Last change: 2022 Jan 11
+*editing.txt* For Vim version 8.2. Last change: 2022 Jan 21
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -433,7 +433,7 @@
backticks must be around the whole item. It is not possible to have text
directly before the first or just after the last backtick.
- *`=*
+ *`=* *E1083*
You can have the backticks expanded as a Vim expression, instead of as an
external command, by putting an equal sign right after the first backtick,
e.g.: >
@@ -890,7 +890,7 @@
*:w* *:write*
*E502* *E503* *E504* *E505*
- *E512* *E514* *E667* *E796* *E949*
+ *E512* *E514* *E667* *E949*
:w[rite] [++opt] Write the whole buffer to the current file. This is
the normal way to save changes to a file. It fails
when the 'readonly' option is set or when there is
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 974f231..a204735 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,11 +1,11 @@
-*eval.txt* For Vim version 8.2. Last change: 2022 Jan 08
+*eval.txt* For Vim version 8.2. Last change: 2022 Jan 21
VIM REFERENCE MANUAL by Bram Moolenaar
Expression evaluation *expression* *expr* *E15* *eval*
-
+ *E1002*
Using expressions is introduced in chapter 41 of the user manual |usr_41.txt|.
Note: Expression evaluation can be disabled at compile time. If this has been
@@ -53,7 +53,7 @@
Examples: -123 0x10 0177 0o177 0b1011
Float A floating point number. |floating-point-format| *Float*
- {only when compiled with the |+float| feature}
+ {only when compiled with the |+float| feature} *E1076*
Examples: 123.456 1.15e-6 -1.1e3
String A NUL terminated string of 8-bit unsigned characters (bytes).
@@ -1030,7 +1030,7 @@
*expr-==?* *expr-!=?* *expr->?* *expr->=?*
*expr-<?* *expr-<=?* *expr-=~?* *expr-!~?*
*expr-is* *expr-isnot* *expr-is#* *expr-isnot#*
- *expr-is?* *expr-isnot?*
+ *expr-is?* *expr-isnot?* *E1072*
use 'ignorecase' match case ignore case ~
equal == ==# ==?
not equal != !=# !=?
@@ -1071,7 +1071,7 @@
Dictionary and arguments, use |get()| to get the function name: >
if get(Part1, 'name') == get(Part2, 'name')
" Part1 and Part2 refer to the same function
-
+< *E1037*
Using "is" or "isnot" with a |List|, |Dictionary| or |Blob| checks whether
the expressions are referring to the same |List|, |Dictionary| or |Blob|
instance. A copy of a |List| is different from the original |List|. When
@@ -1123,7 +1123,7 @@
"foo\nbar" =~ "\\n" evaluates to 0
-expr5 and expr6 *expr5* *expr6*
+expr5 and expr6 *expr5* *expr6* *E1036* *E1051*
---------------
expr6 + expr6 Number addition, |List| or |Blob| concatenation *expr-+*
expr6 - expr6 Number subtraction *expr--*
@@ -1182,7 +1182,7 @@
None of these work for |Funcref|s.
-".", ".." and "%" do not work for Float. *E804*
+".", ".." and "%" do not work for Float. *E804* *E1035*
expr7 *expr7*
@@ -1229,7 +1229,7 @@
Evaluation is always from left to right.
expr9[expr1] item of String or |List| *expr-[]* *E111*
- *E909* *subscript*
+ *E909* *subscript* *E1062*
In legacy Vim script:
If expr9 is a Number or String this results in a String that contains the
expr1'th single byte from expr9. expr9 is used as a String (a number is
@@ -1364,7 +1364,16 @@
(-1.234)->string()
And NOT: >
-(1.234->string())
-<
+
+What comes after "->" can be a name, a simple expression (not containing any
+parenthesis), or any expression in parenthesis: >
+ base->name(args)
+ base->some.name(args)
+ base->alist[idx](args)
+ base->(getFuncRef())(args)
+Note that in the last call the base is passed to the function resulting from
+"(getFuncRef())", inserted before "args".
+
*E274*
"->name(" must not contain white space. There can be white space before the
"->" and after the "(", thus you can split the lines like this: >
@@ -1568,7 +1577,7 @@
variable (if your shell supports it).
-internal variable *expr-variable*
+internal variable *expr-variable* *E1015*
-----------------
variable internal variable
See below |internal-variables|.
@@ -1656,7 +1665,7 @@
See also: |numbered-function|
==============================================================================
-3. Internal variable *internal-variables* *E461*
+3. Internal variable *internal-variables* *E461* *E1001*
An internal variable name can be made up of letters, digits and '_'. But it
cannot start with a digit. In legacy script it is also possible to use curly
@@ -1814,7 +1823,7 @@
PREDEFINED VIM VARIABLES *vim-variable* *v:var* *v:*
- *E963*
+ *E963* *E1063*
Some variables can be set by the user, but the type cannot be changed.
*v:argv* *argv-variable*
@@ -2830,7 +2839,7 @@
: echo div
:endif
<
- *:cal* *:call* *E107* *E117*
+ *:cal* *:call* *E107*
:[range]cal[l] {name}([arguments])
Call a function. The name of the function and its arguments
are as specified with `:function`. Up to 20 arguments can be
@@ -2874,6 +2883,12 @@
:4,8call GetDict().method()
< Here GetDict() gets the range but method() does not.
+ *E117*
+When a function cannot be found the error "E117: Unknown function" will be
+given. If the function was using an autoload path or an autoload import and
+the script is a |Vim9| script, this may also be caused by the function not
+being exported.
+
*E132*
The recursiveness of user functions is restricted with the |'maxfuncdepth'|
option.
@@ -2973,6 +2988,9 @@
other and vice versa, before the used function is defined, it won't work.
Avoid using the autoload functionality at the toplevel.
+In |Vim9| script you will get error *E1263* if you use a function name with a
+"#" character when not in an autoload script.
+
Hint: If you distribute a bunch of scripts you can pack them together with the
|vimball| utility. Also read the user manual |distribute-script|.
@@ -3059,8 +3077,8 @@
When the selected range of items is partly past the
end of the list, items will be added.
- *:let+=* *:let-=* *:letstar=*
- *:let/=* *:let%=* *:let.=* *:let..=* *E734* *E985*
+ *:let+=* *:let-=* *:letstar=* *:let/=* *:let%=*
+ *:let.=* *:let..=* *E734* *E985* *E1019*
:let {var} += {expr1} Like ":let {var} = {var} + {expr1}".
:let {var} -= {expr1} Like ":let {var} = {var} - {expr1}".
:let {var} *= {expr1} Like ":let {var} = {var} * {expr1}".
@@ -3263,7 +3281,7 @@
* Funcref
This does not work in Vim9 script. |vim9-declaration|
-:unl[et][!] {name} ... *:unlet* *:unl* *E108* *E795*
+:unl[et][!] {name} ... *:unlet* *:unl* *E108* *E795* *E1081*
Remove the internal variable {name}. Several variable
names can be given, they are all removed. The name
may also be a |List| or |Dictionary| item.
@@ -3289,7 +3307,7 @@
If the system does not support deleting an environment
variable, it is made empty.
- *:cons* *:const*
+ *:cons* *:const* *E1018*
:cons[t] {var-name} = {expr1}
:cons[t] [{name1}, {name2}, ...] = {expr1}
:cons[t] [{name}, ..., ; {lastname}] = {expr1}
@@ -3509,7 +3527,8 @@
all nested ":try"s inside the loop. The outermost
":endtry" then jumps to the command after the loop.
-:try *:try* *:endt* *:endtry* *E600* *E601* *E602*
+:try *:try* *:endt* *:endtry*
+ *E600* *E601* *E602* *E1032*
:endt[ry] Change the error handling for the commands between
":try" and ":endtry" including everything being
executed across ":source" commands, function calls,
@@ -3545,7 +3564,8 @@
try | sleep 100 | catch /^Vim:Interrupt$/ | endtry
try | edit | catch /^Vim(edit):E\d\+/ | echo "error" | endtry
<
- *:cat* *:catch* *E603* *E604* *E605*
+ *:cat* *:catch*
+ *E603* *E604* *E605* *E654* *E1033*
:cat[ch] /{pattern}/ The following commands until the next |:catch|,
|:finally|, or |:endtry| that belongs to the same
|:try| as the ":catch" are executed when an exception
@@ -3566,7 +3586,7 @@
Another character can be used instead of / around the
{pattern}, so long as it does not have a special
meaning (e.g., '|' or '"') and doesn't occur inside
- {pattern}.
+ {pattern}. *E1067*
Information about the exception is available in
|v:exception|. Also see |throw-variables|.
NOTE: It is not reliable to ":catch" the TEXT of
diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt
index 6842e1d..9a614e2 100644
--- a/runtime/doc/filetype.txt
+++ b/runtime/doc/filetype.txt
@@ -1,4 +1,4 @@
-*filetype.txt* For Vim version 8.2. Last change: 2021 Dec 30
+*filetype.txt* For Vim version 8.2. Last change: 2022 Jan 21
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -133,14 +133,15 @@
argument was used.
*filetype-overrule*
-When the same extension is used for two filetypes, Vim tries to guess what
-kind of file it is. This doesn't always work. A number of global variables
-can be used to overrule the filetype used for certain extensions:
+When the same extension is used for multiple filetypes, Vim tries to guess
+what kind of file it is. This doesn't always work. A number of global
+variables can be used to overrule the filetype used for certain extensions:
file name variable ~
*.asa g:filetype_asa |ft-aspvbs-syntax| |ft-aspperl-syntax|
*.asm g:asmsyntax |ft-asm-syntax|
*.asp g:filetype_asp |ft-aspvbs-syntax| |ft-aspperl-syntax|
+ *.bas g:filetype_bas |ft-basic-syntax|
*.fs g:filetype_fs |ft-forth-syntax|
*.i g:filetype_i |ft-progress-syntax|
*.inc g:filetype_inc
diff --git a/runtime/doc/fold.txt b/runtime/doc/fold.txt
index 9fd7f96..5bcadda 100644
--- a/runtime/doc/fold.txt
+++ b/runtime/doc/fold.txt
@@ -1,4 +1,4 @@
-*fold.txt* For Vim version 8.2. Last change: 2021 Jul 13
+*fold.txt* For Vim version 8.2. Last change: 2022 Jan 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -511,7 +511,10 @@
:endfunction
Evaluating 'foldtext' is done in the |sandbox|. The current window is set to
-the window that displays the line. Errors are ignored.
+the window that displays the line. The context is set to the script where the
+option was last set.
+
+Errors are ignored. For debugging set the 'debug' option to "throw".
The default value is |foldtext()|. This returns a reasonable text for most
types of folding. If you don't like it, you can specify your own 'foldtext'
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index 2727a4c..0135c6d 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt* For Vim version 8.2. Last change: 2022 Jan 15
+*map.txt* For Vim version 8.2. Last change: 2022 Jan 23
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1411,7 +1411,7 @@
*:command-verbose*
When 'verbose' is non-zero, listing a command will also display where it was
-last defined. Example: >
+last defined and any completion argument. Example: >
:verbose command TOhtml
< Name Args Range Complete Definition ~
@@ -1530,6 +1530,8 @@
-complete=custom,{func} custom completion, defined via {func}
-complete=customlist,{func} custom completion, defined via {func}
+If you specify completion while there is nothing to complete (-nargs=0, the
+default) then you get error *E1208* .
Note: That some completion methods might expand environment variables.
diff --git a/runtime/doc/mbyte.txt b/runtime/doc/mbyte.txt
index e5e903e..165e931 100644
--- a/runtime/doc/mbyte.txt
+++ b/runtime/doc/mbyte.txt
@@ -1,4 +1,4 @@
-*mbyte.txt* For Vim version 8.2. Last change: 2022 Jan 08
+*mbyte.txt* For Vim version 8.2. Last change: 2022 Jan 20
VIM REFERENCE MANUAL by Bram Moolenaar et al.
diff --git a/runtime/doc/message.txt b/runtime/doc/message.txt
index f174884..44ad8bc 100644
--- a/runtime/doc/message.txt
+++ b/runtime/doc/message.txt
@@ -1,4 +1,4 @@
-*message.txt* For Vim version 8.2. Last change: 2022 Jan 08
+*message.txt* For Vim version 8.2. Last change: 2022 Jan 19
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -46,13 +46,13 @@
maintainer when you spot a mistake.
If you want to find help on a specific (error) message, use the ID at the
-start of the message. For example, to get help on the message: >
+start of the message. For example, to get help on the message:
- E72: Close error on swap file
+ E72: Close error on swap file ~
-or (translated): >
+or (translated):
- E72: Errore durante chiusura swap file
+ E72: Errore durante chiusura swap file ~
Use: >
@@ -62,6 +62,8 @@
:help e72
+The number in this ID has no meaning.
+
==============================================================================
2. Error messages *error-messages* *errors*
@@ -76,117 +78,117 @@
LIST OF MESSAGES
*E222* *E228* *E232* *E293* *E298* *E304* *E317*
*E318* *E356* *E438* *E439* *E440* *E316* *E320* *E322*
- *E323* *E341* *E473* *E570* *E685* *E292* >
- Add to read buffer
- makemap: Illegal mode
- Cannot create BalloonEval with both message and callback
- Hangul automata ERROR
- block was not locked
- Didn't get block nr {N}?
- ml_upd_block0(): Didn't get block 0??
- pointer block id wrong {N}
- Updated too many blocks?
- get_varp ERROR
- u_undo: line numbers wrong
- undo list corrupt
- undo line missing
- ml_get: cannot find line {N}
- cannot find line {N}
- line number out of range: {N} past the end
- line count wrong in block {N}
- Internal error
- Internal error: {function}
- fatal error in cs_manage_matches
- Invalid count for del_bytes(): {N}
+ *E323* *E341* *E473* *E570* *E685* *E292*
+ Add to read buffer ~
+ makemap: Illegal mode ~
+ Cannot create BalloonEval with both message and callback ~
+ Hangul automata ERROR ~
+ block was not locked ~
+ Didn't get block nr {N}? ~
+ ml_upd_block0(): Didn't get block 0?? ~
+ pointer block id wrong {N} ~
+ Updated too many blocks? ~
+ get_varp ERROR ~
+ u_undo: line numbers wrong ~
+ undo list corrupt ~
+ undo line missing ~
+ ml_get: cannot find line {N} ~
+ cannot find line {N} ~
+ line number out of range: {N} past the end ~
+ line count wrong in block {N} ~
+ Internal error ~
+ Internal error: {function} ~
+ fatal error in cs_manage_matches ~
+ Invalid count for del_bytes(): {N} ~
This is an internal error. If you can reproduce it, please send in a bug
report. |bugs|
->
- ATTENTION
- Found a swap file by the name ...
+
+ ATTENTION ~
+ Found a swap file by the name ... ~
See |ATTENTION|.
- *E92* >
- Buffer {N} not found
+ *E92*
+ Buffer {N} not found ~
The buffer you requested does not exist. This can also happen when you have
wiped out a buffer which contains a mark or is referenced in another way.
|:bwipeout|
- *E95* >
- Buffer with this name already exists
+ *E95*
+ Buffer with this name already exists ~
You cannot have two buffers with exactly the same name. This includes the
path leading to the file.
- *E72* >
- Close error on swap file
+ *E72*
+ Close error on swap file ~
The |swap-file|, that is used to keep a copy of the edited text, could not be
closed properly. Mostly harmless.
- *E169* >
- Command too recursive
+ *E169*
+ Command too recursive ~
This happens when an Ex command executes an Ex command that executes an Ex
command, etc. The limit is 200 or the value of 'maxfuncdepth', whatever is
larger. When it's more there probably is an endless loop. Probably a
|:execute| or |:source| command is involved.
- *E254* >
- Cannot allocate color {name}
+ *E254*
+ Cannot allocate color {name} ~
The color name {name} is unknown. See |gui-colors| for a list of colors that
are available on most systems.
- *E1244* >
- Bad color string: {str}
+ *E1244*
+ Bad color string: {str} ~
The provided color did not conform to the pattern #rrggbb
- *E458* >
- Cannot allocate colormap entry, some colors may be incorrect
+ *E458*
+ Cannot allocate colormap entry, some colors may be incorrect ~
This means that there are not enough colors available for Vim. It will still
run, but some of the colors will not appear in the specified color. Try
stopping other applications that use many colors, or start them after starting
gvim.
Browsers are known to consume a lot of colors. You can avoid this with
-netscape by telling it to use its own colormap: >
- netscape -install
-Or tell it to limit to a certain number of colors (64 should work well): >
- netscape -ncols 64
-This can also be done with a line in your Xdefaults file: >
- Netscape*installColormap: Yes
-or >
- Netscape*maxImageColors: 64
-<
- *E79* >
- Cannot expand wildcards
+netscape by telling it to use its own colormap:
+ netscape -install ~
+Or tell it to limit to a certain number of colors (64 should work well):
+ netscape -ncols 64 ~
+This can also be done with a line in your Xdefaults file:
+ Netscape*installColormap: Yes ~
+or
+ Netscape*maxImageColors: 64 ~
+
+ *E79*
+ Cannot expand wildcards ~
A filename contains a strange combination of characters, which causes Vim to
attempt expanding wildcards but this fails. This does NOT mean that no
matching file names could be found, but that the pattern was illegal.
- *E459* >
- Cannot go back to previous directory
+ *E459*
+ Cannot go back to previous directory ~
While expanding a file name, Vim failed to go back to the previously used
directory. All file names being used may be invalid now! You need to have
execute permission on the current directory.
- *E190* *E212* >
- Cannot open "{filename}" for writing
- Can't open file for writing
+ *E190* *E212*
+ Cannot open "{filename}" for writing ~
+ Can't open file for writing ~
For some reason the file you are writing to cannot be created or overwritten.
The reason could be that you do not have permission to write in the directory
or the file name is not valid.
- *E166* >
- Can't open linked file for writing
+ *E166*
+ Can't open linked file for writing ~
You are trying to write to a file which can't be overwritten, and the file is
a link (either a hard link or a symbolic link). Writing might still be
@@ -197,20 +199,20 @@
manually delete the link or the file, or change the permissions so that Vim
can overwrite.
- *E46* >
- Cannot change read-only variable "{name}"
+ *E46*
+ Cannot change read-only variable "{name}" ~
You are trying to assign a value to an argument of a function |a:var| or a Vim
internal variable |v:var| which is read-only.
- *E90* >
- Cannot unload last buffer
+ *E90*
+ Cannot unload last buffer ~
Vim always requires one buffer to be loaded, otherwise there would be nothing
to display in the window.
- *E40* >
- Can't open errorfile <filename>
+ *E40*
+ Can't open errorfile <filename> ~
When using the ":make" or ":grep" commands: The file used to save the error
messages or grep output cannot be opened. This can have several causes:
@@ -222,8 +224,8 @@
- The 'grepprg' or 'makeprg' could not be executed. This cannot always be
detected (especially on MS-Windows). Check your $PATH.
- >
- Can't open file C:\TEMP\VIoD243.TMP
+
+ Can't open file C:\TEMP\VIoD243.TMP ~
On MS-Windows, this message appears when the output of an external command was
to be read, but the command didn't run successfully. This can be caused by
@@ -231,21 +233,21 @@
related options. It might also be that the external command was not found,
there is no different error message for that.
- *E12* >
- Command not allowed from exrc/vimrc in current dir or tag search
+ *E12*
+ Command not allowed from exrc/vimrc in current dir or tag search ~
Some commands are not allowed for security reasons. These commands mostly
come from a .exrc or .vimrc file in the current directory, or from a tags
file. Also see 'secure'.
- *E74* >
- Command too complex
+ *E74*
+ Command too complex ~
A mapping resulted in a very long command string. Could be caused by a
mapping that indirectly calls itself.
->
- CONVERSION ERROR
+
+ CONVERSION ERROR ~
When writing a file and the text "CONVERSION ERROR" appears, this means that
some bits were lost when converting text from the internally used UTF-8 to the
@@ -257,51 +259,51 @@
be deleted, so you can move it back into place if you want to discard the
changes.
- *E302* >
- Could not rename swap file
+ *E302*
+ Could not rename swap file ~
When the file name changes, Vim tries to rename the |swap-file| as well.
This failed and the old swap file is now still used. Mostly harmless.
- *E43* *E44* >
- Damaged match string
- Corrupted regexp program
+ *E43* *E44*
+ Damaged match string ~
+ Corrupted regexp program ~
Something inside Vim went wrong and resulted in a corrupted regexp. If you
know how to reproduce this problem, please report it. |bugs|
- *E208* *E209* *E210* >
- Error writing to "{filename}"
- Error closing "{filename}"
- Error reading "{filename}"
+ *E208* *E209* *E210*
+ Error writing to "{filename}" ~
+ Error closing "{filename}" ~
+ Error reading "{filename}" ~
This occurs when Vim is trying to rename a file, but a simple change of file
name doesn't work. Then the file will be copied, but somehow this failed.
The result may be that both the original file and the destination file exist
and the destination file may be incomplete.
->
- Vim: Error reading input, exiting...
+
+ Vim: Error reading input, exiting... ~
This occurs when Vim cannot read typed characters while input is required.
Vim got stuck, the only thing it can do is exit. This can happen when both
stdin and stderr are redirected and executing a script that doesn't exit Vim.
- *E47* >
- Error while reading errorfile
+ *E47*
+ Error while reading errorfile ~
Reading the error file was not possible. This is NOT caused by an error
message that was not recognized.
- *E80* >
- Error while writing
+ *E80*
+ Error while writing ~
Writing a file was not completed successfully. The file is probably
incomplete.
- *E13* *E189* >
- File exists (add ! to override)
- "{filename}" exists (add ! to override)
+ *E13* *E189*
+ File exists (add ! to override) ~
+ "{filename}" exists (add ! to override) ~
You are protected from accidentally overwriting a file. When you want to
write anyway, use the same command, but add a "!" just after the command.
@@ -310,8 +312,8 @@
changes to: >
:w! /tmp/test
<
- *E768* >
- Swap file exists: {filename} (:silent! overrides)
+ *E768*
+ Swap file exists: {filename} (:silent! overrides) ~
You are protected from overwriting a file that is being edited by Vim. This
happens when you use ":w! filename" and a swapfile is found.
@@ -323,115 +325,115 @@
< The special command is needed, since you already added the ! for overwriting
an existing file.
- *E139* >
- File is loaded in another buffer
+ *E139*
+ File is loaded in another buffer ~
You are trying to write a file under a name which is also used in another
buffer. This would result in two versions of the same file.
- *E142* >
- File not written: Writing is disabled by 'write' option
+ *E142*
+ File not written: Writing is disabled by 'write' option ~
The 'write' option is off. This makes all commands that try to write a file
generate this message. This could be caused by a |-m| commandline argument.
You can switch the 'write' option on with ":set write".
- *E25* >
- GUI cannot be used: Not enabled at compile time
+ *E25*
+ GUI cannot be used: Not enabled at compile time ~
You are running a version of Vim that doesn't include the GUI code. Therefore
"gvim" and ":gui" don't work.
- *E49* >
- Invalid scroll size
+ *E49*
+ Invalid scroll size ~
This is caused by setting an invalid value for the 'scroll', 'scrolljump' or
'scrolloff' options.
- *E17* >
- "{filename}" is a directory
+ *E17*
+ "{filename}" is a directory ~
You tried to write a file with the name of a directory. This is not possible.
You probably need to append a file name.
- *E19* >
- Mark has invalid line number
+ *E19*
+ Mark has invalid line number ~
You are using a mark that has a line number that doesn't exist. This can
happen when you have a mark in another file, and some other program has
deleted lines from it.
- *E219* *E220* >
- Missing {.
- Missing }.
+ *E219* *E220*
+ Missing {. ~
+ Missing }. ~
Using a {} construct in a file name, but there is a { without a matching } or
the other way around. It should be used like this: {foo,bar}. This matches
"foo" and "bar".
- *E315* >
- ml_get: invalid lnum: {number}
+ *E315*
+ ml_get: invalid lnum: {number} ~
This is an internal Vim error. Please try to find out how it can be
reproduced, and submit a bug report |bugreport.vim|.
- *E173* >
- {number} more files to edit
+ *E173*
+ {number} more files to edit ~
You are trying to exit, while the last item in the argument list has not been
edited. This protects you from accidentally exiting when you still have more
files to work on. See |argument-list|. If you do want to exit, just do it
again and it will work.
- *E23* *E194* >
- No alternate file
- No alternate file name to substitute for '#'
+ *E23* *E194*
+ No alternate file ~
+ No alternate file name to substitute for '#' ~
The alternate file is not defined yet. See |alternate-file|.
- *E32* >
- No file name
+ *E32*
+ No file name ~
The current buffer has no name. To write it, use ":w fname". Or give the
buffer a name with ":file fname".
- *E141* >
- No file name for buffer {number}
+ *E141*
+ No file name for buffer {number} ~
One of the buffers that was changed does not have a file name. Therefore it
cannot be written. You need to give the buffer a file name: >
:buffer {number}
:file {filename}
<
- *E33* >
- No previous substitute regular expression
+ *E33*
+ No previous substitute regular expression ~
When using the '~' character in a pattern, it is replaced with the previously
used pattern in a ":substitute" command. This fails when no such command has
been used yet. See |/~|. This also happens when using ":s/pat/%/", where the
"%" stands for the previous substitute string.
- *E35* >
- No previous regular expression
+ *E35*
+ No previous regular expression ~
When using an empty search pattern, the previous search pattern is used. But
that is not possible if there was no previous search.
- *E24* >
- No such abbreviation
+ *E24*
+ No such abbreviation ~
You have used an ":unabbreviate" command with an argument which is not an
existing abbreviation. All variations of this command give the same message:
":cunabbrev", ":iunabbrev", etc. Check for trailing white space.
->
- /dev/dsp: No such file or directory
+
+ /dev/dsp: No such file or directory ~
Only given for GTK GUI with Gnome support. Gnome tries to use the audio
device and it isn't present. You can ignore this error.
- *E31* >
- No such mapping
+ *E31*
+ No such mapping ~
You have used an ":unmap" command with an argument which is not an existing
mapping. All variations of this command give the same message: ":cunmap",
@@ -440,9 +442,9 @@
- If the mapping is buffer-local you need to use ":unmap <buffer>".
|:map-<buffer>|
- *E37* *E89* >
- No write since last change (add ! to override)
- No write since last change for buffer {N} (add ! to override)
+ *E37* *E89*
+ No write since last change (add ! to override) ~
+ No write since last change for buffer {N} (add ! to override) ~
You are trying to |abandon| a file that has changes. Vim protects you from
losing your work. You can either write the changed file with ":w", or, if you
@@ -452,8 +454,8 @@
changes to: >
:e! other_file
<
- *E162* >
- No write since last change for buffer "{name}"
+ *E162*
+ No write since last change for buffer "{name}" ~
This appears when you try to exit Vim while some buffers are changed. You
will either have to write the changed buffer (with |:w|), or use a command to
@@ -461,23 +463,23 @@
don't throw away changes you really want to keep. You might have forgotten
about a buffer, especially when 'hidden' is set.
->
- [No write since last change]
+
+ [No write since last change] ~
This appears when executing a shell command while at least one buffer was
changed. To avoid the message reset the 'warn' option.
- *E38* >
- Null argument
+ *E38*
+ Null argument ~
Something inside Vim went wrong and resulted in a NULL pointer. If you know
how to reproduce this problem, please report it. |bugs|
- *E41* *E82* *E83* *E342* >
- Out of memory!
- Out of memory! (allocating {number} bytes)
- Cannot allocate any buffer, exiting...
- Cannot allocate buffer, using other one...
+ *E41* *E82* *E83* *E342*
+ Out of memory! ~
+ Out of memory! (allocating {number} bytes) ~
+ Cannot allocate any buffer, exiting... ~
+ Cannot allocate buffer, using other one... ~
Oh, oh. You must have been doing something complicated, or some other program
is consuming your memory. Be careful! Vim is not completely prepared for an
@@ -495,16 +497,16 @@
helps for a change that affects all lines.
- 'undoreload' Set to zero to disable.
- *E339* >
- Pattern too long
+ *E339*
+ Pattern too long ~
This happens on systems with 16 bit ints: The compiled regexp pattern is
longer than about 65000 characters. Try using a shorter pattern.
It also happens when the offset of a rule doesn't fit in the space available.
Try simplifying the pattern.
- *E45* >
- 'readonly' option is set (add ! to override)
+ *E45*
+ 'readonly' option is set (add ! to override) ~
You are trying to write a file that was marked as read-only. To write the
file anyway, either reset the 'readonly' option, or add a '!' character just
@@ -513,18 +515,18 @@
changes to: >
:w!
<
- *E294* *E295* *E301* >
- Read error in swap file
- Seek error in swap file read
- Oops, lost the swap file!!!
+ *E294* *E295* *E301*
+ Read error in swap file ~
+ Seek error in swap file read ~
+ Oops, lost the swap file!!! ~
Vim tried to read text from the |swap-file|, but something went wrong. The
text in the related buffer may now be corrupted! Check carefully before you
write a buffer. You may want to write it in another file and check for
differences.
- *E192* >
- Recursive use of :normal too deep
+ *E192*
+ Recursive use of :normal too deep ~
You are using a ":normal" command, whose argument again uses a ":normal"
command in a recursive way. This is restricted to 'maxmapdepth' levels. This
@@ -532,16 +534,16 @@
:map gq :normal gq<CR>
If you type "gq", it will execute this mapping, which will call "gq" again.
- *E22* >
- Scripts nested too deep
+ *E22*
+ Scripts nested too deep ~
Scripts can be read with the "-s" command-line argument and with the
`:source!` command. The script can then again read another script. This can
continue for about 14 levels. When more nesting is done, Vim assumes that
there is a recursive loop and stops with this error message.
- *E319* >
- Sorry, the command is not available in this version
+ *E319*
+ Sorry, the command is not available in this version ~
You have used a command that is not present in the version of Vim you are
using. When compiling Vim, many different features can be enabled or
@@ -549,8 +551,8 @@
system. See |+feature-list| for when which feature is available. The
|:version| command shows which feature Vim was compiled with.
- *E300* >
- Swap file already exists (symlink attack?)
+ *E300*
+ Swap file already exists (symlink attack?) ~
This message appears when Vim is trying to open a swap file and finds it
already exists or finds a symbolic link in its place. This shouldn't happen,
@@ -559,8 +561,8 @@
attempting a symlink attack (could happen when editing a file in /tmp or when
'directory' starts with "/tmp", which is a bad choice).
- *E432* >
- Tags file not sorted: {file name}
+ *E432*
+ Tags file not sorted: {file name} ~
Vim (and Vi) expect tags files to be sorted in ASCII order. Binary searching
can then be used, which is a lot faster than a linear search. If your tags
@@ -569,21 +571,21 @@
tag. Sometimes this message is not given, even though the tags file is not
properly sorted.
- *E424* >
- Too many different highlighting attributes in use
+ *E424*
+ Too many different highlighting attributes in use ~
Vim can only handle about 223 different kinds of highlighting. If you run
into this limit, you have used too many |:highlight| commands with different
arguments. A ":highlight link" is not counted.
- *E77* >
- Too many file names
+ *E77*
+ Too many file names ~
When expanding file names, more than one match was found. Only one match is
allowed for the command that was used.
- *E303* >
- Unable to open swap file for "{filename}", recovery impossible
+ *E303*
+ Unable to open swap file for "{filename}", recovery impossible ~
Vim was not able to create a swap file. You can still edit the file, but if
Vim unexpectedly exits the changes will be lost. And Vim may consume a lot of
@@ -591,25 +593,25 @@
to avoid this error. This error is not given when 'directory' is empty. See
|swap-file|.
- *E140* >
- Use ! to write partial buffer
+ *E140*
+ Use ! to write partial buffer ~
When using a range to write part of a buffer, it is unusual to overwrite the
original file. It is probably a mistake (e.g., when Visual mode was active
when using ":w"), therefore Vim requires using a ! after the command, e.g.:
":3,10w!".
->
- Warning: Cannot convert string "<Key>Escape,_Key_Cancel" to type
- VirtualBinding
+
+ Warning: Cannot convert string "<Key>Escape,_Key_Cancel" to type ~
+ VirtualBinding ~
Messages like this appear when starting up. This is not a Vim problem, your
X11 configuration is wrong. You can find a hint on how to solve this here:
http://groups.yahoo.com/group/solarisonintel/message/12179.
[this URL is no longer valid]
- *W10* >
- Warning: Changing a readonly file
+ *W10*
+ Warning: Changing a readonly file ~
The file is read-only and you are making a change to it anyway. You can use
the |FileChangedRO| autocommand event to avoid this message (the autocommand
@@ -617,15 +619,15 @@
making changes to a file.
This message is only given for the first change after 'readonly' has been set.
- *W13* >
- Warning: File "{filename}" has been created after editing started
+ *W13*
+ Warning: File "{filename}" has been created after editing started ~
You are editing a file in Vim when it didn't exist, but it does exist now.
You will have to decide if you want to keep the version in Vim or the newly
created file. This message is not given when 'buftype' is not empty.
- *W11* >
- Warning: File "{filename}" has changed since editing started
+ *W11*
+ Warning: File "{filename}" has changed since editing started ~
The file which you have started editing has got another timestamp and the
contents changed (more precisely: When reading the file again with the current
@@ -648,15 +650,15 @@
If you get W11 all the time, you may need to disable "Acronis Active
Protection" or register Vim as a trusted service/application.
- *W12* >
- Warning: File "{filename}" has changed and the buffer was changed in Vim as well
+ *W12*
+ Warning: File "{filename}" has changed and the buffer was changed in Vim as well ~
Like the above, and the buffer for the file was changed in this Vim as well.
You will have to decide if you want to keep the version in this Vim or the one
on disk. This message is not given when 'buftype' is not empty.
- *W16* >
- Warning: Mode of file "{filename}" has changed since editing started
+ *W16*
+ Warning: Mode of file "{filename}" has changed since editing started ~
When the timestamp for a buffer was changed and the contents are still the
same but the mode (permissions) have changed. This usually occurs when
@@ -664,37 +666,37 @@
bit to be reset. It should be safe to reload the file. Set 'autoread' to
automatically reload the file.
- *E211* >
- File "{filename}" no longer available
+ *E211*
+ File "{filename}" no longer available ~
The file which you have started editing has disappeared, or is no longer
accessible. Make sure you write the buffer somewhere to avoid losing
changes. This message is not given when 'buftype' is not empty.
- *W14* >
- Warning: List of file names overflow
+ *W14*
+ Warning: List of file names overflow ~
You must be using an awful lot of buffers. It's now possible that two buffers
have the same number, which causes various problems. You might want to exit
Vim and restart it.
- *E931* >
- Buffer cannot be registered
+ *E931*
+ Buffer cannot be registered ~
Out of memory or a duplicate buffer number. May happen after W14. Looking up
a buffer will not always work, better restart Vim.
- *E296* *E297* >
- Seek error in swap file write
- Write error in swap file
+ *E296* *E297*
+ Seek error in swap file write ~
+ Write error in swap file ~
This mostly happens when the disk is full. Vim could not write text into the
|swap-file|. It's not directly harmful, but when Vim unexpectedly exits some
text may be lost without recovery being possible. Vim might run out of memory
when this problem persists.
- *connection-refused* >
- Xlib: connection to "<machine-name:0.0" refused by server
+ *connection-refused*
+ Xlib: connection to "<machine-name:0.0" refused by server ~
This happens when Vim tries to connect to the X server, but the X server does
not allow a connection. The connection to the X server is needed to be able
@@ -702,55 +704,55 @@
error message cannot be avoided, except by disabling the |+xterm_clipboard|
and |+X11| features.
- *E10* >
- \\ should be followed by /, ? or &
+ *E10*
+ \\ should be followed by /, ? or & ~
A command line started with a backslash or the range of a command contained a
backslash in a wrong place. This is often caused by command-line continuation
being disabled. Remove the 'C' flag from the 'cpoptions' option to enable it.
Or use ":set nocp".
- *E471* >
- Argument required
+ *E471*
+ Argument required ~
This happens when an Ex command with mandatory argument(s) was executed, but
no argument has been specified.
- *E474* *E475* *E983* >
- Invalid argument
- Invalid argument: {arg}
- Duplicate argument: {arg}
+ *E474* *E475* *E983*
+ Invalid argument ~
+ Invalid argument: {arg} ~
+ Duplicate argument: {arg} ~
An Ex command or function has been executed, but an invalid argument has been
specified.
- *E488* >
- Trailing characters
+ *E488*
+ Trailing characters ~
An argument has been added to an Ex command that does not permit one.
Or the argument has invalid characters and has not been recognized.
- *E477* *E478* >
- No ! allowed
- Don't panic!
+ *E477* *E478*
+ No ! allowed ~
+ Don't panic! ~
You have added a "!" after an Ex command that doesn't permit one.
- *E481* >
- No range allowed
+ *E481*
+ No range allowed ~
A range was specified for an Ex command that doesn't permit one. See
|cmdline-ranges|.
- *E482* *E483* >
- Can't create file {filename}
- Can't get temp file name
+ *E482* *E483*
+ Can't create file {filename} ~
+ Can't get temp file name ~
Vim cannot create a temporary file.
- *E484* *E485* >
- Can't open file {filename}
- Can't read file {filename}
+ *E484* *E485*
+ Can't open file {filename} ~
+ Can't read file {filename} ~
Vim cannot read a temporary file. Especially on Windows, this can be caused
by wrong escaping of special characters for cmd.exe; the approach was
@@ -758,8 +760,8 @@
given to |system()|, or explicitly add escaping with ^. Also see
'shellxquote' and 'shellxescape'.
- *E464* >
- Ambiguous use of user-defined command
+ *E464*
+ Ambiguous use of user-defined command ~
There are two user-defined commands with a common name prefix, and you used
Command-line completion to execute one of them. |user-cmd-ambiguous|
@@ -768,23 +770,22 @@
:command MyCommand2 echo "two"
:MyCommand
<
- *E492* >
- Not an editor command
+ *E492*
+ Not an editor command ~
You tried to execute a command that is neither an Ex command nor
a user-defined command.
- *E943* >
- Command table needs to be updated, run 'make cmdidxs'
+ *E943*
+ Command table needs to be updated, run 'make cmdidxs' ~
This can only happen when changing the source code, when adding a command in
src/ex_cmds.h. The lookup table then needs to be updated, by running: >
make cmdidxs
<
- *E928* *E889* *E839* >
- E928: String required
- E889: Number required
- E839: Bool required
+ *E928* *E889*
+ E928: String required ~
+ E889: Number required ~
These happen when a value or expression is used that does not have the
expected type.
@@ -841,9 +842,9 @@
group.
- *more-prompt* *pager* >
- -- More --
- -- More -- SPACE/d/j: screen/page/line down, b/u/k: up, q: quit
+ *more-prompt* *pager*
+ -- More -- ~
+ -- More -- SPACE/d/j: screen/page/line down, b/u/k: up, q: quit ~
This message is given when the screen is filled with messages. It is only
given when the 'more' option is on. It is highlighted with the |hl-MoreMsg|
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 65ed54f..55e3cf8 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt* For Vim version 8.2. Last change: 2022 Jan 02
+*options.txt* For Vim version 8.2. Last change: 2022 Jan 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -170,7 +170,7 @@
value will result in an error: >
:set t_kb=
:set t_kb
- E846: Key code not set: t_kb
+< E846: Key code not set: t_kb ~
The t_xx options cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@@ -1229,7 +1229,9 @@
the script ID (|local-function|). Example: >
set bexpr=s:MyBalloonExpr()
set bexpr=<SID>SomeBalloonExpr()
-<
+< Otherwise, the expression is evaluated in the context of the script
+ where the option was set, thus script-local items are available.
+
The expression will be evaluated in the |sandbox| when set from a
modeline, see |sandbox-option|.
This option cannot be set in a modeline when 'modelineexpr' is off.
@@ -3439,7 +3441,9 @@
{not available when compiled without the |+folding|
or |+eval| features}
The expression used for when 'foldmethod' is "expr". It is evaluated
- for each line to obtain its fold level. See |fold-expr|.
+ for each line to obtain its fold level. The context is set to the
+ script where 'foldexpr' was set, script-local items can be accessed.
+ See |fold-expr| for the usage.
The expression will be evaluated in the |sandbox| if set from a
modeline, see |sandbox-option|.
@@ -3573,7 +3577,9 @@
{not available when compiled without the |+folding|
feature}
An expression which is used to specify the text displayed for a closed
- fold. See |fold-foldtext|.
+ fold. The context is set to the script where 'foldexpr' was set,
+ script-local items can be accessed. See |fold-foldtext| for the
+ usage.
The expression will be evaluated in the |sandbox| if set from a
modeline, see |sandbox-option|.
@@ -3616,7 +3622,9 @@
the script ID (|local-function|). Example: >
set formatexpr=s:MyFormatExpr()
set formatexpr=<SID>SomeFormatExpr()
-<
+< Otherwise, the expression is evaluated in the context of the script
+ where the option was set, thus script-local items are available.
+
The expression will be evaluated in the |sandbox| when set from a
modeline, see |sandbox-option|. That stops the option from working,
since changing the buffer text is not allowed.
@@ -4463,7 +4471,9 @@
the script ID (|local-function|). Example: >
set includeexpr=s:MyIncludeExpr(v:fname)
set includeexpr=<SID>SomeIncludeExpr(v:fname)
-<
+< Otherwise, the expression is evaluated in the context of the script
+ where the option was set, thus script-local items are available.
+
The expression will be evaluated in the |sandbox| when set from a
modeline, see |sandbox-option|.
This option cannot be set in a modeline when 'modelineexpr' is off.
@@ -4537,11 +4547,14 @@
The expression is evaluated with |v:lnum| set to the line number for
which the indent is to be computed. The cursor is also in this line
when the expression is evaluated (but it may be moved around).
+
If the expression starts with s: or |<SID>|, then it is replaced with
the script ID (|local-function|). Example: >
set indentexpr=s:MyIndentExpr()
set indentexpr=<SID>SomeIndentExpr()
-<
+< Otherwise, the expression is evaluated in the context of the script
+ where the option was set, thus script-local items are available.
+
The expression must return the number of spaces worth of indent. It
can return "-1" to keep the current indent (this means 'autoindent' is
used for the indent).
@@ -5685,7 +5698,7 @@
*'opendevice'* *'odev'* *'noopendevice'* *'noodev'*
'opendevice' 'odev' boolean (default off)
global
- {only for MS-Windows}
+ {only for MS-Windows} *E796*
Enable reading and writing from devices. This may get Vim stuck on a
device that can be opened but doesn't actually do the I/O. Therefore
it is off by default.
diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt
index 9a82ba4..ce88a10 100644
--- a/runtime/doc/repeat.txt
+++ b/runtime/doc/repeat.txt
@@ -1,4 +1,4 @@
-*repeat.txt* For Vim version 8.2. Last change: 2022 Jan 09
+*repeat.txt* For Vim version 8.2. Last change: 2022 Jan 21
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -354,7 +354,7 @@
<
:scriptv[ersion] {version} *:scriptv* *:scriptversion*
- *E999* *E984*
+ *E999* *E984* *E1040*
Specify the version of Vim for the lines that follow
in the same file. Only applies at the toplevel of
sourced scripts, not inside functions.
@@ -367,8 +367,8 @@
:vim9s[cript] [noclear] *:vim9s* *:vim9script*
Marks a script file as containing |Vim9-script|
- commands. Also see |vim9-namespace|.
- Must be the first command in the file.
+ commands. Also see |vim9-namespace|. *E1038*
+ Must be the first command in the file. *E1039*
For [noclear] see |vim9-reload|.
Without the |+eval| feature this changes the syntax
for some commands.
diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt
index edd3fa8..f56baf6 100644
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -1,4 +1,4 @@
-*starting.txt* For Vim version 8.2. Last change: 2022 Jan 03
+*starting.txt* For Vim version 8.2. Last change: 2022 Jan 20
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -268,8 +268,8 @@
started if possible.
*-e*
--e Start Vim in Ex mode |Q|. Only makes a difference when the
- executable is not called "ex".
+-e Start Vim in Ex mode, see |Ex-mode|. Only makes a difference
+ when the executable is not called "ex".
*-E*
-E Start Vim in improved Ex mode |gQ|. Only makes a difference
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 737e063..6b114a7 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -956,12 +956,16 @@
BASIC *basic.vim* *vb.vim* *ft-basic-syntax* *ft-vb-syntax*
-Both Visual Basic and "normal" basic use the extension ".bas". To detect
+Both Visual Basic and "normal" BASIC use the extension ".bas". To detect
which one should be used, Vim checks for the string "VB_Name" in the first
five lines of the file. If it is not found, filetype will be "basic",
otherwise "vb". Files with the ".frm" extension will always be seen as Visual
Basic.
+If the automatic detection doesn't work for you or you only edit, for
+example, FreeBASIC files, use this in your startup vimrc: >
+ :let filetype_bas = "freebasic"
+
C *c.vim* *ft-c-syntax*
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 8914fc2..835f7a7 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -2569,6 +2569,7 @@
:imenu gui.txt /*:imenu*
:imp vim9.txt /*:imp*
:import vim9.txt /*:import*
+:import-as vim9.txt /*:import-as*
:import-cycle vim9.txt /*:import-cycle*
:in insert.txt /*:in*
:index index.txt /*:index*
@@ -3950,17 +3951,88 @@
E motion.txt /*E*
E10 message.txt /*E10*
E100 diff.txt /*E100*
+E1001 eval.txt /*E1001*
+E1002 eval.txt /*E1002*
+E1003 vim9.txt /*E1003*
+E1004 vim9.txt /*E1004*
+E1005 vim9.txt /*E1005*
+E1006 vim9.txt /*E1006*
+E1007 vim9.txt /*E1007*
+E1008 vim9.txt /*E1008*
+E1009 vim9.txt /*E1009*
E101 diff.txt /*E101*
+E1010 vim9.txt /*E1010*
+E1011 vim9.txt /*E1011*
+E1012 vim9.txt /*E1012*
+E1013 vim9.txt /*E1013*
+E1014 vim9.txt /*E1014*
+E1015 eval.txt /*E1015*
+E1016 vim9.txt /*E1016*
+E1017 vim9.txt /*E1017*
+E1018 eval.txt /*E1018*
+E1019 eval.txt /*E1019*
E102 diff.txt /*E102*
+E1020 vim9.txt /*E1020*
+E1021 vim9.txt /*E1021*
+E1022 vim9.txt /*E1022*
E1023 vim9.txt /*E1023*
E1024 vim9.txt /*E1024*
+E1025 vim9.txt /*E1025*
+E1026 vim9.txt /*E1026*
+E1027 vim9.txt /*E1027*
+E1028 vim9.txt /*E1028*
+E1029 vim9.txt /*E1029*
E103 diff.txt /*E103*
+E1030 vim9.txt /*E1030*
+E1031 vim9.txt /*E1031*
+E1032 eval.txt /*E1032*
+E1033 eval.txt /*E1033*
+E1034 vim9.txt /*E1034*
+E1035 eval.txt /*E1035*
+E1036 eval.txt /*E1036*
+E1037 eval.txt /*E1037*
+E1038 repeat.txt /*E1038*
+E1039 repeat.txt /*E1039*
E104 digraph.txt /*E104*
+E1040 repeat.txt /*E1040*
+E1041 vim9.txt /*E1041*
E1042 vim9.txt /*E1042*
+E1043 vim9.txt /*E1043*
+E1044 vim9.txt /*E1044*
+E1047 vim9.txt /*E1047*
+E1048 vim9.txt /*E1048*
+E1049 vim9.txt /*E1049*
E105 mbyte.txt /*E105*
E1050 vim9.txt /*E1050*
+E1051 eval.txt /*E1051*
+E1052 vim9.txt /*E1052*
+E1053 vim9.txt /*E1053*
+E1054 vim9.txt /*E1054*
+E1055 vim9.txt /*E1055*
+E1056 vim9.txt /*E1056*
+E1057 vim9.txt /*E1057*
+E1058 vim9.txt /*E1058*
+E1059 vim9.txt /*E1059*
+E1060 vim9.txt /*E1060*
+E1061 vim9.txt /*E1061*
+E1062 eval.txt /*E1062*
+E1063 eval.txt /*E1063*
+E1064 autocmd.txt /*E1064*
+E1066 vim9.txt /*E1066*
+E1067 eval.txt /*E1067*
+E1068 vim9.txt /*E1068*
+E1069 vim9.txt /*E1069*
E107 eval.txt /*E107*
+E1071 vim9.txt /*E1071*
+E1072 eval.txt /*E1072*
+E1073 vim9.txt /*E1073*
+E1074 vim9.txt /*E1074*
+E1075 vim9.txt /*E1075*
+E1076 eval.txt /*E1076*
+E1077 vim9.txt /*E1077*
E108 eval.txt /*E108*
+E1081 eval.txt /*E1081*
+E1083 editing.txt /*E1083*
E109 eval.txt /*E109*
E1091 vim9.txt /*E1091*
E1094 vim9.txt /*E1094*
@@ -3997,6 +4069,7 @@
E1200 options.txt /*E1200*
E1201 options.txt /*E1201*
E1205 builtin.txt /*E1205*
+E1208 map.txt /*E1208*
E121 eval.txt /*E121*
E1214 builtin.txt /*E1214*
E122 eval.txt /*E122*
@@ -4013,6 +4086,7 @@
E125 eval.txt /*E125*
E1255 map.txt /*E1255*
E126 eval.txt /*E126*
+E1263 eval.txt /*E1263*
E127 eval.txt /*E127*
E128 eval.txt /*E128*
E129 eval.txt /*E129*
@@ -4576,6 +4650,7 @@
E650 netbeans.txt /*E650*
E651 netbeans.txt /*E651*
E652 netbeans.txt /*E652*
+E654 eval.txt /*E654*
E655 builtin.txt /*E655*
E656 netbeans.txt /*E656*
E657 netbeans.txt /*E657*
@@ -4729,7 +4804,7 @@
E793 diff.txt /*E793*
E794 eval.txt /*E794*
E795 eval.txt /*E795*
-E796 editing.txt /*E796*
+E796 options.txt /*E796*
E797 spell.txt /*E797*
E798 builtin.txt /*E798*
E799 builtin.txt /*E799*
@@ -4776,7 +4851,6 @@
E836 if_pyth.txt /*E836*
E837 if_pyth.txt /*E837*
E838 netbeans.txt /*E838*
-E839 message.txt /*E839*
E84 windows.txt /*E84*
E840 insert.txt /*E840*
E841 map.txt /*E841*
@@ -4795,6 +4869,8 @@
E853 eval.txt /*E853*
E854 options.txt /*E854*
E855 autocmd.txt /*E855*
+E856 testing.txt /*E856*
+E857 builtin.txt /*E857*
E858 builtin.txt /*E858*
E859 builtin.txt /*E859*
E86 windows.txt /*E86*
@@ -10097,6 +10173,7 @@
v_CTRL-G visual.txt /*v_CTRL-G*
v_CTRL-H change.txt /*v_CTRL-H*
v_CTRL-O visual.txt /*v_CTRL-O*
+v_CTRL-R visual.txt /*v_CTRL-R*
v_CTRL-V visual.txt /*v_CTRL-V*
v_CTRL-X change.txt /*v_CTRL-X*
v_CTRL-Z starting.txt /*v_CTRL-Z*
diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt
index 8e751d1..4b6a6a2 100644
--- a/runtime/doc/terminal.txt
+++ b/runtime/doc/terminal.txt
@@ -1,4 +1,4 @@
-*terminal.txt* For Vim version 8.2. Last change: 2021 Dec 21
+*terminal.txt* For Vim version 8.2. Last change: 2022 Jan 21
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1178,7 +1178,7 @@
program window A terminal window for the executed program. When "run" is
used in gdb the program I/O will happen in this window, so
that it does not interfere with controlling gdb. The buffer
- name is "gdb program".
+ name is "debugged program".
The current window is used to show the source code. When gdb pauses the
source file location will be displayed, if possible. A sign is used to
diff --git a/runtime/doc/testing.txt b/runtime/doc/testing.txt
index 2811568..fb43fbc 100644
--- a/runtime/doc/testing.txt
+++ b/runtime/doc/testing.txt
@@ -1,4 +1,4 @@
-*testing.txt* For Vim version 8.2. Last change: 2022 Jan 13
+*testing.txt* For Vim version 8.2. Last change: 2022 Jan 20
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -352,7 +352,7 @@
Run {cmd} and add an error message to |v:errors| if it does
NOT produce an error or when {error} is not found in the
error message. Also see |assert-return|.
-
+ *E856*
When {error} is a string it must be found literally in the
first reported error. Most often this will be the error code,
including the colon, e.g. "E123:". >
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 851c167..a0f17aa 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt* For Vim version 8.2. Last change: 2022 Jan 15
+*todo.txt* For Vim version 8.2. Last change: 2022 Jan 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -38,19 +38,14 @@
*known-bugs*
-------------------- Known bugs and current work -----------------------
-TODO in eval_method() for using partial.
-
-TODO in compile_load_scriptvar()
-Try using a variable or function that is not exported
-
-"return Msg()" does not give an error if there is no return value. #9497
-
-eval_map_expr() in getchar.c saves stuff because "mp" can change, this does
-not happen in map.c for an abbreviation. Test that this fails, fix it.
+Also set the script context for other "expr" options, like for 'foldexpr'?
+ 'printexpr' eval_printexpr()
+ "expr:" part of 'spellsuggest eval_spell_expr()
Once Vim9 is stable:
- Add all the error numbers in a good place in documentation.
- done until E653
+ done until E1083
+- Check code coverage, add more tests if needed.
- Use Vim9 for runtime files.
Further Vim9 improvements, possibly after launch:
@@ -67,8 +62,8 @@
evaluation.
Use the location where the option was set for deciding whether it's to be
evaluated in Vim9 script context.
-- implement :type, "import type"
-- implement :enum, "import enum".
+- implement :type
+- implement :enum
- implement :class and :interface: See |vim9-classes|
- For range: make table of first ASCII character with flag to quickly check if
it can be a Vim9 command. E.g. "+" can, but "." can't.
@@ -207,6 +202,9 @@
When using 'cryptmethod' xchaha20 the undo file is not encrypted.
Need to handle extra bytes.
+In Select mode the deleted text always goes into the unnamed register.
+Use CTRL-R to specify the register to use. (#9531)
+
Some prompts are not translated: #9495
Test_communicate_ipv6(): is flaky on many systems
@@ -245,6 +243,8 @@
MS-Windows: did path modifier :p:8 stop working? #8600
+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)
diff --git a/runtime/doc/vim.1 b/runtime/doc/vim.1
index d55c8b3..5613dd4 100644
--- a/runtime/doc/vim.1
+++ b/runtime/doc/vim.1
@@ -1,4 +1,4 @@
-.TH VIM 1 "2006 Apr 11"
+.TH VIM 1 "2021 Jun 13"
.SH NAME
vim \- Vi IMproved, a programmer's text editor
.SH SYNOPSIS
diff --git a/runtime/doc/vim.man b/runtime/doc/vim.man
index dbfba53..cc6a9bc 100644
--- a/runtime/doc/vim.man
+++ b/runtime/doc/vim.man
@@ -432,4 +432,4 @@
- 2006 Apr 11 VIM(1)
+ 2021 Jun 13 VIM(1)
diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt
index bbdc2bd..0172dff 100644
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -1,4 +1,4 @@
-*vim9.txt* For Vim version 8.2. Last change: 2022 Jan 18
+*vim9.txt* For Vim version 8.2. Last change: 2022 Jan 23
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -190,7 +190,7 @@
Arguments are accessed by name, without "a:", just like any other language.
There is no "a:" dictionary or "a:000" list.
- *vim9-variable-arguments*
+ *vim9-variable-arguments* *E1055*
Variable arguments are defined as the last argument, with a name and have a
list type, similar to TypeScript. For example, a list of numbers: >
def MyFunc(...itemlist: list<number>)
@@ -227,7 +227,7 @@
def s:ThisFunction() # script-local
def g:ThatFunction() # global
def scriptname#function() # autoload
-
+< *E1058* *E1075*
When using `:function` or `:def` to specify a nested function inside a `:def`
function and no namespace was given, this nested function is local to the code
block it is defined in. In a `:def` function it is not possible to define a
@@ -289,7 +289,8 @@
Variable declarations with :var, :final and :const ~
- *vim9-declaration* *:var*
+ *vim9-declaration* *:var*
+ *E1017* *E1020* *E1054*
Local variables need to be declared with `:var`. Local constants need to be
declared with `:final` or `:const`. We refer to both as "variables" in this
section.
@@ -320,7 +321,7 @@
inner = 0
endif
echo inner
-
+< *E1025*
To intentionally hide a variable from code that follows, a block can be
used: >
{
@@ -347,12 +348,12 @@
}
Although using a :def function probably works better.
-
+ *E1022*
Declaring a variable with a type but without an initializer will initialize to
false (for bool), empty (for string, list, dict, etc.) or zero (for number,
any, etc.). This matters especially when using the "any" type, the value will
default to the number zero.
-
+ *E1016* *E1052* *E1066*
In Vim9 script `:let` cannot be used. An existing variable is assigned to
without any command. The same for global, window, tab, buffer and Vim
variables, because they are not really declared. Those can also be deleted
@@ -363,7 +364,7 @@
The `exists()` and `exists_compiled()` functions do not work on local variables
or arguments.
-
+ *E1006* *E1041*
Variables, functions and function arguments cannot shadow previously defined
or imported variables and functions in the same script file.
Variables may shadow Ex commands, rename the variable if needed.
@@ -431,7 +432,7 @@
can't be assigned another value a constant. JavaScript is an example. Others
also make the value immutable, thus when a constant uses a list, the list
cannot be changed. In Vim9 we can use both.
-
+ *E1021*
`:const` is used for making both the variable and the value a constant. Use
this for composite structures that you want to make sure will not be modified.
Example: >
@@ -564,7 +565,7 @@
})
No command can follow the "{", only a comment can be used there.
- *command-block*
+ *command-block* *E1026*
The block can also be used for defining a user command. Inside the block Vim9
syntax will be used.
@@ -684,6 +685,11 @@
var result = start
:+ print
+After the range an Ex command must follow. Without the colon you can call a
+function without `:call`, but after a range you do need it: >
+ MyFunc()
+ :% call MyFunc()
+
Note that the colon is not required for the |+cmd| argument: >
edit +6 fname
@@ -732,7 +738,7 @@
White space ~
-
+ *E1004* *E1068* *E1069* *E1074*
Vim9 script enforces proper use of white space. This is no longer allowed: >
var name=234 # Error!
var name= 234 # Error!
@@ -777,7 +783,7 @@
Dictionary literals ~
- *vim9-literal-dict*
+ *vim9-literal-dict* *E1014*
Traditionally Vim has supported dictionary literals with a {} syntax: >
let dict = {'key': value}
@@ -867,7 +873,7 @@
Conditions and expressions ~
- *vim9-boolean*
+ *vim9-boolean*
Conditions and expressions are mostly working like they do in other languages.
Some values are different from legacy Vim script:
value legacy Vim script Vim9 script ~
@@ -921,7 +927,7 @@
Simple types are Number, Float, Special and Bool. For other types |string()|
should be used.
- *false* *true* *null*
+ *false* *true* *null* *E1034*
In Vim9 script one can use "true" for v:true, "false" for v:false and "null"
for v:null. When converting a boolean to a string "false" and "true" are
used, not "v:false" and "v:true" like in legacy script. "v:none" is not
@@ -1064,15 +1070,19 @@
3. New style functions *fast-functions*
- *:def*
+ *:def* *E1028*
:def[!] {name}([arguments])[: {return-type}]
Define a new function by the name {name}. The body of
the function follows in the next lines, until the
- matching `:enddef`.
-
- When {return-type} is omitted or is "void" the
- function is not expected to return anything.
-
+ matching `:enddef`. *E1073*
+ *E1011*
+ The {name} must be less than 100 bytes long.
+ *E1003* *E1027* *E1056* *E1059*
+ The type of value used with `:return` must match
+ {return-type}. When {return-type} is omitted or is
+ "void" the function is not expected to return
+ anything.
+ *E1077*
{arguments} is a sequence of zero or more argument
declarations. There are three forms:
{name}: {type}
@@ -1096,7 +1106,7 @@
later in Vim9 script. They can only be removed by
reloading the same script.
- *:enddef*
+ *:enddef* *E1057*
:enddef End of a function defined with `:def`. It should be on
a line by its own.
@@ -1116,7 +1126,7 @@
*:disa* *:disassemble*
:disa[ssemble] {func} Show the instructions generated for {func}.
- This is for debugging and testing.
+ This is for debugging and testing. *E1061*
Note that for command line completion of {func} you
can prepend "s:" to find script-local functions.
@@ -1178,7 +1188,8 @@
==============================================================================
4. Types *vim9-types*
-
+ *E1008* *E1009* *E1010* *E1012*
+ *E1013* *E1029* *E1030*
The following builtin types are supported:
bool
number
@@ -1193,17 +1204,19 @@
func: {type}
func({type}, ...)
func({type}, ...): {type}
+ void
Not supported yet:
tuple<a: {type}, b: {type}, ...>
These types can be used in declarations, but no simple value will actually
-have the "void" type.
+have the "void" type. Trying to use a void (e.g. a function without a
+return value) results in error *E1031* .
There is no array type, use list<{type}> instead. For a list constant an
efficient implementation is used that avoids allocating lot of small pieces of
memory.
-
+ *E1005* *E1007*
A partial and function can be declared in more or less specific ways:
func any kind of function reference, no type
checking for arguments or return value
@@ -1432,7 +1445,7 @@
export def MyFunc() ...
export class MyClass ...
export interface MyClass ...
-
+< *E1043* *E1044*
As this suggests, only constants, variables, `:def` functions and classes can
be exported. {not implemented yet: class, interface}
@@ -1441,19 +1454,23 @@
Import ~
- *:import* *:imp* *E1094*
+ *:import* *:imp* *E1094* *E1047*
+ *E1048* *E1049* *E1053* *E1071*
The exported items can be imported in another Vim9 script: >
import "myscript.vim"
This makes each item available as "myscript.item".
-
+ *:import-as*
In case the name is long or ambiguous, another name can be specified: >
import "thatscript.vim" as that
-
+< *E1060*
Then you can use "that.EXPORTED_CONST", "that.someValue", etc. You are free
to choose the name "that". Use something that will be recognized as referring
to the imported script. Avoid command names and builtin function names,
-because the name will shadow them.
+because the name will shadow them. If the name starts with a capital letter
+it can also shadow global user commands and functions. Also, you cannot use
+the name for something else in the script, such as a function or variable
+name.
In case the dot in the name is undesired, a local reference can be made for a
function: >
@@ -1466,6 +1483,12 @@
when changing the variable the copy will change, not the original variable.
You will need to use the full name, with the dot.
+The full syntax of the command is:
+ import {filename} [as {name}]
+Where {filename} is an expression that must evaluate to a string. Without the
+"as {name}" part it must end in ".vim". {name} must consist of letters,
+digits and '_', like |internal-variables|.
+
`:import` can also be used in legacy Vim script. The imported items still
become script-local, even when the "s:" prefix is not given.
diff --git a/runtime/doc/visual.txt b/runtime/doc/visual.txt
index eed1023..3db506e 100644
--- a/runtime/doc/visual.txt
+++ b/runtime/doc/visual.txt
@@ -1,4 +1,4 @@
-*visual.txt* For Vim version 8.2. Last change: 2021 Nov 21
+*visual.txt* For Vim version 8.2. Last change: 2022 Jan 20
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index 51f62f4..4dc38ed 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2022 Jan 13
+" Last Change: 2022 Jan 23
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
diff --git a/runtime/gvim.desktop b/runtime/gvim.desktop
index cd80cbc..68c5eee 100644
--- a/runtime/gvim.desktop
+++ b/runtime/gvim.desktop
@@ -4,6 +4,7 @@
# Translators: This is the Application Name used in the GVim desktop file
Name[de]=GVim
Name[eo]=GVim
+Name[fi]=GVim
Name[fr]=GVim
Name[it]=GVim
Name[ru]=GVim
@@ -13,6 +14,7 @@
# Translators: This is the Generic Application Name used in the Vim desktop file
GenericName[de]=Texteditor
GenericName[eo]=Tekstoredaktilo
+GenericName[fi]=Tekstinmuokkain
GenericName[fr]=Éditeur de texte
GenericName[it]=Editor di testi
GenericName[ja]=テキストエディタ
@@ -23,6 +25,7 @@
# Translators: This is the comment used in the Vim desktop file
Comment[de]=Textdateien bearbeiten
Comment[eo]=Redakti tekstajn dosierojn
+Comment[fi]=Muokkaa tekstitiedostoja
Comment[fr]=Éditer des fichiers texte
Comment[it]=Edita file di testo
Comment[ja]=テキストファイルを編集します
@@ -54,7 +57,6 @@
Comment[et]=Redigeeri tekstifaile
Comment[eu]=Editatu testu-fitxategiak
Comment[fa]=ویرایش پروندههای متنی
-Comment[fi]=Muokkaa tekstitiedostoja
Comment[ga]=Eagar comhad Téacs
Comment[gu]=લખાણ ફાઇલોમાં ફેરફાર કરો
Comment[he]=ערוך קבצי טקסט
@@ -103,6 +105,7 @@
# Translators: Search terms to find this application. Do NOT change the semicolons! The list MUST also end with a semicolon!
Keywords[de]=Text;Editor;
Keywords[eo]=Teksto;redaktilo;
+Keywords[fi]=Teksti;muokkain;editori;
Keywords[fr]=Texte;éditeur;
Keywords[it]=Testo;editor;
Keywords[ja]=テキスト;エディタ;
diff --git a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
index fde59df..bde9140 100644
--- a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
+++ b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
@@ -2,7 +2,7 @@
"
" Author: Bram Moolenaar
" Copyright: Vim license applies, see ":help license"
-" Last Change: 2022 Jan 13
+" Last Change: 2022 Jan 17
"
" WORK IN PROGRESS - Only the basics work
" Note: On MS-Windows you need a recent version of gdb. The one included with
@@ -1254,6 +1254,7 @@
if lnum =~ '^[0-9]*$'
call s:GotoSourcewinOrCreateIt()
if expand('%:p') != fnamemodify(fname, ':p')
+echomsg 'different fname: "' .. expand('%:p') .. '" vs "' .. fnamemodify(fname, ':p') .. '"'
augroup Termdebug
" Always open a file read-only instead of showing the ATTENTION
" prompt, since we are unlikely to want to edit the file.
diff --git a/runtime/syntax/rc.vim b/runtime/syntax/rc.vim
index 4c6856b..d69edd0 100644
--- a/runtime/syntax/rc.vim
+++ b/runtime/syntax/rc.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: M$ Resource files (*.rc)
" Maintainer: Christian Brabandt
-" Last Change: 2015-05-29
+" Last Change: 20220116
" Repository: https://github.com/chrisbra/vim-rc-syntax
" License: Vim (see :h license)
" Previous Maintainer: Heiko Erhardt <Heiko.Erhardt@munich.netsurf.de>
@@ -173,16 +173,17 @@
hi def link rcStdId rcStatement
hi def link rcStatement Statement
-" Default color overrides
-hi def rcLanguage term=reverse ctermbg=Red ctermfg=Yellow guibg=Red guifg=Yellow
-hi def rcMainObject term=underline ctermfg=Blue guifg=Blue
-hi def rcSubObject ctermfg=Green guifg=Green
-hi def rcCaptionParam term=underline ctermfg=DarkGreen guifg=Green
-hi def rcParam ctermfg=DarkGreen guifg=DarkGreen
-hi def rcStatement ctermfg=DarkGreen guifg=DarkGreen
-hi def rcCommonAttribute ctermfg=Brown guifg=Brown
+hi def link rcLanguage Constant
+hi def link rcCaptionParam Constant
+hi def link rcCommonAttribute Constant
-"hi def link rcIdentifier Identifier
+hi def link rcMainObject Identifier
+hi def link rcSubObject Define
+hi def link rcParam Constant
+hi def link rcStatement Statement
+"
+"hi def link rcIdentifier Identifier
+
let b:current_syntax = "rc"
diff --git a/runtime/syntax/scala.vim b/runtime/syntax/scala.vim
index 16e1147..c08e60e 100644
--- a/runtime/syntax/scala.vim
+++ b/runtime/syntax/scala.vim
@@ -3,7 +3,7 @@
" Maintainer: Derek Wyatt
" URL: https://github.com/derekwyatt/vim-scala
" License: Same as Vim
-" Last Change: 23 August 2021
+" Last Change: 23 January 2022
" ----------------------------------------------------------------------------
if !exists('main_syntax')
@@ -43,55 +43,55 @@
syn keyword scalaKeyword case nextgroup=scalaKeyword,scalaCaseFollowing skipwhite
syn keyword scalaKeyword val nextgroup=scalaNameDefinition,scalaQuasiQuotes skipwhite
syn keyword scalaKeyword def var nextgroup=scalaNameDefinition skipwhite
-hi link scalaKeyword Keyword
+hi def link scalaKeyword Keyword
exe 'syn region scalaBlock start=/{/ end=/}/ contains=' . s:ContainedGroup() . ' fold'
syn keyword scalaAkkaSpecialWord when goto using startWith initialize onTransition stay become unbecome
-hi link scalaAkkaSpecialWord PreProc
+hi def link scalaAkkaSpecialWord PreProc
syn keyword scalatestSpecialWord shouldBe
syn match scalatestShouldDSLA /^\s\+\zsit should/
syn match scalatestShouldDSLB /\<should\>/
-hi link scalatestSpecialWord PreProc
-hi link scalatestShouldDSLA PreProc
-hi link scalatestShouldDSLB PreProc
+hi def link scalatestSpecialWord PreProc
+hi def link scalatestShouldDSLA PreProc
+hi def link scalatestShouldDSLB PreProc
syn match scalaSymbol /'[_A-Za-z0-9$]\+/
-hi link scalaSymbol Number
+hi def link scalaSymbol Number
syn match scalaChar /'.'/
syn match scalaChar /'\\[\\"'ntbrf]'/ contains=scalaEscapedChar
syn match scalaChar /'\\u[A-Fa-f0-9]\{4}'/ contains=scalaUnicodeChar
syn match scalaEscapedChar /\\[\\"'ntbrf]/
syn match scalaUnicodeChar /\\u[A-Fa-f0-9]\{4}/
-hi link scalaChar Character
-hi link scalaEscapedChar Special
-hi link scalaUnicodeChar Special
+hi def link scalaChar Character
+hi def link scalaEscapedChar Special
+hi def link scalaUnicodeChar Special
syn match scalaOperator "||"
syn match scalaOperator "&&"
syn match scalaOperator "|"
syn match scalaOperator "&"
-hi link scalaOperator Special
+hi def link scalaOperator Special
syn match scalaNameDefinition /\<[_A-Za-z0-9$]\+\>/ contained nextgroup=scalaPostNameDefinition,scalaVariableDeclarationList
syn match scalaNameDefinition /`[^`]\+`/ contained nextgroup=scalaPostNameDefinition
syn match scalaVariableDeclarationList /\s*,\s*/ contained nextgroup=scalaNameDefinition
syn match scalaPostNameDefinition /\_s*:\_s*/ contained nextgroup=scalaTypeDeclaration
-hi link scalaNameDefinition Function
+hi def link scalaNameDefinition Function
syn match scalaInstanceDeclaration /\<[_\.A-Za-z0-9$]\+\>/ contained nextgroup=scalaInstanceHash
syn match scalaInstanceDeclaration /`[^`]\+`/ contained
syn match scalaInstanceHash /#/ contained nextgroup=scalaInstanceDeclaration
-hi link scalaInstanceDeclaration Special
-hi link scalaInstanceHash Type
+hi def link scalaInstanceDeclaration Special
+hi def link scalaInstanceHash Type
syn match scalaUnimplemented /???/
-hi link scalaUnimplemented ERROR
+hi def link scalaUnimplemented ERROR
syn match scalaCapitalWord /\<[A-Z][A-Za-z0-9$]*\>/
-hi link scalaCapitalWord Special
+hi def link scalaCapitalWord Special
" Handle type declarations specially
syn region scalaTypeStatement matchgroup=Keyword start=/\<type\_s\+\ze/ end=/$/ contains=scalaTypeTypeDeclaration,scalaSquareBrackets,scalaTypeTypeEquals,scalaTypeStatement
@@ -105,18 +105,18 @@
syn match scalaTypeTypeExtension /)\?\_s*\zs\%(⇒\|=>\|<:\|:>\|=:=\|::\|#\)/ contained contains=scalaTypeOperator nextgroup=scalaTypeTypeDeclaration skipwhite
syn match scalaTypeTypePostDeclaration /\<[_\.A-Za-z0-9$]\+\>/ contained nextgroup=scalaTypeTypePostExtension skipwhite
syn match scalaTypeTypePostExtension /\%(⇒\|=>\|<:\|:>\|=:=\|::\)/ contained contains=scalaTypeOperator nextgroup=scalaTypeTypePostDeclaration skipwhite
-hi link scalaTypeTypeDeclaration Type
-hi link scalaTypeTypeExtension Keyword
-hi link scalaTypeTypePostDeclaration Special
-hi link scalaTypeTypePostExtension Keyword
+hi def link scalaTypeTypeDeclaration Type
+hi def link scalaTypeTypeExtension Keyword
+hi def link scalaTypeTypePostDeclaration Special
+hi def link scalaTypeTypePostExtension Keyword
syn match scalaTypeDeclaration /(/ contained nextgroup=scalaTypeExtension contains=scalaRoundBrackets skipwhite
syn match scalaTypeDeclaration /\%(⇒\|=>\)\ze/ contained nextgroup=scalaTypeDeclaration contains=scalaTypeExtension skipwhite
syn match scalaTypeDeclaration /\<[_\.A-Za-z0-9$]\+\>/ contained nextgroup=scalaTypeExtension skipwhite
syn match scalaTypeExtension /)\?\_s*\zs\%(⇒\|=>\|<:\|:>\|=:=\|::\|#\)/ contained contains=scalaTypeOperator nextgroup=scalaTypeDeclaration skipwhite
-hi link scalaTypeDeclaration Type
-hi link scalaTypeExtension Keyword
-hi link scalaTypePostExtension Keyword
+hi def link scalaTypeDeclaration Type
+hi def link scalaTypeExtension Keyword
+hi def link scalaTypePostExtension Keyword
syn match scalaTypeAnnotation /\%([_a-zA-Z0-9$\s]:\_s*\)\ze[_=(\.A-Za-z0-9$]\+/ skipwhite nextgroup=scalaTypeDeclaration contains=scalaRoundBrackets
syn match scalaTypeAnnotation /)\_s*:\_s*\ze[_=(\.A-Za-z0-9$]\+/ skipwhite nextgroup=scalaTypeDeclaration
@@ -124,51 +124,51 @@
syn match scalaCaseFollowing /\<[_\.A-Za-z0-9$]\+\>/ contained contains=scalaCapitalWord
syn match scalaCaseFollowing /`[^`]\+`/ contained contains=scalaCapitalWord
-hi link scalaCaseFollowing Special
+hi def link scalaCaseFollowing Special
syn keyword scalaKeywordModifier abstract override final lazy implicit private protected sealed null super
syn keyword scalaSpecialFunction implicitly require
-hi link scalaKeywordModifier Function
-hi link scalaSpecialFunction Function
+hi def link scalaKeywordModifier Function
+hi def link scalaSpecialFunction Function
syn keyword scalaSpecial this true false ne eq
syn keyword scalaSpecial new nextgroup=scalaInstanceDeclaration skipwhite
syn match scalaSpecial "\%(=>\|⇒\|<-\|←\|->\|→\)"
syn match scalaSpecial /`[^`]\+`/ " Backtick literals
-hi link scalaSpecial PreProc
+hi def link scalaSpecial PreProc
syn keyword scalaExternal package import
-hi link scalaExternal Include
+hi def link scalaExternal Include
syn match scalaStringEmbeddedQuote /\\"/ contained
syn region scalaString start=/"/ end=/"/ contains=scalaStringEmbeddedQuote,scalaEscapedChar,scalaUnicodeChar
-hi link scalaString String
-hi link scalaStringEmbeddedQuote String
+hi def link scalaString String
+hi def link scalaStringEmbeddedQuote String
syn region scalaIString matchgroup=scalaInterpolationBrackets start=/\<[a-zA-Z][a-zA-Z0-9_]*"/ skip=/\\"/ end=/"/ contains=scalaInterpolation,scalaInterpolationB,scalaEscapedChar,scalaUnicodeChar
syn region scalaTripleIString matchgroup=scalaInterpolationBrackets start=/\<[a-zA-Z][a-zA-Z0-9_]*"""/ end=/"""\ze\%([^"]\|$\)/ contains=scalaInterpolation,scalaInterpolationB,scalaEscapedChar,scalaUnicodeChar
-hi link scalaIString String
-hi link scalaTripleIString String
+hi def link scalaIString String
+hi def link scalaTripleIString String
syn match scalaInterpolation /\$[a-zA-Z0-9_$]\+/ contained
exe 'syn region scalaInterpolationB matchgroup=scalaInterpolationBoundary start=/\${/ end=/}/ contained contains=' . s:ContainedGroup()
-hi link scalaInterpolation Function
+hi def link scalaInterpolation Function
hi clear scalaInterpolationB
syn region scalaFString matchgroup=scalaInterpolationBrackets start=/f"/ skip=/\\"/ end=/"/ contains=scalaFInterpolation,scalaFInterpolationB,scalaEscapedChar,scalaUnicodeChar
syn match scalaFInterpolation /\$[a-zA-Z0-9_$]\+\(%[-A-Za-z0-9\.]\+\)\?/ contained
exe 'syn region scalaFInterpolationB matchgroup=scalaInterpolationBoundary start=/${/ end=/}\(%[-A-Za-z0-9\.]\+\)\?/ contained contains=' . s:ContainedGroup()
-hi link scalaFString String
-hi link scalaFInterpolation Function
+hi def link scalaFString String
+hi def link scalaFInterpolation Function
hi clear scalaFInterpolationB
syn region scalaTripleString start=/"""/ end=/"""\%([^"]\|$\)/ contains=scalaEscapedChar,scalaUnicodeChar
syn region scalaTripleFString matchgroup=scalaInterpolationBrackets start=/f"""/ end=/"""\%([^"]\|$\)/ contains=scalaFInterpolation,scalaFInterpolationB,scalaEscapedChar,scalaUnicodeChar
-hi link scalaTripleString String
-hi link scalaTripleFString String
+hi def link scalaTripleString String
+hi def link scalaTripleFString String
-hi link scalaInterpolationBrackets Special
-hi link scalaInterpolationBoundary Function
+hi def link scalaInterpolationBrackets Special
+hi def link scalaInterpolationBoundary Function
syn match scalaNumber /\<0[dDfFlL]\?\>/ " Just a bare 0
syn match scalaNumber /\<[1-9]\d*[dDfFlL]\?\>/ " A multi-digit number - octal numbers with leading 0's are deprecated in Scala
@@ -176,16 +176,16 @@
syn match scalaNumber /\%(\<\d\+\.\d*\|\.\d\+\)\%([eE][-+]\=\d\+\)\=[fFdD]\=/ " exponential notation 1
syn match scalaNumber /\<\d\+[eE][-+]\=\d\+[fFdD]\=\>/ " exponential notation 2
syn match scalaNumber /\<\d\+\%([eE][-+]\=\d\+\)\=[fFdD]\>/ " exponential notation 3
-hi link scalaNumber Number
+hi def link scalaNumber Number
syn region scalaRoundBrackets start="(" end=")" skipwhite contained contains=scalaTypeDeclaration,scalaSquareBrackets,scalaRoundBrackets
syn region scalaSquareBrackets matchgroup=scalaSquareBracketsBrackets start="\[" end="\]" skipwhite nextgroup=scalaTypeExtension contains=scalaTypeDeclaration,scalaSquareBrackets,scalaTypeOperator,scalaTypeAnnotationParameter
syn match scalaTypeOperator /[-+=:<>]\+/ contained
syn match scalaTypeAnnotationParameter /@\<[`_A-Za-z0-9$]\+\>/ contained
-hi link scalaSquareBracketsBrackets Type
-hi link scalaTypeOperator Keyword
-hi link scalaTypeAnnotationParameter Function
+hi def link scalaSquareBracketsBrackets Type
+hi def link scalaTypeOperator Keyword
+hi def link scalaTypeAnnotationParameter Function
syn match scalaShebang "\%^#!.*" display
syn region scalaMultilineComment start="/\*" end="\*/" contains=scalaMultilineComment,scalaDocLinks,scalaParameterAnnotation,scalaCommentAnnotation,scalaTodo,scalaCommentCodeBlock,@Spell keepend fold
@@ -195,20 +195,20 @@
syn region scalaDocLinks start="\[\[" end="\]\]" contained
syn region scalaCommentCodeBlock matchgroup=Keyword start="{{{" end="}}}" contained
syn match scalaTodo "\vTODO|FIXME|XXX" contained
-hi link scalaShebang Comment
-hi link scalaMultilineComment Comment
-hi link scalaDocLinks Function
-hi link scalaParameterAnnotation Function
-hi link scalaParamAnnotationValue Keyword
-hi link scalaCommentAnnotation Function
-hi link scalaCommentCodeBlock String
-hi link scalaTodo Todo
+hi def link scalaShebang Comment
+hi def link scalaMultilineComment Comment
+hi def link scalaDocLinks Function
+hi def link scalaParameterAnnotation Function
+hi def link scalaParamAnnotationValue Keyword
+hi def link scalaCommentAnnotation Function
+hi def link scalaCommentCodeBlock String
+hi def link scalaTodo Todo
syn match scalaAnnotation /@\<[`_A-Za-z0-9$]\+\>/
-hi link scalaAnnotation PreProc
+hi def link scalaAnnotation PreProc
syn match scalaTrailingComment "//.*$" contains=scalaTodo,@Spell
-hi link scalaTrailingComment Comment
+hi def link scalaTrailingComment Comment
syn match scalaAkkaFSM /goto([^)]*)\_s\+\<using\>/ contains=scalaAkkaFSMGotoUsing
syn match scalaAkkaFSM /stay\_s\+using/
@@ -221,8 +221,8 @@
syn match scalaAkkaFSM /whenUnhandled/
syn match scalaAkkaFSMGotoUsing /\<using\>/
syn match scalaAkkaFSMGotoUsing /\<goto\>/
-hi link scalaAkkaFSM PreProc
-hi link scalaAkkaFSMGotoUsing PreProc
+hi def link scalaAkkaFSM PreProc
+hi def link scalaAkkaFSMGotoUsing PreProc
let b:current_syntax = 'scala'
diff --git a/runtime/vim.desktop b/runtime/vim.desktop
index 61daa57..3bdaed9 100644
--- a/runtime/vim.desktop
+++ b/runtime/vim.desktop
@@ -4,6 +4,7 @@
# Translators: This is the Application Name used in the Vim desktop file
Name[de]=Vim
Name[eo]=Vim
+Name[fi]=Vim
Name[fr]=Vim
Name[it]=Vim
Name[ru]=Vim
@@ -13,6 +14,7 @@
# Translators: This is the Generic Application Name used in the Vim desktop file
GenericName[de]=Texteditor
GenericName[eo]=Tekstoredaktilo
+GenericName[fi]=Tekstinmuokkain
GenericName[fr]=Éditeur de texte
GenericName[it]=Editor di testi
GenericName[ja]=テキストエディタ
@@ -23,6 +25,7 @@
# Translators: This is the comment used in the Vim desktop file
Comment[de]=Textdateien bearbeiten
Comment[eo]=Redakti tekstajn dosierojn
+Comment[fi]=Muokkaa tekstitiedostoja
Comment[fr]=Éditer des fichiers texte
Comment[it]=Edita file di testo
Comment[ja]=テキストファイルを編集します
@@ -54,7 +57,6 @@
Comment[et]=Redigeeri tekstifaile
Comment[eu]=Editatu testu-fitxategiak
Comment[fa]=ویرایش پروندههای متنی
-Comment[fi]=Muokkaa tekstitiedostoja
Comment[ga]=Eagar comhad Téacs
Comment[gu]=લખાણ ફાઇલોમાં ફેરફાર કરો
Comment[he]=ערוך קבצי טקסט
@@ -103,6 +105,7 @@
# Translators: Search terms to find this application. Do NOT change the semicolons! The list MUST also end with a semicolon!
Keywords[de]=Text;Editor;
Keywords[eo]=Teksto;redaktilo;
+Keywords[fi]=Teksti;muokkain;editori;
Keywords[fr]=Texte;éditeur;
Keywords[it]=Testo;editor;
Keywords[ja]=テキスト;エディタ;