0
0
mirror of https://github.com/vim/vim.git synced 2025-09-27 04:14:06 -04:00

runtime(doc): Improve documentation of the ..= assignment operator

Explicitly mention the "..=" compound assignment operator everywhere
".=" is documented.

Convert some uses of "." and ".=" in the examples to ".." and "..=",
respectively.

closes: #18380

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Doug Kearns
2025-09-24 18:00:16 +00:00
committed by Christian Brabandt
parent 4b97fc901f
commit b6f9d38f96
7 changed files with 43 additions and 21 deletions

View File

@@ -1,4 +1,4 @@
*builtin.txt* For Vim version 9.1. Last change: 2025 Sep 22 *builtin.txt* For Vim version 9.1. Last change: 2025 Sep 24
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -12661,7 +12661,7 @@ winbufnr({nr}) The result is a Number, which is the number of the buffer
window is returned. window is returned.
When window {nr} doesn't exist, -1 is returned. When window {nr} doesn't exist, -1 is returned.
Example: > Example: >
:echo "The file in the current window is " . bufname(winbufnr(0)) :echo "The file in the current window is " .. bufname(winbufnr(0))
< <
Can also be used as a |method|: > Can also be used as a |method|: >
FindWindow()->winbufnr()->bufname() FindWindow()->winbufnr()->bufname()

View File

