2016-08-02 52 views
1

我想找出一種突出顯示某些我常用的typedef的方法。例如:Vim語法只匹配字

syn match U64 "u64" 
hi def link U64 Type 

這適用於「u64」實際上標記爲類型。問題是,如果我要創建一個變量「u64 u64copy」(只是一個例子,不要掛上是否真的有這個名字)「u64copy」中的「u64」仍然突出顯示。我曾考慮區域,但我不知道我會設置哪個區域,因爲這可能是代碼中任何地方的問題。

+0

這個伎倆,非常感謝! – kennedyl

回答

4

可以字邊界簡單地添加到該正則表達式:

syn match U64 "\<u64\>" 

令牌\<\>匹配在開始分別零長度序列和一個字的結束。

0

如果您查看$VIMRUNTIME/syntax/c.vim中的默認C語法腳本(例如),您會注意到有一個特殊的:syntax keyword命令。

syn keyword cType  int long short char void 

:syntax match需要正則表達式;它對你的用例來說太強大了(而且沒有必要)。我建議你也堅持命名約定,並在前面加上文件類型(如c)到你的語法組名:

syn keyword cU64 u64 
hi def link cU64 Type 

或者,只是增加了內置的語法組:

syn keyword cType u64