vimの正規表現

2023-01-01

vimの検索で使う正規表現のパターンは、エスケープするべき文字が一癖ある。

よくあるテキストエディタに慣れているとよく誤爆する。

なお、書き方がいくつかあり、オプション名 magic で確認できる。

:set magic?

デフォルトはmagicなので、magicと表示される。

magicだと、 (foo|bar) で検索したいときは以下のようになる。

/\(foo\|bar\)

magicの場合、. * ^ $ は\でエスケープしなくてもメタ文字として扱われるが、 ( ) | + ? は\でエスケープしないとメタ文字として扱われない。

ちょっと \ 多くてつらいっすわ というときに very magic を使う手がある。

設定で常時有効にする方法はないらしい。

検索パターン入力の前に \v と入力すると有効になる。

/\v(foo|bar)

very nomagic は \V

例)fooかbarにマッチする文字列の後に(foo|bar)という文字列を検索

/\v(foo|bar)\V(foo|bar)