该$
符号打开内联数学环境,除非在逐字环境中使用。
然而 Vim 似乎无法检测到它处于逐字环境中,结果美元符号破坏了语法高亮显示,因为 Vim 会启动数学模式高亮显示,直到遇到新的美元符号。
有没有办法来解决这个问题 ?
答案1
正如另一个答案所说,如果你正在编写 LaTeX,你应该已经let g:tex_flavor="latex"
设置了.vimrc.
,Vim 将跳过突出显示verbatim
环境,但它仍然无法识别其他环境,如lstlisting
或minted
(或其他自定义环境)。
在这样的包含美元符号的环境之后,只需添加以下内容:
%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
包环境。请参阅这个答案进行修复,并对其缺点进行评论。