次のコードでは:
a = b = c == 1
最初の 2 つの = だけで一致させたいのですが、最後の == では一致させません。
単語の先頭に一致し、末尾に一致するため、パターン\<=\>
が機能すると考えました。しかし、そうではありません。このパターンの何が問題で、正しいパターンは何ですか?\<
\>
vim はルックアラウンドをサポートしているため、= を囲む否定後読みと否定先読みを使用できます。これは、目的の = および行頭または行末の = のみに一致します。
\(=\)\@<!=\(=\)\@!
\<=\>
通常、イコール文字はキーワード文字ではないため、使用できません。で修正できますが、ナビゲーションや構文の強調表示に副作用が生じる可能性があります。:set iskeyword+==
この正規表現は機能するはずです:
[^=]=[^=]
=
行頭または行末で単一に一致させたい場合は壊れますが、これはパターンの問題ではないと考えました。