gpt4 book ai didi

vim - 用$和lSTListing的lstinline突出显示Vim语法

转载 作者:行者123 更新时间:2023-12-03 09:59:24 35 4
gpt4 key购买 nike

如果我使用内联版本的lSTListing,如下所示:

\lstinline{!$omp parallel for}

vim中突出显示的语法有误,并且 latex 文件的其余部分显示为红色,就好像它是代码 list 的一部分一样。导致问题的原因是美元 $。如何避免这种情况?

最佳答案

让我们最终一劳永逸地解决这个问题!

我邮寄了tex.vim的维护者Charles E. Campbell的邮件,建议他为 list 包添加突出显示规则。但是事实证明,对tex.vim中的 list 包的支持实际上是故意的。推理可以在: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 http://vim.sf.net/.



就我个人而言,我认为它不包含在内有些遗憾,因为它肯定会增加普通用户使用Vim编写其LaTeX的阈值。查找并添加 lstlistinglstinline等的语法高亮并不是一件容易的事。在查看 this线程时,它看起来不会很快改变。

DevSolar似乎已经找到了它(我非常感谢!),但是Campbell提供了一些 example LaTeX package support vimballs。第一个 lstlisting.vba.gz包括 lstlistinglstinputlisting的突出显示规则。但是,它确实缺少 lstinline,它是本主题的主题。

最后,这是我的 listings.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中找到更多信息。

关于vim - 用$和lSTListing的lstinline突出显示Vim语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6738902/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com