文字を検索して削除して挿入する方法

文字を検索して削除して挿入する方法

私の文字列は次のとおりです

P12106003;test_01_01

私はコマンドを使用しています

:g/test_.._../norm 10Xi<<Esc>A>

結果は次のようになります。

<test_01_01>

動作しません。

ベストアンサー1

X戻る削除してください。 while は、:norm一致する各行の先頭から通常モードに入ります。だからあなたはx欲しいでしょう

g/test_.._../norm 10xi<^[A>

^[入力された実際のESC文字を使用Ctrl+VEsc)。

またはこれを行うこともできます:

g/test_.._../norm dni<^[A>

ここでは、以下を使用する方が簡単です:s

:%s/\v.*(test_.._..)/<\1>/

または、各項目の前の10文字を削除してtest_.._..梱包してください<...>

:%s/\v.{10}(test_.._..)/<\1>/g

または、次のものと一致するものP<digits>;

:%s/\vP\d+;(test_.._..)/<\1>/g

おすすめ記事