如何更改vim拼写中的单词识别?
我喜欢Vim7.0通过:setSpell支持拼写检查,并且我喜欢它在默认情况下只检查我的C代码中的注释和文本字符串。但是我想找到一种改变行为的方法,这样vim就会知道,当我写含有下划线的单词时,我不想检查这个单词的拼写 问题是我经常在注释中引用变量或函数名,所以现在vim认为每一段不是完全正确的单词的文本都是拼写错误。例如如何更改vim拼写中的单词识别?,vim,spell-checking,Vim,Spell Checking,我喜欢Vim7.0通过:setSpell支持拼写检查,并且我喜欢它在默认情况下只检查我的C代码中的注释和文本字符串。但是我想找到一种改变行为的方法,这样vim就会知道,当我写含有下划线的单词时,我不想检查这个单词的拼写 问题是我经常在注释中引用变量或函数名,所以现在vim认为每一段不是完全正确的单词的文本都是拼写错误。例如 /*变量proj_abc_ptr用于函数do_func_stuff'*/ 大多数时候,用下划线分隔的部分是完整的单词,但其他时候它们是缩写,我不想添加到单词列表中。在拼写检查
/*变量proj_abc_ptr用于函数do_func_stuff'*/
大多数时候,用下划线分隔的部分是完整的单词,但其他时候它们是缩写,我不想添加到单词列表中。在拼写检查时,是否有任何全局方法可以告诉vim将s作为单词的一部分?您需要将其移动到自己的组中。大概是这样的:
hi link cCommentUnderscore cComment
syn match cCommentUnderscore display '\k\+_\w\+'
syn cluster cCommentGroup add=cCommentUnderscore
在某些高亮显示程序中,您可能需要在匹配线的末尾添加
contains=@NoSpell
,但在C中,默认值是@NoSpell
,因此应该可以这样做。以下是一些更通用的拼写检查异常规则,可以放在.vim/after/syntax/{LANG}.vim
文件中:
" Disable spell-checking of bizarre words:
" - Mixed alpha / numeric
" - Mixed case (starting upper) / All upper
" - Mixed case (starting lower)
" - Contains strange character
syn match spellingException "\<\w*\d[\d\w]*\>" transparent contained containedin=pythonComment,python.*String contains=@NoSpell
syn match spellingException "\<\(\u\l*\)\{2,}\>" transparent contained containedin=pythonComment,python.*String contains=@NoSpell
syn match spellingException "\<\(\l\+\u\+\)\+\l*\>" transparent contained containedin=pythonComment,python.*String contains=@NoSpell
syn match spellingException "\S*[/\\_`]\S*" transparent contained containedin=pythonComment,python.*String contains=@NoSpell
“禁用奇怪单词的拼写检查:
“-字母/数字混合
“-混合箱(起始上部)/所有上部
“-混合情况(从下开始)
“-包含奇怪的字符
syn match spellingException“\”transparent containedin=pythonComment,python.*字符串contains=@NoSpell
syn match spellingException“\”transparent containedin=pythonComment,python.*字符串contains=@NoSpell
syn match spellingException“\”transparent containedin=pythonComment,python.*字符串contains=@NoSpell
syn match spellingException“\S*[/\\\\\\\\\`]\S*”透明包含的containedin=pythonComment,python.*字符串包含=@NoSpell
为您的语言更改pythonComment,python.*String
表示匹配从包含块继承其突出显示属性(即,这些规则不会更改文本的显示方式)transparent
阻止这些匹配扩展到包含块之外(最后一条规则以contained
结尾,这可能会匹配到块的末尾)\S*
保存现有语法组的列表,以添加这些新规则containedin
覆盖任何和所有继承的组,从而告诉拼写检查器跳过匹配的文本contains=@NoSpell