我想找出一種突出顯示某些我常用的typedef的方法。例如:Vim語法只匹配字
syn match U64 "u64"
hi def link U64 Type
這適用於「u64」實際上標記爲類型。問題是,如果我要創建一個變量「u64 u64copy」(只是一個例子,不要掛上是否真的有這個名字)「u64copy」中的「u64」仍然突出顯示。我曾考慮區域,但我不知道我會設置哪個區域,因爲這可能是代碼中任何地方的問題。
我想找出一種突出顯示某些我常用的typedef的方法。例如:Vim語法只匹配字
syn match U64 "u64"
hi def link U64 Type
這適用於「u64」實際上標記爲類型。問題是,如果我要創建一個變量「u64 u64copy」(只是一個例子,不要掛上是否真的有這個名字)「u64copy」中的「u64」仍然突出顯示。我曾考慮區域,但我不知道我會設置哪個區域,因爲這可能是代碼中任何地方的問題。
可以字邊界簡單地添加到該正則表達式:
syn match U64 "\<u64\>"
令牌\<
和\>
匹配在開始分別零長度序列和一個字的結束。
如果您查看$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
這個伎倆,非常感謝! – kennedyl