2012-05-02 9 views

答えて

16

これはVimではなくPerlの構文です。 Vimの正規表現では、少なくともデフォルトで括弧が一致し、バックスラッシュの括弧がキャプチャされます。これはPerlの反対です。また、Vimは非貪欲修飾子?を理解せず、キャプチャグループは\nで補間され、$nではなく補間されます。このお試しください:また

%s/hello(\([^)]*\))/hello[\1]/ 

を、あなたはそれがVimが*?かを理解することはありませんが、特殊文字やバックスラッシュに関してより多くのPerlのように振る舞いをする\v(「非常にマジック」)修飾子を使用することができますその補間構文を変更します。

また
%s/\vhello\(([^)]*)\)/hello[\1]/ 

、あなたが置換テキストに角括弧にバックスラッシュを必要としないことに注意してください - 置換コマンドの右側には、正規表現ではありません、あなたドンので、ほとんどの文字について心配する必要はありません。で1つの特別です。ほとんどの場合、バックスラッシュ自体は特別なもので、キャプチャグループやそれ自身や区切り文字のリテラルインスタンスを含めるために使用できます。

関連する問題

 関連する問題