如何从拼写检查中排除其中任意位置有一个大写字母的单词。就像 SoftBook,或者名字 Alexander Supertramp

问题描述 投票:0回答:1

♡现在,拼写检查器会将所有大写单词(例如 JRE)标记为拼写错误。对于我来说,有时我会在 Markdown 文件中使用 java 风格的名称。例如,像tableFan。这些也被标记为拼写错误。这是有问题的,因为我在插入模式下使用键映射来纠正之前拼写错误的单词。如果某些单词被错误地标记为拼写错误,则无法使用该键绑定。而且总是有一种挥之不去的感觉,“拼写检查将正确的单词标记为错误,就像人名一样”。

一种方法是告诉 vim 仅进行拼写检查,拼写检查全部由小写字母组成。但我找不到任何方法给 vim 这个指令。

另一种方法是遵循此问题中发布的答案如何从 Vim 中的拼写检查中排除大写单词? 在那个问题中,有人回答使用这个命令

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

我盲目地尝试了answers中的那条线(上面)。但它不起作用。期望的效果是具有一个或多个大写字母的单词将免于拼写检查。但是使用上面的行后,即使是由所有小写字母组成的拼写错误的单词也不会突出显示为拼写错误的单词。我尝试在那个问题中对标有绿色勾号的答案发表评论。缺少 50 个声誉,我在这里发布一个新问题。

我关于问题接受的答案的问题是过滤

Spell
NoSpell
区域,我们是否使用相同的正则表达式?我在哪里可以找到它的手册页。模式开头和结尾处的
+
似乎表示模式的开始和结束。可以使用任何字符代替
+
来达到同样的目的吗?

好吧,这是我对附加问题中已接受答案的问题https://stackoverflow.com/questions/18196399/how-to-exclude-capitalized-words-from-spell-checking-in-vim

现在假设我使用

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

 并点击 
Return
。
然后结果就是没有单词,连拼写错误的全小写单词都被标记为拼写错误。

请让我知道我应该如何实现这一目标。 如果可能的话,也请让我知道我的问题的答案。

@Friedrich 在评论中告诉/帮助我,拼写检查仅在字符串或注释内完成,除非字段类型是

markdown

text
。我在想是否有任何插件使用自定义的动态字典来对乳胶源代码进行拼写检查。字典必须是动态的,因为它必须考虑正在导入的所有包。从技术上讲,应该有一种标记语言中的拼写检查方法。如果您知道这方面的某种方式或插件或任何内容,请告诉我。

regex vim spell-checking vim-syntax-highlighting
1个回答
1
投票
此模式将匹配至少有一个小写字母后跟一个大写字母并被 0-n 个小写字母包围的单词:

/\v\<[a-z]*[A-Z][a-z]*\>
要排除这些单词,您可以将 

:v

 命令与此模式结合使用。例如

:v/\v\<[a-z]*[A-Z][a-z]*\>
此命令将选择所有不包含单个大写字母单词的行。

© www.soinside.com 2019 - 2024. All rights reserved.