vim-patch:210b39c: runtime(doc): clarify documentation for "v" position at line() (#29296)

Problem: the previous documentation falsely states that "v" always
refers to the start of a visual area.  In fact, the reference of "v" and
"." complement each other.  If the cursor is at the start of
a (characterwise) visual area, then "v" refers to the end of the area.

Solution: be more verbose and explicit about the connection between "."
and "v" and also refer to |v_o| which many vim users will be familiar
with for visual areas.

210b39c2d6

Co-authored-by: Peter Aronoff <peter@aronoff.org>
This commit is contained in:
zeertzjq 2024-06-12 11:44:38 +08:00 committed by GitHub
parent 033810ba23
commit 7215512100
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 45 additions and 12 deletions

View File

@ -4102,10 +4102,21 @@ line({expr} [, {winid}]) *line()*
display isn't updated, e.g. in silent Ex mode) display isn't updated, e.g. in silent Ex mode)
w$ last line visible in current window (this is one w$ last line visible in current window (this is one
less than "w0" if no lines are visible) less than "w0" if no lines are visible)
v In Visual mode: the start of the Visual area (the v When not in Visual mode, returns the cursor
cursor is the end). When not in Visual mode position. In Visual mode, returns the other end
returns the cursor position. Differs from |'<| in of the Visual area. A good way to think about
that it's updated right away. this is that in Visual mode "v" and "." complement
each other. While "." refers to the cursor
position, "v" refers to where |v_o| would move the
cursor. As a result, you can use "v" and "."
together to work on all of a selection in
characterwise visual mode. If the cursor is at
the end of a characterwise visual area, "v" refers
to the start of the same visual area. And if the
cursor is at the start of a characterwise visual
area, "v" refers to the end of the same visual
area. "v" differs from |'<| and |'>| in that it's
updated right away.
Note that a mark in another file can be used. The line number Note that a mark in another file can be used. The line number
then applies to another buffer. then applies to another buffer.
To get the column number use |col()|. To get both use To get the column number use |col()|. To get both use

View File

@ -4971,10 +4971,21 @@ function vim.fn.libcallnr(libname, funcname, argument) end
--- display isn't updated, e.g. in silent Ex mode) --- display isn't updated, e.g. in silent Ex mode)
--- w$ last line visible in current window (this is one --- w$ last line visible in current window (this is one
--- less than "w0" if no lines are visible) --- less than "w0" if no lines are visible)
--- v In Visual mode: the start of the Visual area (the --- v When not in Visual mode, returns the cursor
--- cursor is the end). When not in Visual mode --- position. In Visual mode, returns the other end
--- returns the cursor position. Differs from |'<| in --- of the Visual area. A good way to think about
--- that it's updated right away. --- this is that in Visual mode "v" and "." complement
--- each other. While "." refers to the cursor
--- position, "v" refers to where |v_o| would move the
--- cursor. As a result, you can use "v" and "."
--- together to work on all of a selection in
--- characterwise visual mode. If the cursor is at
--- the end of a characterwise visual area, "v" refers
--- to the start of the same visual area. And if the
--- cursor is at the start of a characterwise visual
--- area, "v" refers to the end of the same visual
--- area. "v" differs from |'<| and |'>| in that it's
--- updated right away.
--- Note that a mark in another file can be used. The line number --- Note that a mark in another file can be used. The line number
--- then applies to another buffer. --- then applies to another buffer.
--- To get the column number use |col()|. To get both use --- To get the column number use |col()|. To get both use

View File

@ -6081,10 +6081,21 @@ M.funcs = {
display isn't updated, e.g. in silent Ex mode) display isn't updated, e.g. in silent Ex mode)
w$ last line visible in current window (this is one w$ last line visible in current window (this is one
less than "w0" if no lines are visible) less than "w0" if no lines are visible)
v In Visual mode: the start of the Visual area (the v When not in Visual mode, returns the cursor
cursor is the end). When not in Visual mode position. In Visual mode, returns the other end
returns the cursor position. Differs from |'<| in of the Visual area. A good way to think about
that it's updated right away. this is that in Visual mode "v" and "." complement
each other. While "." refers to the cursor
position, "v" refers to where |v_o| would move the
cursor. As a result, you can use "v" and "."
together to work on all of a selection in
characterwise visual mode. If the cursor is at
the end of a characterwise visual area, "v" refers
to the start of the same visual area. And if the
cursor is at the start of a characterwise visual
area, "v" refers to the end of the same visual
area. "v" differs from |'<| and |'>| in that it's
updated right away.
Note that a mark in another file can be used. The line number Note that a mark in another file can be used. The line number
then applies to another buffer. then applies to another buffer.
To get the column number use |col()|. To get both use To get the column number use |col()|. To get both use