Update runtime files.
diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt
index c3bacf9..2375683 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 Feb 18
+*builtin.txt* For Vim version 8.2. Last change: 2022 Feb 23
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -854,7 +854,7 @@
:let i = 0
:while i < argc()
: let f = escape(fnameescape(argv(i)), '.')
- : exe 'amenu Arg.' . f . ' :e ' . f . '<CR>'
+ : exe 'amenu Arg.' .. f .. ' :e ' .. f .. '<CR>'
: let i = i + 1
:endwhile
< Without the {nr} argument, or when {nr} is -1, a |List| with
@@ -1134,7 +1134,7 @@
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))
+ echo "A window containing buffer 1 is " .. (bufwinid(1))
<
Only deals with the current tab page.
@@ -1147,7 +1147,7 @@
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))
+ echo "A window containing buffer 1 is " .. (bufwinnr(1))
< The number can be used with |CTRL-W_w| and ":wincmd w"
|:wincmd|.
@@ -1197,7 +1197,7 @@
byteidxcomp({expr}, {nr}) *byteidxcomp()*
Like byteidx(), except that a composing character is counted
as a separate character. Example: >
- let s = 'e' . nr2char(0x301)
+ let s = 'e' .. nr2char(0x301)
echo byteidx(s, 1)
echo byteidxcomp(s, 1)
echo byteidxcomp(s, 2)
@@ -1392,7 +1392,7 @@
col(".") column of cursor
col("$") length of cursor line plus one
col("'t") column of mark t
- col("'" . markname) column of mark markname
+ col("'" .. markname) column of mark markname
< The first column is 1. 0 is returned for an error.
For an uppercase mark the column may actually be in another
buffer.
@@ -1401,7 +1401,7 @@
line. This can be used to obtain the column in Insert mode: >
:imap <F2> <C-O>:let save_ve = &ve<CR>
\<C-O>:set ve=all<CR>
- \<C-O>:echo col(".") . "\n" <Bar>
+ \<C-O>:echo col(".") .. "\n" <Bar>
\let &ve = save_ve<CR>
< Can also be used as a |method|: >
@@ -2247,12 +2247,12 @@
:e extension only
Example: >
- :let &tags = expand("%:p:h") . "/tags"
+ :let &tags = expand("%:p:h") .. "/tags"
< Note that when expanding a string that starts with '%', '#' or
'<', any following text is ignored. This does NOT work: >
:let doesntwork = expand("%:h.bak")
< Use this: >
- :let doeswork = expand("%:h") . ".bak"
+ :let doeswork = expand("%:h") .. ".bak"
< Also note that expanding "<cfile>" and others only returns the
referenced file name without further expansion. If "<cfile>"
is "~/.cshrc", you need to do another expand() to have the
@@ -2633,7 +2633,7 @@
and |:write|). And a "-" by itself (special after |:cd|).
Example: >
:let fname = '+some str%nge|name'
- :exe "edit " . fnameescape(fname)
+ :exe "edit " .. fnameescape(fname)
< results in executing: >
edit \+some\ str\%nge\|name
<
@@ -2814,7 +2814,7 @@
< The Dictionary is only useful when calling a "dict" function.
In that case the {dict} is passed in as "self". Example: >
function Callback() dict
- echo "called for " . self.name
+ echo "called for " .. self.name
endfunction
...
let context = {"name": "example"}
@@ -3013,7 +3013,7 @@
string is returned, there is no error message.
Examples: >
:let bufmodified = getbufvar(1, "&mod")
- :echo "todo myvar = " . getbufvar("todo", "myvar")
+ :echo "todo myvar = " .. getbufvar("todo", "myvar")
< Can also be used as a |method|: >
GetBufnr()->getbufvar(varname)
@@ -3074,9 +3074,9 @@
This example positions the mouse as it would normally happen: >
let c = getchar()
if c == "\<LeftMouse>" && v:mouse_win > 0
- exe v:mouse_win . "wincmd w"
+ exe v:mouse_win .. "wincmd w"
exe v:mouse_lnum
- exe "normal " . v:mouse_col . "|"
+ exe "normal " .. v:mouse_col .. "|"
endif
<
When using bracketed paste only the first character is
@@ -3873,7 +3873,7 @@
empty string is returned, there is no error message.
Examples: >
:let list_is_on = gettabwinvar(1, 2, '&list')
- :echo "myvar = " . gettabwinvar(3, 1, 'myvar')
+ :echo "myvar = " .. gettabwinvar(3, 1, 'myvar')
<
To obtain all window-local variables use: >
gettabwinvar({tabnr}, {winnr}, '&')
@@ -4006,7 +4006,7 @@
Like |gettabwinvar()| for the current tabpage.
Examples: >
:let list_is_on = getwinvar(2, '&list')
- :echo "myvar = " . getwinvar(1, 'myvar')
+ :echo "myvar = " .. getwinvar(1, 'myvar')
< Can also be used as a |method|: >
GetWinnr()->getwinvar(varname)
@@ -4261,7 +4261,7 @@
The following three are equivalent: >
:call histdel("search", histnr("search"))
:call histdel("search", -1)
- :call histdel("search", '^'.histget("search", -1).'$')
+ :call histdel("search", '^' .. histget("search", -1) .. '$')
<
To delete the last search pattern and use the last-but-one for
the "n" command and 'hlsearch': >
@@ -4280,7 +4280,7 @@
Examples:
Redo the second last search from history. >
- :execute '/' . histget("search", -2)
+ :execute '/' .. histget("search", -2)
< Define an Ex command ":H {num}" that supports re-execution of
the {num}th entry from the output of |:history|. >
@@ -4526,7 +4526,7 @@
|:execute| or |:normal|.
Example with a mapping: >
- :nmap \x :call GetFoo()<CR>:exe "/" . Foo<CR>
+ :nmap \x :call GetFoo()<CR>:exe "/" .. Foo<CR>
:function GetFoo()
: call inputsave()
: let g:Foo = input("enter search pattern: ")
@@ -4700,7 +4700,7 @@
order. Also see |keys()| and |values()|.
Example: >
for [key, value] in items(mydict)
- echo key . ': ' . value
+ echo key .. ': ' .. value
endfor
< Can also be used as a |method|: >
@@ -4715,7 +4715,7 @@
{sep} is omitted a single space is used.
Note that {sep} is not added at the end. You might want to
add it there too: >
- let lines = join(mylist, "\n") . "\n"
+ let lines = join(mylist, "\n") .. "\n"
< String items are used as-is. |Lists| and |Dictionaries| are
converted into a string like with |string()|.
The opposite function is |split()|.
@@ -4927,7 +4927,7 @@
line(".") line number of the cursor
line(".", winid) idem, in window "winid"
line("'t") line number of mark t
- line("'" . marker) line number of mark marker
+ line("'" .. marker) line number of mark marker
<
To jump to the last known position when opening a file see
|last-position-jump|.
@@ -5161,7 +5161,7 @@
current byte. For a |String| |v:key| has the index of the
current character.
Example: >
- :call map(mylist, '"> " . v:val . " <"')
+ :call map(mylist, '"> " .. v:val .. " <"')
< This puts "> " before and " <" after each item in "mylist".
Note that {expr2} is the result of an expression and is then
@@ -5175,19 +5175,19 @@
The function must return the new value of the item. Example
that changes each value by "key-value": >
func KeyValue(key, val)
- return a:key . '-' . a:val
+ return a:key .. '-' .. a:val
endfunc
call map(myDict, function('KeyValue'))
< It is shorter when using a |lambda|: >
- call map(myDict, {key, val -> key . '-' . val})
+ call map(myDict, {key, val -> key .. '-' .. val})
< If you do not use "val" you can leave it out: >
- call map(myDict, {key -> 'item: ' . key})
+ call map(myDict, {key -> 'item: ' .. key})
< If you do not use "key" you can use a short name: >
- call map(myDict, {_, val -> 'item: ' . val})
+ call map(myDict, {_, val -> 'item: ' .. val})
<
The operation is done in-place for a |List| and |Dictionary|.
If you want it to remain unmodified make a copy first: >
- :let tlist = map(copy(mylist), ' v:val . "\t"')
+ :let tlist = map(copy(mylist), ' v:val .. "\t"')
< Returns {expr1}, the |List| or |Dictionary| that was filtered,
or a new |Blob| or |String|.
@@ -5263,7 +5263,7 @@
then the global mappings.
This function can be used to map a key even when it's already
mapped, and have it do the original mapping too. Sketch: >
- exe 'nnoremap <Tab> ==' . maparg('<Tab>', 'n')
+ exe 'nnoremap <Tab> ==' .. maparg('<Tab>', 'n')
< Can also be used as a |method|: >
GetKey()->maparg('n')
@@ -5786,7 +5786,7 @@
{name}. Thus if you create /tmp/foo/bar then /tmp/foo will be
created with 0o755.
Example: >
- :call mkdir($HOME . "/tmp/foo/bar", "p", 0o700)
+ :call mkdir($HOME .. "/tmp/foo/bar", "p", 0o700)
< This function is not available in the |sandbox|.
@@ -6227,7 +6227,7 @@
stopinsert
close
else
- call append(line('$') - 1, 'Entered: "' . a:text . '"')
+ call append(line('$') - 1, 'Entered: "' .. a:text .. '"')
" Reset 'modified' to allow the buffer to be closed.
set nomodified
endif
@@ -6424,7 +6424,7 @@
function! s:tree(dir)
return {a:dir : map(readdir(a:dir),
\ {_, x -> isdirectory(x) ?
- \ {x : s:tree(a:dir . '/' . x)} : x})}
+ \ {x : s:tree(a:dir .. '/' .. x)} : x})}
endfunction
echo s:tree(".")
<
@@ -6686,7 +6686,7 @@
{only available when compiled with the |+clientserver| feature}
Examples: >
:let repl = ""
- :echo "PEEK: ".remote_peek(id, "repl").": ".repl
+ :echo "PEEK: " .. remote_peek(id, "repl") .. ": " .. repl
< Can also be used as a |method|: >
ServerId()->remote_peek()
@@ -6724,12 +6724,12 @@
Note: Any errors will be reported in the server and may mess
up the display.
Examples: >
- :echo remote_send("gvim", ":DropAndReply ".file, "serverid").
+ :echo remote_send("gvim", ":DropAndReply " .. file, "serverid") ..
\ remote_read(serverid)
:autocmd NONE RemoteReply *
\ echo remote_read(expand("<amatch>"))
- :echo remote_send("gvim", ":sleep 10 | echo ".
+ :echo remote_send("gvim", ":sleep 10 | echo " ..
\ 'server2client(expand("<client>"), "HELLO")<CR>')
<
Can also be used as a |method|: >
@@ -6754,7 +6754,7 @@
points to an item before {idx} this is an error.
See |list-index| for possible values of {idx} and {end}.
Example: >
- :echo "last item: " . remove(mylist, -1)
+ :echo "last item: " .. remove(mylist, -1)
:call remove(mylist, 0, 9)
<
Use |delete()| to remove a file.
@@ -6770,13 +6770,13 @@
byte as {end} a |Blob| with one byte is returned. When {end}
points to a byte before {idx} this is an error.
Example: >
- :echo "last byte: " . remove(myblob, -1)
+ :echo "last byte: " .. remove(myblob, -1)
:call remove(mylist, 0, 9)
remove({dict}, {key})
Remove the entry from {dict} with key {key} and return it.
Example: >
- :echo "removed " . remove(dict, "one")
+ :echo "removed " .. remove(dict, "one")
< If there is no {key} in {dict} this is an error.
rename({from}, {to}) *rename()*
@@ -6907,7 +6907,7 @@
column inside the command line, which is 1 when the command is
executed. To get the cursor position in the file use one of
the following mappings: >
- nnoremap <expr> GG ":echom ".screencol()."\n"
+ nnoremap <expr> GG ":echom " .. screencol() .. "\n"
nnoremap <silent> GG :echom screencol()<CR>
nnoremap GG <Cmd>echom screencol()<CR>
<
@@ -7031,7 +7031,7 @@
Example (goes over all files in the argument list): >
:let n = 1
:while n <= argc() " loop over all files in arglist
- : exe "argument " . n
+ : exe "argument " .. n
: " start at the last char in the file and wrap for the
: " first search to find match at start of file
: normal G$
@@ -7115,11 +7115,11 @@
return printf(' /%s [%d/%d]', @/,
\ result.current, result.total)
endfunction
- let &statusline .= '%{LastSearchCount()}'
+ let &statusline ..= '%{LastSearchCount()}'
" Or if you want to show the count only when
" 'hlsearch' was on
- " let &statusline .=
+ " let &statusline ..=
" \ '%{v:hlsearch ? LastSearchCount() : ""}'
<
You can also update the search count, which can be useful in a
@@ -7943,10 +7943,10 @@
character inside single quotes.
Example of use with a |:!| command: >
- :exe '!dir ' . shellescape(expand('<cfile>'), 1)
+ :exe '!dir ' .. shellescape(expand('<cfile>'), 1)
< This results in a directory listing for the file under the
cursor. Example of use with |system()|: >
- :call system("chmod +w -- " . shellescape(expand("%")))
+ :call system("chmod +w -- " .. shellescape(expand("%")))
< See also |::S|.
Can also be used as a |method|: >
@@ -8719,7 +8719,7 @@
When {sub} starts with "\=", the remainder is interpreted as
an expression. See |sub-replace-expression|. Example: >
:echo substitute(s, '%\(\x\x\)',
- \ '\=nr2char("0x" . submatch(1))', 'g')
+ \ '\=nr2char("0x" .. submatch(1))', 'g')
< When {sub} is a Funcref that function is called, with one
optional argument. Example: >
@@ -8727,7 +8727,7 @@
< The optional argument is a list which contains the whole
matched string and up to nine submatches, like what
|submatch()| returns. Example: >
- :echo substitute(s, '%\(\x\x\)', {m -> '0x' . m[1]}, 'g')
+ :echo substitute(s, '%\(\x\x\)', {m -> '0x' .. m[1]}, 'g')
< Can also be used as a |method|: >
GetString()->substitute(pat, sub, flags)
@@ -8916,8 +8916,8 @@
This is not to be used for interactive commands.
The result is a String. Example: >
- :let files = system("ls " . shellescape(expand('%:h')))
- :let files = system('ls ' . expand('%:h:S'))
+ :let files = system('ls ' .. shellescape(expand('%:h')))
+ :let files = system('ls ' .. expand('%:h:S'))
< To make the result more system-independent, the shell output
is filtered to replace <CR> with <NL> for Macintosh, and
@@ -9098,7 +9098,7 @@
doesn't exist. It can be used for a temporary file. The name
is different for at least 26 consecutive calls. Example: >
:let tmpfile = tempname()
- :exe "redir > " . tmpfile
+ :exe "redir > " .. tmpfile
< For Unix, the file will be in a private directory |tempfile|.
For MS-Windows forward slashes are used when the 'shellslash'
option is set, or when 'shellcmdflag' starts with '-' and
@@ -9295,7 +9295,7 @@
Examples: >
echo trim(" some text ")
< returns "some text" >
- echo trim(" \r\t\t\r RESERVE \t\n\x0B\xA0") . "_TAIL"
+ echo trim(" \r\t\t\r RESERVE \t\n\x0B\xA0") .. "_TAIL"
< returns "RESERVE_TAIL" >
echo trim("rm<Xrm<>X>rrm", "rm<>")
< returns "Xrm<>X" (characters in the middle are not removed) >
@@ -9486,7 +9486,7 @@
character-wise, line-wise, or block-wise Visual mode
respectively.
Example: >
- :exe "normal " . visualmode()
+ :exe "normal " .. visualmode()
< This enters the same Visual mode as before. It is also useful
in scripts if you wish to act differently depending on the
Visual mode that was used.
@@ -9690,7 +9690,7 @@
An existing window always has a height of zero or more.
This excludes any window toolbar line.
Examples: >
- :echo "The current window has " . winheight(0) . " lines."
+ :echo "The current window has " .. winheight(0) .. " lines."
< Can also be used as a |method|: >
GetWinid()->winheight()
@@ -9831,7 +9831,7 @@
returned. When window {nr} doesn't exist, -1 is returned.
An existing window always has a width of zero or more.
Examples: >
- :echo "The current window has " . winwidth(0) . " columns."
+ :echo "The current window has " .. winwidth(0) .. " columns."
:if winwidth(0) <= 50
: 50 wincmd |
:endif