]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
runtime(doc): clarify the use of 'iskeyword' option value
authorChristian Brabandt <cb@256bit.org>
Mon, 9 Feb 2026 20:51:58 +0000 (20:51 +0000)
committerChristian Brabandt <cb@256bit.org>
Mon, 9 Feb 2026 20:51:58 +0000 (20:51 +0000)
In particular, also mention the difference between the regex atom \k and
what Vim considers for a word character.

closes: #18688

Signed-off-by: Christian Brabandt <cb@256bit.org>
runtime/doc/motion.txt
runtime/doc/options.txt

index 582712fbb0a1860ebd1a3d179389091970f39575..7c1a53e1ed9a3b4e83a03d2688a7966cee0851e4 100644 (file)
@@ -1,4 +1,4 @@
-*motion.txt*   For Vim version 9.1.  Last change: 2025 Nov 09
+*motion.txt*   For Vim version 9.1.  Last change: 2026 Feb 09
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -429,8 +429,10 @@ These commands move over words or WORDS.
                                                        *word*
 A word consists of a sequence of letters, digits and underscores, or a
 sequence of other non-blank characters, separated with white space (spaces,
-tabs, <EOL>).  This can be changed with the 'iskeyword' option.  An empty line
-is also considered to be a word.
+tabs, <EOL>).  This can be changed with the 'iskeyword' option.  For
+characters above 255, a word ends when the Unicode character class changes
+(e.g., between letters, subscripts, emojis, etc).  An empty line is also
+considered to be a word.
                                                        *WORD*
 A WORD consists of a sequence of non-blank characters, separated with white
 space.  An empty line is also considered to be a WORD.
index ce4ee6c80e7a65d2c10b86cb4c6e2697f39544bc..4cea34fe950b49734faa2b1b3e4b32c31ede7aee 100644 (file)
@@ -5354,7 +5354,13 @@ A jump table for the options with a short description can be found at |Q_op|.
        "w", "*", "[i", etc.  It is also used for "\k" in a |pattern|.  See
        'isfname' for a description of the format of this option.  For '@'
        characters above 255 check the "word" character class (any character
-       that is not white space or punctuation).
+       that is categorized as a letter, number or emoji according to the
+       Unicode general category).
+
+       Note that there is a difference between the "\k" character class and
+       the |word| motion.  The former matches any word character, while the
+       latter stops at a change of the character class.
+
        For C programs you could use "a-z,A-Z,48-57,_,.,-,>".
        For a help file it is set to all non-blank printable characters except
        '*', '"' and '|' (so that CTRL-] on a command finds the help for that