Vim 无法识别数学环境(但可以处理其他数学运算)

Vim 无法识别数学环境(但可以处理其他数学运算)

因此,在我的一台电脑上,vim 安装无法识别数学环境,align例如equation

有办法打开它吗?

答案1

检查语法高亮规则是否是最新的。这些应该位于 下/usr/share/vim/vim80/syntax/tex.vim。在这个文件中应该有一个块名称Standard Math Zones:。在下面你会发现一些行,内容如下:

call TexNewMathZone("A","displaymath",1)

向此块添加您发现缺少的环境。例如,align使用:

call TexNewMathZone("E","align",1)

如果您要添加的环境没有星号形式,请使用

call TexNewMathZone(suffix,name,0)

反而。

但也许你不应该在系统范围内进行这些更改,而应该在每个用户的基础上进行更改。因此,创建该文件的副本并将/usr/share/...其粘贴到 vim 找到的 $HOME 文件夹中,然后在那里进行这些更改。

如果其他机器上的语法高亮显示正确,也许可以将文件从那里复制到您的机器上,但您的机器无法正确高亮显示。

每个用户语法高亮的默认文件夹类似于~/.vim/syntax/。如果不存在,请创建它,然后一切都应该正常工作。

编辑:也许更好的方法是创建一个简短的自定义语法文件,该文件在开始时提供系统范围的语法,并在其中添加一些内容。然后设置将是以下文件~/.vim/syntax/tex.vim

so $VIMRUNTIME/syntax/tex.vim

" adapt to match your system wide variable in $VIMRUNTIME/syntax/tex.vim
let s:tex_fast= "bcmMprsSvV"

if !exists("g:tex_no_math")
 call TexNewMathZone("E","align",1)
endif

if s:tex_fast =~# 'r'
  syn region texRefZone     matchgroup=texStatement start="\\autoref{"  end="}\|%stopzone\>"    contains=@texRefGroup
endif

在上面,我还添加了\autoref已知命令列表,以供参考。

我认为这应该是一种更好的方法,因为您可以通过这种方式从系统范围文件的更新中获取错误修复和新功能。

或者(但效果相同)放入文件~/.vim/after/syntax/并删除第一行(这是 中所建议的:help latex-syntax)。

答案2

由于某种原因,amsmath环境最近已删除从 vim 的语法文件中分割出来独立包装。下载该包后解压并运行

$ vim amsmath.vba
:so %

重新启用amsmath支持。

相关内容