一行で、Vimは検索パターンの最後の出現のみにどのように一致することができますか?欲張りではないようなものですが、最初からです。
例:次の行で、一致させたいTwinkle little star
(太字で強調表示):
きらめき何とか何とか何とかきらめきリトルスター。
次のようなネガティブ先読みを試しましたが、完全な行と一致しています。
Twinkle.*\(Twinkle\)\@!$
括弧をエスケープし、アンカーの前にワイルドカードの一致を追加します。
Twinkle\(.*Twinkle\)\@!.*$
^ ^ ^^
/\v.*\zsTwinkle.*
「:setincsearch」を使用して、テキストをバッファにロードし、パターンの入力を開始して、パターンがどのように適用されるかを確認します。
たとえば、バッファ:
Twinkle brightly little star
Twinkle brightly, Twinkle brightly little star
そして置換:
:%s/\v.*\zsTwinkle /&extra /
与える:
Twinkle extra brightly little star
Twinkle brightly, Twinkle extra brightly little star