我试图让Vim在语法高亮与扩展.Rtex
通过以下方式结尾的任何文件:麻烦SYN-包括且同区域嵌入语法高亮
- 所有顶级文本高亮作为TeX的
- 例外:封闭在
\begin{python}...\end{python}
任何文本被高亮像Python
我能够独立实现所有这些标准,但无法同时实现。我认为TeX突出显示覆盖了我的Python突出显示的区域,或者阻止它们生效,并且我试图弄清楚如何实现。
第一步:编辑.vimrc
给文件扩展名为.Rtex
文件类型rtex
:
au BufRead *.Rtex setf rtex
第二步:创建~/.vim/syntax/rtex.vim
。这个文件的内容将决定如何突出.Rtex
文件。
第三步:能通用顶级的TeX高亮显示,通过使rtex.vim
这个样子的:
runtime! syntax/tex.vim
如果我现在打开一个.Rtex
文件,整个文件被高亮显示为TeX,包括任何文字如预期的那样在\begin{python}...\end{python}
之内。
第四步:按照Vim的:help syn-include
的说明,包括Python高亮,它适用于\begin{python}
和\end{python}
分隔的所有地区。我rtex.vim
文件现在看起来是这样的:
runtime! syntax/tex.vim
unlet! b:current_syntax
syntax include @Python syntax/python.vim
syntax region pythonCode start="\\begin{python}" end="\\end{python}" [email protected]
的unlet! b:current_syntax
命令是为了迫使python.vim
语法文件来执行,即使现有的语法(特)已经被激活。
问题:如果我现在打开一个.Rtex
文件,整个文件仍然只会高亮显示为TeX。 \begin{python}...\end{python}
区域似乎没有效果。
实验:如果我删除或注释掉runtime!
命令,我做 GET蟒蛇高亮,在\begin{python}...\end{python}
区域内,正如所期望的,但当然没的TeX的文档的其余部分突出。因此,我得出结论说,TeX突出显示对防止蟒蛇地区发挥作用负有某种责任。
Vim的Master可以给我提供什么建议吗?我目前很难过。我已经看了几页,似乎有关问题的计算器,但他们都没有到目前为止导致了一个解决方案:
- http://vim.wikia.com/wiki/Different_syntax_highlighting_within_regions_of_a_file
- Embedded syntax highligting in Vim
- VIM syntax highlighting of html nested in yaml
这是否导致LaTex编译时错误,因为'\ begin {Python}'是未知的? – puk 2012-02-02 21:04:54
不要注意定义'python'环境的'\ usepackage {python}'。 – 2012-02-04 02:22:06
如果我想使用基于'\ begin {Puk'sSuperAmazingLanguage}'的语法怎么办? = P – puk 2012-02-04 16:11:08