从Vim Spell检查中排除大写单词

时间:2013-08-12 20:45:34

标签: vim spell-checking

要添加到字典中的首字母缩略词和专有名词太多了。我想任何包含大写字母的单词都要从拼写检查中排除。单词由while-space或特殊字符(即非字母表)分隔。这可能吗?

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

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

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

(async)
leetcode, eulerproject, 

赏金是针对解决此问题的人。

2 个答案:

答案 0 :(得分:11)

你可以尝试这个

: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了解详情。

答案 1 :(得分:5)

这是适合我的解决方案。这传递了我在问题中提到的案例:

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

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