@@ -1,4 +1,4 @@
*cmdline.txt* For Vim version 9.1. Last change: 2025 Sep 23 *cmdline.txt* For Vim version 9.1. Last change: 2025 Sep 24
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1161,7 +1161,7 @@ These modifiers can be given, in this order:
:S Escape special characters for use with a shell command (see :S Escape special characters for use with a shell command (see
|shellescape()|). Must be the last one. Examples: > |shellescape()|). Must be the last one. Examples: >
:!dir <cfile>:S :!dir <cfile>:S
:call system('chmod +w -- ' . expand('%:S')) :call system('chmod +w -- ' .. expand('%:S'))
Examples, when the file name is "src/version.c", current dir Examples, when the file name is "src/version.c", current dir
"/home/mool/vim": > "/home/mool/vim": >
@@ -1443,7 +1443,7 @@ the `CmdlineLeavePre` autocmd from the next section): >
\ Grep call <SID>VisitFile() \ Grep call <SID>VisitFile()
func s:Grep(arglead, cmdline, cursorpos) func s:Grep(arglead, cmdline, cursorpos)
if match(&grepprg, '\$\*') == -1 | let &grepprg .= ' $*' | endif if match(&grepprg, '\$\*') == -1 | let &grepprg ..= ' $*' | endif
let cmd = substitute(&grepprg, '\$\*', shellescape(escape(a:arglead, '\')), '') let cmd = substitute(&grepprg, '\$\*', shellescape(escape(a:arglead, '\')), '')
return len(a:arglead) > 1 ? systemlist(cmd) : [] return len(a:arglead) > 1 ? systemlist(cmd) : []
endfunc endfunc

View File

@@ -1,4 +1,4 @@
*eval.txt* For Vim version 9.1. Last change: 2025 Sep 15 *eval.txt* For Vim version 9.1. Last change: 2025 Sep 24
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -3138,9 +3138,12 @@ declarations and assignments do not use a command. |vim9-declaration|
set and an environment variable that is empty. set and an environment variable that is empty.
:let ${env-name} .= {expr1} :let ${env-name} .= {expr1}
:let ${env-name} ..= {expr1}
Append {expr1} to the environment variable {env-name}. Append {expr1} to the environment variable {env-name}.
If the environment variable didn't exist yet this If the environment variable didn't exist yet this
works like "=". works like "=".
`.=` is not supported with Vim script version 2 and
later, see |vimscript-version|.
:let @{reg-name} = {expr1} *:let-register* *:let-@* :let @{reg-name} = {expr1} *:let-register* *:let-@*
Write the result of the expression {expr1} in register Write the result of the expression {expr1} in register
@@ -3157,8 +3160,11 @@ declarations and assignments do not use a command. |vim9-declaration|
that would match everywhere. that would match everywhere.
:let @{reg-name} .= {expr1} :let @{reg-name} .= {expr1}
:let @{reg-name} ..= {expr1}
Append {expr1} to register {reg-name}. If the Append {expr1} to register {reg-name}. If the
register was empty it's like setting it to {expr1}. register was empty it's like setting it to {expr1}.
`.=` is not supported with Vim script version 2 and
later, see |vimscript-version|.
:let &{option-name} = {expr1} *:let-option* *:let-&* :let &{option-name} = {expr1} *:let-option* *:let-&*
Set option {option-name} to the result of the Set option {option-name} to the result of the
@@ -3176,8 +3182,11 @@ declarations and assignments do not use a command. |vim9-declaration|
a terminal key code, there is no error. a terminal key code, there is no error.
:let &{option-name} .= {expr1} :let &{option-name} .= {expr1}
:let &{option-name} ..= {expr1}
For a string option: Append {expr1} to the value. For a string option: Append {expr1} to the value.
Does not insert a comma like |:set+=|. Does not insert a comma like |:set+=|.
`.=` is not supported with Vim script version 2 and
later, see |vimscript-version|.
:let &{option-name} += {expr1} :let &{option-name} += {expr1}
:let &{option-name} -= {expr1} :let &{option-name} -= {expr1}
@@ -3185,18 +3194,25 @@ declarations and assignments do not use a command. |vim9-declaration|
{expr1}. {expr1}.
:let &l:{option-name} = {expr1} :let &l:{option-name} = {expr1}
:let &l:{option-name} .= {expr1}
:let &l:{option-name} += {expr1} :let &l:{option-name} += {expr1}
:let &l:{option-name} -= {expr1} :let &l:{option-name} -= {expr1}
:let &l:{option-name} .= {expr1}
:let &l:{option-name} ..= {expr1}
Like above, but only set the local value of an option Like above, but only set the local value of an option
(if there is one). Works like |:setlocal|. (if there is one). Works like |:setlocal|.
`.=` is not supported with Vim script version 2 and
later, see |vimscript-version|.
:let &g:{option-name} = {expr1} :let &g:{option-name} = {expr1}
:let &g:{option-name} .= {expr1}
:let &g:{option-name} += {expr1} :let &g:{option-name} += {expr1}
:let &g:{option-name} -= {expr1} :let &g:{option-name} -= {expr1}
:let &g:{option-name} .= {expr1}
:let &g:{option-name} ..= {expr1}
Like above, but only set the global value of an option Like above, but only set the global value of an option
(if there is one). Works like |:setglobal|. (if there is one). Works like |:setglobal|.
`.=` is not supported with Vim script version 2 and
later, see |vimscript-version|.
*E1093* *E1537* *E1538* *E1535* *E1093* *E1537* *E1538* *E1535*
:let [{name1}, {name2}, ...] = {expr1} *:let-unpack* *E687* *E688* :let [{name1}, {name2}, ...] = {expr1} *:let-unpack* *E687* *E688*
{expr1} must evaluate to a |List| or a |Tuple|. The {expr1} must evaluate to a |List| or a |Tuple|. The
@@ -3217,15 +3233,18 @@ declarations and assignments do not use a command. |vim9-declaration|
:echo x :echo x
< The result is [0, 2]. < The result is [0, 2].
:let [{name1}, {name2}, ...] .= {expr1}
:let [{name1}, {name2}, ...] += {expr1} :let [{name1}, {name2}, ...] += {expr1}
:let [{name1}, {name2}, ...] -= {expr1} :let [{name1}, {name2}, ...] -= {expr1}
:let [{name1}, {name2}, ...] *= {expr1} :let [{name1}, {name2}, ...] *= {expr1}
:let [{name1}, {name2}, ...] /= {expr1} :let [{name1}, {name2}, ...] /= {expr1}
:let [{name1}, {name2}, ...] %= {expr1} :let [{name1}, {name2}, ...] %= {expr1}
:let [{name1}, {name2}, ...] .= {expr1}
:let [{name1}, {name2}, ...] ..= {expr1}
Like above, but append, add, subtract, multiply, Like above, but append, add, subtract, multiply,
divide, or modulo the value for each |List| or |Tuple| divide, or modulo the value for each |List| or |Tuple|
item. item.
`.=` is not supported with Vim script version 2 and
later, see |vimscript-version|.
:let [{name}, ..., ; {lastname}] = {expr1} *E452* :let [{name}, ..., ; {lastname}] = {expr1} *E452*
Like |:let-unpack| above, but the |List| or |Tuple| Like |:let-unpack| above, but the |List| or |Tuple|
@@ -3237,11 +3256,14 @@ declarations and assignments do not use a command. |vim9-declaration|
:let [a, b; rest] = ["aval", "bval", 3, 4] :let [a, b; rest] = ["aval", "bval", 3, 4]
:let [a, b; rest] = ("aval", "bval", 3, 4) :let [a, b; rest] = ("aval", "bval", 3, 4)
< <
:let [{name}, ..., ; {lastname}] .= {expr1}
:let [{name}, ..., ; {lastname}] += {expr1} :let [{name}, ..., ; {lastname}] += {expr1}
:let [{name}, ..., ; {lastname}] -= {expr1} :let [{name}, ..., ; {lastname}] -= {expr1}
:let [{name}, ..., ; {lastname}] .= {expr1}
:let [{name}, ..., ; {lastname}] ..= {expr1}
Like above, but append/add/subtract the value for each Like above, but append/add/subtract the value for each
|List| item. |List| item.
`.=` is not supported with Vim script version 2 and
later, see |vimscript-version|.
*:let=<<* *:let-heredoc* *:let=<<* *:let-heredoc*
*E990* *E991* *E172* *E221* *E1145* *E990* *E991* *E172* *E221* *E1145*
@@ -4145,7 +4167,7 @@ exception most recently caught as long it is not finished.
:function! Caught() :function! Caught()
: if v:exception != "" : if v:exception != ""
: echo 'Caught "' . v:exception .. '" in ' .. v:throwpoint : echo 'Caught "' .. v:exception .. '" in ' .. v:throwpoint
: else : else
: echo 'Nothing caught' : echo 'Nothing caught'
: endif : endif

View File

@@ -1,4 +1,4 @@
*filetype.txt* For Vim version 9.1. Last change: 2025 Aug 10 *filetype.txt* For Vim version 9.1. Last change: 2025 Sep 24
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -763,7 +763,7 @@ Otherwise, for the defined variable "g:ftplugin_java_source_path", the local
value of the 'path' option will be further modified by prefixing the value of value of the 'path' option will be further modified by prefixing the value of
the variable, e.g.: > the variable, e.g.: >
let g:ftplugin_java_source_path = $JDK_SRC_PATH let g:ftplugin_java_source_path = $JDK_SRC_PATH
let &l:path = g:ftplugin_java_source_path . ',' . &l:path let &l:path = g:ftplugin_java_source_path .. ',' .. &l:path
< <
and the "gf" command can be used on a fully-qualified type to look for a file and the "gf" command can be used on a fully-qualified type to look for a file
in the "path" and to try to load it. in the "path" and to try to load it.

View File

@@ -1,4 +1,4 @@
*pattern.txt* For Vim version 9.1. Last change: 2025 Aug 21 *pattern.txt* For Vim version 9.1. Last change: 2025 Sep 24
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -966,7 +966,7 @@ $ At end of pattern or in front of "\|", "\)" or "\n" ('magic' on):
the cursor moves the display isn't updated for this change. An update the cursor moves the display isn't updated for this change. An update
is done when using the |CTRL-L| command (the whole screen is updated). is done when using the |CTRL-L| command (the whole screen is updated).
Example, to highlight the line where the cursor currently is: > Example, to highlight the line where the cursor currently is: >
:exe '/\%' . line(".") . 'l' :exe '/\%' .. line(".") .. 'l'
< Alternatively use: > < Alternatively use: >
/\%.l /\%.l
< When 'hlsearch' is set and you move the cursor around and make changes < When 'hlsearch' is set and you move the cursor around and make changes

View File

@@ -1,4 +1,4 @@
*quickfix.txt* For Vim version 9.1. Last change: 2025 Aug 27 *quickfix.txt* For Vim version 9.1. Last change: 2025 Sep 24
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1418,7 +1418,7 @@ declares an only parameter of type string and puts to use a command equivalent
of |:make|, and assigning its |Funcref| to the selected key. For example: of |:make|, and assigning its |Funcref| to the selected key. For example:
>vim >vim
function! GenericPostCompilerCommand(arguments) abort function! GenericPostCompilerCommand(arguments) abort
execute 'make ' . a:arguments execute 'make ' .. a:arguments
endfunction endfunction
let g:spotbugs_properties = { let g:spotbugs_properties = {
@@ -1449,7 +1449,7 @@ that will arrange for "PostCompilerActionExecutor" to be invoked; and then run
function! GenericPreCompilerCommand(arguments) abort function! GenericPreCompilerCommand(arguments) abort
if !exists('g:spotbugs_compilation_done') if !exists('g:spotbugs_compilation_done')
doautocmd java_spotbugs_post User doautocmd java_spotbugs_post User
execute 'make ' . a:arguments execute 'make ' .. a:arguments
" only run doautocmd when :make was synchronous " only run doautocmd when :make was synchronous
" see note below " see note below
doautocmd java_spotbugs_post ShellCmdPost " XXX: (a) doautocmd java_spotbugs_post ShellCmdPost " XXX: (a)
@@ -1462,7 +1462,7 @@ that will arrange for "PostCompilerActionExecutor" to be invoked; and then run
function! GenericPreCompilerTestCommand(arguments) abort function! GenericPreCompilerTestCommand(arguments) abort
if !exists('g:spotbugs_test_compilation_done') if !exists('g:spotbugs_test_compilation_done')
doautocmd java_spotbugs_post User doautocmd java_spotbugs_post User
execute 'make ' . a:arguments execute 'make ' .. a:arguments
" only run doautocmd when :make was synchronous " only run doautocmd when :make was synchronous
" see note below " see note below
doautocmd java_spotbugs_post ShellCmdPost " XXX: (b) doautocmd java_spotbugs_post ShellCmdPost " XXX: (b)

View File

@@ -1,4 +1,4 @@
*usr_40.txt* For Vim version 9.1. Last change: 2022 Jun 23 *usr_40.txt* For Vim version 9.1. Last change: 2025 Sep 24
VIM USER MANUAL - by Bram Moolenaar VIM USER MANUAL - by Bram Moolenaar
@@ -597,7 +597,7 @@ EXECUTING AUTOCOMMANDS
It is possible to trigger an autocommand by pretending an event has occurred. It is possible to trigger an autocommand by pretending an event has occurred.
This is useful to have one autocommand trigger another one. Example: > This is useful to have one autocommand trigger another one. Example: >
:autocmd BufReadPost *.new execute "doautocmd BufReadPost " . expand("<afile>:r") :autocmd BufReadPost *.new execute "doautocmd BufReadPost " .. expand("<afile>:r")
This defines an autocommand that is triggered when a new file has been edited. This defines an autocommand that is triggered when a new file has been edited.
The file name must end in ".new". The ":execute" command uses expression The file name must end in ".new". The ":execute" command uses expression