Vimで特殊文字を含む文字列を置換する
// これを
set path+=$HOME/.hoge/fuga/vim
// こうしたい
set path+=$HOME/.cache/vim
こんな時、hoge/fuga -> cacheと置換してあげたいわけですが、特殊文字はエスケープが必要です。
エスケープは\で行えます。
ちなみにエスケープが必要な特殊文字は ^$.*[]/~\ あたりです。
Vimの置換は
:%s/{置換対象の文字列}/{置換後の文字列}/
というコマンドなので、先ほどの例では
:%s/hoge\/fuga/cache/
としてあげれば良いです。
おまけ
1行に複数の置換対象があるとき
先ほど紹介した通常の置換コマンド
:%s/{置換対象の文字列}/{置換後の文字列}/
では1行に複数の置換対象があるとき、先頭の1つしか置換されません。
置換をしたいときは全ての対象文字列を置換したいことが多いと思いますが、そんな時は
:%s/{置換対象の文字列}/{置換後の文字列}/g
とすると全ての対象文字列に対して置換をしてくれます。
置換の確認がほしいとき
また、
:%s/{置換対象の文字列}/{置換後の文字列}/c
とすると置換ごとに実行するかどうかを聞いてくれるようになります。
これらを組み合わせて
:%s/{置換対象の文字列}/{置換後の文字列}/gc
とすることで全ての対象箇所を確認ありで置換することができます。