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)