vim-patch:bfeefc4: runtime(doc): clarify the effect of exclusive single char selections (#34289)

closes: vim/vim#17410

bfeefc474a

Co-authored-by: Christian Brabandt <cb@256bit.org>
(cherry picked from commit aa4fa24963)
This commit is contained in:
zeertzjq
2025-06-03 07:54:29 +08:00
committed by github-actions[bot]
parent 0d66963089
commit 222b3d5021
6 changed files with 36 additions and 9 deletions

View File

@ -5010,9 +5010,14 @@ A jump table for the options with a short description can be found at |Q_op|.
the end of line the line break still isn't included. the end of line the line break still isn't included.
When "exclusive" is used, cursor position in visual mode will be When "exclusive" is used, cursor position in visual mode will be
adjusted for inclusive motions |inclusive-motion-selection-exclusive|. adjusted for inclusive motions |inclusive-motion-selection-exclusive|.
Note that when "exclusive" is used and selecting from the end
backwards, you cannot include the last character of a line, when Note:
starting in Normal mode and 'virtualedit' empty. - When "exclusive" is used and selecting from the end backwards, you
cannot include the last character of a line, when starting in Normal
mode and 'virtualedit' empty.
- when "exclusive" is used with a single character visual selection,
Vim will behave as if the 'selection' is inclusive (in other words,
you cannot visually select an empty region).
*'selectmode'* *'slm'* *'selectmode'* *'slm'*
'selectmode' 'slm' string (default "") 'selectmode' 'slm' string (default "")

View File

@ -4093,6 +4093,10 @@ getregion({pos1}, {pos2} [, {opts}]) *getregion()*
- It is evaluated in current window context, which makes a - It is evaluated in current window context, which makes a
difference if the buffer is displayed in a window with difference if the buffer is displayed in a window with
different 'virtualedit' or 'list' values. different 'virtualedit' or 'list' values.
- When specifying an exclusive selection and {pos1} and {pos2}
are equal, the returned list contains a single character as
if selection is inclusive, to match the behavior of an empty
exclusive selection in Visual mode.
Examples: >vim Examples: >vim
xnoremap <CR> xnoremap <CR>

View File

@ -5248,9 +5248,14 @@ vim.go.sect = vim.go.sections
--- the end of line the line break still isn't included. --- the end of line the line break still isn't included.
--- When "exclusive" is used, cursor position in visual mode will be --- When "exclusive" is used, cursor position in visual mode will be
--- adjusted for inclusive motions `inclusive-motion-selection-exclusive`. --- adjusted for inclusive motions `inclusive-motion-selection-exclusive`.
--- Note that when "exclusive" is used and selecting from the end ---
--- backwards, you cannot include the last character of a line, when --- Note:
--- starting in Normal mode and 'virtualedit' empty. --- - When "exclusive" is used and selecting from the end backwards, you
--- cannot include the last character of a line, when starting in Normal
--- mode and 'virtualedit' empty.
--- - when "exclusive" is used with a single character visual selection,
--- Vim will behave as if the 'selection' is inclusive (in other words,
--- you cannot visually select an empty region).
--- ---
--- @type 'inclusive'|'exclusive'|'old' --- @type 'inclusive'|'exclusive'|'old'
vim.o.selection = "inclusive" vim.o.selection = "inclusive"

View File

@ -3692,6 +3692,10 @@ function vim.fn.getreginfo(regname) end
--- - It is evaluated in current window context, which makes a --- - It is evaluated in current window context, which makes a
--- difference if the buffer is displayed in a window with --- difference if the buffer is displayed in a window with
--- different 'virtualedit' or 'list' values. --- different 'virtualedit' or 'list' values.
--- - When specifying an exclusive selection and {pos1} and {pos2}
--- are equal, the returned list contains a single character as
--- if selection is inclusive, to match the behavior of an empty
--- exclusive selection in Visual mode.
--- ---
--- Examples: >vim --- Examples: >vim
--- xnoremap <CR> --- xnoremap <CR>

View File

@ -4578,6 +4578,10 @@ M.funcs = {
- It is evaluated in current window context, which makes a - It is evaluated in current window context, which makes a
difference if the buffer is displayed in a window with difference if the buffer is displayed in a window with
different 'virtualedit' or 'list' values. different 'virtualedit' or 'list' values.
- When specifying an exclusive selection and {pos1} and {pos2}
are equal, the returned list contains a single character as
if selection is inclusive, to match the behavior of an empty
exclusive selection in Visual mode.
Examples: >vim Examples: >vim
xnoremap <CR> xnoremap <CR>

View File

@ -7027,9 +7027,14 @@ local options = {
the end of line the line break still isn't included. the end of line the line break still isn't included.
When "exclusive" is used, cursor position in visual mode will be When "exclusive" is used, cursor position in visual mode will be
adjusted for inclusive motions |inclusive-motion-selection-exclusive|. adjusted for inclusive motions |inclusive-motion-selection-exclusive|.
Note that when "exclusive" is used and selecting from the end
backwards, you cannot include the last character of a line, when Note:
starting in Normal mode and 'virtualedit' empty. - When "exclusive" is used and selecting from the end backwards, you
cannot include the last character of a line, when starting in Normal
mode and 'virtualedit' empty.
- when "exclusive" is used with a single character visual selection,
Vim will behave as if the 'selection' is inclusive (in other words,
you cannot visually select an empty region).
]=], ]=],
full_name = 'selection', full_name = 'selection',
scope = { 'global' }, scope = { 'global' },