我試圖讓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