2012-05-17 6 views

答えて

13

すべてをエスケープしないようにしてください。:.,+30s/&/&&/gは私にとってはうまくいくようです。

+12

明示する必要があります:これは、「&パターン中では( '&'がエスケープされていないか、非常にマジックモードが起動されていない限り)、置換文字列 '&'は '\ 0'と同じ意味を持ちます:マッチした部分文字列全体です。 「完全一致部分文字列」はアンパサンド自体であるため、この解決策が機能します。 'magic'オプションがオフになっている場合、 ':s'を含むいくつかのコマンドでは、"&replacement "がfalseであることにも注意してください。 – ZyX

10

正規表現の最初の部分でアンパサンドをエスケープする必要はありません。それは、第2の(置換)部分に特別な意味しか持たない。

「\ &」というパターンを探していて、「\ & \ &」というパターンで置き換えてください。

交換する簡単な方法は、単に次のとおりです。

:.,+30s/&/&&/g 
1

また、あなたが例えば&位置変更する必要がある場合に便利発言することができます:_&&_&をエスケープする必要があります

:.,+30s/ &/\& /g 
     ^
関連する問題