2

在 vim 帮助文档中,它说full-id类型缩写完全由关键字字符(iskeyword选项中的字母和字符)组成。iskeyword条目说那个字符串:

Vim default for MS-DOS and Win32
"@,48-57,_,128-167,224-235"

除此以外: "@,48-57,_,192-255"

这是什么意思?是什么48-57, 128-167,224-235?是@人物之一?但我尝试了类似的东西@tt,它不起作用!

而vim doc给出的例子 -1下的entryfull-id表示-是关键字之一。但我试过我的vim。并发现

-1作品

-11不工作

似乎在我的 vim 中-被视为非关键字字符。怎么了?我没有设置任何自定义 iskeyword。

4

2 回答 2

3

"@,48-57,_,128-167,224-235"是编码表中的字符和范围。查看 ASCII 表,您会看到范围48-57是从0到的数字9。对于上面的字符,128您可能需要转到 Unicode 表,用set encoding?. @是特殊的并添加所有字母字符。

关于不适合你的例子:有 3 种缩写full-idend-idnon-id。因此,任何缩写都必须适合这些组之一。-1有效,它是一个end-id. 它以字符结尾isKeyword-11不是,因为它在第一个关键字之后还有另一个关键字,所以它也不是full-id因为-不是关键字。

于 2013-03-03T01:13:14.740 回答
1

让我们-11根据以下规则进行检查:help abbreviation

  1. 它不是一个完整的 ID,因为它包含-,它不包含在您的iskeyword选项值中。
  2. 它不是end-id,因为根据文档,除了最后一个之外的所有字符都不能是关键字字符,而中间1是。
  3. 它不是非 id,因为它以关键字字符结尾。

如果您希望破折号成为关键字字符,则必须将其包含在iskeyword您使用的编码的适当值中(UTF-8 中的 45 等)。

于 2013-03-03T06:27:55.393 回答