私の文字列は次のとおりです
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