.vimrcで以下を定義するか、vimコマンドライン内で実行します。
syn match ndbMethods "[^. \t\n\r]\@<=[_a-z][_a-zA-Z0-9]*(\@="
hi ndbMethods guibg=#222222
アクティブバッファでCスタイルのメソッド呼び出しを使用して結果を表示します。
foo();
メソッド名の最初の文字が一致していないことがわかります。
ルックビハインドパターンは、一致するメソッドの最初の文字の前に、行の先頭、リテラル.
、または空白を強制することを目的としています。
奇妙なことに、これをネガティブな先読み(\@<!
)にすることはうまくいくようです!
誰かがこの後ろ姿が間違っている理由を説明するのに十分親切でしょうか?