diff options
author | LemonBoy <thatlemon@gmail.com> | 2022-05-26 12:10:37 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-05-26 12:10:37 +0100 |
commit | 0f7a3e1de6f71e8e1423fe594890d6aa7f94e132 (patch) | |
tree | 1919df8f82148f2e7a89315a63b5d97622e47bd5 /runtime | |
parent | c3caa7f78808e405b7cdbcdf89c9d35a43d2c3eb (diff) |
patch 8.2.5019: cannot get the first screen column of a characterv8.2.5019
Problem: Cannot get the first screen column of a character.
Solution: Let virtcol() optionally return a list. (closes #10482,
closes #7964)
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/doc/builtin.txt | 44 |
1 files changed, 31 insertions, 13 deletions
diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt index 5b20ea3322..0aa2effcd0 100644 --- a/runtime/doc/builtin.txt +++ b/runtime/doc/builtin.txt @@ -689,7 +689,8 @@ undotree() List undo file tree uniq({list} [, {func} [, {dict}]]) List remove adjacent duplicates from a list values({dict}) List values in {dict} -virtcol({expr}) Number screen column of cursor or mark +virtcol({expr} [, {list}]) Number or List + screen column of cursor or mark visualmode([expr]) String last visual mode used wildmenumode() Number whether 'wildmenu' mode is active win_execute({id}, {command} [, {silent}]) @@ -780,6 +781,7 @@ add({object}, {expr}) *add()* and({expr}, {expr}) *and()* Bitwise AND on the two arguments. The arguments are converted to a number. A List, Dict or Float argument causes an error. + Also see `or()` and `xor()`. Example: > :let flag = and(bits, 0x80) < Can also be used as a |method|: > @@ -936,13 +938,14 @@ autocmd_add({acmds}) *autocmd_add()* item is ignored. cmd Ex command to execute for this autocmd event event autocmd event name. Refer to |autocmd-events|. + TODO: currently only accepts one event. group autocmd group name. Refer to |autocmd-groups|. If this group doesn't exist then it is created. If not specified or empty, then the default group is used. nested boolean flag, set to v:true to add a nested autocmd. Refer to |autocmd-nested|. - once boolean flag, set to v:true to add a autocmd + once boolean flag, set to v:true to add an autocmd which executes only once. Refer to |autocmd-once|. pattern autocmd pattern string. Refer to @@ -952,7 +955,7 @@ autocmd_add({acmds}) *autocmd_add()* commands associated with the specified autocmd event and group and add the {cmd}. This is useful to avoid adding the same command - multiple times for a autocmd event in a group. + multiple times for an autocmd event in a group. Returns v:true on success and v:false on failure. Examples: > @@ -9727,7 +9730,7 @@ values({dict}) *values()* Can also be used as a |method|: > mydict->values() -virtcol({expr}) *virtcol()* +virtcol({expr} [, {list}]) *virtcol()* The result is a Number, which is the screen column of the file position given with {expr}. That is, the last screen position occupied by the character at that position, when the screen @@ -9736,13 +9739,17 @@ virtcol({expr}) *virtcol()* the <Tab>. For example, for a <Tab> in column 1, with 'ts' set to 8, it returns 8. |conceal| is ignored. For the byte position use |col()|. + For the use of {expr} see |col()|. - When 'virtualedit' is used {expr} can be [lnum, col, off], where - "off" is the offset in screen columns from the start of the - character. E.g., a position within a <Tab> or after the last - character. When "off" is omitted zero is used. - When Virtual editing is active in the current mode, a position - beyond the end of the line can be returned. |'virtualedit'| + + When 'virtualedit' is used {expr} can be [lnum, col, off], + where "off" is the offset in screen columns from the start of + the character. E.g., a position within a <Tab> or after the + last character. When "off" is omitted zero is used. When + Virtual editing is active in the current mode, a position + beyond the end of the line can be returned. Also see + |'virtualedit'| + The accepted positions are: . the cursor position $ the end of the cursor line (the result is the @@ -9754,11 +9761,22 @@ virtcol({expr}) *virtcol()* cursor is the end). When not in Visual mode returns the cursor position. Differs from |'<| in that it's updated right away. + + If {list} is present and non-zero then virtcol() returns a List + with the first and last screen position occupied by the + character. + Note that only marks in the current file can be used. Examples: > - virtcol(".") with text "foo^Lbar", with cursor on the "^L", returns 5 - virtcol("$") with text "foo^Lbar", returns 9 - virtcol("'t") with text " there", with 't at 'h', returns 6 + " With text "foo^Lbar" and cursor on the "^L": + + virtcol(".") " returns 5 + virtcol(".", 1) " returns [4, 5] + virtcol("$") " returns 9 + + " With text " there", with 't at 'h': + + virtcol("'t") " returns 6 < The first column is 1. 0 is returned for an error. A more advanced example that echoes the maximum length of all lines: > |