Vim中的正则表达式 - 在编号行之前插入空白行

rns*_*nso 5 regex vim

我有以下文字:

Title line
1. First list
First line
Second line
2. Second list
Oranges
Mangoes
3. Stationary
Pen
Pencils
Etc
Run Code Online (Sandbox Code Playgroud)

我想在每个编号行之前添加一个空行,以便上面的文字如下所示:

Title line

1. First list
First line
Second line

2. Second list
Oranges
Mangoes

3. Stationary
Pen
Pencils
Etc
Run Code Online (Sandbox Code Playgroud)

我尝试了以下代码,但它无法正常工作:

%s/^(\d)/\r\1/g
Run Code Online (Sandbox Code Playgroud)

%s/(^\d)/\r\1/g
Run Code Online (Sandbox Code Playgroud)

%s/^([0-9])/\r\1/gc

问题在哪里以及如何解决.谢谢你的帮助.

rev*_*evo 4

您应该在 VIM 语法中转义括号,以便将其表示为特殊簇:

%s/^\(\d\)/\r\1/g
Run Code Online (Sandbox Code Playgroud)

或者使用匹配结束零宽度断言( \ze) 标记:

%s/^\ze\d/\r
Run Code Online (Sandbox Code Playgroud)