2012-09-02 38 views
1

我正在嘗試爲Vim編寫一個語法文件。Vim語法突出顯示和某些字符

一個的代碼行的讀取

syn match constant "\**\*" 

而許多其他線中的一條讀取

syn keyword aiOperators up-build 

爲高亮的代碼如下:

hi constant gui=bold 
hi aiOperators guifg=green 

然而,以上的結果是隻有以下幾點才突出顯示:

  • 星號常數,但不是它們之間的字符。
  • 直到第一個連字符aiOperators的字符。

什麼似乎是問題?

回答

4

爲您不斷的正則表達式指定的文字星號,零次或多次,隨後的文字星號。如果您打算匹配星號分隔的字符,則需要使用類似\*\w\+\*的字符:文字星號,後跟一個或多個單詞字符,後跟字面星號。

:syn keyword僅適用於關鍵字的字符;默認情況下,包含連字符而不是,所以比賽停在那裏。如果,你的文件類型,連字符屬於集合的關鍵字字符,請使用

:setlocal iskeyword+=- 

這不應該被放入語法文件本身,而是進入~/.vim/ftplugin/myfiletype.vim。否則,請使用:syn match

+0

我明白了,非常感謝。 – Ashot