2008-09-12 145 views
44

是否有其他人發現VIM語法突出顯示Javascript次優?我發現有時我需要滾動以獲得調整後的語法突出顯示,因爲有時會神祕地丟棄所有突出顯示。vim中的JavaScript語法突出顯示

有沒有解決此問題的方法或方法?我使用vim 7.1。

回答

29

您可能會試試這個improved Javascript syntax highlighter而不是VIMRUNTIME附帶的那個。

+0

不錯。它甚至支持突出顯示jsdoc。謝謝! – asksol 2008-09-12 14:48:44

+0

小心:我注意到改進後的熒光筆的作者已從最近版本的語法同步開始改變......所以您看到的問題可能會在此熒光筆中發生。看起來像過去,它始終是從開始。 – 2008-09-12 16:30:57

+0

我已經嘗試了9/12/08發行版和05/17/07發行版,但都沒有改善這種情況。在中間打開一個複雜的JavaScript文件仍然沒有突出顯示,我必須滾動幾頁才能讓vim開始正確突出顯示。 – 2008-11-21 18:36:35

12

語法着色同步可能需要調整。我發現在某些情況下我需要改變它。

語法同步(「:help syn-sync」)控制vim如何跟蹤並刷新其對着色代碼的解析,以便它可以在文件中的任何位置開始繪製。

的默認設置並不總是爲我工作,所以有時我發現自己發行

:syn sync fromstart 

我建議通過文件下

:help syn-sync 

或閱讀只是檢查

:help syntax 

並找到關於同步的部分。

在四個可用的基本選項中做出明智的決定。 我保持映射到功能鍵以在「從開始」和「評論」模式之間切換,並且僅清除同步設置。

3

對於一個快速和髒的修復,有時我只是上下滾動和突出重新調整。 Ctrl + L對於屏幕重繪也可以修復它。

15

好吧,我修改了Yi Zhao's Javascript Syntax,並添加了Ajax關鍵字支持,還突出了DOM方法和其他。

在這裏,它遠非完美,因爲我還是Vim的新手,但到目前爲止它已經爲我工作。 My Javascript Syntax。如果你可以修復,添加功能,請做。

更新: 我忘記了這些語法高亮顯示僅在您將它們包含在您自己的顏色配方中時纔會顯示,正如我在 Nazca顏色配方中所做的那樣。我會測試是否可以將這些行添加到我修改過的語法文件中。

按照github的JavaScript語法文件的新版本,因爲它不再需要修改當前的色彩方案。

3

這是一個非常舊的帖子,但我遇到了同樣的情況:有時語法突出顯示只會在.html文件中查看javascript部分時停止工作。正如OP提到的,一個快速的解決方法是向上滾動,然後神奇的事情會再次開始突出顯示。

今天我發現了潛在的問題和一個很好的解決方案。在Vim中,語法高亮使用上下文來導出正確的高亮,其中上下文由前面的行定義。可以通過發行:syntax sync minlines=200來指定當前行使用前的行數。在這種情況下,它將使用多達200個先前的行作爲上下文。通過運行:syntax sync fromstart可以使用整個文件(對於長文件可能會很慢)。

有一次,我發現,我加入這行我.vimrc

autocmd BufEnter *.html :syntax sync fromstart 

通過這樣做,.html文件將使用整個文件作爲背景。因此,無論JS部分多長時間,javascript部分總是會被正確突出顯示。希望這可以幫助別人!