vimでファイルを編集中に1行の中に置換したい部分と置換したくない部分が混在している時に
:s で置換すると行全体を対象として置換処理が行われて美味しくないので回避方法を調べてみた。
visual mode で矩形選択した範囲を対象に置換してやればいいと思うけど、普通に置換するとコレジャナイ・・。
このような場合、検索パターン「%V」を指定してやるといいです。
:'<, >'s/%Vhoge/piyo/
こんな感じ。
Ctrl+vで範囲を指定した後、「:」を入力すると、「\'<, >\'」が勝手に入ります。
例えば、下記の文章をthis is 〜 から there is 〜 のように変更したい場合、th[is]をCtrl-vで選択し
「:\'<, >\'s/%Vis/ere/」と入力してやればいいです。
this is a pen
this is a dog
this is a cat
使用頻度は高くないけど、覚えておくといざという時便利!