我的字符串是:
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