我有一个内容如下的文件:
id phone name x'1234' 12345 jack x'4567' 45678 Jojo x'7890' 89456 Dio x'4591' 34872 joseph
我想把它解析成这样:
id phone name 1 12345 jack 2 45678 Jojo 3 89456 Dio 4 34872 joseph
我知道基本的正则表达式可以将所有id替换为这样的任何字符串:
:%s/x'\(\w\+\)'/1/g
它将变成:
id phone name 1 12345 jack 1 45678 Jojo 1 89456 Dio 1 34872 joseph
如何将id替换为增量变量?
您可以像其他答案一样声明一个变量,或者:
:%s/^x'\([^']*\)'/\=line('.')-1/
1
如果标题行(id,电话,姓名)不在第1行中,则将其替换为标题行的行号。
您只需替换1
成0
您的代码即可获得关注
id phone name 0 12345 jack 0 45678 Jojo 0 89456 Dio 0 34872 joseph
然后,您可以将光标移动到第一个ID 0
,然后按:
ctrl-v
G
g
ctrl-a
它将把0
s变成一个序列1
ctrl-v
:列模式
G
:选择第一个列,直到最后一行。
g+ctrl-a
:添加