やりたいこと
vimでの置換で苦しむ
[ や" や (space)をうまく認識できない。\でエスケープしてもできなかったりする。
また、任意の文字が入った外側の文字を置換したい場合に対応できない。
解決法
\v
をつけて一般の(?)正規表現を使えるようにする
例
:%s/\v([.])//gc
で[1]
、[2]
などの[]
で囲まれ、中身が一文字の場所を全て置換できます。
ちなみにg(global?)は一括置換を意味するコマンドですが、よほど自身がない限り、c(check?)をつけることを勧めます。
y or n を押すと置換するかどうかを1つずつ選択できます。
問題点
今までできた単純な置換が\vだと弾かれたりしたので(どんなケースはダメかわかればあとで書きます)、単純な置換は\vをつけずにやった方がいいかもです。
⬆️
@slin さんからコメントをいただきました。
vim 上で :h magic
を押すと、split viewでもう1つ別の画面が現れて、help画面が現れます。そこでそれぞれのモードで何の文字がescapeが必要かを示してくれるようです。便利!