我有以下文字:
A simple line
TITLE1:
Another usual line
TITLE2:
More usual lines here
TITLE3:
Last line of this sample text.
我想将上面的内容转换为:
A simple line
TITLE1:
Another usual line
TITLE2:
More usual lines here
TITLE3:
Last line of this sample text.
因此,我想删除TITLE行之后的空行,而是在标题行之前添加一个空行。 TITLE行全部由 以#39; <#em; 结尾标识。
我尝试了以下代码
:%s/(.+):\r/\n\1:/g
但它不起作用。
答案 0 :(得分:2)
如果我理解您的要求,我会选择:g//{cmd}
代替:s/../../
:
g/:$/norm JO
如果您不想在:
之后留出空格,请在g
之前添加J
:g/pat/norm JO
pat
的所有行,请执行普通模式命令J
和O
。J
确实加入了,这意味着“删除了”下一个换行符O
在当前行之前添加一个空行。您可以将光标移到TITLE
行,按JO
,看看会发生什么。
如果您需要进一步的解释/详细信息,请阅读:
:h :g
:h :norm
:h J (or :h gJ)
:h O
答案 1 :(得分:1)
:g/TITLE/ m+1
它是如何工作的?
: ............... command
g ............... global
/TITLE/ ......... all lines with TITLE
m+1 ............. move to the next line