Update runtime files
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index d3ebc11..63d166d 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt* For Vim version 8.2. Last change: 2021 Jul 27
+*autocmd.txt* For Vim version 8.2. Last change: 2021 Aug 01
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -76,7 +76,7 @@
script. Thus this depends on where the autocmd is defined, not where it is
triggered.
-{cmd} can use a block, like with `:command`, see |:command-repl|. Example: >
+{cmd} can be a block, like with `:command`, see |:command-repl|. Example: >
au BufReadPost *.xml {
setlocal matchpairs+=<:>
/<start
diff --git a/runtime/doc/channel.txt b/runtime/doc/channel.txt
index 4049f22..39cb43c 100644
--- a/runtime/doc/channel.txt
+++ b/runtime/doc/channel.txt
@@ -536,7 +536,7 @@
GetChannel()->ch_evalraw(rawstring)
ch_getbufnr({handle}, {what}) *ch_getbufnr()*
- Get the buffer number that {handle} is using for {what}.
+ Get the buffer number that {handle} is using for String {what}.
{handle} can be a Channel or a Job that has a Channel.
{what} can be "err" for stderr, "out" for stdout or empty for
socket output.
@@ -586,8 +586,8 @@
ch_log({msg} [, {handle}]) *ch_log()*
- Write {msg} in the channel log file, if it was opened with
- |ch_logfile()|.
+ Write String {msg} in the channel log file, if it was opened
+ with |ch_logfile()|.
When {handle} is passed the channel number is used for the
message.
{handle} can be a Channel or a Job that has a Channel. The
@@ -625,7 +625,7 @@
Open a channel to {address}. See |channel|.
Returns a Channel. Use |ch_status()| to check for failure.
- {address} has the form "hostname:port", e.g.,
+ {address} is a String and has the form "hostname:port", e.g.,
"localhost:8765".
When using an IPv6 address, enclose it within square brackets.
diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt
index 5564f5d..0c472bb 100644
--- a/runtime/doc/cmdline.txt
+++ b/runtime/doc/cmdline.txt
@@ -1,4 +1,4 @@
-*cmdline.txt* For Vim version 8.2. Last change: 2021 May 30
+*cmdline.txt* For Vim version 8.2. Last change: 2021 Aug 06
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -170,7 +170,12 @@
too.
When the result is a Float it's automatically
converted to a String.
- See |registers| about registers.
+ Note that when you only want to move the
+ cursor and not insert anything, you must make
+ sure the expression evaluates to an empty
+ string. E.g.: >
+ <C-R><C-R>=setcmdpos(2)[-1]<CR>
+< See |registers| about registers.
Implementation detail: When using the |expression| register
and invoking setcmdpos(), this sets the position before
inserting the resulting string. Use CTRL-R CTRL-R to set the
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 05c06ec..31e901a 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt* For Vim version 8.2. Last change: 2021 Jul 28
+*eval.txt* For Vim version 8.2. Last change: 2021 Aug 13
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -55,7 +55,6 @@
{only when compiled with the |+float| feature}
Examples: 123.456 1.15e-6 -1.1e3
- *E928*
String A NUL terminated string of 8-bit unsigned characters (bytes).
|expr-string| Examples: "ab\txx\"--" 'x-z''a,c'
@@ -121,7 +120,7 @@
*TRUE* *FALSE* *Boolean*
For boolean operators Numbers are used. Zero is FALSE, non-zero is TRUE.
-You can also use |v:false| and |v:true|. In Vim9 script |false| and |true|.
+You can also use |v:false| and |v:true|, in Vim9 script |false| and |true|.
When TRUE is returned from a function it is the Number one, FALSE is the
number zero.
@@ -1348,7 +1347,8 @@
[-+]{N}.{M}[eE][-+]{exp}
{N} and {M} are numbers. Both {N} and {M} must be present and can only
-contain digits.
+contain digits, except that in |Vim9| script in {N} single quotes between
+digits are ignored.
[-+] means there is an optional plus or minus sign.
{exp} is the exponent, power of 10.
Only a decimal point is accepted, not a comma. No matter what the current
@@ -2543,8 +2543,8 @@
debugbreak({pid}) Number interrupt process being debugged
deepcopy({expr} [, {noref}]) any make a full copy of {expr}
delete({fname} [, {flags}]) Number delete the file or directory {fname}
-deletebufline({expr}, {first} [, {last}])
- Number delete lines from buffer {expr}
+deletebufline({buf}, {first} [, {last}])
+ Number delete lines from buffer {buf}
did_filetype() Number |TRUE| if FileType autocmd event used
diff_filler({lnum}) Number diff filler lines about {lnum}
diff_hlID({lnum}, {col}) Number diff highlighting at {lnum}/{col}
@@ -2604,12 +2604,12 @@
get({list}, {idx} [, {def}]) any get item {idx} from {list} or {def}
get({dict}, {key} [, {def}]) any get item {key} from {dict} or {def}
get({func}, {what}) any get property of funcref/partial {func}
-getbufinfo([{expr}]) List information about buffers
-getbufline({expr}, {lnum} [, {end}])
- List lines {lnum} to {end} of buffer {expr}
-getbufvar({expr}, {varname} [, {def}])
- any variable {varname} in buffer {expr}
-getchangelist([{expr}]) List list of change list items
+getbufinfo([{buf}]) List information about buffers
+getbufline({buf}, {lnum} [, {end}])
+ List lines {lnum} to {end} of buffer {buf}
+getbufvar({buf}, {varname} [, {def}])
+ any variable {varname} in buffer {buf}
+getchangelist([{buf}]) List list of change list items
getchar([expr]) Number or String
get one character from the user
getcharmod() Number modifiers for the last typed character
@@ -2638,7 +2638,7 @@
getline({lnum}, {end}) List lines {lnum} to {end} of current buffer
getloclist({nr}) List list of location list items
getloclist({nr}, {what}) Dict get specific location list properties
-getmarklist([{expr}]) List list of global/local marks
+getmarklist([{buf}]) List list of global/local marks
getmatches([{win}]) List list of current matches
getmousepos() Dict last known mouse position
getpid() Number process ID of Vim
@@ -2884,8 +2884,8 @@
setbufline({expr}, {lnum}, {text})
Number set line {lnum} to {text} in buffer
{expr}
-setbufvar({expr}, {varname}, {val})
- none set {varname} in buffer {expr} to {val}
+setbufvar({buf}, {varname}, {val})
+ none set {varname} in buffer {buf} to {val}
setcellwidths({list}) none set character cell width overrides
setcharpos({expr}, {list}) Number set the {expr} position to {list}
setcharsearch({dict}) Dict set character search from {dict}
@@ -2919,11 +2919,11 @@
sign_define({name} [, {dict}]) Number define or update a sign
sign_define({list}) List define or update a list of signs
sign_getdefined([{name}]) List get a list of defined signs
-sign_getplaced([{expr} [, {dict}]])
+sign_getplaced([{buf} [, {dict}]])
List get a list of placed signs
-sign_jump({id}, {group}, {expr})
+sign_jump({id}, {group}, {buf})
Number jump to a sign
-sign_place({id}, {group}, {name}, {expr} [, {dict}])
+sign_place({id}, {group}, {name}, {buf} [, {dict}])
Number place a sign
sign_placelist({list}) List place a list of signs
sign_undefine([{name}]) Number undefine a sign
@@ -2953,7 +2953,7 @@
sqrt({expr}) Float square root of {expr}
srand([{expr}]) List get seed for |rand()|
state([{what}]) String current state of Vim
-str2float({expr}) Float convert String to Float
+str2float({expr} [, {quoted}]) Float convert String to Float
str2list({expr} [, {utf8}]) List convert each character of {expr} to
ASCII/UTF8 value
str2nr({expr} [, {base} [, {quoted}]])
@@ -2984,7 +2984,7 @@
substitute({expr}, {pat}, {sub}, {flags})
String all {pat} in {expr} replaced with {sub}
swapinfo({fname}) Dict information about swap file {fname}
-swapname({expr}) String swap file of buffer {expr}
+swapname({buf}) String swap file of buffer {buf}
synID({lnum}, {col}, {trans}) Number syntax ID at {lnum} and {col}
synIDattr({synID}, {what} [, {mode}])
String attribute {what} of syntax ID {synID}
@@ -3189,13 +3189,13 @@
mylist->append(lnum)
-appendbufline({expr}, {lnum}, {text}) *appendbufline()*
- Like |append()| but append the text in buffer {expr}.
+appendbufline({buf}, {lnum}, {text}) *appendbufline()*
+ Like |append()| but append the text in buffer {buf}.
This function works only for loaded buffers. First call
|bufload()| if needed.
- For the use of {expr}, see |bufname()|.
+ For the use of {buf}, see |bufname()|.
{lnum} is used like with |append()|. Note that using |line()|
would use the current buffer, not the one appending to.
@@ -3203,7 +3203,7 @@
On success 0 is returned, on failure 1 is returned.
- If {expr} is not a valid buffer or {lnum} is not valid, an
+ If {buf} is not a valid buffer or {lnum} is not valid, an
error message is given. Example: >
:let failed = appendbufline(13, 0, "# THE START")
<
@@ -3303,7 +3303,7 @@
< 2.356194
Can also be used as a |method|: >
- Compute()->atan(1)
+ Compute()->atan2(1)
<
{only available when compiled with the |+float| feature}
@@ -3343,9 +3343,9 @@
|+balloon_eval_term| feature}
balloon_split({msg}) *balloon_split()*
- Split {msg} into lines to be displayed in a balloon. The
- splits are made for the current window size and optimize to
- show debugger output.
+ Split String {msg} into lines to be displayed in a balloon.
+ The splits are made for the current window size and optimize
+ to show debugger output.
Returns a |List| with the split lines.
Can also be used as a |method|: >
GetText()->balloon_split()->balloon_show()
@@ -3379,7 +3379,7 @@
browsing is not possible, an empty string is returned.
bufadd({name}) *bufadd()*
- Add a buffer to the buffer list with {name}.
+ Add a buffer to the buffer list with String {name}.
If a buffer for file {name} already exists, return that buffer
number. Otherwise return the buffer number of the newly
created buffer. When {name} is an empty string then a new
@@ -3392,13 +3392,13 @@
< Can also be used as a |method|: >
let bufnr = 'somename'->bufadd()
-bufexists({expr}) *bufexists()*
+bufexists({buf}) *bufexists()*
The result is a Number, which is |TRUE| if a buffer called
- {expr} exists.
- If the {expr} argument is a number, buffer numbers are used.
+ {buf} exists.
+ If the {buf} argument is a number, buffer numbers are used.
Number zero is the alternate buffer for the current window.
- If the {expr} argument is a string it must match a buffer name
+ If the {buf} argument is a string it must match a buffer name
exactly. The name can be:
- Relative to the current directory.
- A full path.
@@ -3419,42 +3419,42 @@
<
Obsolete name: buffer_exists(). *buffer_exists()*
-buflisted({expr}) *buflisted()*
+buflisted({buf}) *buflisted()*
The result is a Number, which is |TRUE| if a buffer called
- {expr} exists and is listed (has the 'buflisted' option set).
- The {expr} argument is used like with |bufexists()|.
+ {buf} exists and is listed (has the 'buflisted' option set).
+ The {buf} argument is used like with |bufexists()|.
Can also be used as a |method|: >
let listed = 'somename'->buflisted()
-bufload({expr}) *bufload()*
- Ensure the buffer {expr} is loaded. When the buffer name
+bufload({buf}) *bufload()*
+ Ensure the buffer {buf} is loaded. When the buffer name
refers to an existing file then the file is read. Otherwise
the buffer will be empty. If the buffer was already loaded
then there is no change.
If there is an existing swap file for the file of the buffer,
there will be no dialog, the buffer will be loaded anyway.
- The {expr} argument is used like with |bufexists()|.
+ The {buf} argument is used like with |bufexists()|.
Can also be used as a |method|: >
eval 'somename'->bufload()
-bufloaded({expr}) *bufloaded()*
+bufloaded({buf}) *bufloaded()*
The result is a Number, which is |TRUE| if a buffer called
- {expr} exists and is loaded (shown in a window or hidden).
- The {expr} argument is used like with |bufexists()|.
+ {buf} exists and is loaded (shown in a window or hidden).
+ The {buf} argument is used like with |bufexists()|.
Can also be used as a |method|: >
let loaded = 'somename'->bufloaded()
-bufname([{expr}]) *bufname()*
+bufname([{buf}]) *bufname()*
The result is the name of a buffer. Mostly as it is displayed
by the `:ls` command, but not using special names such as
"[No Name]".
- If {expr} is omitted the current buffer is used.
- If {expr} is a Number, that buffer number's name is given.
+ If {buf} is omitted the current buffer is used.
+ If {buf} is a Number, that buffer number's name is given.
Number zero is the alternate buffer for the current window.
- If {expr} is a String, it is used as a |file-pattern| to match
+ If {buf} is a String, it is used as a |file-pattern| to match
with the buffer names. This is always done like 'magic' is
set and 'cpoptions' is empty. When there is more than one
match an empty string is returned.
@@ -3467,7 +3467,7 @@
Listed buffers are found first. If there is a single match
with a listed buffer, that one is returned. Next unlisted
buffers are searched for.
- If the {expr} is a String, but you want to use it as a buffer
+ If the {buf} is a String, but you want to use it as a buffer
number, force it to be a Number by adding zero to it: >
:echo bufname("3" + 0)
< Can also be used as a |method|: >
@@ -3483,9 +3483,9 @@
Obsolete name: buffer_name().
*bufnr()*
-bufnr([{expr} [, {create}]])
+bufnr([{buf} [, {create}]])
The result is the number of a buffer, as it is displayed by
- the `:ls` command. For the use of {expr}, see |bufname()|
+ the `:ls` command. For the use of {buf}, see |bufname()|
above.
If the buffer doesn't exist, -1 is returned. Or, if the
@@ -3509,10 +3509,10 @@
*last_buffer_nr()*
Obsolete name for bufnr("$"): last_buffer_nr().
-bufwinid({expr}) *bufwinid()*
+bufwinid({buf}) *bufwinid()*
The result is a Number, which is the |window-ID| of the first
- window associated with buffer {expr}. For the use of {expr},
- see |bufname()| above. If buffer {expr} doesn't exist or
+ window associated with buffer {buf}. For the use of {buf},
+ see |bufname()| above. If buffer {buf} doesn't exist or
there is no such window, -1 is returned. Example: >
echo "A window containing buffer 1 is " . (bufwinid(1))
@@ -3522,10 +3522,10 @@
Can also be used as a |method|: >
FindBuffer()->bufwinid()
-bufwinnr({expr}) *bufwinnr()*
+bufwinnr({buf}) *bufwinnr()*
Like |bufwinid()| but return the window number instead of the
|window-ID|.
- If buffer {expr} doesn't exist or there is no such window, -1
+ If buffer {buf} doesn't exist or there is no such window, -1
is returned. Example: >
echo "A window containing buffer 1 is " . (bufwinnr(1))
@@ -3551,7 +3551,7 @@
feature}
byteidx({expr}, {nr}) *byteidx()*
- Return byte index of the {nr}'th character in the string
+ Return byte index of the {nr}'th character in the String
{expr}. Use zero for the first character, it then returns
zero.
If there are no multibyte characters the returned value is
@@ -3632,8 +3632,9 @@
redo it is the number of the redone change. After undo it is
one less than the number of the undone change.
-char2nr({expr} [, {utf8}]) *char2nr()*
- Return number value of the first char in {expr}. Examples: >
+char2nr({string} [, {utf8}]) *char2nr()*
+ Return number value of the first char in {string}.
+ Examples: >
char2nr(" ") returns 32
char2nr("ABC") returns 65
< When {utf8} is omitted or zero, the current 'encoding' is used.
@@ -3662,8 +3663,9 @@
other specific Unicode class
The class is used in patterns and word motions.
- *charcol()*
-charcol({expr}) Same as |col()| but returns the character index of the column
+
+charcol({expr}) *charcol()*
+ Same as |col()| but returns the character index of the column
position given with {expr} instead of the byte position.
Example:
@@ -3799,6 +3801,7 @@
match.
{matches} must be a |List|. Each |List| item is one match.
See |complete-items| for the kind of items that are possible.
+ "longest" in 'completeopt' is ignored.
Note that the after calling this function you need to avoid
inserting anything that would cause completion to stop.
The match can be selected with CTRL-N and CTRL-P as usual with
@@ -3840,8 +3843,8 @@
Only to be used by the function specified with the
'completefunc' option.
- *complete_info()*
-complete_info([{what}])
+
+complete_info([{what}]) *complete_info()*
Returns a |Dictionary| with information about Insert mode
completion. See |ins-completion|.
The items are:
@@ -3927,11 +3930,12 @@
choice the default one. Use 0 to not set a default. If
{default} is omitted, 1 is used.
- The optional {type} argument gives the type of dialog. This
- is only used for the icon of the GTK, Mac, Motif and Win32
- GUI. It can be one of these values: "Error", "Question",
- "Info", "Warning" or "Generic". Only the first character is
- relevant. When {type} is omitted, "Generic" is used.
+ The optional {type} String argument gives the type of dialog.
+ This is only used for the icon of the GTK, Mac, Motif and
+ Win32 GUI. It can be one of these values: "Error",
+ "Question", "Info", "Warning" or "Generic". Only the first
+ character is relevant. When {type} is omitted, "Generic" is
+ used.
If the user aborts the dialog by pressing <Esc>, CTRL-C,
or another valid interrupt key, confirm() returns 0.
@@ -4125,7 +4129,7 @@
Can also be used as a |method|: >
GetObject()->deepcopy()
-delete({fname} [, {flags}]) *delete()*
+delete({fname} [, {flags}]) *delete()*
Without {flags} or with {flags} empty: Deletes the file by the
name {fname}. This also works when {fname} is a symbolic link.
@@ -4150,19 +4154,19 @@
Can also be used as a |method|: >
GetName()->delete()
-deletebufline({expr}, {first} [, {last}]) *deletebufline()*
- Delete lines {first} to {last} (inclusive) from buffer {expr}.
+deletebufline({buf}, {first} [, {last}]) *deletebufline()*
+ Delete lines {first} to {last} (inclusive) from buffer {buf}.
If {last} is omitted then delete line {first} only.
On success 0 is returned, on failure 1 is returned.
This function works only for loaded buffers. First call
|bufload()| if needed.
- For the use of {expr}, see |bufname()| above.
+ For the use of {buf}, see |bufname()| above.
{first} and {last} are used like with |getline()|. Note that
when using |line()| this refers to the current buffer. Use "$"
- to refer to the last line in buffer {expr}.
+ to refer to the last line in buffer {buf}.
Can also be used as a |method|: >
GetBuffer()->deletebufline(1)
@@ -4307,10 +4311,10 @@
display an error message.
-echoraw({expr}) *echoraw()*
- Output {expr} as-is, including unprintable characters. This
- can be used to output a terminal code. For example, to disable
- modifyOtherKeys: >
+echoraw({string}) *echoraw()*
+ Output {string} as-is, including unprintable characters.
+ This can be used to output a terminal code. For example, to
+ disable modifyOtherKeys: >
call echoraw(&t_TE)
< and to enable it again: >
call echoraw(&t_TI)
@@ -4551,6 +4555,7 @@
{expr} must be a literal string. *E1232*
Can only be used in a |:def| function. *E1233*
+ This does not work to check for arguments or local variables.
exp({expr}) *exp()*
@@ -4569,9 +4574,9 @@
{only available when compiled with the |+float| feature}
-expand({expr} [, {nosuf} [, {list}]]) *expand()*
- Expand wildcards and the following special keywords in {expr}.
- 'wildignorecase' applies.
+expand({string} [, {nosuf} [, {list}]]) *expand()*
+ Expand wildcards and the following special keywords in
+ {string}. 'wildignorecase' applies.
If {list} is given and it is |TRUE|, a List will be returned.
Otherwise the result is a String and when there are several
@@ -4580,12 +4585,12 @@
file name contains a space]
If the expansion fails, the result is an empty string. A name
- for a non-existing file is not included, unless {expr} does
+ for a non-existing file is not included, unless {string} does
not start with '%', '#' or '<', see below.
- When {expr} starts with '%', '#' or '<', the expansion is done
- like for the |cmdline-special| variables with their associated
- modifiers. Here is a short overview:
+ When {string} starts with '%', '#' or '<', the expansion is
+ done like for the |cmdline-special| variables with their
+ associated modifiers. Here is a short overview:
% current file name
# alternate file name
@@ -4636,7 +4641,7 @@
buffer with no name, results in the current directory, with a
'/' added.
- When {expr} does not start with '%', '#' or '<', it is
+ When {string} does not start with '%', '#' or '<', it is
expanded like a file name is expanded on the command line.
'suffixes' and 'wildignore' are used, unless the optional
{nosuf} argument is given and it is |TRUE|.
@@ -4660,11 +4665,12 @@
Can also be used as a |method|: >
Getpattern()->expand()
-expandcmd({expr}) *expandcmd()*
- Expand special items in {expr} like what is done for an Ex
- command such as `:edit`. This expands special keywords, like
- with |expand()|, and environment variables, anywhere in
- {expr}. "~user" and "~/path" are only expanded at the start.
+expandcmd({string}) *expandcmd()*
+ Expand special items in String {string} like what is done for
+ an Ex command such as `:edit`. This expands special keywords,
+ like with |expand()|, and environment variables, anywhere in
+ {string}. "~user" and "~/path" are only expanded at the
+ start.
Returns the expanded string. Example: >
:echo expandcmd('make %<.o')
@@ -5083,8 +5089,8 @@
Get the full command name from a short abbreviated command
name; see |20.2| for details on command abbreviations.
- {name} may start with a `:` and can include a [range], these
- are skipped and not returned.
+ The string argument {name} may start with a `:` and can
+ include a [range], these are skipped and not returned.
Returns an empty string if a command doesn't exist or if it's
ambiguous (for user-defined functions).
@@ -5240,7 +5246,7 @@
myfunc->get(what)
<
*getbufinfo()*
-getbufinfo([{expr}])
+getbufinfo([{buf}])
getbufinfo([{dict}])
Get information about buffers as a List of Dictionaries.
@@ -5254,8 +5260,8 @@
bufloaded include only loaded buffers.
bufmodified include only modified buffers.
- Otherwise, {expr} specifies a particular buffer to return
- information for. For the use of {expr}, see |bufname()|
+ Otherwise, {buf} specifies a particular buffer to return
+ information for. For the use of {buf}, see |bufname()|
above. If the buffer is found the returned List has one item.
Otherwise the result is an empty list.
@@ -5314,12 +5320,12 @@
<
*getbufline()*
-getbufline({expr}, {lnum} [, {end}])
+getbufline({buf}, {lnum} [, {end}])
Return a |List| with the lines starting from {lnum} to {end}
- (inclusive) in the buffer {expr}. If {end} is omitted, a
+ (inclusive) in the buffer {buf}. If {end} is omitted, a
|List| with only the line {lnum} is returned.
- For the use of {expr}, see |bufname()| above.
+ For the use of {buf}, see |bufname()| above.
For {lnum} and {end} "$" can be used for the last line of the
buffer. Otherwise a number must be used.
@@ -5341,10 +5347,11 @@
< Can also be used as a |method|: >
GetBufnr()->getbufline(lnum)
-getbufvar({expr}, {varname} [, {def}]) *getbufvar()*
+getbufvar({buf}, {varname} [, {def}]) *getbufvar()*
The result is the value of option or local buffer variable
- {varname} in buffer {expr}. Note that the name without "b:"
+ {varname} in buffer {buf}. Note that the name without "b:"
must be used.
+ The {varname} argument is a string.
When {varname} is empty returns a |Dictionary| with all the
buffer-local variables.
When {varname} is equal to "&" returns a |Dictionary| with all
@@ -5354,7 +5361,7 @@
This also works for a global or buffer-local option, but it
doesn't work for a global variable, window-local variable or
window-local option.
- For the use of {expr}, see |bufname()| above.
+ For the use of {buf}, see |bufname()| above.
When the buffer or variable doesn't exist {def} or an empty
string is returned, there is no error message.
Examples: >
@@ -5364,9 +5371,9 @@
< Can also be used as a |method|: >
GetBufnr()->getbufvar(varname)
<
-getchangelist([{expr}]) *getchangelist()*
- Returns the |changelist| for the buffer {expr}. For the use
- of {expr}, see |bufname()| above. If buffer {expr} doesn't
+getchangelist([{buf}]) *getchangelist()*
+ Returns the |changelist| for the buffer {buf}. For the use
+ of {buf}, see |bufname()| above. If buffer {buf} doesn't
exist, an empty list is returned.
The returned list contains two entries: a list with the change
@@ -5376,7 +5383,7 @@
col column number
coladd column offset for 'virtualedit'
lnum line number
- If buffer {expr} is the current buffer, then the current
+ If buffer {buf} is the current buffer, then the current
position refers to the position in the list. For other
buffers, it is set to the length of the list.
@@ -5481,9 +5488,9 @@
*getcharpos()*
getcharpos({expr})
- Get the position for {expr}. Same as |getpos()| but the column
- number in the returned List is a character index instead of
- a byte index.
+ Get the position for String {expr}. Same as |getpos()| but the
+ column number in the returned List is a character index
+ instead of a byte index.
If |getpos()| returns a very large column number, such as
2147483647, then getcharpos() will return the character index
of the last character.
@@ -5569,9 +5576,9 @@
when not in the command-line window.
getcompletion({pat}, {type} [, {filtered}]) *getcompletion()*
- Return a list of command-line completion matches. {type}
- specifies what for. The following completion types are
- supported:
+ Return a list of command-line completion matches. The String
+ {type} argument specifies what for. The following completion
+ types are supported:
arglist file names in argument list
augroup autocmd groups
@@ -5708,8 +5715,11 @@
GetWinnr()->getcwd()
getenv({name}) *getenv()*
- Return the value of environment variable {name}.
- When the variable does not exist |v:null| is returned. That
+ Return the value of environment variable {name}. The {name}
+ argument is a string, without a leading '$'. Example: >
+ myHome = getenv('HOME')
+
+< When the variable does not exist |v:null| is returned. That
is different from a variable set to an empty string, although
some systems interpret the empty value as the variable being
deleted. See also |expr-env|.
@@ -5721,8 +5731,8 @@
Without an argument returns the name of the normal font being
used. Like what is used for the Normal highlight group
|hl-Normal|.
- With an argument a check is done whether {name} is a valid
- font name. If not then an empty string is returned.
+ With an argument a check is done whether String {name} is a
+ valid font name. If not then an empty string is returned.
Otherwise the actual font name is returned, or {name} if the
GUI does not support obtaining the real name.
Only works when the GUI is running, thus not in your vimrc or
@@ -5883,12 +5893,12 @@
:echo getloclist(5, {'filewinid': 0})
-getmarklist([{expr}]) *getmarklist()*
- Without the {expr} argument returns a |List| with information
+getmarklist([{buf}]) *getmarklist()*
+ Without the {buf} argument returns a |List| with information
about all the global marks. |mark|
- If the optional {expr} argument is specified, returns the
- local marks defined in buffer {expr}. For the use of {expr},
+ If the optional {buf} argument is specified, returns the
+ local marks defined in buffer {buf}. For the use of {buf},
see |bufname()|.
Each item in the returned List is a |Dict| with the following:
@@ -5962,8 +5972,8 @@
exits.
*getpos()*
-getpos({expr}) Get the position for {expr}. For possible values of {expr}
- see |line()|. For getting the cursor position see
+getpos({expr}) Get the position for String {expr}. For possible values of
+ {expr} see |line()|. For getting the cursor position see
|getcurpos()|.
The result is a |List| with four numbers:
[bufnum, lnum, col, off]
@@ -6097,6 +6107,7 @@
{regname}. Example: >
:let cliptext = getreg('*')
< When {regname} was not set the result is an empty string.
+ The {regname} argument is a string.
getreg('=') returns the last evaluated value of the expression
register. (For use in maps.)
@@ -6136,8 +6147,8 @@
which is the register that got the
deleted text.
- If {regname} is invalid or not set, an empty Dictionary
- will be returned.
+ The {regname} argument is a string. If {regname} is invalid
+ or not set, an empty Dictionary will be returned.
If {regname} is not specified, |v:register| is used.
The returned Dictionary can be passed to |setreg()|.
In |Vim9-script| {regname} must be one character.
@@ -6153,7 +6164,8 @@
"<CTRL-V>{width}" for |blockwise-visual| text
"" for an empty or unknown register
<CTRL-V> is one character with value 0x16.
- If {regname} is not specified, |v:register| is used.
+ The {regname} argument is a string. If {regname} is not
+ specified, |v:register| is used.
In |Vim9-script| {regname} must be one character.
Can also be used as a |method|: >
@@ -6179,8 +6191,8 @@
Get the value of a tab-local variable {varname} in tab page
{tabnr}. |t:var|
Tabs are numbered starting with one.
- When {varname} is empty a dictionary with all tab-local
- variables is returned.
+ The {varname} argument is a string. When {varname} is empty a
+ dictionary with all tab-local variables is returned.
Note that the name without "t:" must be used.
When the tab or variable doesn't exist {def} or an empty
string is returned, there is no error message.
@@ -6191,8 +6203,8 @@
gettabwinvar({tabnr}, {winnr}, {varname} [, {def}]) *gettabwinvar()*
Get the value of window-local variable {varname} in window
{winnr} in tab page {tabnr}.
- When {varname} is empty a dictionary with all window-local
- variables is returned.
+ The {varname} argument is a string. When {varname} is empty a
+ dictionary with all window-local variables is returned.
When {varname} is equal to "&" get the values of all
window-local options in a |Dictionary|.
Otherwise, when {varname} starts with "&" get the value of a
@@ -6250,7 +6262,7 @@
gettext({text}) *gettext()*
- Translate {text} if possible.
+ Translate String {text} if possible.
This is mainly for use in the distributed Vim scripts. When
generating message translations the {text} is extracted by
xgettext, the translator can add the translated message in the
@@ -6383,14 +6395,14 @@
Can also be used as a |method|: >
GetExpr()->glob()
-glob2regpat({expr}) *glob2regpat()*
+glob2regpat({string}) *glob2regpat()*
Convert a file pattern, as used by glob(), into a search
pattern. The result can be used to match with a string that
is a file name. E.g. >
if filename =~ glob2regpat('Make*.mak')
< This is equivalent to: >
if filename =~ '^Make.*\.mak$'
-< When {expr} is an empty string the result is "^$", match an
+< When {string} is an empty string the result is "^$", match an
empty string.
Note that the result depends on the system. On MS-Windows
a backslash usually means a path separator.
@@ -6399,8 +6411,8 @@
GetExpr()->glob2regpat()
< *globpath()*
globpath({path}, {expr} [, {nosuf} [, {list} [, {alllinks}]]])
- Perform glob() for {expr} on all directories in {path} and
- concatenate the results. Example: >
+ Perform glob() for String {expr} on all directories in {path}
+ and concatenate the results. Example: >
:echo globpath(&rtp, "syntax/c.vim")
<
{path} is a comma-separated list of directory names. Each
@@ -6467,7 +6479,8 @@
has_key({dict}, {key}) *has_key()*
The result is a Number, which is TRUE if |Dictionary| {dict}
- has an entry with key {key}. FALSE otherwise.
+ has an entry with key {key}. FALSE otherwise. The {key}
+ argument is a string.
Can also be used as a |method|: >
mydict->has_key(key)
@@ -6514,6 +6527,7 @@
that contains {what} in somewhere in the rhs (what it is
mapped to) and this mapping exists in one of the modes
indicated by {mode}.
+ The arguments {what} and {mode} are strings.
When {abbr} is there and it is |TRUE| use abbreviations
instead of mappings. Don't forget to specify Insert and/or
Command-line mode.
@@ -6662,8 +6676,8 @@
which Vim is currently running. Machine names greater than
256 characters long are truncated.
-iconv({expr}, {from}, {to}) *iconv()*
- The result is a String, which is the text {expr} converted
+iconv({string}, {from}, {to}) *iconv()*
+ The result is a String, which is the text {string} converted
from encoding {from} to encoding {to}.
When the conversion completely fails an empty string is
returned. When some characters could not be converted they
@@ -6894,8 +6908,9 @@
islocked({expr}) *islocked()* *E786*
The result is a Number, which is |TRUE| when {expr} is the
name of a locked variable.
- {expr} must be the name of a variable, |List| item or
- |Dictionary| entry, not the variable itself! Example: >
+ The string argument {expr} must be the name of a variable,
+ |List| item or |Dictionary| entry, not the variable itself!
+ Example: >
:let alist = [0, ['a', 'b'], 2, 3]
:lockvar 1 alist
:echo islocked('alist') " 1
@@ -7128,7 +7143,8 @@
line({expr} [, {winid}]) *line()*
The result is a Number, which is the line number of the file
- position given with {expr}. The accepted positions are:
+ position given with {expr}. The {expr} argument is a string.
+ The accepted positions are:
. the cursor position
$ the last line in the current buffer
'x position of mark x (if the mark is not set, 0 is
@@ -8106,8 +8122,8 @@
:let bits = bits->or(0x80)
-pathshorten({expr} [, {len}]) *pathshorten()*
- Shorten directory names in the path {expr} and return the
+pathshorten({path} [, {len}]) *pathshorten()*
+ Shorten directory names in the path {path} and return the
result. The tail, the file name, is kept as-is. The other
components in the path are reduced to {len} letters in length.
If {len} is omitted or smaller than 1 then 1 is used (single
@@ -8829,6 +8845,7 @@
remote_foreground({server}) *remote_foreground()*
Move the Vim server with the name {server} to the foreground.
+ The {server} argument is a string.
This works like: >
remote_expr({server}, "foreground()")
< Except that on Win32 systems the client does the work, to work
@@ -9512,8 +9529,8 @@
Example: >
:echo serverlist()
<
-setbufline({expr}, {lnum}, {text}) *setbufline()*
- Set line {lnum} to {text} in buffer {expr}. This works like
+setbufline({buf}, {lnum}, {text}) *setbufline()*
+ Set line {lnum} to {text} in buffer {buf}. This works like
|setline()| for the specified buffer.
This function works only for loaded buffers. First call
@@ -9526,13 +9543,13 @@
to set multiple lines. If the list extends below the last
line then those lines are added.
- For the use of {expr}, see |bufname()| above.
+ For the use of {buf}, see |bufname()| above.
{lnum} is used like with |setline()|.
When {lnum} is just below the last line the {text} will be
added below the last line.
- When {expr} is not a valid buffer, the buffer is not loaded or
+ When {buf} is not a valid buffer, the buffer is not loaded or
{lnum} is not valid then 1 is returned. On success 0 is
returned.
@@ -9540,13 +9557,14 @@
third argument: >
GetText()->setbufline(buf, lnum)
-setbufvar({expr}, {varname}, {val}) *setbufvar()*
- Set option or local variable {varname} in buffer {expr} to
+setbufvar({buf}, {varname}, {val}) *setbufvar()*
+ Set option or local variable {varname} in buffer {buf} to
{val}.
This also works for a global or local window option, but it
doesn't work for a global or local window variable.
For a local window option the global value is unchanged.
- For the use of {expr}, see |bufname()| above.
+ For the use of {buf}, see |bufname()| above.
+ The {varname} argument is a string.
Note that the variable name without "b:" must be used.
Examples: >
:call setbufvar(1, "&mod", 1)
@@ -9653,8 +9671,10 @@
setenv({name}, {val}) *setenv()*
- Set environment variable {name} to {val}.
- When {val} is |v:null| the environment variable is deleted.
+ Set environment variable {name} to {val}. Example: >
+ call setenv('HOME', '/home/myhome')
+
+< When {val} is |v:null| the environment variable is deleted.
See also |expr-env|.
Can also be used as a |method|, the base is passed as the
@@ -9746,7 +9766,7 @@
<
*setpos()*
setpos({expr}, {list})
- Set the position for {expr}. Possible values:
+ Set the position for String {expr}. Possible values:
. the cursor
'x mark x
@@ -9914,7 +9934,8 @@
setreg({regname}, {value} [, {options}])
Set the register {regname} to {value}.
If {regname} is "" or "@", the unnamed register '"' is used.
- In |Vim9-script| {regname} must be one character.
+ The {regname} argument is a string. In |Vim9-script|
+ {regname} must be one character.
{value} may be any value returned by |getreg()| or
|getreginfo()|, including a |List| or |Dict|.
@@ -9972,6 +9993,7 @@
settabvar({tabnr}, {varname}, {val}) *settabvar()*
Set tab-local variable {varname} to {val} in tab page {tabnr}.
|t:var|
+ The {varname} argument is a string.
Note that autocommands are blocked, side effects may not be
triggered, e.g. when setting 'filetype'.
Note that the variable name without "t:" must be used.
@@ -10244,12 +10266,14 @@
func MyCompare(i1, i2)
return a:i1 == a:i2 ? 0 : a:i1 > a:i2 ? 1 : -1
endfunc
- let sortedlist = sort(mylist, "MyCompare")
+ eval mylist->sort("MyCompare")
< A shorter compare version for this specific simple case, which
ignores overflow: >
func MyCompare(i1, i2)
return a:i1 - a:i2
endfunc
+< For a simple expression you can use a lambda: >
+ eval mylist->sort({i1, i2 -> i1 - i2})
<
sound_clear() *sound_clear()*
Stop playing all sounds.
@@ -10378,8 +10402,8 @@
Can also be used as a |method|: >
GetWord()->spellsuggest()
-split({expr} [, {pattern} [, {keepempty}]]) *split()*
- Make a |List| out of {expr}. When {pattern} is omitted or
+split({string} [, {pattern} [, {keepempty}]]) *split()*
+ Make a |List| out of {string}. When {pattern} is omitted or
empty each white-separated sequence of characters becomes an
item.
Otherwise the string is split where {pattern} matches,
@@ -10472,13 +10496,16 @@
recursiveness up to "ccc")
s screen has scrolled for messages
-str2float({expr}) *str2float()*
- Convert String {expr} to a Float. This mostly works the same
- as when using a floating point number in an expression, see
- |floating-point-format|. But it's a bit more permissive.
+str2float({string} [, {quoted}]) *str2float()*
+ Convert String {string} to a Float. This mostly works the
+ same as when using a floating point number in an expression,
+ see |floating-point-format|. But it's a bit more permissive.
E.g., "1e40" is accepted, while in an expression you need to
write "1.0e40". The hexadecimal form "0x123" is also
accepted, but not others, like binary or octal.
+ When {quoted} is present and non-zero then embedded single
+ quotes before the dot are ignored, thus "1'000.0" is a
+ thousand.
Text after the number is silently ignored.
The decimal point is always '.', no matter what the locale is
set to. A comma ends the number: "12,345.67" is converted to
@@ -10491,9 +10518,9 @@
<
{only available when compiled with the |+float| feature}
-str2list({expr} [, {utf8}]) *str2list()*
+str2list({string} [, {utf8}]) *str2list()*
Return a list containing the number values which represent
- each character in String {expr}. Examples: >
+ each character in String {string}. Examples: >
str2list(" ") returns [32]
str2list("ABC") returns [65, 66, 67]
< |list2str()| does the opposite.
@@ -10508,8 +10535,8 @@
GetString()->str2list()
-str2nr({expr} [, {base} [, {quoted}]]) *str2nr()*
- Convert string {expr} to a number.
+str2nr({string} [, {base} [, {quoted}]]) *str2nr()*
+ Convert string {string} to a number.
{base} is the conversion base, it can be 2, 8, 10 or 16.
When {quoted} is present and non-zero then embedded single
quotes are ignored, thus "1'000'000" is a million.
@@ -10529,9 +10556,9 @@
GetText()->str2nr()
-strcharlen({expr}) *strcharlen()*
+strcharlen({string}) *strcharlen()*
The result is a Number, which is the number of characters
- in String {expr}. Composing characters are ignored.
+ in String {string}. Composing characters are ignored.
|strchars()| can count the number of characters, counting
composing characters separately.
@@ -10558,9 +10585,9 @@
GetText()->strcharpart(5)
-strchars({expr} [, {skipcc}]) *strchars()*
+strchars({string} [, {skipcc}]) *strchars()*
The result is a Number, which is the number of characters
- in String {expr}.
+ in String {string}.
When {skipcc} is omitted or zero, composing characters are
counted separately.
When {skipcc} set to 1, Composing characters are ignored.
@@ -10587,16 +10614,16 @@
Can also be used as a |method|: >
GetText()->strchars()
-strdisplaywidth({expr} [, {col}]) *strdisplaywidth()*
+strdisplaywidth({string} [, {col}]) *strdisplaywidth()*
The result is a Number, which is the number of display cells
- String {expr} occupies on the screen when it starts at {col}
+ String {string} occupies on the screen when it starts at {col}
(first column is zero). When {col} is omitted zero is used.
Otherwise it is the screen column where to start. This
matters for Tab characters.
The option settings of the current window are used. This
matters for anything that's displayed differently, such as
'tabstop' and 'display'.
- When {expr} contains characters with East Asian Width Class
+ When {string} contains characters with East Asian Width Class
Ambiguous, this function's return value depends on 'ambiwidth'.
Also see |strlen()|, |strwidth()| and |strchars()|.
@@ -10678,9 +10705,10 @@
< Also see |strtrans()|.
- *strlen()*
-strlen({expr}) The result is a Number, which is the length of the String
- {expr} in bytes.
+
+strlen({string}) *strlen()*
+ The result is a Number, which is the length of the String
+ {string} in bytes.
If the argument is a Number it is first converted to a String.
For other types an error is given.
If you want to count the number of multibyte characters use
@@ -10765,8 +10793,8 @@
Can also be used as a |method|: >
GetHaystack()->strridx(needle)
-strtrans({expr}) *strtrans()*
- The result is a String, which is {expr} with all unprintable
+strtrans({string}) *strtrans()*
+ The result is a String, which is {string} with all unprintable
characters translated into printable characters |'isprint'|.
Like they are shown in a window. Example: >
echo strtrans(@a)
@@ -10776,11 +10804,11 @@
Can also be used as a |method|: >
GetString()->strtrans()
-strwidth({expr}) *strwidth()*
+strwidth({string}) *strwidth()*
The result is a Number, which is the number of display cells
- String {expr} occupies. A Tab character is counted as one
+ String {string} occupies. A Tab character is counted as one
cell, alternatively use |strdisplaywidth()|.
- When {expr} contains characters with East Asian Width Class
+ When {string} contains characters with East Asian Width Class
Ambiguous, this function's return value depends on 'ambiwidth'.
Also see |strlen()|, |strdisplaywidth()| and |strchars()|.
@@ -10816,10 +10844,10 @@
Can also be used as a |method|: >
GetNr()->submatch()
-substitute({expr}, {pat}, {sub}, {flags}) *substitute()*
- The result is a String, which is a copy of {expr}, in which
+substitute({string}, {pat}, {sub}, {flags}) *substitute()*
+ The result is a String, which is a copy of {string}, in which
the first match of {pat} is replaced with {sub}.
- When {flags} is "g", all matches of {pat} in {expr} are
+ When {flags} is "g", all matches of {pat} in {string} are
replaced. Otherwise {flags} should be "".
This works like the ":substitute" command (without any flags).
@@ -10835,7 +10863,7 @@
|sub-replace-special|. For example, to replace something with
"\n" (two characters), use "\\\\n" or '\\n'.
- When {pat} does not match in {expr}, {expr} is returned
+ When {pat} does not match in {string}, {string} is returned
unmodified.
Example: >
@@ -10882,12 +10910,12 @@
Can also be used as a |method|: >
GetFilename()->swapinfo()
-swapname({expr}) *swapname()*
+swapname({buf}) *swapname()*
The result is the swap file path of the buffer {expr}.
- For the use of {expr}, see |bufname()| above.
- If buffer {expr} is the current buffer, the result is equal to
+ For the use of {buf}, see |bufname()| above.
+ If buffer {buf} is the current buffer, the result is equal to
|:swapname| (unless there is no swap file).
- If buffer {expr} has no swap file, returns an empty string.
+ If buffer {buf} has no swap file, returns an empty string.
Can also be used as a |method|: >
GetBufname()->swapname()
diff --git a/runtime/doc/if_lua.txt b/runtime/doc/if_lua.txt
index f3bb0ce..799ef73 100644
--- a/runtime/doc/if_lua.txt
+++ b/runtime/doc/if_lua.txt
@@ -1,4 +1,4 @@
-*if_lua.txt* For Vim version 8.2. Last change: 2021 Apr 07
+*if_lua.txt* For Vim version 8.2. Last change: 2021 Aug 06
VIM REFERENCE MANUAL by Luis Carvalho
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index 3e77ee7..7f836e8 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt* For Vim version 8.2. Last change: 2021 Jul 05
+*insert.txt* For Vim version 8.2. Last change: 2021 Jul 31
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1194,7 +1194,7 @@
list! Call |complete_check()| now and then to allow the user to press a key
while still searching for matches. Stop searching when it returns non-zero.
- *E839* *E840*
+ *E840*
The function is allowed to move the cursor, it is restored afterwards.
The function is not allowed to move to another window or delete text.
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index 5723992..952abd6 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt* For Vim version 8.2. Last change: 2021 Aug 01
+*map.txt* For Vim version 8.2. Last change: 2021 Aug 05
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/message.txt b/runtime/doc/message.txt
index fbf4ce2..2dc7535 100644
--- a/runtime/doc/message.txt
+++ b/runtime/doc/message.txt
@@ -1,4 +1,4 @@
-*message.txt* For Vim version 8.2. Last change: 2020 Dec 29
+*message.txt* For Vim version 8.2. Last change: 2021 Jul 31
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -774,6 +774,14 @@
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
+
+These happen when a value or expression is used that does not have the
+expected type.
==============================================================================
3. Messages *messages*
diff --git a/runtime/doc/popup.txt b/runtime/doc/popup.txt
index de60920..c582d4c 100644
--- a/runtime/doc/popup.txt
+++ b/runtime/doc/popup.txt
@@ -1,4 +1,4 @@
-*popup.txt* For Vim version 8.2. Last change: 2021 Feb 21
+*popup.txt* For Vim version 8.2. Last change: 2021 Aug 03
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -904,6 +904,8 @@
cursor keys select another entry
Tab accept current suggestion
+When CTRL-C is pressed the popup is closed, the filter will not be invoked.
+
A mouse click arrives as <LeftMouse>. The coordinates can be obtained with
|getmousepos()|.
diff --git a/runtime/doc/sign.txt b/runtime/doc/sign.txt
index 66f8cc6..64f54db 100644
--- a/runtime/doc/sign.txt
+++ b/runtime/doc/sign.txt
@@ -451,13 +451,13 @@
Can also be used as a |method|: >
GetSignList()->sign_getdefined()
-sign_getplaced([{expr} [, {dict}]]) *sign_getplaced()*
+sign_getplaced([{buf} [, {dict}]]) *sign_getplaced()*
Return a list of signs placed in a buffer or all the buffers.
This is similar to the |:sign-place-list| command.
- If the optional buffer name {expr} is specified, then only the
+ If the optional buffer name {buf} is specified, then only the
list of signs placed in that buffer is returned. For the use
- of {expr}, see |bufname()|. The optional {dict} can contain
+ of {buf}, see |bufname()|. The optional {dict} can contain
the following entries:
group select only signs in this group
id select sign with this identifier
@@ -515,12 +515,12 @@
GetBufname()->sign_getplaced()
<
*sign_jump()*
-sign_jump({id}, {group}, {expr})
- Open the buffer {expr} or jump to the window that contains
- {expr} and position the cursor at sign {id} in group {group}.
+sign_jump({id}, {group}, {buf})
+ Open the buffer {buf} or jump to the window that contains
+ {buf} and position the cursor at sign {id} in group {group}.
This is similar to the |:sign-jump| command.
- For the use of {expr}, see |bufname()|.
+ For the use of {buf}, see |bufname()|.
Returns the line number of the sign. Returns -1 if the
arguments are invalid.
@@ -533,9 +533,9 @@
GetSignid()->sign_jump()
<
*sign_place()*
-sign_place({id}, {group}, {name}, {expr} [, {dict}])
+sign_place({id}, {group}, {name}, {buf} [, {dict}])
Place the sign defined as {name} at line {lnum} in file or
- buffer {expr} and assign {id} and {group} to sign. This is
+ buffer {buf} and assign {id} and {group} to sign. This is
similar to the |:sign-place| command.
If the sign identifier {id} is zero, then a new identifier is
@@ -546,12 +546,12 @@
and |sign-group| for more information.
{name} refers to a defined sign.
- {expr} refers to a buffer name or number. For the accepted
+ {buf} refers to a buffer name or number. For the accepted
values, see |bufname()|.
The optional {dict} argument supports the following entries:
lnum line number in the file or buffer
- {expr} where the sign is to be placed.
+ {buf} where the sign is to be placed.
For the accepted values, see |line()|.
priority priority of the sign. See
|sign-priority| for more information.
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 322a222..3682a40 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -2307,6 +2307,7 @@
:command-nargs map.txt /*:command-nargs*
:command-range map.txt /*:command-range*
:command-register map.txt /*:command-register*
+:command-repl map.txt /*:command-repl*
:command-verbose map.txt /*:command-verbose*
:comment cmdline.txt /*:comment*
:comp quickfix.txt /*:comp*
@@ -3983,6 +3984,9 @@
E1214 eval.txt /*E1214*
E122 eval.txt /*E122*
E123 eval.txt /*E123*
+E1231 map.txt /*E1231*
+E1232 eval.txt /*E1232*
+E1233 eval.txt /*E1233*
E124 eval.txt /*E124*
E125 eval.txt /*E125*
E126 eval.txt /*E126*
@@ -4740,7 +4744,7 @@
E836 if_pyth.txt /*E836*
E837 if_pyth.txt /*E837*
E838 netbeans.txt /*E838*
-E839 insert.txt /*E839*
+E839 message.txt /*E839*
E84 windows.txt /*E84*
E840 insert.txt /*E840*
E841 map.txt /*E841*
@@ -4793,6 +4797,7 @@
E886 starting.txt /*E886*
E887 if_pyth.txt /*E887*
E888 pattern.txt /*E888*
+E889 message.txt /*E889*
E89 message.txt /*E89*
E890 syntax.txt /*E890*
E891 eval.txt /*E891*
@@ -4835,7 +4840,7 @@
E925 quickfix.txt /*E925*
E926 quickfix.txt /*E926*
E927 eval.txt /*E927*
-E928 eval.txt /*E928*
+E928 message.txt /*E928*
E929 starting.txt /*E929*
E93 windows.txt /*E93*
E930 eval.txt /*E930*
@@ -5165,6 +5170,10 @@
Tcl if_tcl.txt /*Tcl*
TermChanged autocmd.txt /*TermChanged*
TermResponse autocmd.txt /*TermResponse*
+TermdebugStartPost terminal.txt /*TermdebugStartPost*
+TermdebugStartPre terminal.txt /*TermdebugStartPre*
+TermdebugStopPost terminal.txt /*TermdebugStopPost*
+TermdebugStopPre terminal.txt /*TermdebugStopPre*
Terminal-Job terminal.txt /*Terminal-Job*
Terminal-Normal terminal.txt /*Terminal-Normal*
Terminal-mode terminal.txt /*Terminal-mode*
@@ -6312,6 +6321,7 @@
exepath() eval.txt /*exepath()*
exim starting.txt /*exim*
exists() eval.txt /*exists()*
+exists_compiled() eval.txt /*exists_compiled()*
exiting starting.txt /*exiting*
exiting-variable eval.txt /*exiting-variable*
exp() eval.txt /*exp()*
@@ -6942,6 +6952,7 @@
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: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*
g:tex_conceal syntax.txt /*g:tex_conceal*
@@ -7770,6 +7781,7 @@
lua-list if_lua.txt /*lua-list*
lua-luaeval if_lua.txt /*lua-luaeval*
lua-vim if_lua.txt /*lua-vim*
+lua-vim-variables if_lua.txt /*lua-vim-variables*
lua-window if_lua.txt /*lua-window*
lua.vim syntax.txt /*lua.vim*
luaeval() eval.txt /*luaeval()*
@@ -9646,6 +9658,7 @@
termdebug-commands terminal.txt /*termdebug-commands*
termdebug-communication terminal.txt /*termdebug-communication*
termdebug-customizing terminal.txt /*termdebug-customizing*
+termdebug-events terminal.txt /*termdebug-events*
termdebug-example terminal.txt /*termdebug-example*
termdebug-prompt terminal.txt /*termdebug-prompt*
termdebug-starting terminal.txt /*termdebug-starting*
@@ -10176,7 +10189,12 @@
vim-script-intro usr_41.txt /*vim-script-intro*
vim-use intro.txt /*vim-use*
vim-variable eval.txt /*vim-variable*
+vim.b if_lua.txt /*vim.b*
+vim.g if_lua.txt /*vim.g*
+vim.t if_lua.txt /*vim.t*
+vim.v if_lua.txt /*vim.v*
vim.vim syntax.txt /*vim.vim*
+vim.w if_lua.txt /*vim.w*
vim7 version7.txt /*vim7*
vim8 version8.txt /*vim8*
vim9 vim9.txt /*vim9*
@@ -10189,6 +10207,7 @@
vim9-differences vim9.txt /*vim9-differences*
vim9-export vim9.txt /*vim9-export*
vim9-final vim9.txt /*vim9-final*
+vim9-function-defined-later vim9.txt /*vim9-function-defined-later*
vim9-gotchas vim9.txt /*vim9-gotchas*
vim9-ignored-argument vim9.txt /*vim9-ignored-argument*
vim9-import vim9.txt /*vim9-import*
diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt
index 5aec3a5..15e9357 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 Feb 13
+*terminal.txt* For Vim version 8.2. Last change: 2021 Aug 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1352,6 +1352,33 @@
*:Asm* jump to the window with the disassembly, create it if there
isn't one
+Events ~
+ *termdebug-events*
+Four autocommands can be used: >
+ au User TermdebugStartPre echomsg 'debugging starting'
+ au User TermdebugStartPost echomsg 'debugging started'
+ au User TermdebugStopPre echomsg 'debugging stopping'
+ au User TermdebugStopPost echomsg 'debugging stopped'
+<
+ *TermdebugStartPre*
+TermdebugStartPre Before starting debugging.
+ Not triggered if the debugger is already
+ running or |g:termdebugger| cannot be
+ executed.
+ *TermdebugStartPost*
+TermdebugStartPost After debugging has initialized.
+ If a "!" bang is passed to `:Termdebug` or
+ `:TermdebugCommand` the event is triggered
+ before running the provided command in gdb.
+ *TermdebugStopPre*
+TermdebugStopPre Before debugging ends, when gdb is terminated,
+ most likely after issuing a "quit" command in
+ the gdb window.
+ *TermdebugStopPost*
+TermdebugStopPost After debugging has ended, gdb-related windows
+ are closed, debug buffers wiped out and
+ the state before the debugging was restored.
+
Prompt mode ~
*termdebug-prompt*
@@ -1396,11 +1423,11 @@
Customizing ~
-GDB command *termdebug-customizing*
-
-To change the name of the gdb command, set the "termdebugger" variable before
+GDB command *termdebug-customizing*
+ *g:termdebugger*
+To change the name of the gdb command, set the "g:termdebugger" variable before
invoking `:Termdebug`: >
- let termdebugger = "mygdb"
+ let g:termdebugger = "mygdb"
< *gdb-version*
Only debuggers fully compatible with gdb will work. Vim uses the GDB/MI
interface. The "new-ui" command requires gdb version 7.12 or later. if you
diff --git a/runtime/doc/testing.txt b/runtime/doc/testing.txt
index be2896e..18f6b19 100644
--- a/runtime/doc/testing.txt
+++ b/runtime/doc/testing.txt
@@ -446,7 +446,7 @@
assert_report({msg}) *assert_report()*
- Report a test failure directly, using {msg}.
+ Report a test failure directly, using String {msg}.
Always returns one.
Can also be used as a |method|: >
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 05508ab..e1e530b 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt* For Vim version 8.2. Last change: 2021 Jul 26
+*todo.txt* For Vim version 8.2. Last change: 2021 Aug 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -38,14 +38,9 @@
*known-bugs*
-------------------- Known bugs and current work -----------------------
-Try out callgrind with kcachegrind.
-
Vim9 - Make everything work:
-- Check TODO items in vim9compile.c and vim9execute.c
- use CheckLegacyAndVim9Success(lines) in many more places
- This doesn't work - Test_list_assign():
- var l = [0]
- l[:] = [1, 2]
+- Check TODO items in vim9compile.c and vim9execute.c
- For builtin functions using tv_get_string*() use check_for_string() to be
more strict about the argument type (not a bool).
done: balloon_()
@@ -60,6 +55,7 @@
defined.
- Unexpected error message when using "var x: any | x.key = 9", because "x" is
given the type number. Can we use VAR_ANY?
+- Check performance with callgrind and kcachegrind.
Once Vim9 is stable:
- Add the "vim9script" feature, can use has('vim9script')
@@ -75,6 +71,8 @@
'foldexpr', 'foldtext', 'printexpr', 'diffexpr', 'patchexpr', 'charconvert',
'balloonexpr', 'includeexpr', 'indentexpr', 'formatexpr'.
Give an error if compilation fails. (#7625)
+ Alternatively: Detect a compiled function call and skip the expression
+ 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"
@@ -235,7 +233,6 @@
test_normal
test_popupwin.35 et al.
test_search_stat
-Using uninitialized value in test_crypt (can't explain why).
Memory leak in test_debugger
Memory leak in test_paste, using XtOpenDisplay several times
OLD:
@@ -291,8 +288,6 @@
glob() and globfile() do not always honor 'wildignorecase'. #8350
globpath() does not use 'wildignorecase' at all?
-":find" incorrectly searches parent directory of path (#8533)
-
Add 'termguiattr' option, use "gui=" attributes in the terminal? Would work
with 'termguicolors'. #1740
@@ -305,9 +300,6 @@
Add an option to not fetch terminal codes in xterm, to avoid flicker when t_Co
changes.
-MS-Windows: instead of "edit with multiple Vims" use "Edit with Vim in
-multiple tabs". #8404
-
When using ":bwipe!" also get rid of references to be buffer, e.g. in the
jumplist and alternate file.
@@ -724,9 +716,6 @@
This modeline throws unexpected errors: (#4165)
vim: syn=nosyntax
-":doau SomeEvent" gives "No matching autocommands". This message doesn't give
-a hint about how to fix it. (#4300)
-
Make balloon_show() work outside of 'balloonexpr'? Users expect it to work:
#2948. (related to #1512?)
Also see #2352, want better control over balloon, perhaps set the position.
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index 93388b2..3a3a0fc 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt* For Vim version 8.2. Last change: 2021 Jul 19
+*usr_41.txt* For Vim version 8.2. Last change: 2021 Aug 08
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt
index 0ea7484..1628e9c 100644
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -1,4 +1,4 @@
-*vim9.txt* For Vim version 8.2. Last change: 2021 Jul 28
+*vim9.txt* For Vim version 8.2. Last change: 2021 Aug 11
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -324,19 +324,19 @@
This is especially useful in a user command: >
command -range Rename {
- | var save = @a
- | @a = 'some expression'
- | echo 'do something with ' .. @a
- | @a = save
- |}
+ var save = @a
+ @a = 'some expression'
+ echo 'do something with ' .. @a
+ @a = save
+ }
And with autocommands: >
au BufWritePre *.go {
- | var save = winsaveview()
- | silent! exe ':%! some formatting command'
- | winrestview(save)
- |}
+ var save = winsaveview()
+ silent! exe ':%! some formatting command'
+ winrestview(save)
+ }
Although using a :def function probably works better.
@@ -351,8 +351,8 @@
`:lockvar` does not work on local variables. Use `:const` and `:final`
instead.
-The `exists()` function does not work on local variables or arguments. These
-are visible at compile time only, not at runtime.
+The `exists()` and `exists_compiled()` functions do not work on local variables
+or arguments.
Variables, functions and function arguments cannot shadow previously defined
or imported variables and functions in the same script file.
@@ -373,6 +373,32 @@
echo GlobalFunc()
The "g:" prefix is not needed for auto-load functions.
+ *vim9-function-defined-later*
+Although global functions can be called without the "g:" prefix, they must
+exist when compiled. By adding the "g:" prefix the function can be defined
+later. Example: >
+ def CallPluginFunc()
+ if exists('g:loaded_plugin')
+ g:PluginFunc()
+ endif
+ enddef
+
+If you would do it like this you get an error at compile time that
+"PluginFunc" does not exist, even when "g:loaded_plugin" does not exist: >
+ def CallPluginFunc()
+ if exists('g:loaded_plugin')
+ PluginFunc() # Error - function not found
+ endif
+ enddef
+
+You can use exists_compiled() to avoid the error, but then the function would
+not be called, even when "g:loaded_plugin" is defined later: >
+ def CallPluginFunc()
+ if exists_compiled('g:loaded_plugin')
+ PluginFunc() # Function may never be called
+ endif
+ enddef
+
Since `&opt = value` is now assigning a value to option "opt", ":&" cannot be
used to repeat a `:substitute` command.
*vim9-unpack-ignore*
@@ -940,7 +966,8 @@
use-feature
endif
enddef
-< *vim9-user-command*
+The `exists_compiled()` function can also be used for this.
+ *vim9-user-command*
Another side effect of compiling a function is that the presence of a user
command is checked at compile time. If the user command is defined later an
error will result. This works: >
@@ -1407,8 +1434,7 @@
- A path not being relative or absolute. This will be found in the
"import" subdirectories of 'runtimepath' entries. The name will usually be
longer and unique, to avoid loading the wrong file.
- Note that "after/import" is not used, unless it is explicitly added in
- 'runtimepath'.
+ Note that "after/import" is not used.
Once a vim9 script file has been imported, the result is cached and used the
next time the same script is imported. It will not be read again.