Vim语法文件:向iskeyword添加某些字符无效

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vim语法文件:向iskeyword添加某些字符无效相关的知识,希望对你有一定的参考价值。

我正在制作一个Vim语法文件,我需要在iskeyword选项中添加一些字符。我无法从Vim帮助文件中找出它是如何工作的,但这是我目前所写的:

set iskeyword+=_,.,-,64,133,!,?,@,172,8743,8744,8853,8592,8593,8594,8595,8596

#64和#133是at符号和省略号。最后几个字符是¬,∧,∨,⊕,→,←,↓,↑和↔。

在所有这些字符中,只有_,。, - 和¬(#172)似乎被识别为关键字字符。

我还有别的办法吗?或者Vim根本不支持超出Unicode特定点的关键字字符(但是at符号也没有被识别,并且这肯定在ASCII中)?

谢谢你的帮助!

答案

iskeyword的帮助指向isfname的帮助,它回答了你的所有问题:

[…]
Multi-byte characters 256 and above are always included, only the
characters up to 255 are specified with this option.
For UTF-8 the characters 0xa0 to 0xff are included as well.
[…]
The format of this option is a list of parts, separated with commas.
Each part can be a single character number or a range.  A range is two
character numbers with '-' in between.  A character number can be a
decimal number between 0 and 255 or the ASCII character itself (does
not work for digits).  Example:
[…]
If the character is '@', all characters where isalpha() returns TRUE
are included.  Normally these are the characters a to z and A to Z,
plus accented characters.  To include '@' itself use "@-@".  Examples:
    "@,^a-z"    All alphabetic characters, excluding lower
            case ASCII letters.
    "a-z,A-Z,@-@"   All letters plus the '@' character.
[…]
  1. “此选项仅指定最多255个字符。”
  2. “字符数可以是0到255之间的十进制数”
  3. “包含'@'本身使用”@ - @“”

iskeyword中包含多字节字符已经在很多列表中讨论过了,比如this one

以上是关于Vim语法文件:向iskeyword添加某些字符无效的主要内容,如果未能解决你的问题,请参考以下文章

在 vim 中,如何进行自定义单词边界运动?

vi 和 vim

Vim:字符串中的 Javascript 语法

在 C++ 中的某些位置向字符串添加空格

vim编辑器

vim文本编辑