2014-07-14 51 views
0

I¡ve設置下面的比賽在我的代碼突出TODO S:Vim的匹配怪異的行爲

hi todo guifg=#b294bb 
match todo /TODO:?/ 

但規則不匹配TODO:(CoffeeScript的文件)的optionsl冒號:

enter image description here

我試過一些正則表達式的變種,比如逃避冒號或者用parens包裝它。

奇怪的是,它在不同的文件類型的一些,例如:

  • 在我的截圖(CoffeeScript的),它不結腸匹配。
  • 在很少,它不匹配任何東西。
  • 在vim文件中,它匹配TODO和冒號。

我錯過了什麼?我的語言語法文件中的某些內容是否覆蓋此規則?

請注意,我使用AfterColors插件來創建此顏色自定義。

+0

這個定義在你的配置中的位置在哪裏? ':match'只適用於當前窗口,不適用於每個加載的文件。你想':syntax match'嗎? – Ben

回答

0

的 「待辦事項」 組已經存在(並匹配/TODO/),請嘗試使用其他名稱。

1

問號與vim正則表達式中的文字問號相匹配(默認情況下)。如果您使用\v將模式設置爲非常神奇,您將獲得您期待的行爲。 (或者使用\?

match todo /\v\CTODO:?/ 

建議在腳本中使用正則表達式時,因爲它們是由用戶設置的影響明確設置魔術模式和大小寫。

閱讀:h magic:h \C

+0

仍然與CoffeeScript中的冒號不匹配,並且不匹配LESS中的任何內容。對此很困惑。 – jviotti

+1

@jviotti你可能會與某些默認的語法高亮規則衝突或者設置太早。 – FDinoff