有没有办法告诉vim不要对乳胶文档的一部分进行拼写检查?例如,使用minted环境或\url{}中的URL进行代码块检查?

(我不确定与拼写检查有关,但我正在使用vimtex插件编辑乳胶文件。)

评论

另请参见以下内容:vi.stackexchange.com/a/4003/1800

@Gregoire在vimtex / issues /#219中也提到了这个问题。

#1 楼

您可以通过将语法项与@NoSpell一起添加到集群中来禁用语法项的拼写检查。您可以阅读:help spell-syntax以获得一些信息,并查看您的tex语法文件,该文件很可能已经包含几个示例。如果键入:tabe $VIMRUNTIME/syntax/tex.vim,则应该在新选项卡中获取tex语法文件。如果随后搜索/\c@NoSpell,则可能会看到类似

 syn cluster texMathZoneGroup add=@NoSpell


的行。texMathZoneGroup群集已在脚本的前面定义为包含许多语法项,并在此处添加了@NoSpell到群集以禁用对这些项目的拼写检查。恐怕我无法确切地说出最适合您的特定语法项的更改,因为我不太了解该语法文件。可能已经有一个明显的集群,您可以在其中简单地添加@NoSpell,或者您可能必须创建一个集群来对相关项目进行contains=。最好在用户运行时目录中复制语法文件并在其中应用更改,而不是更改分布式语法文件,或者将更改应用在语法文件之后的after/syntax/tex.vim或其他脚本中,这也是一个好主意。已加载。

由于使用了插件,因此它可能具有与拼写检查哪些项目相关的选项。我不使用vimtex,但是KarlLervåg在这里非常活跃,如果引起他的注意,可以为您解答。

评论


今天,vimtex中没有此类选项,不行。但是在铸造环境中忽略拼写似乎很有意义,因此我可能会相应地更新插件。感谢您的解释!

– Karl YngveLervåg
15年8月26日在21:07

我在代码中四处查看,但是找不到适合铸造环境的现有区域,因此我尝试创建自己的这样的区域:syn region mintedZone start =“ \\ begin {minted}” end =“ \\ end {minted} ”包含= @ NoSpell,但似乎无济于事。有什么建议吗?

–格雷戈尔
2015年8月27日9:31



@Grégoire请让我们继续在vimtex问题上进行讨论。

– Karl YngveLervåg
15年8月28日在18:22

#2 楼

您可以将自己的语法规则添加到~/.vim/after/syntax/tex.vim。为了防止在诸如\url之类的命令中进行拼写检查,您可以使用以下代码:插件,请参阅texStatement

如果您想了解上述命令,我可以推荐以下帮助部分:


Delimiter
:e $VIMRUNTIME/syntax/tex.vim
:h syn-match
:h syn-region