2016-08-02 10 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

たとえば、デフォルトのC構文スクリプト($VIMRUNTIME/syntax/c.vim)を見ると、特別な: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 
関連する問題