14

有太多的首字母缩写词和专有名词要添加到字典中。我希望将任何包含大写字母的单词排除在拼写检查之外。单词由空格或特殊字符(即非字母字符)分隔。这可能吗?

当小写字母和特殊字符围绕大写单词时,答案的第一部分失败:

,jQuery,
, iPad,
/demoMRdogood/
[CSS](css)
`appendTo()`,

当小写单词由特殊字符分隔时,当前答案会给出误报(从拼写检查中排除)。以下是示例:

(async)
leetcode, eulerproject, 

赏金是给解决这个问题的人的。

4

2 回答 2

12

你可以试试这个命令:

:syn match myExCapitalWords +\<[A-Z]\w*\>+ contains=@NoSpell

上面的命令指示 Vim 将描述的每个模式\<[A-Z]\w*\>作为@NoSpell集群的一部分来处理。@NoSpell集群中的项目不进行拼写检查。

如果您还想从拼写检查中排除包含至少一个非字母字符的所有单词,您可以调用以下命令:

:syn match myExNonWords +\<\p*[^A-Za-z \t]\p*\>+ contains=@NoSpell

键入:h spell-syntax以获取更多信息。

于 2013-08-12T21:00:29.450 回答
6

这是对我有用的解决方案。这通过了我在问题中提到的案例:

syn match myExCapitalWords +\<\w*[A-Z]\K*\>+ contains=@NoSpell

这是一个替代解决方案,它使用\S而不是\K. 替代解决方案不包括括号中且前面有大写字母的字符。由于它更宽松,因此更适用于 URL:

syn match myExCapitalWords +\<\w*[A-Z]\S*\>+ contains=@NoSpell

从拼写检查中排除“'s”

s无论上述解决方案如何,撇号后都被视为拼写错误的字母。一个快速的解决方案是添加s到您的字典或为此添加一个案例:

syn match myExCapitalWords +\<\w*[A-Z]\K*\>\|'s+ contains=@NoSpell

这不是问题的一部分,但这是拼写检查过程的常见情况,所以我在这里提到了它。

于 2013-08-23T21:58:14.290 回答