vim拼写检查 - 仅在LaTeX文件中注释

时间:2011-05-02 17:15:25

标签: vim latex spell-checking tex

我使用gvim编辑LaTex .tex文件。我注意到它只是为评论文本动态检查拼写。如果我在常规文本中有错误 - 没有下划线。如果我用%评论此文本,拼写错误会立即加下划线。怎么了?是否有任何奇怪的选项开启?

8 个答案:

答案 0 :(得分:17)

latex ft插件可以方便地定义这种行为。

SpellChecker : Spell check text including LaTeX documents

Using latexmk, vim spell checking and vim latex-suite

有一个选项似乎已接近:

:syntax spell [toplevel | notoplevel | default]

更新

另外

:he ft-tex-syntax

有非常有用的花絮,比如

Don't Want Spell Checking In Comments? ~

Some folks like to include things like source code in comments and so would
prefer that spell checking be disabled in comments in LaTeX files.  To do
this, put the following in your <.vimrc>: >
      let g:tex_comment_nospell= 1

你必须弄清楚你是否可以从那里使用/推断

答案 1 :(得分:14)

我遇到了同样的问题(VIM 7.3),但this post at the vim-latex-devel mailing list提供了线索。为了让拼写检查工作,我不得不把

syntax spell toplevel

在我的~/.vimrc中,但必须在

之后声明
syntax enable

syntax on

让它发挥作用。

答案 2 :(得分:4)

我不知道这是一个粗糙的黑客和预期的解决方案,但我创建了一个名为.vim / after / syntax / tex.vim的文件 包含单行:

syn match texText "\<\w\+\>" contains=@Spell

现在vim拼写检查命令和作为参数传递的文本之间的正常文本,因为你无法在语法上区分它们:

\frametitle{TextToBeChecked}
\pgfuseimage{VariableNotToBeChecked}

因此,它在我的序言中检查的方式太多了。但我把它放在另一个文件中,所以我并不在乎。

答案 3 :(得分:0)

我遇到了同样的问题 - 本书第一章拼写的.tex文件正常检查,但第二章的文件只会拼写检查注释。这显然是因为vim没有看到足够的上下文并且感到困惑。 Ingo Karkat的解决方案here为我解决了这个问题。具体来说,我用过:

syn sync maxlines=2000
syn sync minlines=500
在/ / .vim / after / syntax / tex.vim

答案 4 :(得分:0)

<强> tldr;不要在您的主\section文档中放置.tex个命令

我做了同样的观察,我也会坚持&#34;之前,它有效,我没有改变任何事情&#34;。

然后我发现这种不受欢迎的行为只发生在.tex文档中,其中master.tex 包含章节作为单独的chapterx.tex文件。此外,如果所有\section定义都在chapterx.tex中,并且master.tex中的不是,那么一切正常。

否则,正如我认为的那样, vim 语法和拼写检查程序很难确定它们在哪个区域,参见这个问题Vim spellcheck not always working in .tex file. Check region in Vim

答案 5 :(得分:0)

我发现了相同的问题,但解决方法不同。在某些.tex文件中,拼写检查按预期运行,而其他文件(documentclass {scrlttr2})则无法正常工作。仅在注释中带下划线的单词...因此,我比较了一个工作和不工作的.tex文档的标题。我发现了一个令人惊讶的texblock,它阻碍了文档本身的拼写检查:

\usepackage{array}
\newenvironment{Conditio}
  {\par\vspace{\abovedisplayskip}\noindent\begin{tabular}{>{$}l<{$} @{${}={}$} l}}
  {\end{tabular}\par\vspace{\belowdisplayskip}}

这段代码只是我之前编辑过的不同法律文本的“宿醉”。注释一下,在信函文档中设置突出显示文本的常规拼写检查。 (MacVim 8.1乳胶套件macOS 10.13.6 vim-latex v1.10.0)

答案 6 :(得分:0)

使用主文档中包含的文件时,经常会发生此问题。

如果您要打开一个TeX文件,其中将包含该文件,但其中不包含章节\begin{document},则可以通过在文件顶部添加%begin-include进行标记。这样,vim会将文件内容识别为texDocZone区域的一部分,从而启用了拼写检查。

使用%end-include,您可以设置texDocZone的结尾。

此行为似乎没有记录,但在vim语法文件中进行了描述:https://github.com/vim/vim/blob/master/runtime/syntax/tex.vim

tl; dr :将%begin-include添加到tex文件的顶部。

答案 7 :(得分:0)

这里没有一个答案对我有用,但是我可以看到是否在vim中将syntax spell作为命令输入是可行的。

原来是因为未自动为tex文件类型设置语法,所以我找到了解决方法here

vim仅在TeX注释中进行拼写检查

使用vim编辑LaTeX文档,我注意到它只是对注释进行拼写检查。我修好了 将此添加到我的./vimrc

autocmd FileType plaintex,tex,latex syntax spell toplevel