Vim/検索/特定の文字列で始まらない行のみ検索する

否定の先読みという正規表現を使うのだがこれが結構普通の正規表現と違う。

正規表現で先読みとか後読みというのがあるが、これは特定の「位置」を指定する正規表現になる。

hogehoge から始まらない行のみを検索するには

/^\(hogehoge\)\@!.*$

となる。この @! がhogehogeではない場所の直前の場所の「位置」を特定している。 これに先頭をつけているので先頭がhogehogeでない場所から行末までという意味になる。

つまり、hogehoge の文字列で始まらない行のみ ということになる。