【问题标题】:vim: spell checking in partial LaTeX filesvim:部分 LaTeX 文件中的拼写检查
【发布时间】:2014-12-29 13:49:44
【问题描述】:

我使用问题集类来键入我的问题集。我经常有一个如下所示的 main.tex 文件。

\documentclass{problemset}

\begin{document}

\input{problem1}

\end{document}

我通常为每个问题使用不同的文件。例如,problem1.tex 可能如下。

\begin{problem}
there is a spelling errrrrrrror here
\end{problem}

我希望 vim 检测 issue1.tex 中的拼写错误,但不幸的是它没有。正如this post 中所述,问题似乎是vim 无法识别任何语法区域:当我运行命令时

:echo synIDattr(synID(line("."),col("."),1),"name")

我没有得到任何输出。再举一个例子,如果我将 issue1.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 来检查是否正在加载语法文件(默认语法文件也在我的之后加载)。正如here 所建议的那样,我还可以通过将文件类型设置为纯文本来标记拼写错误,但这似乎是一个可怕的黑客攻击。似乎应该有更好的方法在我的问题 1.tex 文件中进行拼写检查。

【问题讨论】:

  • 正是我的问题。有什么解决办法吗?
  • syntax spell toplevel 添加到.vim/syntax/tex.vim 对我来说有效
  • 我在 debian wheezy/7.8 下运行 vim73 的 vim-latexsuite,它也对我有用: cp /usr/share/vim/vim73/syntax/tex.vim 。添加 ''syntax spell toplevel'' 并且拼写错误现在显示在 \include-ed 文件中。谢谢,斯特林!

标签: vim spell-checking


【解决方案1】:

我使用 hack 来解决这个问题。将以下内容添加到文件顶部:

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

这样,vim 的语法和拼写算法会找到一些标记来启动它们,但由于 "if" 部分将被乳胶本身忽略。

(我没有测试更专业的编辑器是否会忽略这个虚拟部分,所以如果你同时使用 vim 和编辑器,可能需要更多的hackery。)

【讨论】:

    【解决方案2】:

    上面的 cmets 对我有用 (syntax spell toplevel),即使稍后运行此设置也对我有用(因此无需从 /usr 复制任何内容)。但我不希望该设置对所有 tex 文件都有效 - 相反,我为 .vimrc 中的给定文件自定义它:

    au BufNewFile,BufRead body.tex syntax spell toplevel
    

    【讨论】:

    • 你能把它改写成指令吗?这将是一个体面的答案。 How to Answer
    猜你喜欢
    • 2011-08-17
    • 1970-01-01
    • 2013-10-05
    • 2016-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-06
    • 1970-01-01
    相关资源
    最近更新 更多