我使用 gvim 编辑LaTex的 .tex 文件。我注意到它只对被注释的文本进行实时拼写检查。如果我的常规文本中有错误,就不会有下划线。但是如果我用 % 对这段文本进行注释,那么错别字会立即被下划线标出。这是怎么回事?是否开启了某些奇怪的选项?
我使用 gvim 编辑LaTex的 .tex 文件。我注意到它只对被注释的文本进行实时拼写检查。如果我的常规文本中有错误,就不会有下划线。但是如果我用 % 对这段文本进行注释,那么错别字会立即被下划线标出。这是怎么回事?是否开启了某些奇怪的选项?
LaTeX ft插件方便地定义了这种行为。
使用latexmk、vim拼写检查和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
你需要确定是否可以使用那个/从那里推断出来
let g:tex_comment_nospell=1
适用于我的 vim 7.3。适用于使用 %
注释的注释,但不适用于 comment
环境。http://tex.stackexchange.com/questions/9303/in-vim-how-to-enable-spellchecking-of-text-only-and-exclude-listings 似乎涵盖了后者。 - Ramashalanka我曾经遇到过同样的问题(VIM 7.3),但是vim-latex-devel邮件列表中这篇帖子提供了线索。为了使拼写检查生效,我需要执行以下操作:
syntax spell toplevel
~/.vimrc
文件中,但它必须在之后声明。syntax enable
或者
syntax on
让它工作。
在处理 /home/madanh/.vimrc 时检测到错误:
第 74 行:
E518: 未知选项:toplevel
- Hennadii Madansyn match texText "\<\w\+\>" contains=@Spell
\frametitle{TextToBeChecked}
\pgfuseimage{VariableNotToBeChecked}
\begin{document}
等内容的TeX文件,则可以在文件顶部添加%begin-include
来标记它。这样,vim将识别文件内容作为texDocZone
区域的一部分,从而启用拼写检查。%end-include
来设置texDocZone
的结束位置。%begin-include
。\usepackage{array}
\newenvironment{Conditio}
{\par\vspace{\abovedisplayskip}\noindent\begin{tabular}{>{$}l<{$} @{${}={}$} l}}
{\end{tabular}\par\vspace{\belowdisplayskip}}
这段代码只是之前我编辑过的另一份法律文件的“遗留物”。将其注释掉后,在信件文档中设置了正常的拼写检查,高亮显示文本。(MacVim 8.1 latex-suite macOS 10.13.6 vim-latex v1.10.0)
我遇到了同样的问题 - 我书的第一章的.tex文件可以正常进行拼写检查,但第二章的文件只能对注释进行拼写检查。这似乎是因为vim没有查看足够的上下文行数而导致混淆。Ingo Karkat的解决方案在这里对我很有帮助。具体来说,我使用了:
syn sync maxlines=2000
syn sync minlines=500
在 ~/.vim/after/syntax/tex.vim 中
tldr; 不要在主 .tex
文档中放置 \section
命令
我也注意到了同样的问题,并且我坚持认为“之前它可以工作,而我没有改变任何东西”。
然后我观察到,这种不良行为只发生在我有一个 master.tex
的 .tex
文档中,该文档将章节作为单独的 chapterx.tex
文件包含进来。此外,如果所有的 \section
定义都在 chapterx.tex
中而不是在 master.tex
中,则一切正常。
否则,我认为,vim 语法和拼写检查例程很难确定它们所处的区域,参见此问题 Vim spellcheck not always working in .tex file. Check region in Vim
这里的所有答案都对我没用,但是我发现如果在vim中键入syntax spell
作为命令,它会起作用。
事实证明,这是因为tex文件类型的语法没有自动设置,我在这里找到了解决方案。
vim只在TeX注释中拼写检查
使用vim编辑LaTeX文档时,我注意到它只对注释进行拼写检查。我通过将以下内容添加到我的
./vimrc
中来解决这个问题:
autocmd FileType plaintex,tex,latex syntax spell toplevel
input
从一个单独的文件中包含摘要的正文。我将begin/end
标签放到了摘要文件中,现在它可以正常工作了。 - Paschalis