在vim中禁用特定区域的拼写检查

3

当在 vim 中编写 LaTeX 的表格环境时,例如

\begin{tabular}{rl}
  one & two \\
  \multicolumn{2}{c}{what?}
\end{tabular}

rl被标记为拼写错误,但它应该被忽略。 我已经在after/ftplugin/tex.vim中添加了以下内容:

syn region texMyNOHL matchgroup=NONE start='{tabular}{' end='}'
    \ contains=@NoSpell

但它仍被标记为拼写错误。

忽略特定的区域,正确的方法是什么?


好问题,但更适合在superuser.com上提问。 - Burhan Khalid
3
之前已经讨论过,与Vim相关的问题应该在StackOverflow上提出。这个问题与其他Vim问题有何不同? - skeept
1个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
1

你不能简单地“覆盖”你的texMyNOHL区域;现有的tex语法定义会阻止匹配,因为它们更细粒度。

当检查语法时,你会发现该项是由texMatcher组匹配的。这个组允许通过texMatchGroup语法集群包含内部匹配:

:syn match texRl contained contains=@NoSpell "rl"
:syn cluster texMatchGroup add=texRl

如果我理解你的回答,即使在表格构造之外,“rl”也不会被认为是拼写错误。是这样吗? - skeept
texMatcher 组代表像 {...}[...] 这样的东西;它适用于所有这些内容。我已经在答案中添加了 contained 以使其更清晰,但对于 Tex 来说似乎并不必要,因为整个文档都包含在顶层组中。 - Ingo Karkat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,