美元符号破坏了 Vim 中的语法高亮

美元符号破坏了 Vim 中的语法高亮

$符号打开内联数学环境,除非在逐字环境中使用。

然而 Vim 似乎无法检测到它处于逐字环境中,结果美元符号破坏了语法高亮显示,因为 Vim 会启动数学模式高亮显示,直到遇到新的美元符号。

有没有办法来解决这个问题 ?

答案1

正如另一个答案所说,如果你正在编写 LaTeX,你应该已经let g:tex_flavor="latex"设置了.vimrc.,Vim 将跳过突出显示verbatim环境,但它仍然无法识别其他环境,如lstlistingminted(或其他自定义环境)。

在这样的包含美元符号的环境之后,只需添加以下内容:

%stopzone

LaTeX 将会忽略这一点,但 Vim 将会根据此提示重置其语法高亮。

当有美元符号时,Vim 仍然会以奇怪的方式为包含的列表着色,但这不会对结果产生任何影响。

答案2

如果 Vim 无法检测到在逐字环境中使用了美元符号,则可能意味着它没有使用正确的语法高亮风格。

用于:set syntax找出使用了哪种语法高亮风格。

适用于 LaTeX 的版本tex应该可以正常运行。此外,它还提供了一个%stopzone关键字,用于应对可能出现故障的情况:在代码中插入此关键字将重置其所在位置的突出显示。

另一方面,plaintex针对 TeX 的 flavor,以及当 Vim 无法决定使用哪种风格时默认使用,不支持此类字幕。

要切换到此文件的正确语法高亮风格,请使用:set syntax=tex或添加%&latex作为文件的第一行。

为了获得更持久的解决方案,您可以添加let g:tex_flavor = "latex".vimrc未经测试)。

注意:美元符号也会破坏listings包环境。请参阅这个答案进行修复,并对其缺点进行评论。

相关内容