忽略 vim 中 latex-suite 环境中的错误

忽略 vim 中 latex-suite 环境中的错误

我使用latex-suitevim 插件,该插件会在 vim 编辑器中内联显示错误。但是,对于某些环境,例如,我会得到误报lstlistings。我该如何配置latex-suite以忽略这些环境?

答案1

我这样做的方法是让lstlisting环境(以及任何其他有此问题的环境)具有与verbatim环境相同的语法高亮:单一彩色块,带有特殊的 TeX 符号,$%像普通文本一样处理。

这意味着您可以完全无需担心latex-suitelatex-suite不会改变你的语法高亮。第一步是确保您的.tex文件语法高亮,您可能已经这样做了。如果没有,请将以下内容放入您的.vimrc

filetype on
au BufRead,BufNewFile *.tex,*.sty,*.cls set filetype=tex
au FileType tex syntax on

事实证明,对于 vim 的 LaTeX 语法高亮器来说,verbatim环境定义了一个texZone区域,所以我们需要做的就是确保lstlisting环境也定义了一个texZone区域:

au filetype tex syntax region texZone start='\\begin{lstlisting}' end='\\end{lstlisting}'

这个咒语的意思是“当我们处理 TeX 文件时,texZone地区之间\begin{lstlisting}\end{lstlisting}

然后,重新加载文件,verbatim环境lstlisting看起来就会相同。

在此处输入图片描述

当然你也可以lstlisting用其他有此问题的环境来替换。

注意事项

  • 如果您使用非默认的 TeX 语法高亮语言定义,则可能不起作用。(可以使用不同的配色方案。)但在这种情况下,您仍然可以通过在环境中的命令模式下verbatim键入来确定环境代表的语法项,然后使用返回的语法组而不是。:echom synIDattr(synID(line("."), col("."),1),"name")verbatimtexZone
  • 此解决方案不处理 的可选环境参数lstlistings;因为这是 LaTeX 代码而不是列表的一部分,所以语法高亮可以反映这一点。我不知道该怎么做,这可能会成为一个困难的解析/正则表达式问题(因为它可能包含嵌套括号)。
  • 显然,vim 的共识latex-suite不是一个好的插件;此链接推荐了几种替代方案。

相关内容