vim:部分LaTeX文件中的拼写检查

时间:2014-11-02 22:30:01

标签: vim spell-checking

我使用问题集类来键入我的问题集。我经常有一个类似于以下内容的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中的拼写错误,但不幸的是它没有。如this post中所述,问题似乎是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文件时似乎没有任何事情发生。我使用脚本名来检查是否正在加载语法文件(默认语法文件也在我之后加载)。我也可以通过将文件类型设置为plaintex来标记拼写错误,如建议here,但这似乎是一个可怕的黑客。似乎应该有更好的方法在我的problem1.tex文件中进行拼写检查。

2 个答案:

答案 0 :(得分:1)

以上评论对我有用(syntax spell toplevel),即使以后运行,此设置也适用于我(因此无需从/ usr复制任何内容)。但是我不希望所有tex文件的设置都是活动的 - 而是我为 .vimrc 中的给定文件自定义它:

au BufNewFile,BufRead body.tex syntax spell toplevel

答案 1 :(得分:0)

我针对此问题使用了骇客工具。在文件顶部添加以下内容:

\iffalse{}\section{vim-hack}\fi{}

通过这种方式,vim的语法和拼写算法可以找到一些令牌来启动它们,但是由于“如果”,该部分将被乳胶本身忽略。

(我没有测试是否有更多专业的编辑器会忽略此虚拟部分,因此,如果同时使用vim和编辑器,可能会需要更多的黑客手段。)