For*_*ker 12 vim spell-checking
有太多的首字母缩略词和专有名词可以添加到字典中.我想任何包含大写字母的单词都要从拼写检查中排除.单词由while-space或特殊字符(即非字母表)分隔.这可能吗?
当小写和特殊字符围绕大写单词时,答案的第一部分失败:
,jQuery,
, iPad,
/demoMRdogood/
[CSS](css)
`appendTo()`,
Run Code Online (Sandbox Code Playgroud)
当小写单词由特殊字符分隔时,当前答案会给出误报(从拼写检查中排除).以下是示例:
(async)
leetcode, eulerproject,
Run Code Online (Sandbox Code Playgroud)
赏金是针对解决此问题的人.
use*_*332 11
你可以尝试这个
:syn match myExCapitalWords +\<[A-Z]\w*\>+ contains=@NoSpell
Run Code Online (Sandbox Code Playgroud)
上面的命令表示vim
要处理\<[A-Z]\w*\>
作为@NoSpell
集群一部分描述的每个模式.该项目的@NoSpell
集群没有拼写检查.
如果您还想要从拼写检查中排除包含至少一个非字母字符的所有单词,则可以调用以下命令
:syn match myExNonWords +\<\p*[^A-Za-z \t]\p*\>+ contains=@NoSpell
Run Code Online (Sandbox Code Playgroud)
输入:h spell-syntax
以获取更多信息.
这是对我有用的解决方案。这通过了我在问题中提到的情况:
syn match myExCapitalWords +\<\w*[A-Z]\K*\>+ contains=@NoSpell
Run Code Online (Sandbox Code Playgroud)
下面是使用一种替代的解决方案\S
,而不是\K
。替代解决方案不包括括号中的字符,并以大写字母开头。由于它比较宽大,因此对URL更好:
syn match myExCapitalWords +\<\w*[A-Z]\S*\>+ contains=@NoSpell
Run Code Online (Sandbox Code Playgroud)
s
不管上述解决方案如何,撇号后的字母都被视为拼写错误的字母。一个快速的解决方案是添加s
到您的字典或为此添加一个案例:
syn match myExCapitalWords +\<\w*[A-Z]\K*\>\|'s+ contains=@NoSpell
Run Code Online (Sandbox Code Playgroud)
这不是问题的一部分,但这是拼写检查过程的常见情况,因此我在这里提到了它。