2012-01-26 6 views

答えて

13

vim\rは改行です。

:g/specific string/s/.*/&specific line of code 

gコマンドはspecific stringを含むすべての行をフェッチして、それらの線にs置換コマンドを適用します。だから、これは私が何をするのかである。この

%s/search string/&\rnew code/ 
+1

説明のために。代わりにアンパサンドを使用すると、それが追加されますか?または、置換する行が含まれているので、 "%s /検索文字列/ \ n新しいコード&/"を前に付けることができますか? – VolatileStorm

+0

@Jaypal '%s /^.*検索文字列。* $ /&\ n新しいコード/'が良いかもしれませんか?あなたは元の行を壊すかもしれません。たとえば、行が "search string = xyz"または "foosearch string = barsearch string"の場合 – Kent

+1

'\ r'は置換文字列の新しい行です。検索パターンでは、 '\ n'は改行です。 – Benoit

0

ような何かを行うことができます。 「:G」コマンドは、おそらくよりも優れている「:S」この問題のためにsコマンドは、その内容を全ラインプラスspecific line of code

HTH

個人
13

を代入し、私が使用して考えます。

:g/key/norm owhat ever you want 

ようになりますテキスト:

foo 
bar 
key 
foo2 
bar2 
key2 
blah 

へ:あなたはパターンを含む行の上に新しい行を追加したい場合は

foo 
bar 
key 
what ever you want 
foo2 
bar2 
key2 
what ever you want 
blah 

は、ほんの少しの "O" に変更"O"。

+0

を打つ挿入します! – Benoit

+0

@Benoitうん、入れたり入れをwant''どんな '=置かれているよりも良い – Kent

+0

'autoindent'オプションが設定されている場合、' norm o'と 'norm O'は検索していた行と同じ字下げを使用するという利点があります。 – bdesham

関連する問題