\lstinline{!$omp parallel for}
vim中的语法突出显示错误,而乳胶文件的其余部分是红色的,就像它是代码列表的全部一样。这是导致问题的美元$。我该如何避免这种情况?
我邮寄了tex.vim的维护者Charles E. Campbell,建议他为列表包添加突出显示的规则。然而,事实证明,缺乏对tex.vim中的列表包的支持其实是有意的。推理可以找到:h tex-package。简而言之,您应该创建自己的扩展语法高亮规则(请参阅帖子底部):
Tex: Want To Highlight More Commands?
LaTeX is a programmable language,and so there are thousands of packages full
of specialized LaTeX commands,Syntax,and fonts. If you’re using such a
package you’ll often wish that the distributed Syntax/tex.vim would support
it. However,clearly this is impractical. So please consider using the
techniques in mySyntaxfile-add to extend or modify the highlighting provided
by Syntax/tex.vim. Please consider uploading any extensions that you write,
which typically would go in $HOME/after/Syntax/tex/[pkgname].vim,to
07000.
就个人而言,我认为这不免包含在内,因为它肯定会增加一般用户使用Vim写他/她的LaTeX的门槛。查找和添加lstlisting,lstinline等语法高亮并不容易。当看到this线程时,它不会很快改变。
DevSolar似乎已经找到它了(我感谢信誉!),但是Campbell提供了一些example LaTeX package support vimballs。第一个,lstlisting.vba.gz包括突出显示列表和输入列表的规则。然而,这个主题是缺乏预言性的。
最后,这是我的listing.vim驻留在$ HOME / .vim / after / Syntax / tex /
syn region texZone start="\\begin{lstlisting}" end="\\end{lstlisting}\|%stopzone\>" syn region texZone start="\\lstinputlisting" end="{\s*[a-zA-Z/.0-9_^]\+\s*}" syn match texInputFile "\\lstinline\s*\(\[.*\]\)\={.\{-}}" contains=texStatement,texInputCurlies,texInputFileOpt
–
这似乎是首选解决方案。它不需要更改/ usr / share / vim / ..中的系统范围的文件,您不必下载和源自vimball或更改环境,而不是修复语法高亮本身。我可能会发现这是一个简单的插件,使其更易于访问。
最后,记得检查一下,你实际上是运行tex文件类型,而不是plaintex,它缺少太多的可行性。已经发布在上面的评论中,但有一些更多的信息可以在ticket I added to LaTeX-Box中找到。