我使用 Vim 编写 .tex
文件,但 Vim 中的拼写检查器出现问题。有时它不检查单词,我认为可能是由于以下原因。
由于 Vim 显然不应该检查 .tex
文档中的所有单词,例如,不检查序言,它只检查某些区域的拼写(在语法意义上)。正如我从 here 中收集到的,这些区域之一是 texSectionZone 。这些区域可能变得相当大,实际上节经常如此,因此 Vim 很难意识到它实际上位于 texSectionZone 区域(或任何其他区域),因此不检查拼写。如果我在文档中进行搜索,或者进行任何类型的跳过多行(或更确切地说是页面)的跳转,则可能会发生这种情况。
我得出这可能是原因的方式如下:我知道该命令
:echo synIDattr(synID(line("."),col("."),1),"name")
打印您所在的一个或多个区域的名称(我发现它 here ),所以当拼写检查器不起作用时,我尝试了这个,它告诉我它根本不在任何区域。在它确实起作用的地方,我所在的区域应该检查拼写。
到目前为止,我唯一的解决方案是找到我希望拼写器检查的点上方最近的部分,然后手动将光标向下移动到给定点。
理想情况下,我非常希望有一个解决方案能够确保这种情况不会发生,但我也会选择一种手动使 vim“更新”它所在区域的方法,而无需我大量移动光标。在后一种情况下,我正在考虑一种可以采用快捷方式的解决方案。
PS 我不确定如何称呼这个问题。如果您想出一个可以更好地解释问题的标题,请随意更改它。
最佳答案
如果没有定义语法组(或由 vim 找到),则不会进行拼写检查。我发现即使对于未定义的组启用拼写检查也很有用(请参阅 vim 语法文档中的 toplevel)。
为此,请编写命令:
syntax spell toplevel
在文件~/.vim/after/syntax/tex.vim
中。如果文件不存在则创建该文件。
关于Vim 拼写检查并不总是在 .tex 文件中工作。检查 Vim 中的区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23353009/