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

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

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

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

任何方法都是遵循此问题中发布的答案如何从 Vim 中的拼写检查中排除大写单词?

尽管我对这些答案有一些疑问,但我仍然盲目地尝试了这些答案,但它们不起作用。我尝试先对标有绿色勾号的答案发表评论。但我没有50个声望。所以我发布了一个新问题。 我对这些答案的问题是为什么在模式的开头和结尾需要“+”。现在我知道 Patter 中“+”的含义是代表 1 个或多个先前的匹配项。但那个“+”需要转义,对吧?除非它非常神奇,而对于一个非常神奇的东西,模式内部需要有一个地方。假设“+”在没有转义的情况下工作,但是它在模式的开头匹配什么,开头什么也没有。例如,

c\+
将匹配字符 c 的 1 次或多次出现。但如果模式是
+c
那么“+”的目的是什么?才刚开始呢

好吧,这是我关于该链接中答案的问题。 留下问题我尝试应用答案但它也不起作用。 假设我使用

:syn match myExCapitalWords +\<\w*[A-Z]\S*\>+ contains=@NoSpell
并进入。 然后结果是没有单词,即使拼写错误的所有小写单词也没有拼写错误。

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

regex vim spell-checking vim-syntax-highlighting
1个回答
0
投票

此模式将匹配至少有一个小写字母后跟一个大写字母并被 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.