diff runtime/doc/eval.txt @ 21935:62f933f64447 v8.2.1517

patch 8.2.1517: cannot easily get the character under the cursor Commit: https://github.com/vim/vim/commit/6c53fca02301ff871cddc1c74c388e23e53a424a Author: Bram Moolenaar <Bram@vim.org> Date: Sun Aug 23 17:34:46 2020 +0200 patch 8.2.1517: cannot easily get the character under the cursor Problem: Cannot easily get the character under the cursor. Solution: Add the {chars} argument to strpart().
author Bram Moolenaar <Bram@vim.org>
date Sun, 23 Aug 2020 17:45:03 +0200
parents fb74a3387694
children 0bc43a704f56
line wrap: on
line diff
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -2836,7 +2836,8 @@ str2list({expr} [, {utf8}])	List	convert
 str2nr({expr} [, {base} [, {quoted}]])
 				Number	convert String to Number
 strcharpart({str}, {start} [, {len}])
-				String	{len} characters of {str} at {start}
+				String	{len} characters of {str} at
+					character {start}
 strchars({expr} [, {skipcc}])	Number	character length of the String {expr}
 strdisplaywidth({expr} [, {col}]) Number display length of the String {expr}
 strftime({format} [, {time}])	String	format time with a specified format
@@ -2845,8 +2846,9 @@ stridx({haystack}, {needle} [, {start}])
 				Number	index of {needle} in {haystack}
 string({expr})			String	String representation of {expr} value
 strlen({expr})			Number	length of the String {expr}
-strpart({str}, {start} [, {len}])
-				String	{len} bytes of {str} at byte {start}
+strpart({str}, {start} [, {len} [, {chars}]])
+				String	{len} bytes/chars of {str} at
+					byte {start}
 strptime({format}, {timestring})
 				Number	Convert {timestring} to unix timestamp
 strridx({haystack}, {needle} [, {start}])
@@ -3418,7 +3420,8 @@ byte2line({byte})					*byte2line()*
 
 byteidx({expr}, {nr})					*byteidx()*
 		Return byte index of the {nr}'th character in the string
-		{expr}.  Use zero for the first character, it returns zero.
+		{expr}.  Use zero for the first character, it then returns
+		zero.
 		This function is only useful when there are multibyte
 		characters, otherwise the returned value is equal to {nr}.
 		Composing characters are not counted separately, their byte
@@ -9948,17 +9951,22 @@ strlen({expr})	The result is a Number, w
 		{expr} in bytes.
 		If the argument is a Number it is first converted to a String.
 		For other types an error is given.
-		If you want to count the number of multi-byte characters use
+		If you want to count the number of multibyte characters use
 		|strchars()|.
 		Also see |len()|, |strdisplaywidth()| and |strwidth()|.
 
 		Can also be used as a |method|: >
 			GetString()->strlen()
 
-strpart({src}, {start} [, {len}])			*strpart()*
+strpart({src}, {start} [, {len} [, {chars}]])			*strpart()*
 		The result is a String, which is part of {src}, starting from
 		byte {start}, with the byte length {len}.
-		To count characters instead of bytes use |strcharpart()|.
+		When {chars} is present and TRUE then {len} is the number of
+		characters positions (composing characters are not counted
+		separately, thus "1" means one base character and any
+		following composing characters).
+		To count {start} as characters instead of bytes use
+		|strcharpart()|.
 
 		When bytes are selected which do not exist, this doesn't
 		result in an error, the bytes are simply omitted.
@@ -9970,8 +9978,8 @@ strpart({src}, {start} [, {len}])			*str
 			strpart("abcdefg", 3)	    == "defg"
 
 <		Note: To get the first character, {start} must be 0.  For
-		example, to get three bytes under and after the cursor: >
-			strpart(getline("."), col(".") - 1, 3)
+		example, to get the character under the cursor: >
+			strpart(getline("."), col(".") - 1, 1, v:true)
 <
 		Can also be used as a |method|: >
 			GetText()->strpart(5)