我使用一个问题集类来打印我的问题集。我经常有一个类似以下的main.tex文件。
\documentclass{problemset}
\begin{document}
\input{problem1}
\end{document}
我通常为每个问题创建不同的文件。例如,problem1.tex 可能如下所示。
\begin{problem}
there is a spelling errrrrrrror here
\end{problem}
我希望vim能够检测到problem1.tex中的拼写错误,但不幸的是它并没有。正如这篇文章所述,问题似乎是vim无法识别任何语法区域:当我运行以下命令时:
:echo synIDattr(synID(line("."),col("."),1),"name")
我没有得到任何输出。举个例子,如果我将problem1.tex更改为以下内容,则会识别出拼写错误。
\section{dummy section}
\begin{problem}
there is a spelling errrrrror here
\end{problem}
我尝试为我的问题环境创建语法区域,但是失败了。 我的尝试包括创建以下 .vim/syntax/tex.vim 文件。
syntax region texProblem start="\\begin{problem}" end="\\end{problem}" contains=@Spell
当我创建这个tex.vim文件时,似乎没有任何反应。我使用scriptnames检查语法文件是否正在加载(默认语法文件也在我的语法文件之后加载)。我还可以通过将文件类型设置为plaintex来标记拼写错误,如此处建议的那样,但这似乎是一种可怕的hack。看起来应该有更好的方法在我的problem1.tex文件中进行拼写检查。
syntax spell toplevel
添加到.vim/syntax/tex.vim
中起作用了。 - Stirling